1(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{3561:(xe,S1,m)=>{"use strict";m.d(S1,{BN:()=>Ln,by:()=>w4,uH:()=>P4});var o=m(6435);function a(A){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(P){return typeof P}:function(P){return P&&"function"==typeof Symbol&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P})(A)}function r1(A,P){for(var $=0;$<P.length;$++){var t1=P[$];t1.enumerable=t1.enumerable||!1,t1.configurable=!0,"value"in t1&&(t1.writable=!0),Object.defineProperty(A,t1.key,t1)}}function U(A,P,$){return P in A?Object.defineProperty(A,P,{value:$,enumerable:!0,configurable:!0,writable:!0}):A[P]=$,A}function N(A){for(var P=1;P<arguments.length;P++){var $=null!=arguments[P]?arguments[P]:{},t1=Object.keys($);"function"==typeof Object.getOwnPropertySymbols&&(t1=t1.concat(Object.getOwnPropertySymbols($).filter(function(L1){return Object.getOwnPropertyDescriptor($,L1).enumerable}))),t1.forEach(function(L1){U(A,L1,$[L1])})}return A}function F(A,P){return function J(A){if(Array.isArray(A))return A}(A)||function s1(A,P){var $=[],t1=!0,L1=!1,W1=void 0;try{for(var he,pe=A[Symbol.iterator]();!(t1=(he=pe.next()).done)&&($.push(he.value),!P||$.length!==P);t1=!0);}catch(Ie){L1=!0,W1=Ie}finally{try{!t1&&null!=pe.return&&pe.return()}finally{if(L1)throw W1}}return $}(A,P)||function y1(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var u1={},de={};try{"undefined"!=typeof window&&(u1=window),"undefined"!=typeof document&&(de=document),"undefined"!=typeof MutationObserver&&MutationObserver,"undefined"!=typeof performance&&performance}catch(A){}var X1=(u1.navigator||{}).userAgent,Se=void 0===X1?"":X1,Me=u1,ae=de,te=!!ae.documentElement&&!!ae.head&&"function"==typeof ae.addEventListener&&"function"==typeof ae.createElement,G1=(~Se.indexOf("MSIE")||Se.indexOf("Trident/"),"___FONT_AWESOME___"),t2="svg-inline--fa",me=[1,2,3,4,5,6,7,8,9,10],Oe=me.concat([11,12,13,14,15,16,17,18,19,20]),y2={GROUP:"group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},K2=(["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","flip-both","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter",y2.GROUP,y2.SWAP_OPACITY,y2.PRIMARY,y2.SECONDARY].concat(me.map(function(A){return"".concat(A,"x")})).concat(Oe.map(function(A){return"w-".concat(A)})),Me.FontAwesomeConfig||{});ae&&"function"==typeof ae.querySelector&&[["data-family-prefix","familyPrefix"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(function(A){var P=F(A,2),t1=P[1],L1=function V2(A){return""===A||"false"!==A&&("true"===A||A)}(function A2(A){var P=ae.querySelector("script["+A+"]");if(P)return P.getAttribute(A)}(P[0]));null!=L1&&(K2[t1]=L1)});var ue=N({},{familyPrefix:"fa",replacementClass:t2,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},K2);ue.autoReplaceSvg||(ue.observeMutations=!1);var Q=N({},ue);Me.FontAwesomeConfig=Q;var g1=Me||{};g1[G1]||(g1[G1]={}),g1[G1].styles||(g1[G1].styles={}),g1[G1].hooks||(g1[G1].hooks={}),g1[G1].shims||(g1[G1].shims=[]);var se=g1[G1],ce=[];te&&((ae.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(ae.readyState)||ae.addEventListener("DOMContentLoaded",function A(){ae.removeEventListener("DOMContentLoaded",A),ce.map(function(P){return P()})}));var x1,i2="pending",Qe="settled",O2="fulfilled",x2="rejected",W2=function(){},je="undefined"!=typeof global&&void 0!==global.process&&"function"==typeof global.process.emit,Pe="undefined"==typeof setImmediate?setTimeout:setImmediate,Ye=[];function j1(){for(var A=0;A<Ye.length;A++)Ye[A][0](Ye[A][1]);Ye=[],x1=!1}function c1(A,P){Ye.push([A,P]),x1||(x1=!0,Pe(j1,0))}function Re(A){var P=A.owner,$=P._state,t1=P._data,L1=A[$],W1=A.then;if("function"==typeof L1){$=O2;try{t1=L1(t1)}catch(pe){I2(W1,pe)}}Ze(W1,t1)||($===O2&&E2(W1,t1),$===x2&&I2(W1,t1))}function Ze(A,P){var $;try{if(A===P)throw new TypeError("A promises callback cannot return that same promise.");if(P&&("function"==typeof P||"object"===a(P))){var t1=P.then;if("function"==typeof t1)return t1.call(P,function(L1){$||($=!0,P===L1?U2(A,L1):E2(A,L1))},function(L1){$||($=!0,I2(A,L1))}),!0}}catch(L1){return $||I2(A,L1),!0}return!1}function E2(A,P){(A===P||!Ze(A,P))&&U2(A,P)}function U2(A,P){A._state===i2&&(A._state=Qe,A._data=P,c1(J2,A))}function I2(A,P){A._state===i2&&(A._state=Qe,A._data=P,c1(l2,A))}
1function dt(A){A._then=A._then.forEach(Re)}function J2(A){A._state=O2,dt(A)}function l2(A){A._state=x2,dt(A),!A._handled&&je&&global.process.emit("unhandledRejection",A._data,A)}function k1(A){global.process.emit("rejectionHandled",A)}function b1(A){if("function"!=typeof A)throw new TypeError("Promise resolver "+A+" is not a function");if(!(this instanceof b1))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._then=[],function F1(A,P){function t1(L1){I2(P,L1)}try{A(function $(L1){E2(P,L1)},t1)}catch(L1){t1(L1)}}(A,this)}b1.prototype={constructor:b1,_state:i2,_then:null,_data:void 0,_handled:!1,then:function(P,$){var t1={owner:this,then:new this.constructor(W2),fulfilled:P,rejected:$};return($||P)&&!this._handled&&(this._handled=!0,this._state===x2&&je&&c1(k1,this)),this._state===O2||this._state===x2?c1(Re,t1):this._then.push(t1),t1.then},catch:function(P){return this.then(null,P)}},b1.all=function(A){if(!Array.isArray(A))throw new TypeError("You must pass an array to Promise.all().");return new b1(function(P,$){var t1=[],L1=0;function W1(Ie){return L1++,function(m2){t1[Ie]=m2,--L1||P(t1)}}for(var he,pe=0;pe<A.length;pe++)(he=A[pe])&&"function"==typeof he.then?he.then(W1(pe),$):t1[pe]=he;L1||P(t1)})},b1.race=function(A){if(!Array.isArray(A))throw new TypeError("You must pass an array to Promise.race().");return new b1(function(P,$){for(var L1,t1=0;t1<A.length;t1++)(L1=A[t1])&&"function"==typeof L1.then?L1.then(P,$):P(L1)})},b1.resolve=function(A){return A&&"object"===a(A)&&A.constructor===b1?A:new b1(function(P){P(A)})},b1.reject=function(A){return new b1(function(P,$){$(A)})};var ee={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function C(){for(var A=12,P="";A-- >0;)P+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return P}function v1(A){return"".concat(A).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Y1(A){return Object.keys(A||{}).reduce(function(P,$){return P+"".concat($,": ").concat(A[$],";")},"")}function J1(A){return A.size!==ee.size||A.x!==ee.x||A.y!==ee.y||A.rotate!==ee.rotate||A.flipX||A.flipY}function le(A){var P=A.transform,t1=A.iconWidth,L1={transform:"translate(".concat(A.containerWidth/2," 256)")},W1="translate(".concat(32*P.x,", ").concat(32*P.y,") "),pe="scale(".concat(P.size/16*(P.flipX?-1:1),", ").concat(P.size/16*(P.flipY?-1:1),") "),he="rotate(".concat(P.rotate," 0 0)");return{outer:L1,inner:{transform:"".concat(W1," ").concat(pe," ").concat(he)},path:{transform:"translate(".concat(t1/2*-1," -256)")}}}var He={x:0,y:0,width:"100%",height:"100%"};function B(A){var P=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return A.attributes&&(A.attributes.fill||P)&&(A.attributes.fill="black"),A}function V(A){return"g"===A.tag?A.children:[A]}function Q1(A){var P=A.icons,$=P.main,t1=P.mask,L1=A.prefix,W1=A.iconName,pe=A.transform,he=A.symbol,Ie=A.title,m2=A.maskId,g2=A.titleId,M2=A.extra,q2=A.watchable,ft=void 0!==q2&&q2,Et=t1.found?t1:$,lt=Et.width,it=Et.height,bt="fak"===L1,Kt=bt?"":"fa-w-".concat(Math.ceil(lt/it*16)),nn=[Q.replacementClass,W1?"".concat(Q.familyPrefix,"-").concat(W1):"",Kt].filter(function(Z2){return-1===M2.classes.indexOf(Z2)}).filter(function(Z2){return""!==Z2||!!Z2}).concat(M2.classes).join(" "),Tt={children:[],attributes:N({},M2.attributes,{"data-prefix":L1,"data-icon":W1,class:nn,role:M2.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(lt," ").concat(it)})},rn=bt&&!~M2.classes.indexOf("fa-fw")?{width:"".concat(lt/it*16*.0625,"em")}:{};ft&&(Tt.attributes["data-fa-i2svg"]=""),Ie&&Tt.children.push({tag:"title",attributes:{id:Tt.attributes["aria-labelledby"]||"title-".concat(g2||C())},children:[Ie]});var Mn=N({},Tt,{prefix:L1,iconName:W1,main:$,mask:t1,maskId:m2,transform:pe,symbol:he,styles:N({},rn,M2.styles)}),_4=t1.found&&$.found?function K(A){var P=A.children,$=A.attributes,t1=A.main,L1=A.mask,W1=A.maskId,Ie=t1.icon,g2=L1.icon,M2=le({transform:A.transform,containerWidth:L1.width,iconWidth:t1.width}),q2={tag:"rect",attributes:N({},He,{fill:"white"})},ft=Ie.children?{children:Ie.children.map(B)}:{},Et={tag:"g",attributes:N({}
1,M2.inner),children:[B(N({tag:Ie.tag,attributes:N({},Ie.attributes,M2.path)},ft))]},lt={tag:"g",attributes:N({},M2.outer),children:[Et]},it="mask-".concat(W1||C()),bt="clip-".concat(W1||C()),Kt={tag:"mask",attributes:N({},He,{id:it,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[q2,lt]},nn={tag:"defs",children:[{tag:"clipPath",attributes:{id:bt},children:V(g2)},Kt]};return P.push(nn,{tag:"rect",attributes:N({fill:"currentColor","clip-path":"url(#".concat(bt,")"),mask:"url(#".concat(it,")")},He)}),{children:P,attributes:$}}(Mn):function m1(A){var P=A.children,$=A.attributes,t1=A.main,L1=A.transform,pe=Y1(A.styles);if(pe.length>0&&($.style=pe),J1(L1)){var he=le({transform:L1,containerWidth:t1.width,iconWidth:t1.width});P.push({tag:"g",attributes:N({},he.outer),children:[{tag:"g",attributes:N({},he.inner),children:[{tag:t1.icon.tag,children:t1.icon.children,attributes:N({},t1.icon.attributes,he.path)}]}]})}else P.push(t1.icon);return{children:P,attributes:$}}(Mn),zn=_4.attributes;return Mn.children=_4.children,Mn.attributes=zn,he?function $1(A){var $=A.iconName,t1=A.children,W1=A.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:N({},A.attributes,{id:!0===W1?"".concat(A.prefix,"-").concat(Q.familyPrefix,"-").concat($):W1}),children:t1}]}]}(Mn):function E1(A){var P=A.children,$=A.main,t1=A.mask,L1=A.attributes,W1=A.styles,pe=A.transform;if(J1(pe)&&$.found&&!t1.found){var m2={x:$.width/$.height/2,y:.5};L1.style=Y1(N({},W1,{"transform-origin":"".concat(m2.x+pe.x/16,"em ").concat(m2.y+pe.y/16,"em")}))}return[{tag:"svg",attributes:L1,children:P}]}(Mn)}var r2=function(P,$,t1,L1){var Ie,m2,g2,W1=Object.keys(P),pe=W1.length,he=void 0!==L1?function(P,$){return function(t1,L1,W1,pe){return P.call($,t1,L1,W1,pe)}}($,L1):$;for(void 0===t1?(Ie=1,g2=P[W1[0]]):(Ie=0,g2=t1);Ie<pe;Ie++)g2=he(g2,P[m2=W1[Ie]],m2,P);return g2};function f2(A,P){var $=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t1=$.skipHooks,L1=void 0!==t1&&t1,W1=Object.keys(P).reduce(function(pe,he){var Ie=P[he];return Ie.icon?pe[Ie.iconName]=Ie.icon:pe[he]=Ie,pe},{});"function"!=typeof se.hooks.addPack||L1?se.styles[A]=N({},se.styles[A]||{},W1):se.hooks.addPack(A,W1),"fas"===A&&f2("fa",P)}var u2=se.styles,Xe=se.shims,p2=function(){var P=function(L1){return r2(u2,function(W1,pe,he){return W1[he]=r2(pe,L1,{}),W1},{})};P(function(t1,L1,W1){return L1[3]&&(t1[L1[3]]=W1),t1}),P(function(t1,L1,W1){var pe=L1[2];return t1[W1]=W1,pe.forEach(function(he){t1[he]=W1}),t1});var $="far"in u2;r2(Xe,function(t1,L1){var pe=L1[1];return"far"===pe&&!$&&(pe="fas"),t1[L1[0]]={prefix:pe,iconName:L1[2]},t1},{})};function jt(A,P,$){if(A&&A[P]&&A[P][$])return{prefix:P,iconName:$,icon:A[P][$]}}function ot(A){var P=A.tag,$=A.attributes,t1=void 0===$?{}:$,L1=A.children,W1=void 0===L1?[]:L1;return"string"==typeof A?v1(A):"<".concat(P," ").concat(function o1(A){return Object.keys(A||{}).reduce(function(P,$){return P+"".concat($,'="').concat(v1(A[$]),'" ')},"").trim()}(t1),">").concat(W1.map(ot).join(""),"</").concat(P,">")}p2();function Rt(A){this.name="MissingIcon",this.message=A||"Icon unavailable",this.stack=(new Error).stack}(Rt.prototype=Object.create(Error.prototype)).constructor=Rt;var $t={fill:"currentColor"},Wt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},St=(N({},$t,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2
1-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),N({},Wt,{attributeName:"opacity"}));function Cn(A){var P=A[0],$=A[1],W1=F(A.slice(4),1)[0];return{found:!0,width:P,height:$,icon:Array.isArray(W1)?{tag:"g",attributes:{class:"".concat(Q.familyPrefix,"-").concat(y2.GROUP)},children:[{tag:"path",attributes:{class:"".concat(Q.familyPrefix,"-").concat(y2.SECONDARY),fill:"currentColor",d:W1[0]}},{tag:"path",attributes:{class:"".concat(Q.familyPrefix,"-").concat(y2.PRIMARY),fill:"currentColor",d:W1[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:W1}}}}function Dt(){Q.autoAddCss&&!d&&(function w(A){if(A&&te){var P=ae.createElement("style");P.setAttribute("type","text/css"),P.innerHTML=A;for(var $=ae.head.childNodes,t1=null,L1=$.length-1;L1>-1;L1--){var W1=$[L1],pe=(W1.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(pe)>-1&&(t1=W1)}return ae.head.insertBefore(P,t1),A}}(function Nn(){var A="fa",P=t2,$=Q.familyPrefix,t1=Q.replacementClass,L1='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;
1\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if($!==A||t1!==P){var W1=new RegExp("\\.".concat(A,"\\-"),"g"),pe=new RegExp("\\--".concat(A,"\\-"),"g"),he=new RegExp("\\.".concat(P),"g");L1=L1.replace(W1,".".concat($,"-")).replace(pe,"--".concat($,"-")).replace(he,".".concat(t1))}return L1}()),d=!0)}function S(A,P){return Object.defineProperty(A,"abstract",{get:P}),Object.defineProperty(A,"html",{get:function(){return A.abstract.map(function(t1){return ot(t1)})}}),Object.defineProperty(A,"node",{get:function(){if(te){var t1=ae.createElement("div");return t1.innerHTML=A.html,t1.children}}}),A}function a1(A){var P=A.prefix,$=void 0===P?"fa":P,t1=A.iconName;if(t1)return jt(Y.definitions,$,t1)||jt(se.styles,$,t1)}N({},$t,{cx:"256",cy:"364",r:"28"}),N({},Wt,{attributeName:"r",values:"28;14;28;28;14;28;"}),N({},St,{values:"1;0;1;1;0;1;"}),N({},$t,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),N({},St,{values:"1;0;0;0;0;1;"}),N({},$t,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),N({},St,{values:"0;0;1;1;0;0;"});var Y=new(function(){function A(){(function I(A,P){if(!(A instanceof P))throw new TypeError("Cannot call a class as a function")})(this,A),this.definitions={}}return function X(A,P,$){P&&r1(A.prototype,P),$&&r1(A,$)}(A,[{key:"add",value:function(){for(var $=this,t1=arguments.length,L1=new Array(t1),W1=0;W1<t1;W1++)L1[W1]=arguments[W1];var pe=L1.reduce(this._pullDefinitions,{});Object.keys(pe).forEach(function(he){$.definitions[he]=N({},$.definitions[he]||{},pe[he]),f2(he,pe[he]),p2()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function($,t1){var L1=t1.prefix&&t1.iconName&&t1.icon?{0:t1}:t1;return Object.keys(L1).map(function(W1){var pe=L1[W1],he=pe.prefix,Ie=pe.iconName,m2=pe.icon;$[he]||($[he]={}),$[he][Ie]=m2}),$}}]),A}()),d=!1,T_transform=function(P){return function(P){var $={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return P?P.toLowerCase().split(" ").reduce(function(t1,L1){var W1=L1.toLowerCase().split("-"),pe=W1[0],he
1=W1.slice(1).join("-");if(pe&&"h"===he)return t1.flipX=!0,t1;if(pe&&"v"===he)return t1.flipY=!0,t1;if(he=parseFloat(he),isNaN(he))return t1;switch(pe){case"grow":t1.size=t1.size+he;break;case"shrink":t1.size=t1.size-he;break;case"left":t1.x=t1.x-he;break;case"right":t1.x=t1.x+he;break;case"up":t1.y=t1.y-he;break;case"down":t1.y=t1.y+he;break;case"rotate":t1.rotate=t1.rotate+he}return t1},$):$}(P)},V1=function _(A){return function(P){var $=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t1=(P||{}).icon?P:a1(P||{}),L1=$.mask;return L1&&(L1=(L1||{}).icon?L1:a1(L1||{})),A(t1,N({},$,{mask:L1}))}}(function(A){var P=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},$=P.transform,t1=void 0===$?ee:$,L1=P.symbol,W1=void 0!==L1&&L1,pe=P.mask,he=void 0===pe?null:pe,Ie=P.maskId,m2=void 0===Ie?null:Ie,g2=P.title,M2=void 0===g2?null:g2,q2=P.titleId,ft=void 0===q2?null:q2,Et=P.classes,lt=void 0===Et?[]:Et,it=P.attributes,bt=void 0===it?{}:it,Kt=P.styles,nn=void 0===Kt?{}:Kt;if(A){var Tt=A.prefix,rn=A.iconName,Mn=A.icon;return S(N({type:"icon"},A),function(){return Dt(),Q.autoA11y&&(M2?bt["aria-labelledby"]="".concat(Q.replacementClass,"-title-").concat(ft||C()):(bt["aria-hidden"]="true",bt.focusable="false")),Q1({icons:{main:Cn(Mn),mask:he?Cn(he.icon):{found:!1,width:null,height:null,icon:{}}},prefix:Tt,iconName:rn,transform:N({},ee,t1),symbol:W1,title:M2,maskId:m2,titleId:ft,extra:{attributes:bt,styles:nn,classes:lt}})})}}),ln=m(2313);const f4=["*"];let Fn=(()=>{class A{constructor(){this.defaultPrefix="fas",this.fallbackIcon=null,this.globalLibrary=!1}}return A.\u0275fac=function($){return new($||A)},A.\u0275prov=o.Yz7({factory:function(){return new A},token:A,providedIn:"root"}),A})(),w4=(()=>{class A{constructor(){this.definitions={}}addIcons(...$){for(const t1 of $)t1.prefix in this.definitions||(this.definitions[t1.prefix]={}),this.definitions[t1.prefix][t1.iconName]=t1}addIconPacks(...$){for(const t1 of $){const L1=Object.keys(t1).map(W1=>t1[W1]);this.addIcons(...L1)}}getIconDefinition($,t1){return $ in this.definitions&&t1 in this.definitions[$]?this.definitions[$][t1]:null}}return A.\u0275fac=function($){return new($||A)},A.\u0275prov=o.Yz7({factory:function(){return new A},token:A,providedIn:"root"}),A})();const be=A=>{const P={"fa-spin":A.spin,"fa-pulse":A.pulse,"fa-fw":A.fixedWidth,"fa-border":A.border,"fa-inverse":A.inverse,"fa-layers-counter":A.counter,"fa-flip-horizontal":"horizontal"===A.flip||"both"===A.flip,"fa-flip-vertical":"vertical"===A.flip||"both"===A.flip,[`fa-${A.size}`]:null!==A.size,[`fa-rotate-${A.rotate}`]:null!==A.rotate,[`fa-pull-${A.pull}`]:null!==A.pull,[`fa-stack-${A.stackItemSize}`]:null!=A.stackItemSize};return Object.keys(P).map($=>P[$]?$:null).filter($=>$)};let rt=(()=>{class A{constructor(){this.stackItemSize="1x"}ngOnChanges($){if("size"in $)throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. Set size on the enclosing fa-stack instead: <fa-stack size="4x">...</fa-stack>.')}}return A.\u0275fac=function($){return new($||A)},A.\u0275dir=o.lG2({type:A,selectors:[["fa-icon","stackItemSize",""],["fa-duotone-icon","stackItemSize",""]],inputs:{stackItemSize:"stackItemSize",size:"size"},features:[o.TTD]}),A})(),z4=(()=>{class A{constructor($,t1){this.renderer=$,this.elementRef=t1}ngOnInit(){this.renderer.addClass(this.elementRef.nativeElement,"fa-stack")}ngOnChanges($){"size"in $&&(null!=$.size.currentValue&&this.renderer.addClass(this.elementRef.nativeElement,`fa-${$.size.currentValue}`),null!=$.size.previousValue&&this.renderer.removeClass(this.elementRef.nativeElement,`fa-${$.size.previousValue}`))}}return A.\u0275fac=function($){return new($||A)(o.Y36(o.Qsj),o.Y36(o.SBq))},A.\u0275cmp=o.Xpm({type:A,selectors:[["fa-stack"]],inputs:{size:"size"},features:[o.TTD],ngContentSelectors:f4,decls:1,vars:0,template:function($,t1){1&$&&(o.F$t(),o.Hsn(0))},encapsulation:2}),A})(),Ln=(()=>{class A{constructor($,t1,L1,W1,pe){this.sanitizer=$,this.config=t1,this.iconLibrary=L1,this.stackItem=W1,this.classes=[],null!=pe&&null==W1&&console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into fa-stack. Example: <fa-icon stackItemSize="2x"></fa-icon>.')}ngOnChanges($){if(null==this.icon&&null==this.config.fallbackIcon)return(()=>{throw new Error("Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.")})();let t1=null;if(t1=null==this.icon?this.config.fallbackIcon:this.icon,$){const L1=this.findIconDefinition(t1);if(null!=L1){const W1=this.buildParams();this.renderIcon(L1,W1)}}}render(){this.ngOnChanges({})}findIconDefinition($){const t1=((A,P)=>(A=>void 0!==A.prefix&&void 0!==A.iconName)(A)?A:Array.isArray(A)&&2===A.length?{prefix:A[0],iconName:A[1]}:"string"==typeof A?{prefix:P,iconName:A}:void 0)($,this.config.defaultPrefix);if("icon"in t1)return t1;const L1=this.iconLibrary.getIconDefinition(t1.prefix,t1.iconName);if(null!=L1)return L1;const W1=a1(t1);if(null!=W1){const pe="Global icon library is deprecated. Consult https://github.com/FortAwesome/angular-fontawesome/blob/master/UPGRADING.md for the migration instructions.";if("unset"===this.config.globalLibrary)console.error("FontAwesome: "+pe);else if(!this.config.globalLibrary)throw new Error(pe);return W1}return(A=>{throw new Error(`Could not find icon with iconName=${A.iconName} and prefix=${A.prefix} in the icon library.`)})(t1),null}buildParams(){const $={flip:this.flip,spin:this.spin,pulse:this.pulse,border:this.border,inverse:this.inverse,size:this.size||null,pull:this.pull||null,rotate:this.rotate||null,fixedWidth:"boolean"==typeof this.fixedWidth?this.fixedWidth:this.config.fixedWidth,stackItemSize:null!=this.stackItem?this.stackItem.stackItemSize:null},t1="string"==typeof this.transform?T_transform(this.transform):this.transform;return{title:this.title,transform:t1,classes:[...be($),...this.classes],mask:null!=this.mask?this.findIconDefinition(this.mask):null,styles:null!=this.styles?this.styles:{},symbol:this.symbol,attributes:{role:this.a11yRole}}}renderIcon($,t1){const L1=V1($,t1);this.renderedIconHTML=this.sanitizer.bypassSecurityTrustHtml(L1.html.join("\n"))}}return A.\u0275fac=function($){return new($||A)(o.Y36(ln.H7),o.Y36(Fn),o.Y36(w4),o.Y36(rt,8),o.Y36(z4,8))},A.\u0275cmp=o.Xpm({type:A,selectors:[["fa-icon"]],hostAttrs:[1,"ng-fa-icon"],hostVars:2,hostBindings:function($,t1){2&$&&(o.Ikx("innerHTML",t1.renderedIconHTML,o.oJD),o.uIk("title",t1.title))},inputs:{classes:"classes",icon:"icon",title:"title",spin:"spin",pulse:"pulse",mask:"mask",styles:"styles",flip:"flip",size:"size",pull:"pull",border:"border",inverse:"inverse",symbol
1:"symbol",rotate:"rotate",fixedWidth:"fixedWidth",transform:"transform",a11yRole:"a11yRole"},features:[o.TTD],decls:0,vars:0,template:function($,t1){},encapsulation:2}),A})(),P4=(()=>{class A{}return A.\u0275fac=function($){return new($||A)},A.\u0275mod=o.oAB({type:A}),A.\u0275inj=o.cJS({}),A})()},7789:(xe,S1,m)=>{"use strict";m.d(S1,{Z:()=>N});var o=m(9808),a=m(520),I=m(9854),r1=m(877),X=m(6435);function U(F){return new r1.z(F,[{prefix:"./assets/translate/general/",suffix:".json"},{prefix:"./assets/translate/our-analysis/",suffix:".json"}])}let N=(()=>{class F{}return F.\u0275fac=function(W){return new(W||F)},F.\u0275mod=X.oAB({type:F}),F.\u0275inj=X.cJS({imports:[[o.ez,a.JF,I.aw.forChild({loader:{provide:I.Zw,useFactory:U,deps:[a.eN]}})],a.JF,I.aw]}),F})()},5817:(xe,S1,m)=>{"use strict";m.d(S1,{r:()=>I});var o=m(8929),a=m(6435);let I=(()=>{class r1{constructor(){this._analysisFocus="",this._analysisFocusState=new o.xQ}get analysisFocusState(){return this._analysisFocusState}set analysisFocusState(U){this._analysisFocusState=U}}return r1.\u0275fac=function(U){return new(U||r1)},r1.\u0275prov=a.Yz7({token:r1,factory:r1.\u0275fac,providedIn:"root"}),r1})()},8924:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>r1});var o=m(5861),a=m(8929),I=m(6435);let r1=(()=>{class X{constructor(){this._src="",this._srcState=new a.xQ}get srcState(){return this._srcState}set srcState(N){this._srcState=N}changeSrc(N){var F=this;return(0,o.Z)(function*(){try{return yield F.srcState.next(N),!0}catch(j){console.error("error while running srcState.next(), error details: "+j)}return!1})()}}return X.\u0275fac=function(N){return new(N||X)},X.\u0275prov=I.Yz7({token:X,factory:X.\u0275fac,providedIn:"root"}),X})()},7781:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>X});var o=m(5861),a=m(520),I=m(6895),r1=m(6435);let X=(()=>{class U{constructor(F){this.http=F}getPaginationData(F,j=null){let W=new a.LE;return W=W.append("page",F),j&&j.service&&(W=W.append("service",j.service)),j&&j.firstload&&(W=W.append("firstload",j.firstload)),j&&j.firstId&&(W=W.append("firstId",j.firstId)),this.http.get(I.j.resourcesURL,{params:W})}getItemById(F){return this.http.get(I.j.resourcesURL,{params:(new a.LE).set("id",F)})}getItem(F){return this.http.get(I.j.resourcesURL,{params:(new a.LE).set("url",F)})}getPager(F,j=1,W=10){let l1,s1,J=Math.ceil(F/W);J<=10?(l1=1,s1=J):j<=6?(l1=1,s1=10):j+4>=J?(l1=J-9,s1=J):(l1=j-5,s1=j+4);let n1=(j-1)*W,y1=Math.min(n1+W-1,F-1),M1=[];for(let u1=l1;u1<s1+1;u1++)M1.push(u1);return{totalItems:F,currentPage:j,pageSize:W,totalPages:J,startPage:l1,endPage:s1,startIndex:n1,endIndex:y1,pages:M1}}truncateChar(F){return!F||F.length<=110?F:F.replace(/<(?:.|\n)*?>/gm,"").substring(0,110)+"..."}getWistiaEmbedId(F){return(0,o.Z)(function*(){var j;const W=yield null===(j=F.content.match(/<script [^>]*src="[^"]*"[^>]*>/gm))||void 0===j?void 0:j.map(J=>J.replace(/.*src="([^"]*)".*/,"$1"));return W&&W.forEach(J=>{if(J.includes("fast.wistia.com/embed/medias/"))return J.split(/\?|\/|\&/).pop().replace(".jsonp","")}),null})()}massageContent(F,j=!1){return F&&0!=F.length&&F.map(J=>{var l1;if((null==J?void 0:J.description)&&(J.description=this.truncateChar(J.description)),"blogs"==J.contentType){J.url="/insights/"+J.url;const s1="https://canalys-staging-public.s3.eu-west-1.amazonaws.com/static/images/blog/",n1="defaultimage.jpeg",y1=null===(l1=J.content.match(/<img [^>]*src="[^"]*"[^>]*>/gm))||void 0===l1?void 0:l1.map(M1=>M1.replace(/.*src="([^"]*)".*/,"$1"));J.image=y1&&y1[0]?y1[0]:s1+n1}return"PR"==J.contentType&&(J.url="/newsroom/"+J.url),J}),F}}return U.\u0275fac=function(F){return new(F||U)(r1.LFG(a.eN))},U.\u0275prov=r1.Yz7({token:U,factory:U.\u0275fac,providedIn:"root"}),U})()},6895:(xe,S1,m)=>{"use strict";m.d(S1,{j:()=>a});var o=m(2340);class a{}a.originURL=o.N.API.url_origin,a.homepageURL=a.originURL+"/api/home/",a.subscriptionURL=a.originURL+"/api/subscription/",a.unsubscribeURL=a.originURL+"/api/unsubscription/",a.contactURL=a.originURL+"/api/contact/",a.contactcnURL=a.originURL+"/api/contactcn/",a.presentationURL=a.originURL+"/api/presentation/",a.interestURL=a.originURL+"/api/interest/",a.sliderContentURL=a.originURL+"/api/common/slidercontent/content.php",a.bannerURL=a.originURL+"/api/common/banner/index.php",a.newsroomURL=a.originURL+"/api/newsroom/",a.newsroomServicesURL=a.originURL+"/api/newsroom/services.php",a.newsroomRSSFeedURL=a.originURL+"/api/common/rss/?q=newsroom",a.resourcesURL=a.originURL+"/api/resources/",a.resourcesRssFeedURL=a.originURL+"/api/resources/rss/",a.blogRssFeedURL=a.originURL+"/api/common/rss/?q=insights",a.blogURL=a.originURL+"/api/insights/",a.insightsRssFeedURL=a.originURL+"/api/insights/rss/",a.blogCategoryURL=a.originURL+"/api/insights/categories.php",a.meetUsURL=a.originURL+"/api/about/meetus/",a.careersURL=a.originURL+"/api/about/careers/",a.searchURL=a.originURL+"/api/search/",a.eventsURL=a.originURL+"/api/events/",a.cesURL=a.originURL+"/api/ces2024/",a.mwcURL=a.originURL+"/api/mwc2024/",a.computexURL=a.originURL+"/api/computex2024/",a.aIInsightsURL=a.originURL+"/api/ai-insights/",a.partnerAdvisoryUrl=a.originURL+"/api/partner-a
1dvisory/",a.aIRSSFeedURL=a.originURL+"/api/common/rss/?q=ai-insights"},2205:(xe,S1,m)=>{"use strict";m.d(S1,{d:()=>a});var o=m(2340);class a{}a.siteKey="6LeCVIUbAAAAAO85kpus5tyK4hrKLjhxh4HbLDgf",a.blacklistRegex="/^[A-Za-z0-9._%+-@]+jonjamail.com$|^[A-Za-z0-9._%+-@]+sibicomail.com$|^[A-Za-z0-9._%+-@]+letiasmail.com$|^[A-Za-z0-9._%+-@]+hotmail.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+email.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+gmail.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+googlemail.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+aol.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+outlook.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+zoho.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+live.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+mail.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+yahoo.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+proton.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+icloud.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+gmx.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+thunderbird.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+yandex.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+hotmail.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+gartner.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+idc.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+me.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+qq.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+163.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+16.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+prismark.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+ssb100kv3-form-5177257.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+isaiahresearch.com$|^[A-Za-z0-9._%+-@]+forrester.com$|^[A-Za-z0-9._%+-@]+frost.com$|^[A-Za-z0-9._%+-@]+abiresearch.com$|^[A-Za-z0-9._%+-@]+npd.com$|^[A-Za-z0-9._%+-@]+ihsmarkit.com$|^[A-Za-z0-9._%+-@]+euromonitor.com$|^[A-Za-z0-9._%+-@]+mintel.com$|^[A-Za-z0-9._%+-@]+nielsen.com$|^[A-Za-z0-9._%+-@]+451research.com$|^[A-Za-z0-9._%+-@]+spglobal.com$|^[A-Za-z0-9._%+-@]+strategyanalytics.com$|^[A-Za-z0-9._%+-@]+counterpointresearch.com$|^[A-Za-z0-9._%+-@]+woodmac.com$|^[A-Za-z0-9._%+-@]+grandviewresearch.com$|^[A-Za-z0-9._%+-@]+jupiterresearch.com$|^[A-Za-z0-9._%+-@]+marketsandmarkets.com$|^[A-Za-z0-9._%+-@]+cbinsights.com$|^[A-Za-z0-9._%+-@]+crn.com$|^[A-Za-z0-9._%+-@]+kantar.com$|^[A-Za-z0-9._%+-@]+gfk.com$|^[A-Za-z0-9._%+-@]+ipsos.com$|^[A-Za-z0-9._%+-@]+test.com$|^[A-Za-z0-9._%+-@]+juniperresearch.com$|^[A-Za-z0-9._%+-@]+parksassociates.com$|^[A-Za-z0-9._%+-@]+abi-research.com$|^[A-Za-z0-9._%+-@]+iot-analytics.com$|^[A-Za-z0-9._%+-@]+techinsights.com$|^[A-Za-z0-9._%+-@]+ccsinsight.com$|^[A-Za-z0-9._%+-@]+techaisle.com$|^[A-Za-z0-9._%+-@]+tritonsb.com$|^[A-Za-z0-9._%+-@]+beechamresearch.com$|^[A-Za-z0-9._%+-@]+analysysmason.com$|^[A-Za-z0-9._%+-@]+hfsresearch.com$|^[A-Za-z0-9._%+-@]+rethinkresearch.com$|^[A-Za-z0-9._%+-@]+statista.com$|^[A-Za-z0-9._%+-@]+foundryco.com$/g",a.blacklistRegexWithoutDot="/^[A-Za-z0-9._%+-@]+jonjamail$|^[A-Za-z0-9._%+-@]+sibicomail$|^[A-Za-z0-9._%+-@]+letiasmail$|^[A-Za-z0-9._%+-@]+hotmail$|^[A-Za-z0-9._%+-@]+email$|^[A-Za-z0-9._%+-@]+gmail$|^[A-Za-z0-9._%+-@]+googlemail$|^[A-Za-z0-9._%+-@]+aol$|^[A-Za-z0-9._%+-@]+outlook$|^[A-Za-z0-9._%+-@]+zoho$|^[A-Za-z0-9._%+-@]+live$|^[A-Za-z0-9._%+-@]+mail$|^[A-Za-z0-9._%+-@]+yahoo$|^[A-Za-z0-9._%+-@]+proton$|^[A-Za-z0-9._%+-@]+icloud$|^[A-Za-z0-9._%+-@]+gmx$|^[A-Za-z0-9._%+-@]+thunderbird$|^[A-Za-z0-9._%+-@]+yandex$|^[A-Za-z0-9._%+-@]+hotmail$|^[A-Za-z0-9._%+-@]+gartner$|^[A-Za-z0-9._%+-@]+idc$|^[A-Za-z0-9._%+-@]+me$|^[A-Za-z0-9._%+-@]+qq$|^[A-Za-z0-9._%+-@]+prismark$|^[A-Za-z0-9._%+-@]+ssb100kv3-form-5177257.[0-9a-zA-Z]*$|^[A-Za-z0-9._%+-@]+isaiahresearch$|^[A-Za-z0-9._%+-@]+forrester$|^[A-Za-z0-9._%+-@]+frost$|^[A-Za-z0-9._%+-@]+abiresearch$|^[A-Za-z0-9._%+-@]+npd$|^[A-Za-z0-9._%+-@]+ihsmarkit$|^[A-Za-z0-9._%+-@]+euromonitor$|^[A-Za-z0-9._%+-@]+mintel$|^[A-Za-z0-9._%+-@]+nielsen$|^[A-Za-z0-9._%+-@]+451research$|^[A-Za-z0-9._%+-@]+spglobal$|^[A-Za-z0-9._%+-@]+strategyanalytics$|^[A-Za-z0-9._%+-@]+counterpointresearch$|^[A-Za-z0-9._%+-@]+woodmac$|^[A-Za-z0-9._%+-@]+grandviewresearch$|^[A-Za-z0-9._%+-@]+jupiterresearch$|^[A-Za-z0-9._%+-@]+marketsandmarkets$|^[A-Za-z0-9._%+-@]+cbinsights$|^[A-Za-z0-9._%+-@]+crn$|^[A-Za-z0-9._%+-@]+kantar$|^[A-Za-z0-9._%+-@]+gfk$|^[A-Za-z0-9._%+-@]+ipsos$|^[A-Za-z0-9._%+-@]+test$|^[A-Za-z0-9._%+-@]+juniperresearch$|^[A-Za-z0-9._%+-@]+parksassociates$|^[A-Za-z0-9._%+-@]+abi-research$|^[A-Za-z0-9._%+-@]+iot-analytics$|^[A-Za-z0-9._%+-@]+techinsights$|^[A-Za-z0-9._%+-@]+ccsinsight$|^[A-Za-z0-9._%+-@]+techaisle$|^[A-Za-z0-9._%+-@]+tritonsb$|^[A-Za-z0-9._%+-@]+beechamresearch$|^[A-Za-z0-9._%+-@]+analysysmason$|^[A-Za-z0-9._%+-@]+hfsresearch$|^[A-Za-z0-9._%+-@]+rethinkresearch$|^[A-Za-z0-9._%+-@]+statista$|^[A-Za-z0-9._%+-@]+foundryco$/g",a.wechatUrl="https://api.qrserver.com/v1/create-qr-code/?size=254x254&data=",a.origin=window.location.origin,a.websiteUrl=origin.includes("localhost")?o.N.origin:origin,a.languages=[{lang:"en",label:"English"},{lang:"zh-Hans",label:"\u4e2d\u6587"},{lang:"ja",label:"\u65e5\u672c\u8a9e"},{lang:"ko",label:"\ud55c\uad6d\uc5b4"},{lang:"th",label:"\u0e44\u0e17\u0e22"},{lang:"id",label:"Bahasa Indonesia"},{lang:"es",label:"Espa\xf1ol"},{lang:"pt",label:"Portugu\xeas"},{lang:"de",label:"Deutsch"},{lang:"fr",label:"Fran\xe7ais"}]},8387:(xe,S1,m)=>{"use strict";m.d(S1,{p:()=>U});var o=m(6435),a=m(8924),I=m(9808);
1function r1(N,F){if(1&N){const j=o.EpF();o.ynx(0),o.TgZ(1,"div",2)(2,"div",3)(3,"button",4),o.NdJ("click",function(){o.CHM(j);const J=o.oxw();return J.setVideo(J.src)}),o._UZ(4,"i",5),o.qZA()(),o._UZ(5,"img",6),o.qZA(),o.BQk()}if(2&N){const j=o.oxw();o.xp6(5),o.Q6J("src",j.thumbnail,o.LSH)}}function X(N,F){if(1&N&&(o.TgZ(0,"video",7),o._UZ(1,"source",8),o.qZA()),2&N){const j=o.oxw();o.Q6J("controls",j.showControls)("loop",j.loop),o.uIk("autoplay",j.autoplay),o.xp6(1),o.s9C("src",j.src,o.LSH)}}let U=(()=>{class N{constructor(j){this.videoPopupService=j,this.isPopup=!1,this.showControls=!0,this.autoplay=!1,this.loop=!1,this.visible=!1}setVideo(j){this.videoPopupService.changeSrc(j)}}return N.\u0275fac=function(j){return new(j||N)(o.Y36(a.z))},N.\u0275cmp=o.Xpm({type:N,selectors:[["app-video-loader"]],inputs:{isPopup:"isPopup",src:"src",thumbnail:"thumbnail",showControls:"showControls",autoplay:"autoplay",loop:"loop"},decls:3,vars:2,consts:[[4,"ngIf","ngIfElse"],["showEmbed",""],[1,"thumbnail-wrapper"],[1,"button-overlay"],[1,"btn","btn-default",3,"click"],[1,"bi","bi-play-fill"],["alt","Video thumbnail","height","auto","width","100%",3,"src"],["height","100%",1,"h-100",3,"controls","loop"],["type","video/mp4",3,"src"]],template:function(j,W){if(1&j&&(o.YNc(0,r1,6,1,"ng-container",0),o.YNc(1,X,2,4,"ng-template",null,1,o.W1O)),2&j){const J=o.MAs(2);o.Q6J("ngIf",W.isPopup)("ngIfElse",J)}},directives:[I.O5],styles:[".thumbnail-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}.thumbnail-wrapper[_ngcontent-%COMP%] .button-overlay[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.thumbnail-wrapper[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{cursor:pointer;transition:.5s;background:#006690;opacity:.75;width:120px;padding:0}.thumbnail-wrapper[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:3.1rem;color:#fff}.thumbnail-wrapper[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:hover{opacity:1}.thumbnail-wrapper[_ngcontent-%COMP%] .img[_ngcontent-%COMP%]{width:100%;height:100%}"]}),N})()},8246:(xe,S1,m)=>{"use strict";m.d(S1,{y:()=>I});var o=m(6435),a=m(2313);let I=(()=>{class r1{constructor(U){this.sanitizer=U}transform(U,N){switch(N){case"html":return this.sanitizer.bypassSecurityTrustHtml(U);case"style":return this.sanitizer.bypassSecurityTrustStyle(U);case"script":return this.sanitizer.bypassSecurityTrustScript(U);case"url":return this.sanitizer.bypassSecurityTrustUrl(U);case"resourceUrl":return this.sanitizer.bypassSecurityTrustResourceUrl(U);default:throw new Error(`Invalid safe type specified: ${N}`)}}}return r1.\u0275fac=function(U){return new(U||r1)(o.Y36(a.H7,16))},r1.\u0275pipe=o.Yjl({name:"safe",type:r1,pure:!0}),r1})()},2493:(xe,S1,m)=>{"use strict";m.d(S1,{v:()=>a});var o=m(6435);let a=(()=>{class I{constructor(){}transform(X,U){const N=Number(U);return X.split("|")[N]}}return I.\u0275fac=function(X){return new(X||I)},I.\u0275pipe=o.Yjl({name:"translateCut",type:I,pure:!0}),I})()},6825:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>I});var o=m(6435),a=m(1717);let I=(()=>{class r1{constructor(U){this.redirectService=U}canActivate(U,N){const F=N.url;if(console.log("Guard triggered for:",N.url),!this.redirectService.isReady())return console.warn("Redirect mappings not yet loaded."),!0;const j=this.redirectService.getRedirectUrl(F);return!j||(window.location.href=j,!1)}}return r1.\u0275fac=function(U){return new(U||r1)(o.LFG(a.U))},r1.\u0275prov=o.Yz7({token:r1,factory:r1.\u0275fac,providedIn:"root"}),r1})()},2294:(xe,S1,m)=>{"use strict";m.d(S1,{m:()=>U});var o=m(6741),a=m(8929),I=m(591),r1=m(2198),X=m(6435);let U=(()=>{class N{constructor(j){this.router=j,this.changedLanguage=new a.xQ,this.currentLang="en",this.isFormDirty=new I.X(!1)}analyticTracker(){this.router.events.pipe((0,r1.h)(j=>j instanceof o.m2)).subscribe(j=>{gtag("event","page_view",{page_path:j.urlAfterRedirects}),ga("set","page",j.urlAfterRedirects),ga("send","pageview")})}formattingString(j,W,J){if(""!=j&&j.includes(W)){const l1=new RegExp(W,"g");j=j.replace(l1,J)}return j}}return N.\u0275fac=function(j){return new(j||N)(X.LFG(o.F0))},N.\u0275prov=X.Yz7({token:N,factory:N.\u0275fac,providedIn:"root"}),N})()},1717:(xe,S1,m)=>{"use strict";m.d(S1,{U:()=>I});var o=m(6435),a=m(520);let I=(()=>{class r1{constructor(U){this.http=U,this.mappings={},this.ready=!1}loadMappings(){return this.http.get("/assets/lambda-mappings.json").toProm
1ise().then(U=>{this.mappings=U,this.ready=!0})}isReady(){return this.ready}getRedirectUrl(U){const N=decodeURI(U.toLowerCase().replace(/\/$/,""));return this.mappings[N]||null}}return r1.\u0275fac=function(U){return new(U||r1)(o.LFG(a.eN))},r1.\u0275prov=o.Yz7({token:r1,factory:r1.\u0275fac,providedIn:"root"}),r1})()},2186:(xe,S1,m)=>{"use strict";m.d(S1,{v:()=>X});var o=m(2205),a=m(6435),I=m(2313),r1=m(6741);let X=(()=>{class U{constructor(F,j,W){this.title=F,this.meta=j,this.router=W}setBrowserMeta(F,j,W){this.metaImage=W,this.browserUrl=o.d.websiteUrl+this.router.url,this.title.setTitle(F),this.meta.addTags([{name:"title",property:"title",content:F},{name:"description",property:"description",content:j},{name:"image",property:"image",content:W},{name:"url",property:"url",content:this.browserUrl},{property:"twitter:card",content:"summary"},{property:"twitter:site",content:"@Canalys"},{property:"twitter:title",content:F},{property:"twitter:description",content:j},{property:"twitter:image",content:W},{property:"twitter:url",content:"@Canalys"},{property:"og:title",content:F},{property:"og:description",content:j},{property:"og:image",content:W},{property:"og:url",content:this.browserUrl}])}updateBrowserMeta(F,j,W){this.metaImage=W,this.browserUrl=o.d.websiteUrl+this.router.url,this.title.setTitle(F),this.meta.updateTag({name:"title",property:"title",content:F}),this.meta.updateTag({name:"description",property:"description",content:j}),this.meta.updateTag({name:"image",property:"image",content:W}),this.meta.updateTag({name:"url",property:"url",content:this.browserUrl}),this.meta.updateTag({property:"twitter:card",content:"summary"}),this.meta.updateTag({property:"twitter:site",content:"@Canalys"}),this.meta.updateTag({property:"twitter:title",content:F}),this.meta.updateTag({property:"twitter:description",content:j}),this.meta.updateTag({property:"twitter:image",content:W}),this.meta.updateTag({property:"twitter:url",content:"@Canalys"}),this.meta.updateTag({property:"og:title",content:F}),this.meta.updateTag({property:"og:description",content:j}),this.meta.updateTag({property:"og:image",content:W}),this.meta.updateTag({property:"og:url",content:this.browserUrl})}}return U.\u0275fac=function(F){return new(F||U)(a.LFG(I.Dx),a.LFG(I.h_),a.LFG(r1.F0))},U.\u0275prov=a.Yz7({token:U,factory:U.\u0275fac,providedIn:"root"}),U})()},1303:(xe,S1,m)=>{"use strict";m.d(S1,{V:()=>a});var o=m(6435);let a=(()=>{class I{constructor(){}savetoLocalStorage(X,U){localStorage.setItem(X,JSON.stringify(U))}getFromLocalStorage(X){return JSON.parse(localStorage.getItem(X)||"{}")}savetoSessionStorage(X,U){sessionStorage.setItem(X,JSON.stringify(U))}getFromSessionStorage(X){return JSON.parse(sessionStorage.getItem(X)||"{}")}getCookie(X){let j,U=document.cookie.split(";"),N=U.length,F=`${X}=`;for(let W=0;W<N;W+=1)if(j=U[W].replace(/^\s+/g,""),0==j.indexOf(F))return j.substring(F.length,j.length);return""}deleteCookie(X){this.setCookie(X,"",-1)}setCookie(X,U,N,F=""){let j=new Date;j.setTime(j.getTime()+24*N*60*60*1e3);let W=`expires=${j.toUTCString()}`;document.cookie=`${X}=${U}; ${W}${F?`; path=${F}`:""}`}}return I.\u0275fac=function(X){return new(X||I)},I.\u0275prov=o.Yz7({token:I,factory:I.\u0275fac,providedIn:"root"}),I})()},1267:(xe,S1,m)=>{"use strict";m.d(S1,{m:()=>Sv});var o=m(9808),a=m(3075),I=m(1405),r1=m(7789),X=m(6741),U=m(59),N=m(1679),F=m(6435),vm=m(3561);const _v=[{prefix:"fab",iconName:"facebook-f",icon:[320,512,[],"f39e","M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"]},{prefix:"fab",iconName:"twitter",icon:[512,512,[],"f099","M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"]},{prefix:"fab",iconName:"linkedin-in",icon:[448,512,[],"f0e1","M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"]},{prefix:"fab",iconName:"pinterest-p",icon:[384,512,[],"f231","M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"]},{prefix:"fab",iconName:"reddit-alien",icon:[512,512,[],"f281","M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22
117.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"]},{prefix:"fab",iconName:"tumblr",icon:[320,512,[],"f173","M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"]},{prefix:"fab",iconName:"whatsapp",icon:[448,512,[],"f232","M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"]},{prefix:"fab",iconName:"viber",icon:[512,512,[],"f409","M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"]},{prefix:"fab",iconName:"vk",icon:[576,512,[],"f189","M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"]},{prefix:"fab",iconName:"facebook-messenger",icon:[512,512,[],"f39f","M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z"]},{prefix:"fab",iconName:"telegram-plane",icon:[448,512,[],"f3fe","M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"]},{prefix:"fab",iconName:"mix",icon:[448,512,[],"f3cb","M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"]},{prefix:"fab",iconName:"xing",icon:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"]},{prefix:"fas",iconName:"sms",icon:[512,512,[],"f7cd","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"]},{prefix:"fas",iconName:"envelope",icon:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.
16-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]},{prefix:"fas",iconName:"check",icon:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]},{prefix:"fas",iconName:"print",icon:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},{prefix:"fas",iconName:"exclamation",icon:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"]},{prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},{prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},{prefix:"fas",iconName:"minus",icon:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},{prefix:"fab",iconName:"line",icon:[448,512,[],"f3c0","M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4
1-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"]}];let xv=(()=>{class Qn{constructor(bi){bi.addIcons(..._v)}}return Qn.\u0275fac=function(bi){return new(bi||Qn)(F.LFG(vm.by))},Qn.\u0275mod=F.oAB({type:Qn}),Qn.\u0275inj=F.cJS({imports:[[vm.uH]]}),Qn})(),Sv=(()=>{class Qn{}return Qn.\u0275fac=function(bi){return new(bi||Qn)},Qn.\u0275mod=F.oAB({type:Qn}),Qn.\u0275inj=F.cJS({imports:[[o.ez,r1.Z,a.UX,I.e7,X.Bz,U.kz,a.u5,N.K.withConfig({debug:!0}),xv]]}),Qn})()},2340:(xe,S1,m)=>{"use strict";m.d(S1,{N:()=>o});const o={production:!0,API:{url_origin:"https://api.canalys.com"},origin:"https://www.canalys.com"}},5491:(xe,S1,m)=>{"use strict";var o=m(2313),a=m(6435),I=m(6741),r1=m(3075),X=m(9854),U=m(2493);const N=function(){return["/"]};let F=(()=>{class S{constructor(_){this.router=_}ngOnInit(){}submitSearch(){this.router.navigate(["search"],{queryParams:{search:this.searchTerm}})}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(I.F0))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-not-found"]],decls:36,vars:30,consts:[["id","not-found-action"],[1,"container"],[1,"row"],[1,"col-12"],[1,"decoration-text"],[1,"content"],["data-aos","fade-up",1,"description"],["routerLink","/contact"],["data-aos","fade-up",1,"search-wrapper","my-4"],["type","text","placeholder","Search",1,"form-control",3,"ngModel","ngModelChange"],[1,"button","button-loading",3,"click"],[1,"breadcrumb-wrapper"],[1,"back-link",3,"routerLink"],[1,"icon-left"]],template:function(_,Y){1&_&&(a.TgZ(0,"section",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"p"),a._uU(5,"\xa0"),a.qZA(),a.TgZ(6,"div",4)(7,"h1")(8,"span"),a._uU(9,"404"),a.qZA()(),a.TgZ(10,"p"),a._uU(11),a.ALo(12,"translate"),a.qZA()(),a.TgZ(13,"div",5)(14,"div",6),a._uU(15),a.ALo(16,"translateCut"),a.ALo(17,"translate"),a.TgZ(18,"a",7),a._uU(19),a.ALo(20,"translateCut"),a.ALo(21,"translate"),a.qZA(),a._uU(22),a.ALo(23,"translateCut"),a.ALo(24,"translate"),a.qZA(),a.TgZ(25,"div",8)(26,"input",9),a.NdJ("ngModelChange",function(d){return Y.searchTerm=d}),a.qZA(),a.TgZ(27,"button",10),a.NdJ("click",function(){return Y.submitSearch()}),a._uU(28),a.ALo(29,"translate"),a.qZA()(),a.TgZ(30,"div",11)(31,"a",12),a._UZ(32,"div",13),a.TgZ(33,"div"),a._uU(34),a.ALo(35,"translate"),a.qZA()()()()()()()()),2&_&&(a.xp6(11),a.Oqu(a.lcZ(12,8,"notfound.pagenotfound")),a.xp6(4),a.hij(" ",a.xi3(16,10,a.lcZ(17,13,"notfound.info"),0),""),a.xp6(4),a.hij(" ",a.xi3(20,15,a.lcZ(21,18,"notfound.info"),1),""),a.xp6(3),a.hij(" ",a.xi3(23,20,a.lcZ(24,23,"notfound.info"),2)," "),a.xp6(4),a.Q6J("ngModel",Y.searchTerm),a.xp6(2),a.hij(" ",a.lcZ(29,25,"header.searchsubmit")," "),a.xp6(3),a.Q6J("routerLink",a.DdM(29,N)),a.xp6(3),a.Oqu(a.lcZ(35,27,"notfound.home")))},directives:[I.yS,r1.Fj,r1.JJ,r1.On],pipes:[X.X$,U.v],styles:['@charset "UTF-8";#not-found[_ngcontent-%COMP%]{background:url(/assets/images/404.jpg) no-repeat;background-size:contain;background-attachment:scroll;background-position:top center;height:500px;position:relative;top:0;display:flex;align-items:center}#not-found[_ngcontent-%COMP%]:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%}#not-found-action[_ngcontent-%COMP%]{text-align:center;margin:1rem 0;padding:1rem 0}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%]{color:#006690}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{overflow:hidden;line-height:1;letter-spacing:-3px;font-size:7rem;font-weight:800;margin:0;padding:0}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block;position:relative}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:before, #not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:after{content:"";position:absolute;top:50%;height:1px;width:275%;display:block;background-color:#e1e1e1;background-color:#0000001a;box-shadow:0 1px #fffc}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:before{right:100%;margin-right:.5em}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:after{left:100%;margin-left:.5em}#not-found-action[_ngcontent-%COMP%] .decoration-text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{padding:0;font-size:1.6rem;font-weight:800;text-transform:uppercase;margin-top:-5px}#not-found-action[_ngcontent-%COMP%] .not-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center}#not-found-action[_ngcontent-%COMP%] .not-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}#not-found-action[_ngcontent-%COMP%] .not-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none}.breadcrumb-wrapper[_ngcontent-%COMP%]{margin-left:-25px}.content[_ngcontent-%COMP%]{padding:0 45px 45px;position:relative;border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1)}@media only screen and (max-width: 575px){.content[_ngcontent-%COMP%]{padding:15px}}.search-wrapper[_ngcontent-%COMP%]{margin:0 15px 0 auto;border:1px solid #e5e5e5;font-size:1.1rem;z-index:1;background:#fff;border-radius:5px;width:100%;display:flex}@media only screen and (max-width: 575px){.search-wrapper[_ngcontent-%COMP%]{display:block}}@media only screen and (max-width: 575px){.search-wrapper[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:0;width:100%}}@media only screen and (min-width: 576px){.search-wrapper[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:5px;margin:5px;width:100px}}.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill, .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill:hover, .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill:focus, .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill:active{-webkit-background-clip:text;background-clip:text}.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{background:#fff url(search_icon.png) no-repeat 15px center;padding:10px 0 10px 45px;margin:0;display:inline-block;z-index:1;outline:none;color:transparent;cursor:pointer;border:none;transition:all .5s;color:#0a2335}@media only screen and (max-width: 575px){.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100% \\ff1b}}@media only screen and (min-width: 576px){.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:calc(100% - 100px)}}.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{outline:none;box-shadow:none}.search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-moz-focus-inner{border:0}@media all and (max-width: 767px){#not-found[_ngcontent-%COMP%]{height:200px}#not-found-action[_ngcontent-%COMP%] .not-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{font-size:.9rem}}'],changeDetection:0}),S})();var j=m(2186),W=m(8246);let J=(()=>{class S{constructor(_){this.seoService=_}ngOnInit(){this.seoService.updateBrowserMeta("Canalys Privacy Policy","Canalys recognizes your right to privacy and is committed to handling the information you provide responsibly. Canalys will take prudent and practical steps to safeguard your personal information and its use.",""),window.location.href="https://www.techtarget.com/privacy-policy/"}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(j.v))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-privacy-policy"]],decls:31,vars:39,consts:[["id","header-section",1,"privacy-header"],[1,"container"],[1,"row","pt-lg-3"],[1,"col-sm-12","py-3"],["data-aos","fade-up",1,"breadcrumbs"],["routerLink","/",1,"breadcrumbs__link"],["id","privacy-policy"],[3,"innerHTML"]],template:function(_,Y){1&_&&(a.TgZ(0,"section",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"a",5),a._uU(6),a.ALo(7,"translate"),a.qZA(),a.TgZ(8,"span"),a._uU(9),a.ALo(10,"translate"),a.qZA()()()()()(),a.TgZ(11,"section",6)(12,"div",1)(13,"h1"),a._uU(14),a.ALo(15,"translate"),a.qZA(),a._UZ(16,"div",7),a.ALo(17,"safe"),a.ALo(18,"translate"),a._UZ(19,"div",7),a.ALo(20,"safe"),a.ALo(21,"translate"),a._UZ(22,"div",7),a.ALo(23,"safe"),a.ALo(24,"translate"),a._UZ(25,"div",7),a.ALo(26,"safe"),a.ALo(27,"translate"),a._UZ(28,"div",7),a.ALo(29,"safe"),a.ALo(30,"translate"),a.qZA()()),2&_&&(a.xp6(6),a.hij(" ",a.lcZ(7,8,"breadcrumbs.home")," "),a.xp6(3),a.Oqu(a.lcZ(10,10,"privacy.title")),a.xp6(5),a.Oqu(a.lcZ(15,12,"privacy.title")),a.xp6(2),a.Q6J("innerHTML",a.xi3(17,14,a.lcZ(18,17,"privacy.desc"),"html"),a.oJD),a.xp6(3),a.Q6J("innerHTML",a.xi3(20,19,a.lcZ(21,22,"privacy.yourinfo"),"html"),a.oJD),a.xp6(3),a.Q6J("innerHTML",a.xi3(23,24,a.lcZ(24,27,"privacy.infowecollect"),"html"),a.oJD),a.xp6(3),a.Q6J("innerHTML",a.xi3(26,29,a.lcZ(27,32,"privacy.cookie"),"html"),a.oJD),a.xp6(3),a.Q6J("innerHTML",a.xi3(29,34,a.lcZ(30,37,"privacy.personalinfo"),"html"),a.oJD))},directives:[I.yS],pipes:[X.X$,W.y],styles:[".privacy-header{font-size:.9rem;padding:0 2rem;margin:0 5rem}#privacy-policy{padding:1rem 2rem 1.5rem;font-size:.95rem;margin:0 5rem}#privacy-policy h1{font-size:2rem;font-weight:400;margin-bottom:1rem}#privacy-policy h2,#privacy-policy h3{font-size:1.4rem;font-weight:400}#privacy-policy p{margin-bottom:1.1rem!important;line-height:1.7rem}#privacy-policy ul,#privacy-policy li{margin:0;padding:0}#privacy-policy ul{margin-bottom:1rem;margin-left:1rem}#privacy-policy li{background:url(content_checked.jpg) no-repeat 0 5px;list-style:none;list-style-image:none;margin-bottom:5px;padding:0 0 0 25px;line-height:1.7rem}#privacy-policy a{text-decoration:none;color:#006690}#privacy-policy a:hover{text-decoration:underline}@media all and (max-width: 767px){.privacy-header{padding:0 .5rem;margin:0}#privacy-policy{padding:0 .5rem 1rem;margin:0}}\n"],encapsulation:2,changeDetection:0}),S})();var l1=m(6895);let s1=(()=>{class S{constructor(_,Y){this.route=_,this.router=Y}ngOnInit(){this.route.params.subscribe(_=>{let Y=_.alias;Y?"newsroom"==Y?window.location.href=l1.j.newsroomRSSFeedURL:"insights"==Y?window.location.href=l1.j.insightsRssFeedURL:"resources"==Y?window.location.href=l1.j.resourcesRssFeedURL:this.router.navigate(["not-found"]):window.location.href=l1.j.newsroomRSSFeedURL})}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(I.gz),a.Y36(I.F0))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-rssfeed"]],decls:4,vars:0,consts:[[1,"container"],[1,"text-center","my-4","h5"]],template:function(_,Y){1&_&&(a.TgZ(0,"div",0)(1,"p",1)(2,"b"),a._uU(3,"Routing to RSS...."),a.qZA()()())},styles:[""]}),S})(),n1=(()=>{class S{constructor(_){this.seoService=_}ngOnInit(){this.seoService.updateBrowserMeta("Canalys Terms and conditions","Canalys has a liberal policy with regard to the re-use of information that it provides to its clients, whether within reports, databases, presentations, e-mails or any other format. A client may circulate Canalys information to colleagues within his or her organization worldwide, including wholly-owned subsidiaries, but not to a third party. For the avoidance of doubt, sharing of information is not permitted with organizations that are associated with the client by a joint venture, investment or common shareholding. If you wish to
1share information with the press or use any information in a public forum then you must receive prior explicit written approval from Canalys.","")}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(j.v))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-terms-of-use"]],decls:19,vars:15,consts:[["id","header-section",1,"terms-header"],[1,"container"],[1,"row","pt-lg-3"],[1,"col-sm-12","py-3"],["data-aos","fade-up",1,"breadcrumbs"],["routerLink","/",1,"breadcrumbs__link"],["id","terms-policy"],[3,"innerHTML"]],template:function(_,Y){1&_&&(a.TgZ(0,"section",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"a",5),a._uU(6),a.ALo(7,"translate"),a.qZA(),a.TgZ(8,"span"),a._uU(9),a.ALo(10,"translate"),a.qZA()()()()()(),a.TgZ(11,"section",6)(12,"div",1)(13,"h1"),a._uU(14),a.ALo(15,"translate"),a.qZA(),a._UZ(16,"div",7),a.ALo(17,"safe"),a.ALo(18,"translate"),a.qZA()()),2&_&&(a.xp6(6),a.hij(" ",a.lcZ(7,4,"breadcrumbs.home")," "),a.xp6(3),a.Oqu(a.lcZ(10,6,"terms.title")),a.xp6(5),a.Oqu(a.lcZ(15,8,"terms.title")),a.xp6(2),a.Q6J("innerHTML",a.xi3(17,10,a.lcZ(18,13,"terms.description"),"html"),a.oJD))},directives:[I.yS],pipes:[X.X$,W.y],styles:[".terms-header{font-size:.9rem;padding:0 2rem;margin:0 5rem}#terms-policy{padding:1rem 2rem 1.5rem;font-size:.95rem;margin:0 5rem}#terms-policy h1{font-size:2rem;font-weight:400;margin-bottom:1rem}#terms-policy p{margin-bottom:1.1rem!important;line-height:1.6rem}@media all and (max-width: 767px){.terms-header{padding:0 .5rem;margin:0}#terms-policy{padding:0 .5rem 1rem;margin:0}}\n"],encapsulation:2,changeDetection:0}),S})(),M1=(()=>{class S{constructor(){}ngOnInit(){}}return S.\u0275fac=function(_){return new(_||S)},S.\u0275cmp=a.Xpm({type:S,selectors:[["ng-component"]],decls:2,vars:0,template:function(_,Y){1&_&&(a.TgZ(0,"h1"),a._uU(1,"Hello world"),a.qZA())},encapsulation:2}),S})(),u1=(()=>{class S{constructor(_){this.router=_}canActivate(_,Y){const p=_.params;let d="";return p.name&&(d=p.name.replace(/[&\/\\+]/g,"_"),this.router.navigate(["/about/meet-us/"+d])),!1}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(I.F0))},S.\u0275prov=a.Yz7({token:S,factory:S.\u0275fac,providedIn:"root"}),S})();var de=m(8745),R1=m(7781);let D1=(()=>{class S{constructor(_,Y){this.router=_,this.resourcesService=Y,this.subs=new de.Y}ngOnDestroy(){this.subs.unsubscribe()}canActivate(_,Y){let d="";return this.subs.sink=this.resourcesService.getItemById(_.queryParams.id).subscribe(h=>{d=null==h?void 0:h.alias,this.router.navigate(["/resources/"+d])}),!1}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(I.F0),a.LFG(R1.z))},S.\u0275prov=a.Yz7({token:S,factory:S.\u0275fac,providedIn:"root"}),S})();var K1=m(6825);const X1=[{path:"",loadChildren:()=>Promise.all([m.e(351),m.e(293)]).then(m.bind(m,5293)).then(S=>S.HomeModule)},{path:"subscribe",loadChildren:()=>Promise.all([m.e(704),m.e(723),m.e(592),m.e(300)]).then(m.bind(m,8300)).then(S=>S.SubscriptionModule)},{path:"unsubscribe",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(344)]).then(m.bind(m,8344)).then(S=>S.UnsubscribeModule)},{path:"contact",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(210)]).then(m.bind(m,210)).then(S=>S.ContactUsModule)},{path:"contactcn",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(183)]).then(m.bind(m,5183)).then(S=>S.ContactCnModule)},{path:"download",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(341)]).then(m.bind(m,3341)).then(S=>S.DownloadPresentationModule)},{path:"leadership-matrix-awards",pathMatch:"full",redirectTo:"/insights"},{path:"analysis",loadChildren:()=>Promise.all([m.e(704),m.e(723),m.e(324),m.e(592),m.e(855)]).then(m.bind(m,3855)).then(S=>S.OurAnalysisModule)},{path:"sustainable-channels",loadChildren:()=>Promise.all([m.e(324),m.e(592),m.e(954)]).then(m.bind(m,4954)).then(S=>S.SustainableChannelsModule)},{path:"channels-ecosystem-landscape-2022",loadChildren:()=>Promise.all([m.e(704),m.e(723),m.e(592),m.e(702)]).then(m.bind(m,6702)).then(S=>S.EcosystemlandscapeModule)},{path:"channels-ecosystem-landscape-2023",pathMatch:"full",redirectTo:"/insights/channels-ecosystem-landscape-2025"},{path:"newsroom/smartphone-market-2023-2024",pathMatch:"full",redirectTo:"newsroom/smartphone-forecast-global-region-2024"},{path:"newsroom",loadChildren:()=>Promise.all([m.e(351),m.e(837),m.e(592),m.e(244)]).then(m.bind(m,6244)).then(S=>S.NewsroomModule)},{path:"insights",loadChildren:()=>Promise.all([m.e(611),m.e(592),m.e(95)]).then(m.bind(m,1095)).then(S=>S.BlogsModule)},{path:"resources",loadChildren:()=>Promise.all([m.e(704),m.e(723),m.e(592),m.e(824)]).then(m.bind(m,824)).then(S=>S.ResourcesModule)},{path:"events",loadChildren:()=>Promise.all([m.e(324),m.e(592),m.e(962)]).then(m.bind(m,3962)).then(S=>S.EventsModule)},{path:"events/blogs",loadChildren:()=>Promise.all([m.e(611),m.e(592),m.e(668)]).then(m.bind(m,9668)).then(S=>S.EventBlogsModule)},{path:"events/:region/interest",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(829)]).then(m.bind(m,3210)).then(S=>S.InterestModule)},{path:"interest/:type",loadChildren:()=>Promise.all([m.e(704),m.e(592),m.e(829)]).then(m.bind(m,3210)).then(S=>S.InterestModule)},{path:"about",loadChildren:()=>Promise.all([m.e(351),m.e(592),m.e(158)]).then(m.bind(m,158)).then(S=>S.AboutModule)},{path:"analysis/custom-solutions",loadChildren:()=>Promise.all([m.e(351),m.e(592),m.e(335)]).then(m.bind(m,335)).then(S=>S.CustomSolutionsModule)}
1,{path:"partner-advisory",loadChildren:()=>m.e(726).then(m.bind(m,3726)).then(S=>S.PartnerAdvisoryModule)},{path:"search",loadChildren:()=>Promise.all([m.e(592),m.e(714)]).then(m.bind(m,4714)).then(S=>S.SearchModule)},{path:"reports",loadChildren:()=>Promise.all([m.e(704),m.e(723),m.e(324),m.e(592),m.e(310)]).then(m.bind(m,5954)).then(S=>S.ReportsModule)},{path:"privacy",component:J,canActivate:[K1.z]},{path:"terms-of-use",component:n1,canActivate:[K1.z]},{path:"rss",component:s1,canActivate:[K1.z]},{path:"rss/:alias",component:s1},{path:"jobs",pathMatch:"full",redirectTo:"/about/careers"},{path:"consulting",pathMatch:"full",redirectTo:"/analysis/custom-solutions"},{path:"alys",pathMatch:"full",redirectTo:"/analysis/alys-partner-assessment"},{path:"freereport/:alias",component:class y1{constructor(){}},canActivate:[D1]},{path:"about/:name/:id",component:M1,canActivate:[u1]},{path:"ces-2024",loadChildren:()=>Promise.all([m.e(704),m.e(351),m.e(837),m.e(592),m.e(543)]).then(m.bind(m,8543)).then(S=>S.CESModule)},{path:"mwc-2024",redirectTo:"/contact"},{path:"mwc-25",pathMatch:"full",redirectTo:"/reroute?origin=mwc-25"},{path:"reroute",loadChildren:()=>Promise.all([m.e(592),m.e(740)]).then(m.bind(m,9740)).then(S=>S.RerouteModule)},{path:"computex-2024",loadChildren:()=>Promise.all([m.e(704),m.e(351),m.e(837),m.e(592),m.e(839)]).then(m.bind(m,6839)).then(S=>S.Computex2024Module)},{path:"**",canActivate:[K1.z],component:F},{path:"not-found",component:F}];let Se=(()=>{class S{}return S.\u0275fac=function(_){return new(_||S)},S.\u0275mod=a.oAB({type:S}),S.\u0275inj=a.cJS({imports:[[I.Bz.forRoot(X1,{preloadingStrategy:I.wm,initialNavigation:"enabled",scrollPositionRestoration:"enabled",anchorScrolling:"enabled"})],I.Bz]}),S})();var Me=m(5778),ae=m(7123),Ee=m.n(ae);const Ae=JSON.parse('{"language":"English","languagetranslate":{"title":"Select language","footer":"* the site will be machine translated"},"general":{"learn-more":"Learn more","and":"and"},"search":{"title":"How can we help you?","type1":"All content","type2":"Resources","type3":"Blogs","type4":"Newsroom","resourcestitle":"Resources","blogstitle":"Blogs","newsroomtitle":"Newsroom","bannertitle":"Can\'t find what you\'re looking for?","bannerbtn":"Contact us now","placeholder":"Search for the latest press releases, insights and resources available","notfound":"There are no items found for your search."},"breadcrumbs":{"home":"Home","insights":"Insights","meetus":"Meet us","careers":"Careers","events":"Events"},"header":{"about":"About","our story":"Our story","meet us":"Meet us","careers":"Careers","our offices":"Our offices","canalys group":"Canalys group","canapii":"Canapii","our analysis":"Our analysis","channel strategy":"Channel Strategy","channels analysis":"Channels Analysis","partner program analysis":"Partner Program Analysis","managed services analysis":"Managed Services Analysis","sustainable channels analysis":"Sustainable Channels Analysis","vendor benchmark":"Vendor Benchmark","leadership matrix awards":"Leadership Matrix Awards","channel ecosystem":"Channel Ecosystem","global it opportunity":"Global IT Opportunity","emerging tech":"Smart Automotive","intelligent vehicle analysis":"Intelligent Vehicle Analysis","digital cockpit":"Digital Cockpit Analysis","electric vehicle":"Electric Vehicle Analysis","enterprise tech":"Enterprise Tech","cloud channnels analysis":"Cloud Channels Analysis","infrastructure analysis":"Infrastructure Analysis","cybersecurity analysis":"Cybersecurity Analysis","mobility":"Consumer Tech","smartphone analysis":"Smartphone Horizon Service","pc analysis":"PC Horizon Service","wearable band analysis":"Wearable Band Analysis","smart speaker analysis":"Smart Speaker Analysis","smart personal audio analysis":"Smart Personal Audio Analysis","connected life horizon":"Connected Life Horizon","custom solutions":"Custom Solutions","partner assessment":"Partner Assessment","partner community":"Partner Community","ai insights":"AI Insights","events":"Events","newsroom":"Newsroom","resources":"Resources","blogs":"Blogs","search":"Search","login":"Log in","contact":"Contact","our-story-description":"Established in 1998, Canalys is world-renowned for its research in technology channels and smartphones. Canalys now spans four continents with five office
1s and employs over 100 people.","channel-strategy-description":"Analysis of the channel is at the heart of our business. We have services to help the world\u2019s largest tech companies manage their partner landscape.","meet-us-description":"The team at Canalys bring with them many years of experience as advisors to the IT and high-technology sectors. Combined with the company\'s culture of responsiveness to the rapidly changing needs of this dynamic industry this ensures that, in both content and delivery, Canalys provides an exceptional service compared to other industry analyst firms.","career-description":"We believe that the following values, skills and behavior are vital to what makes us Canalys and therefore help achieve our strategy. Canalys\u2019 values are partly about who we are, but also about what we want to be as a company. We hire and promote people based on their ability to demonstrate them.","our-offices-description":"Canalys was set up in 1998. We have grown to become world renowned for our research in technology channels and smartphones. We provide vendors with subscription services and projects in Channels, Enterprise and Emerging Tech and Mobility. We also host the best and largest independent channels events in APAC, EMEA and LATAM. We have offices and team members in Europe, Asia, North and South America.","canalys-group-description":"In 2020 Canalys established a new, separate company called Canapii, which is part of the Canalys group. Canapii is an online event management platform that provides organizers with unique tools and solutions to host all types of events.","emerging-tech-description":"Get comprehensive data to track smart vehicles and stay up to date on the key trends affecting the automotive industry.","enterprise-tech-description":"Get best in class analysis, go-to-market strategies and more for cloud, infrastru
1cture and cybersecurity channels.","mobility-description":"Our portfolio offers accurate and timely views of the opportunities, competitive analysis and market trends across the smart ecosystem of devices. ","custom-solutions-description":"Since Canalys\u2019 inception, our team of analysts and consultants around the world have worked with companies in the technology ecosystem to provide custom solutions. Many of our projects are supported using data and feedback from the Candefero channels community. We undertake bespoke work in all our areas of research and have built several specializations within this. ","partner-assessment-description":"Alys offers vendors a high-value method to evaluate channel partners at scale and engage with them digitally. Vendors can assess the channel\u2019s capabilities and nurture partners to grow. After decades of experience working with vendors\u2019 partner teams, Canalys understands the strategic challenges facing channel leaders.\u200b","partner-community-description":"Candefero is an exclusive global online community for the IT channel. It provides its members with high-quality market intelligence and trends analysis \u2013 free of charge. Our goal is to give you the insight to plan the future of your business.","intelligent-vehicle-description":"Get comprehensive data to track smart vehicles and stay up to date on the key trends affecting the automotive industry.","customised data":"Customised Data","channel development":"Channel Development","market entry":"Market Entry","channel management":"Channel Management","partner programs":"Partner Programs","marketing solutions":"Marketing Solutions","competitor strategy":"Competitor Strategy","speaking engagements":"Speaking Engagements","searchsubmit":"Go","categories":"Categories","learnmore":"Learn more","partner advisory":"Partner Advisory"},"footer":{"login":"Canalys Client login","header1":"Locations","header2":"Company","header3":"Our analysis","analysis-dropdown":"Analysis","address1":"275 Grove St. Newton","address2":"MA 02466","address3":"USA","state":"","pin":"","footer-copyright":"Copyright \xa9 2025 TechTarget, Inc. or its subsidiaries. ","footer-rights":" All rights reserved","singapore":"Singapore - SG","india":"Bengaluru - IN","us":"Portland - US","uk":"Reading - UK","china":"Shanghai - CH","ourstory":"Our story","meetus":"Meet\xa0us","careers":"Careers","ouroffices":"Our offices","canalysgroup":"Canalys group","canapii":"Canapii","customsolutions":"Custom Solutions","partnerassessment":"Partner assessment","partnercommunity":"Partner community","events":"Events","channelstrategy":"Channel Strategy","emergingtechnology":"Emerging technology","enterprisetechnology":"Enterprise technology","mobilitytechnology":"Mobility technology","privacypolicy":"Privacy Policy","termsofuse":"Terms of Use","subscribe":"Subscribe","unsubscribe":"Unsubscribe"},"generalform":{"firstName":"First name","firstNameError":"Please enter your first name","lastName":"Last name","lastNameError":"Please enter your last name","email":"Work email","emailError":"Please enter a valid work email","company":"Company","companyError":"Please enter your company","job":"Job title","jobError":"Please enter your job title","country":"Country","state":"State","countryError":"Please select the country","stateError":"Please select the State","serviceError":"Please select your service interest","mailingoptionError":"Please select at least one mailing option","subscriptions":"Subscribe to our mailing list:","subscribe1":"Press release","subscribe2":"Insights and info","form-info1":" By submitting this form, you agree to receive marketing emails and Canalys\u2019 ","form-info2":"Terms of Use","form-info3":" and ","form-info4":"Privacy Policy.","serviceinterest":"Service interest","submiting":"Subscribing","submit":"Subscribe","emailreport":"Email report now","langReport":"Report language","enReport":"English report","cnReport":"Simplified Chinese report","tradicnReport":"Traditional Chinese report","langError":"Please enter your report language","phone":"Phone number","phone
1Error":"Please enter a valid phone number"},"subscription":{"main-title":"Sign up to receive our research team\u2019s latest blogs, articles, and PRs direct to your inbox.","sub-title":"We assure you your information is safe with us. We respect your privacy.","info-1":"You can unsubscribe to any of the email alerts anytime. If you experience any issues with this process, please ","info-2":" for further assistance.</br></br>Enter your <strong>business e-mail address</strong> and select at least one alert option. After submitting your request, you will receive an alert when new blogs and PRs are updated. You can sign up for additional alert options at any time.","contact":"contact us"},"notfound":{"info":"The page you\'re looking for is not available. Try searching for a content below or |contact us| for more information.","contact":"here","home":"Return back to home","pagenotfound":"Page not found"},"contactus":{"title":"Contact us","getintouch":"Get in touch","contact-info1":"We no longer have office telephone numbers, as we felt we can respond in a more timely and efficient way by utilizing our online technologies.","contact-info2":"Please fill out the form below and we will direct your questions or inquiries to the appropriate team, who will get back to you within one business day.","form":{"Any":"Any","China":"China","India":"India","Singapore":"Singapore","UK":"UK","USA":"USA","officelabel":"Office you would like to contact:","name":"Name","nameError":"Please enter your name","email":"Email","emailError":"Please enter a valid work email","company":"Company","companyError":"Please enter your company","job":"Job Title","jobError":"Please enter your job title","phoneNumber":"Phone number","phoneNumberError":"Please enter a valid phone number","comments":"Comments","oncontact":"Connecting","submit":"Submit","report":"Report name","reportError":"Please enter the report that you are interested in","firstName":"First name","firstNameError":"Please enter your first name","lastName":"Last name","lastNameError":"Please enter your last name"}},"presentation":{"title":"Download presentation","form":{"name":"Name","nameError":"Please enter your name","email":"Email","emailError":"Please enter a valid work email","company":"Company","companyError":"Please enter your company","phoneNumber":"Phone Number","phoneNumberError":"Please enter a valid phone number","registractioncode":"Presentation code","registractioncodeError":"Please enter the presentation code","subscribe1":"I am a channel partner or distributor and would like to join <a href=\'https://candefero.com\' target=\'_blank\'>Candefero</a>, the Canalys channels community","subscribe2":"Please put me on your press release list","oncontact":"Connecting","submit":"Send"}},"events":{"title":"Canalys Forums 2025","subtitle":"EMEA / APAC / AMERICAS","headline":"Bringing independent vision to channels community leaders","aboutHeading":"","aboutContent":"<p>Get ready for the most exciting and dynamic Channel events of the year!</p><p>Each Canalys Forum is a gathering of the brightest minds in the IT channel, where we will be discussing the industry\'s latest news, forecasts and strategy. Our aim is to provide you with independent and impartial content from Canalys analysts. Additionally, we give top partners and vendors the opportunity to meet in one single location, to educate each other to build their business future together.</p><p>The event experience is made seamless with the event app which tailors every delegate\'s agenda, including arranging one-to-ones with fellow attendees.</p><p>Meet the global channel leaders and participate in expert-led breakout sessions, engaging Q&A and interactive meeting opportunities, all within a hybrid format that\'s unlike any other. Join us at the Canalys Forums 2025 and be part of the most anticipated IT event of the year!</p>","locations":[{"zone":"EMEA","date":"7-9 OCT 2025","city":"BARCELONA","country":"SPAIN"},{"zone":"AMERICAS","date":"21-23 OCT 2025","city":"CHICAGO","country":"USA"},{"zone":"APAC","date":"2-4 DEC 2025","city":"DA NANG","country":"VIETNAM"}],"register":"Submit Interest","vieweventswebsite":"More Information","learnmore":"Learn More","login":"Login","toBeAnnounced":"To Be Announced","moreinfo":"More Information","wat
1ch-prev-year":"Watch Canalys Forums 2024","highlights":"Canalys Forums 2024 highlights","sponsorbox-title":"Become a Sponsor","sponsorbox-content":"Join the Canalys Forums 2025 as one of our sponsors now.","sponsorstitle":"Our 2025 global sponsors","sponsorsPlatinum":"Platinum","sponsorsGold":"Gold","sponsorsSilver":"Silver","sponsorsBronze":"Bronze","sponsorsEcosystem":"Ecosystem","sponsorsDistributors":"Distributors","faqHeadline":"Frequently asked questions","expertinterview":"Canalys expert interview series","expertinterviewDesc":"Canalys analysts give their views on hot topics for the Canalys Forums 2022 in this series of interviews. ","expertinterviewAction":"Go to expert interview series","seemoreblogs":"See more blogs","savethedate":"Save the Date","faqs":[{"ques":"When will the Canalys Forums 2025 taking place?","ans":"<strong>EMEA:</strong> 7-9 October, 2025<br><strong>Americas: </strong> 21-23 October, 2025<br><strong>APAC:</strong> 2-4 December, 2025"},{"ques":"When will registration open?","ans":"Registration is currently open for Channel Partners, Sponsors, Distributors and Media. <a href=\'https://www.canalys.com/interest/sponsor\'>Register your interest</a> to become a supporter."},{"ques":"I am a distributor and would like to be part of the Canalys Forums. What should I do?","ans":"Please <a href=\'https://www.canalys.com/interest/sponsor\'>register your interest</a> and one of our team members will get in touch with you shortly."},{"ques":"Can I sign up as a sponsor now?","ans":"The answer is yes; we have plenty of sponsorship options. <a href=\'https://www.canalys.com/interest/sponsor\'>Contact us</a> to discuss the packages available. The sooner you get on board, the more influence you can have in planning."},{"ques":"I have additional questions about the event. Who should I contact ?","ans":"Please <a href=\'mailto:[email protected]\'>email</a> us directly and one of our team members will contact you as soon as possible."}],"supportingDiversity":"At Canalys, we believe in equality for all. At our events we are committed to creating an environment that is diverse and inclusive. We want to create a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof) or technology choices. We do not tolerate harassment of conference participants in any form. Sexual language and imagery are not appropriate on any conference platform, including talks, workshops, parties, Twitter and other online media. Participants violating these rules may be penalized or expelled from the conference without a refund at the discretion of the conference organizers."},"unsubscribe":{"breadcrumb":"Back to home","title":"Unsubscribe from our mailing list","desc":"Please let us know why you no longer want to hear from us","submitloading":"Submitting your request...","submit":"Submit","form":{"emailLabel":"Email","email":"Your registered email","emailError":"Please enter a valid work email","optionsLabel":"Options","options":["Unsubscribe from media alerts","Unsubscribe from marketing emails","Unsubscribe from all emails"],"reasonsLabel":"Reasons","reasons":["I don\'t remember subscribing to receive media alerts from Canalys","I signed up to receive specific information only","I receive too many emails from Canalys","The media alerts are not relevant to me","I will no longer be available at this email address","Other (please specify below):"]}},"ouroffice":{"title":"Our offices","introductcion":"Founded in 1998, Canalys has emerged as a global leader renowned for its market intelligence, research expertise in technology channels, and smartphones. We specialize in providing vendors with comprehensive subscription services and projects in the areas of channels, enterprise and emerging technologies, as well as mobility. In addition, we proudly organize and host the most prominent and extensive independent channel events in APAC, EMEA, and North America.","usa-office":"USA","map":"Map","usa-address":"404 Northwest 10th Avenue, suite 200, Portland, OR 97209","singapore-office":"Singapore (HQ)","singapore-address":"133 Cecil Street, Keck Seng Tower, #13-02/02A Singapore 069535","china-office":"China","china-address":"Room 310 Block A, No.98 Yanping Road, Jing An District, Shanghai 200042 \u4e0a\u6d77\u5e02\u9759\u5b89\u533a\u5ef6\u5e73\u8def98\u53f7 A\u5e62310\u5ba4","uk-office":"UK","uk-address":"Canalys, Informa office 225-228, Spaces, Waterside Drive, 1650 Arlington Business Park, Theale, Reading, RG7 4SA","india-office":"India","india-address":"Ground Floor, 58/Unit-003, Feroze Manor, Hospital Road, Shivaji Nagar, Bengaluru, Karnataka, 560001"}
1,"insights":{"title":"Insights","description":"Our voices and views on the tech industry - sharing insight, innovation and impact","action":"Subscribe","showall":"Show all","complete":"That\'s all folks","readtime":"Est. read time :","related":"You may also want to read","latestresource":"Our latest resources","subscribe":{"title":"Subscribe to the experience latest blog","info":"Stay up to date with the latest Canalys insights.","action":"Subscribe"}},"ai-insights":{"title1":"Canalys insights on artificial intelligence","ctadesc1":"The Canalys view on the evolution of Artificial Intelligence and its impact on tech vendors and the channel ecosystem."},"partner-advisory":{"title1":"Partner Advisory Capabilities","desc1":"Converting partner insights into competitive advantage","desc2":"<p>World-leading companies choose Canalys for unparalleled channel partner and ecosystem insights and thought leadership. Our diverse, global team of expert analysts are sought-after speakers for conferences, partner advisory boards, workshops and more. Learn more about the engaging and insightful sessions that Canalys offers for strategic collaboration focused on the partner ecosystem.</p>","subtitle2":"Partner Advisory Boards and workshops","desc3":"<p>A PAB is a group of influential partners that provide insights and feedback to help vendors refine strategies and bolster mutual growth. These boards function as think tanks, offering structured channels to align priorities and foster joint success. Regular in-person and virtual meetings enable vendors to grow relationships with key partners, gather feedback, address challenges, and strengthen the business. When run effectively, PABs improve the business and product, which leads to healthier customers and mutual growth.</p><p>PABs are essential for vendors to align strategies, gather market feedback and facilitate collaboration with top partners to meet ever-changing customer needs and create competitive advantages.</p>","ctatitle1":"Learn more about the power of PABs and how the Canalys PAB framework turns feedback into your greatest asset for growth","ctadesc1":"Learn more about the power of PABs and how the Canalys PAB framework turns feedback into your greatest asset for growth","ctaaction1:":"","listtitle1":"Partner Advisory Boards","list1":["<p><strong>Tailored approach:</strong>We understand the uniqueness of each vendor-partner relationship. Our approach is to create a customized agenda that addresses specific goals, industry challenges and fosters growth.","<p><strong>In-depth analysis and insights:</strong> Our sessions include the presentation of market insights and analysis, giving valued partners a comprehensive understanding of current trends and future opportunities.</p>","<p><strong>Feedback mechanism:</strong> We facilitate open discussions, encouraging partners to share their perspectives. This feedback is vital for vendors to refine strategies, understand partner needs better and drive stronger collaboration and trust.</p>"],"listtitle2":"Workshops","list2":["<p><strong>Interactive and dynamic:</strong> Our workshops are more than just presentations. They involve active participation, with attendees engaging in scenario planning, message testing and strategy development","<p><strong>Expert facilitation:</strong> Our team of analysts and consultants are skilled at guiding discussions, ensuring that every voice is heard and that sessions remain focused and productive.</p>","<p><strong>Outcome-oriented:</strong> These workshops aim not just to share information but to leave attendees with actionable insights, refined messages and a clear understanding of partner viewpoints.</p>"],"desc4":"The Canalys PAB Framework outlines how to drive actionable change with partners, how to measure the outcomes, how to plan the agenda and schedule these meetings, and how to choose partner participants. Most importantly, learning best practices (from the partner perspective) and how to avoid pitfalls!","subtitle3":"Partner summit speakers","desc6":"<p>Our analysts, renowned for their expertise and engaging delivery, are not just speakers but storytellers who bring the intricacies of the channel landscape to life. They are seasoned professionals, each possessing a unique blend of inspiration, insight and practical experience. Their presentations are a compelling mix of current trends, future forecasts and actionable strategies, designed to captivate and enlighten. With their fingers firmly on the pulse of the industry, our speakers deliver not just information but inspiration and guidance tailored to the evolving needs of vendors and partners alike.</p>","listtitle3":"What we offer:","list3":["<p><strong>Expertise:</strong> Renowned, independent analysis by our global team.","<p><strong>Versatility:</strong> Engaging presentations, from brief \u201clightning talks\u201d to comprehensive workshops and panel moderation.</p>","<p><strong>Customization:</strong> Tailored content to suit your event\u2019s needs, with interactive Q&A sessions.</p>","<p><strong>Support:</strong> Experienced team support for your event in multiple languages.</p>
1"],"listtitle4":"Key themes for discussion:","list4":["<p><strong>Tracking channel performance:</strong> Analysis of global channel performance with a focus on AI, cybersecurity and more.","<p><strong>Evolving business models:</strong> Insight into the rapid transformation of channel business models and digital selling trends.</p>","<p><strong>New routes to market: </strong> Exploring the rise of cloud marketplaces and their impact on the channel ecosystem</p>","<p><strong>Mapping the channel ecosystem:</strong> Detailed analysis of integrators, resellers and the evolving partner landscape.</p>","<p><strong>Generative AI impact:</strong> Understanding the role of generative AI in channel strategies and infrastructure development.</p>"],"title2":"Additional Partner Advisory services","custom-research":"Custom research","subtitle5":"Bespoke insights for informed decision-making","desc7":"<p>Canalys offers a range of custom research services designed to meet the unique needs of our clients in the technology ecosystem. Leveraging our global network of analysts and consultants, we deliver insights that drive strategic decision-making.</p>","list5":["<p><strong>Data-driven analysis:</strong> We provide in-depth research tailored to specific client requirements using data from the Candefero channels community and other reliable sources.","<p><strong>Evolving business models:</strong> Insight into the rapid transformation of channel business models and digital selling trends.</p>","<p><strong>Specialized focus areas: </strong> Our expertise spans all the major areas of technology research, with specializations that address emerging trends and market dynamics.</p>","<p><strong>Collaborative approach:</strong> We work closely with our clients to understand their research objectives, ensuring the insights we provide are accurate, actionable and relevant to their business goals.</p>"],"distribution-rights":"Distribution rights","subtitle7":"Maximize your reach with Canalys content","desc8":"<p>Canalys offers distribution rights for our extensive range of reports and blogs, allowing vendors to leverage our trusted content to educate and engage their channel partners.</p>","list6":["<p><strong>Stronger partner relationships:</strong> By providing valuable insights to your partners, you can reinforce your commitment to their growth and success.","<p><strong>Evolving business models:</strong> Insight into the rapid transformation of channel business models and digital selling trends.</p>","<p><strong>Educational tool:</strong> Our content is a powerful tool for vendors to inform and update their partners on the latest market trends, technologies and strategies.</p>","<p><strong>Brand alignment:</strong> Associating with Canalys\u2019 respected and independent analysis can enhance the credibility of vendors\u2019 communications and training programs.</p>","<p><strong>Customizable content:</strong> We understand the need for tailored messaging. Our team can work with you to select and adapt content that aligns with your specific goals and partner audience.</p>"],"ctatitle2":"Learn how to get started","ctadesc2":"Contact us for distribution rights information","judgebot":"Judgebot","subtitle8":"Judgebot: Canalys\u2019 cutting-edge partner award analyzer","desc9":"<p>Revolutionize your awards process with our in-house tool, designed to transform the awards process with its AI-powered capabilities. This innovative tool offers comprehensive support for both global and local award programs, ensuring a streamlined and impartial selection process.</p>","subtitle9":"Advanced AI tool support","list7":["<p><strong>Time efficiency:</strong> Judgebot drastically reduces the time required for the awards process, from entry management to winner selection, by automating and optimizing various steps.","<p><strong>Objective analysis:</strong> Our AI technology is developed to provide fair and unbiased evaluations, delivering results that accurately reflect the award criteria.</p>","<p><strong>Comprehensive management:</strong> The service includes the management of surveys, aggregation of results, and active participation in the judging process.","<p><strong>
1Comprehensive management:</strong> The service includes the management of surveys, aggregation of results, and active participation in the judging process."],"subtitle10":"Stakeholder coordination","list8":["<p><strong>Global and local engagement:</strong> We work closely with clients\u2019 global, regional and local teams, ensuring a cohesive approach to data collection and decision-making.","<p><strong>Inclusive collaboration</strong> Our service extends to engaging with third parties involved in the judging process, ensuring a comprehensive and fair assessment.</p>"],"subtitle11":"Unbiased third-party perspective","list9":["<p><strong>Independent assurance:</strong> Using Canalys for your award process provides an unbiased third-party perspective, safeguarding against internal and external pressures."],"meetourspeakers":"Meet our speakers","speakerblogstitle":"Content Spotlight"},"meetus":{"title":"Meet the team","whoweare":"Who we are","description":"The team at Canalys bring with them many years of experience as advisors to the IT and high-technology sectors. Combined with the company\'s culture of responsiveness to the rapidly changing needs of this dynamic industry this ensures that, in both content and delivery, Canalys provides an exceptional service compared to other industry analyst firms. We have analysts around the world, and they are joined by expert colleagues in client care, business development, digital, events, finance, marketing and operations.","ourteam":"Our client-facing team","departments":["All client-facing","Analysts","Events, marketing and sales","Speakers"],"staff":{"speaker":"Request as a speaker","briefing":"Request a briefing","callback":"Request a callback"}},"careers":{"title":"Careers","explore":"Explore our open positions","vaccinesdetails":"Current vacancies are outlined below and, as indicated, are based in one of our global offices. In all cases, applicants for previously advertised positions should not re-apply, and no agencies please. Positions are all full-time, permanent, unless otherwise stated.","alllocations":"All Locations","whycanalys":"Why Canalys?","description":"We believe that the following values, skills and behavior are vital to what makes us Canalys and therefore help achieve our strategy. Canalys\u2019 values are partly about who we are, but also about what we want to be as a company. We hire and promote people based on their ability to demonstrate them.","apply":"Apply","benefits":{"accountability":"Accountability","accountabilitydesc":"You personally are answerable for achieving results \u2013 we can\u2019t do this without you. We all enjoy freedom and empowerment, but understand that it comes with responsibility. We are determined to achieve. Though we may be busy with customers, colleagues and at home, we want to be the best.","quality":"Quality","qualitydesc":"We pride ourselves on creating practices that make us better than our competitors. We embrace new technologies - to improve our internal processes, standards and customer experience. Our methodology is at the core of our services. Sticking to it sets us apart.","beingflexible":"Being flexible","beingflexibledesc":"We\u2019ve got high aspirations \u2013 for company growth, services and people. That often means creating, improving, changing, adding and building stuff - and fast (like events, processes, services, people\u2026) Liking that sort of a challenge is a critical part of making it happen.","passion":"Passion","passiondesc":"There\u2019s a touch of geek in us all \u2013 we\u2019re really interested in the latest market trends and technologies and how they affect our industry. We get a kick out of debating our opinions and analysis with each other. We leave the conservatism behind, internally and externally, making us more useful to customers. Bringing the technology industry together when we can is part of the pleasure.","care":"Care","caredesc":"You should take care to treat your colleagues and customers as you\u2019d like to be treated y
1ourself. In general, that means with respect, honesty, integrity and interest.","thinkingglobal":"Thinking global","thinkingglobaldesc":"We have colleagues around the world. It\u2019s great to discuss tech industry perspectives with them to get a different viewpoint. Our customers are global too, so we prefer to be able to talk about their situations in local and global contexts. Time zones aren\u2019t a barrier to strengthening our team and working together. We use lots of different ways to communicate, but at the end of the day it\u2019s good to talk."}},"cookie":{"use-of-cookies":"Canalys\' Use of Cookies","details1":"We use cookies to enhance your experience and to analyze site traffic as described in our","details2":"Cookie Statement.","details3":"By accepting, you consent to our use of cookies.","acceptall":"Accept all cookies","confirm":"Confirm My Choices","options":"More Options","privancy-center":"Privacy Preference Center","option1":"Your Privacy","option2":"Strictly Necessary Cookies","option3":"Performance Cookies","option1-text":"<h5>Your Privacy</h5><p>When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer</p>","option2-header1":"Strictly Necessary Cookies","option2-header2":"Always Active","option2-text":"<p>These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.</p>","option3-header":"Performance Cookies","option3-text":"<p>These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.</p>"},"privacy":{"title":"Canalys Privacy Policy","desc":"<p>Canalys recognizes your right to privacy and is committed to handling the information you provide responsibly. Canalys will take prudent and practical steps to safeguard your personal information and its use.</p> <p>Our strategies, policies and guidelines support this commitment to protect your information. Managers and employees are responsible for fulfilling the following general principles for collecting, using, disclosing, storing, accessing, transferring or otherwise processing personal information.</p>","yourinfo":"<h3>Your information</h3> <p>Any inquiries or requests submitted to this site through forms here are considered confidential. Email addresses and other contact details collected through this site may be used to update our internal databases for the purposes of maintaining and improving the delivery of our services and marketing activities but are not sold on to any third party. Recipients of emails from Canalys may opt-out by reply or unsubscribe and every effort will be made to process the request before any further emails are sent.</p> <p>We may ask you for, and collect, personal information, including when you subscribe to receive Canalys press releases and company information; when you join our subscription services or online communities; when you request our free reports and access to published information; or when you interact with Canalys at our forums, at trade shows or similar events. We use the information you provide to help us design and improve our website and our products, to customize your online experience, to provide you advice and our research, and for other purposes consistent with this policy. Specifically, we may use information collected about you via the above methods to:</p> <ul> <li>Compile anonymous statistical data and analysis for use internally or with third parties.</li> <li>Create and manage your account.</li> <li>Deliver targeted advertising, newsletters, and other information regarding promotions and the site you.</li> <li>Email you regarding your account, new content or relevant surveys/polls.</li> <li>Enable user-to-user communications.</li> <li>Fulfil and manage purchases, orders, payments, and other transactions related to the site.</li> <li>Generate a personal profile about you to make future visits to the site more personalized.</li> <li>Increase the efficiency and operation of the site.</li> <li>Monitor and analyze usage and trends to improve your experience with the site.</li> <li>Notify you of updates to the site.</li> <li>Offer new products, services,\u202fand/or recommendations to you.</li> <li>Perform other business activities as needed.</li> <li>Prevent fraudulent transactions, monitor against theft, and protect against criminal activity.</li> <li>Assist law enforcement and respond to subpoena.</li> <li>Process payments and refunds.</li> <li>Request feedback and contact you about your use of the site.</li> <li>Resolve disputes and troubleshoot problems.</li> <li>Respond to product and customer service requests.</li> <li>Send you a newsletter, press release or research report.</li> <li>Solicit support for the site.</li> </ul> <p>Canalys may use information derived from the site usage records, including cookie-based information and tracking pixels, to help plan future improvements to its services and to promote usage, but again, does not sell such information to third parties.</p> <p>This site sometimes contains links to other web sites. Canalys cannot be responsible for the privacy practices or content of these sites and therefore advises you to exercise caution when submitting personal information online.</p> <p>Canalys retains your personal information for as long as is necessary to fulfil the purpose for which it was collected. If Canalys needs to comply with a legal obligation or protect your vital interests or the vital interests of another natural person,
1Canalys will retain your personal details for as long as it is reasonably necessary.</p> <p>We may retain your personal information for longer if it may be the subject of a legal claim or may otherwise be relevant for future litigation. Furthermore, Canalys will retain data for as long as it is reasonably necessary for the purposes of satisfying any regulatory, tax, accounting or reporting requirements.</p> <p>Where you tell us that you no longer wish to receive marketing messages about Canalys products and services, we will keep this information about you until you tell us otherwise. This is to ensure that we don\u2019t send you any further marketing communications in error.</p>","infowecollect":"<h3>Information we collect automatically </h3> <p>Our web server logs collect the domain names and certain related data of visitors to our web sites automatically (such as their IP address or device identifier). This information is used to measure number of visits, average time spent on this website, pages viewed and website usage information. We use this information to meet legal or regulatory requirements; to measure the use of our sites; to improve the content of our sites; and to provide tailored experiences. We may collect this information using cookies, as explained below under the \u2018Cookies\u2019 section.</p>","cookie":"<h3>Cookies and web beacons</h3> <p>We may use cookies, web beacons/tags, tracking pixels, and other tracking technologies on this site to help customize and improve your experience. When you access these sites your personal information is not collected through the use of tracking technology. A cookie is a small file that enables web servers to \\"identify\\" visitors. When you visit a site that uses this technology, the site adds a cookie to your browser that includes identification information. Cookies contain only as much information as you provide to the site and you have the ability to delete them from your system at any time. However, be aware that cookies may be necessary to provide you with access to the more advanced or personalized features available on certain sites. </p>","personalinfo":"<h3>Transfer of personal information internationally</h3> <p>Canalys is a global organization, with legal entities, business processes, management structures, and technical systems that cross borders. Where permitted by law, we may share your personal information within Canalys (including to subsidiaries and affiliates) or our suppliers and business partners and may transfer it to other countries in the world where we do business. Regardless of where your information is transferred to and resides, our privacy and security practices are designed to provide protection for your personal information globally.</p> <p>Please note that some countries have privacy laws that are not equivalent to privacy laws in your own country. Canalys will still handle information in the manner described here and we will the necessary measures to comply with data protection laws when transferring and processing your information. Where required, Canalys will also maintain agreements between or with Canalys partners or suppliers to govern the transferring, processing and protection of personal information.</p> <p>If you have any specific concerns or questions please e-mail <a href=\'mailto:[email protected]\'>[email protected]</a>.</p>"},"terms":{"title":"Terms and conditions","description":"<p>Access to and use of this Internet site (the \'Site\') is provided subject to these terms and conditions. Please read these terms carefully, because use of the site constitutes acceptance of these terms and conditions.</p><p>Under no circumstances may you share your user name and password for the Site with another person.</p><p>The Site provides a range of information concerning computer hardware and related products, including without limitation product descriptions, channel and marketing information and editorial commentary (collectively, the \'Information\'). Although Canalys attempts to provide Information that is useful, Canalys cannot possibly ensure the accuracy of all of the Information at all times, and you should not rely on the Information in situations where its inaccuracy would cause you to suffer any significant loss.</p><p>The information is provided by Canalys \'as is\' and \'with all faults.\' Canalys makes no representations or warranties of any kind concerning the accuracy, completeness or suitability of the information, either express or implied, including without limitation any implied warranties of merchantability or fitness for a particular purpose.</p><p>Canalys shall not be liable under any circumstances or under any legal theory for any direct, indirect, punitive, special, incidental or consequential damages that may be suffered by you or any other user of the site in connection with or as a result of the information or the products, regardless of how such damages may arise and even if Canalys has been previously advised of the possibility of such damages.</p><p>Canalys has a liberal policy with regard to the re-use of information that it provides to its clients, whether within reports, databases, presentations, e-mails or any other format. A client may circulate Canalys information to colleagues within his or her organization worldwide, including wholly-owned subsidiaries, but not to a third party. For the avoidance of doubt, sharing of information is not permitted with organizations that are associated with the client by a joint venture, investment or common shareholding. If you wish to
1share information with the press or use any information in a public forum then you must receive prior explicit written approval from Canalys.</p><p>Canalys reserves the right to deny Site access, without warning, to any individual or organisation it believes has behaved inappropriately, which includes, but is not limited to, illegal re-distribution of content, password sharing, posting of offensive, illegal, potentially libelous or deliberately false or misleading comments or profile information, or otherwise attempted to interfere with the smooth running of the Site.</p>"},"home":{"latestcontenttitle":"Latest press release and research titles","trendingtitle":"Trending","headertagline":"Expertise that listens.<br/>Advice that leads.","headertext1":"We are now Omdia, a leading technology research and advisory group.","headertext2":"From R&D to ROI, we identify the most promising opportunities to drive the industry forward.","abouttitle":"Canalys is now Omdia","aboutsubtitle":"With expertise around the world and comprehensive coverage of the tech domains, we bring you the breadth to see the big picture and the depth to act decisively.","abouttagline":"Together, we shape global markets","aboutdesc":"We have now moved to Omdia.com where you can find our blogs, insights and press releases. The way you access your research remains the same.","aboutbtn":"Go to your content","whatwedotitle":"Learn more","launchingamericaccf":"Canalys to reshape North American channel landscape with launch of 2023 partner forum in US","launchingamericabtn":"Find out now","analysistitle":"Your Content","analysisdesc":"We have now moved to Omdia.com but the way you access your research and your login details remain the same.","customprojectstitle":"Support","customprojectsdesc":"Contact us to explore opportunities, services, and the benefits of joining Omdia.","eventstitle":"Canalys Forums","eventsdesc":"Our annual, worldwide events for senior\xa0channel executives will continue to offer you unique experiences and new opportunities.","login":"Log In","contactus":"Contact Us","learnmore":"Explore more","explorecandefero":"Explore Candefero","insightstitle":"Insight and advice from our expert team","readarticle":"Read article","meettheteamtitle":"Meet the team","meettheteamdesc1":"Our technology and channels analysts are based","meettheteamdesc2":"all around the world.","meettheteamdesc3":" Thinking globally with our customers and colleagues is a core Canalys value.","meetus":"Meet us","ourclients":"Our clients","ourchannelclients":"Our Channels and Enterprise clients\u200b","ourclients3":"Our Device and Auto clients\u200b","candeferotitle":"Join our <img src=\\"../../../assets/images/candefero_logo.png\\" height=\\"35px\\" width=\\"188px\\" alt=\\"Candefero logo\\"/> community.","candeferodesc":"<p>Are you an IT channel partner? Join the Candefero community hub. It gives the ecosystem unparalleled access to a vault of cutting-edge research from Canalys industry analysts.</p><p>By participating in the Candefero Influencer Program, channel partners can gain critical market insights and comprehensive data analysis while giving feedback that informs developments and improvements in tech vendor channel strategies. </p><p>It\u2019s not just information \u2013 it\u2019s the foresight to transform your business and lead the IT channel conversation. And all for free!</p>","canstat1":"Candefero members","canstat2":"Vendor benchmarks completed","canstat3":"Surveys completed","bannertitle":"Want to receive the latest insights?","bannerdesc":"Get our latest research releases and market insights delivered straight to your inbox.","bannerbtn":"Subscribe"},"ourstory":{"breadcrumb":"Back to home","title":"Our story","subtitle":"Canalys was established in September 1998 with a vision from its founders to bridge the gap for channel-focused IT research in the market. 25 years into this vision, our commitment to being channel-centric and providing accurate and timely data to the technology industry has remained steadfast.","desc":"<p class=\\"description\\">Canalys, now Omdia, is a leading global technology market analyst firm with a distinct channel focus. We deliver channels and tech analysis, data and events to ensure tech industry vend
1ors and service providers overachieve.</p><p class=\\"description\\">Since 1998 we have grown to become world renowned for our research in technology channels and smartphones. We provide vendors with subscription services and projects in Channels, Enterprise and Emerging Tech and Mobility. We also host the best and largest independent channels events in APAC, EMEA and North America.</p><p class=\\"description\\">To ensure global reach, Canalys established its headquarters in Singapore in 2006, followed by offices in the US, Mainland China, and India. Today, Canalys proudly operates as an integrated global team, equipping them to gain holistic insights and new perspectives. The amalgamation of local with global enables Canalys\u2019 colleagues to support our clients for all their needs.</p><p class=\\"description\\">The team at Canalys bring with them many years of experience as advisors to the IT and high-technology sectors. Combined with the company\'s culture of responsiveness to the rapidly changing needs of this dynamic industry this ensures that, in both content and delivery, Canalys provides an exceptional service compared to other industry analyst firms. Our research on channels, our digital team and our client tools set us apart.</p><h4>Canalys Forums</h4><p class=\\"description\\"> The <a href=\\"\\\\events\\">Canalys Forums</a> are the most important, independent event for the IT channel in APAC, EMEA and North America. Our unique relationship with several thousand partners forms the basis. Using our superior technology and experiences these events bring together major technology vendors, distributors and resellers to discuss industry trends, forge new business relationships and create sales opportunities.</p><h4>Candefero - Canalys\' channels community hub</h4><p class=\\"description\\">Authorized <a href=\\"https://candefero.com\\" target=\\"_blank\\">channel partners can join Candefero</a>, which gives the opportunity to provide feedback directly to global channel leaders through sentiment trackers, polls and opinion surveys. This knowledge sharing from the channel partners is fed into the research provided in Canalys\u2019 services and consulting.</p><p class=\\"description\\">Canalys has become a global leader in market intelligence, research analysis, events, and consulting services. The company now has offices on four continents and a diverse workforce of over 100 professionals. Since its onset, over half the company has been powered through by women - unusual for the tech industry. Canalys has consistently embraced diversity and inclusion of people, thoughts and equal opportunity as its core value.</p><p class=\\"description\\">Canalys joined forces with <a href=\\"https://www.techtarget.com/press-release/creation-of-informa-techtarget-the-b2b-growth-accelerator-for-the-technology-sector/\\" target=\\"_blank\\">Informa TechTarget (Nasdaq: TTGT)</a> in 2024, providing clients with an unmatched ability to reach and influence their target audiences. </p>","officetitle":"Our offices","officedesc":"Canalys now spans four continents with five offices and employs over 100 people.","officebtn":"Our offices","teamtitle":"Our team","teamdesc":"Our team members come from different cultural, ethnic and socioeconomic groups\u2014we at Canalys value the advancement, growth, and leadership of people from all walks of life. We strongly believe in the importance of building a dynamic workforce.","teambtn1":"Meet the team","teambtn2":"Careers","bannertitle":"Subscribe to receive updates on our latest insights","bannerdesc":"Receive our latest insights on emerging, enterprise and mobile tech delivered straight to your inbox.","bannerbtn":"Subscribe"},"newsroom":{"viewbreadcrumb":"Back to newsroom","viewbannertitle":"Receiving updates","viewbannerdesc":"To receive media alerts directly, or for more information about our events, services or custom research and consulting capabilities, please contact us. Alternatively, you can email [email protected].","viewbannerbtn":"Contact","featured":"Featured","learnmore":"Learn more","presscentertitle":"Press center","presscentertext1":"Contact Canalys PR","presscentertext2":"Download our press kit","presscentertext3":"Our insights","presscentertext4":"RSS Feed","title":"Latest press releases","recommendationtitle":"Our latest insights","topbannertitle":"Subscribe to our PR list.","topbannerdesc":"Receive our latest PRs on emerging, enterprise and mobile tech delivered straight to your inbox.","topbannerbtn":"Join now","bottombannertitle":"Press contact","bottombannerdesc":"Journalists- get in touch with our analysts directly for data and analysis.","pdfdownload":"PDF download","bottombannerbtn":"Contact us"},"resources":{"title":"Resources","desc":"Examples of our analysis from across our portfolio of analysis services.","category1":"All","category2":"Channel Strategy","category3":"Automotive","category4":"Enterprise Tech","category5":"Mobility","re
1commendationtitle":"Our latest insights","bannertitle":"Subscribe to receive updates on our latest insights","bannerdesc":"Receive our latest insights on emerging, enterprise and mobile tech delivered straight to your inbox.","bannerbtn":"Subscribe","viewpopuptitle1":"Want your own copy to share? Share your details and we\'ll send you the file shortly.","viewpopuptitle2":"Enter your details to watch the video","viewbreadcrumb":"Back to resources","latestnews":"Our latest news","reportstitle":"Detailed outlook reports"},"customsolutions":{"breadcrumb":"Back to home","title":"Custom Solutions","subtitle":"Canalys offers its expert bespoke solution skills to technology vendors, service providers, channel partners and the financial community.","desc":"<p class=\\"description\\">We have years of experience in channels analysis, partner program assessments and market-sizing projects. We offer custom insight into channels, infrastructure, mobility and emerging technologies. We gather data and feedback from our community of global channel partners, <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero</a>. We also use our ongoing tracking data and forecasts to enrich our research and our understanding of new markets. We have expertise and a network that covers all geographies. </p>","technologytitle":"Technologies","tech1":"Cybersecurity","tech2":"Devices","tech3":"Automotive","tech4":"Infrastructure","tech5":"Cloud","tech6":"Software","tech7":"IoT","outcometitle":"Outcomes","outcome1":"Channel management","outcome2":"Partner evolution","outcome3":"Competitor analysis","outcome4":"Partner recruitment","outcome5":"Channel growth","outcome6":"Partner profitability","outcome7":"Geographic expansion","outcome8":"Partner experience","ctatitle":"Interested in working with Canalys on tailoring a project to your needs?","ctatext":"Our team of global consultants and analysts looks forward to the opportunity to explore new areas, provide deeper insights and bespoke analysis","ctabutton":"Contact us"},"channeldevelopment":{"breadcrumb":"Back to Custom Solutions","title":"Channel Development","desc":"Our channel development projects help vendors identify the ways they can get drive greater engagement and collaboration with their distributors and channels partners. Vendors can independently check their status and then work with us to recognize key areas for improvement or where there are opportunities. We often draw on our close association with the channel to do this. ","contentdesc":"<p class=\\"description\\">The client, a global hardware and software vendor, wanted to understand why more partners were not actively developing unique IP and software and to encourage partners to invest in this capability.</p>","content":"<h4><strong>How we helped</strong></h4><p class=\\"description\\">The client wanted to communicate the importance of developing unique software and services to enhance partner profitability. Canalys was selected to identify the reasons why certain partners had been successful at developing applications but not others. The client sought to use these areas of best practice to entice more partners to invest in software development and create roadmaps for partners to follow.</p><ul><li data-aos=\\"fade-up\\"><strong>Interviews with leading partners:</strong> Canalys conducted 10 interviews with partners at the forefront of software development. We looked at how partners developed applications, used support from the vendor, how their organization supported development teams and how solutions were deployed in the market.</li><li data-aos=\\"fade-up\\"><strong>Analysis and conclusions:</strong> Canalys provided the client with key conclusions and actionable recommendations. Canalys also worked with the client to create a series of three podcasts aimed at helping partners understand the opportunities available to them.</li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Canalys revealed the lack of consistent strategies and the disparity in software development capabilities among the client\u2019s partners, their fight for talent and the fact its existing program did not cater equally to both immature and mature software development partners. We covered the challenges around APIs and the lack of a standardized approach. We gave the client recommendations that could drive change among its broad range of partner types and sizes.</p><p> </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">Develop best practice</br/>Create partner roadmap</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\">Global SaaS vendor</br/>France, Germany, UK</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\">10 expert interviews</br/>Analysis of support and solution deployment</p>"},"channelmanagement":{"breadcrumb":"Back to Custom Solutions","title":"Channel Management","desc":"<p class=\\"description\\">We can provide an independent assessment of vendors\u2019 channel management for a top-level regional view or get into the detail of what\u2019s going on in individual countries. Using a mixture of methodologies, but often drawing on the <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero channel community</a> and our Vendor Benchmark tools, we identify opportunities for change to help vendors better engage with the channel to get results.</p>","contentdesc":"<p class=\\"description\\">
1The client was a cloud infrastructure vendor looking for external guidance to identify the top cloud distributors in key countries across EMEA. It wanted to analyze opportunities for partnership with key distributors and to understand their market position in relation to its primary distributor. </p>","content":"<h4><strong>Canalys methodology and deliverables</strong></h4><p class=\\"description\\">The purpose of this project was to ensure the client was fully using its opportunities to grow through distributor cloud marketplaces in EMEA.</p><ul><li data-aos=\\"fade-up\\"><strong>Distributor research:</strong> Canalys combined existing channel data and trends research with targeted desk research to create a bespoke deliverable for the client. Canalys identified the top three cloud distributors in eight European countries, investments each distributor had made in cloud marketplaces, total revenue per country and via each marketplace, and current vendors transacting through marketplaces.</li><li data-aos=\\"fade-up\\"><strong>Marketplace assessment:</strong> Canalys maintains databases of the leading distributors in EMEA, by country, with estimates on sales performance across key technology lines. We identified which distributors had made significant investments in their own cloud marketplaces and interviewed them.</li><li><strong>Partner perception of distribution marketplaces:</strong> Canalys surveyed partners across EMEA to understand their experience with distributor marketplaces. </li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Canalys advised the client to consider its mix of global and local distribution. We highlighted the current use of cloud marketplaces, the perception of cloud marketplaces and how partners engaged with such sales models. This enabled the client to consider its distribution investments. </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">Identifying top distributors<br/>Understand opportunities to scale</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\">Leading cloud infrastructure vendor<br/>Eight European countries</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\">Distributor research<br/>Marketplace assessment<br/>Partner perception survey</p>"},"competitorstrategy":{"breadcrumb":"Back to Custom Solutions","title":"Competitor Strategy","desc":"<p class=\\"description\\">We undertake dedicated projects to assess and benchmark competitors. Some of our projects are around market performance, channels or share of products or solutions. Others are focused on one aspect, such a service and support, routes to market and partner programs. Canalys can help you identify opportunities and areas of weakness and assist you in measuring improvements. </p>","contentdesc":"<p class=\\"description\\">Our client wanted to identify best practices and partner program details to improve sales and penetration, as well as identify how it could differentiate itself from competitors and encourage partners to participate. The client also wanted to assess how competitor programs encouraged partners\u2019 sales.</p>","content":"<h4><strong>How we helped</strong></h4><p class=\\"description\\">The consultancy project used a multi-pronged research methodology. This included partner interviews in the US and select European countries. The countries were identified based on the vendor\u2019s current business. Our team created a short online survey using our in-house digital tools and drawing upon Canalys\u2019 extensive research of partner programs. This was translated where relevant.</p><ul><li data-aos=\\"fade-up\\"><strong>Expert interviews:</strong> Canalys conducted interviews on key areas: partner compensation; channel promotions and communication, tools and processes; training and certification; sales and coverage; and procurement. Canalys conducted 10 interviews in each selected country, speaking to top-tier partners of the client\u2019s primary competitor. Partners were selected from our <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero community</a>.</li><li data-aos=\\"fade-up\\"><strong>Online survey:</strong> Canalys prepared an online survey of 8 to 10 questions. The survey was hosted on Candefero and promoted to Candefero members across the EMEA region. Around 180 responses were received. </li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Our analysts identified key issues in the vendor\u2019s attach positioning relative to the competition. Canalys noted that the overall incentives, compensation, tools and processes were generally superior to the competition. Canalys provided actionable recommendations allowing the client to improve partner and end-user marketing, communication on programs and overall value to partners. </p><p> </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">Identify best practices<br/>Learn how to differentiate<br/>Implement best-in-class partner incentives</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\">EMEA HQ of multinational PC vendor<br/>Germany, Poland, UK, US</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\">30 expert interviews<br/>Candefero survey</p>"},"customizeddata":{"breadcrumb":"Back to Custom Solutions","title":"Customized Data","desc":"<p class=\\"description\\">Canalys works with clients to go beyond the data and forecasts delivered in our subscription service to create unique deliverables to meet specific clients\u2019 needs. We call these \u201ccutting-edge data solutions\u201d because we\u2019re often working with clients, helping to define new categories and opportunities. Canalys collaborates with clients to define and refine the data they need us to collate, using our rigorous methodology. We adapt our in-house digital tools to ensure the information is delivered simply and easily via dedicated widgets on our client site. </p>","contentdesc":"<p class=\\"description\\">A consumer electronics and mobile communications company, which specializes in mobile devices, was seeking to help identify target countries and routes to market for international expansion for a new category of products. It required data that supplemented Canalys subscription services. It also required information on consumer buying trends and sentiment in the key countries.</p>","content":"<ul><li data-aos=\\"fade-up\\"><strong>Smartphone market analysis:</strong> Canalys used data from its Smartphone Horizon service to help size the market, show the primary routes to market and provide overall projections. From this we identified 10 key markets where telco service providers were key routes to market. We provided detailed data on shipments going through each service provider and provided monthly tracking of the information as the vendor started its roll-out. </li><li data-aos=\\"fade-up\\"><strong>Online consumer survey:</strong> Canalys ran an online survey in the 10 markets identified around the world to understand consumer perception of the brand, competitors, pricing and purchasing preferences. The survey was done with a partner agency and Canalys provided the analysis and final presentations, in combination with our market opportunity analysis. </li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Canalys was able to help highlight the key markets for expansion and identify a routes-to-market strategy. We were able to provide ongoing data and forecasts to help the client benchmark against key competitors in each market, and their share within key channels over the following two years. The vendor has now hit at least third place in terms of market share in seven out of the 10 markets originally identified. </p><p> </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">Identify target counties for expansion<br/>Consumer trends and perception</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\">China HQ consumer electronics vendor<br/>APAC, EMEA, LATAM</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\">Smartphone data and analysis<br/>Online consumer survey</p>"},"marketentry":{"breadcrumb":"Back to Custom Solutions","title":"Market Entry","desc":"<p class=\\"description\\">
1Canalys undertakes market entry analysis projects across all technologies and solutions. In some cases these are areas that Canalys already tracks on a regular basis, but often we are called on by existing customers to help them with market entry for a new and emerging technology. We are often relied on for our channel expertise to inform a vendor how to best enter and expand a new territory. </p>","contentdesc":"<p class=\\"description\\">The client was a leading software vendor. It had a new security solution it was looking to take to market. It had previously sold direct and was keen to investigate how to recruit a channel to expand the product\u2019s reach in key global markets. </p>","content":"<h4><strong>How we helped</strong></h4><p class=\\"description\\">Canalys was selected for its expertise in analyzing go-to-market strategies, its partner program research, and its experience in security market analysis.</p><ul><li data-aos=\\"fade-up\\"><strong>Expert partner interviews:</strong> Canalys ran an online survey on <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero</a> to understand partners\u2019 perception of security products and solutions. It also asked how partners looked to add additional security vendors to their portfolios. Canalys also conducted free-flowing interviews with partners. Each 30-minute interview covered the main topics as agreed with client: what type of security is sold, how do partners add additional vendors to their portfolios, what they expect from a new vendor, etc.</li><li data-aos=\\"fade-up\\"><strong>Security market analysis:</strong>
1Canalys used data from its Security Analysis service to help size the market, show the primary routes to market for security products and rate the overall size of the security partner community.</li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Canalys showed the client the market opportunity as well as the size of partner community. It was able to articulate the challenges of building a channel from scratch (and countering the previous direct heritage). It explained how to build an initial group of partners to seed the market, before moving to build a partner program. It facilitated introductions to a small number of target partners. </p><p> </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">New solution<br/>Expanding reach</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\">Australia, Singapore, Taiwan, France, Germany, US</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\">Expert partner interviews<br/>Security market analysis</p>"},"partnerprograms":{"breadcrumb":"Back to Custom Solutions","title":"Partner Programs","desc":"<p class=\\"description\\">Building on our <a routerLink=\\"analysis/partner-program\\">Partner Program Analysis service</a>, Canalys can provide customized deep dives into how partner programs are being implemented and executed. We are often used to help vendors craft a new program, or to help review and assess the roll-out of a refreshed partner program. Some clients use us for ongoing partner sentiment and perception tracking and benchmarking, together with our Vendor Benchmark tools.</p>","contentdesc":"<p class=\\"description\\">The client was a major global cybersecurity vendor. It had recently introduced a new partner program and was looking to undertake a research program to understand partners\u2019 perception of the new program and to provide input to help enhance its partner program offerings. The client wanted to understand how its primary competitors encouraged and managed partners. It also wanted to identify how its program offerings compared with those of competitors and recommendations on where to prioritize.<br/>The project was timed to support and inform the client\u2019s EMEA partner event.</p>","content":"<h4><strong>How we helped</strong></h4><p class=\\"description\\">Canalys was selected for its expertise in analyzing go-to-market strategies, its partner program research, and its experience in conducting global market analysis.</p><ul><li data-aos=\\"fade-up\\"><strong>Online survey:</strong> Canalys held a kick-off meeting with relevant members of the client team. Based on this, Canalys produced an online survey of 15 to 20 questions.</li><li data-aos=\\"fade-up\\"><strong>Survey campaign:</strong> Canalys produced an online survey of their own partner community. The client wanted an EMEA perspective on its program, so the survey was translated into five languages.</li><li><strong>Expert partner interviews:</strong> Canalys conducted free-flowing interviews with partners. Each 30-minute interview covered the main topics as agreed with client: how does the client\u2019s program compare with those of key competitors? What gaps exist in the program that it must address to compete? What elements of the client\u2019s program are unique? How do partners rate their experience of doing business with the client?</li><li><strong>Analysis and conclusions:</strong> Canalys analyzed the survey results and provided the client with an initial response in time for the partner event. Canalys combined the results of the online survey with its ongoing research into partner programs to provide the client with key conclusions and actionable insights. </li><li><strong>Final presentation and report:</strong> The client had the option for project findings to be delivered via either a two-hour webinar or in-person presentation and discussion session at a UK venue of its choice. The final report included survey feedback, conclusions and recommendations. </li></ul><p> </p><h4><strong>Client outcome</strong></h4><p class=\\"description\\">Canalys highlighted key issues and feedback on the new partner program. It was able to show how this compared with a previous study conducted four years ago and show how the vendor benchmarked against key competitors. The client then used the findings to further communicate the new program benefits to existing and prospective partners. </p><p> </p>","statlabel1":"Focus","stat1":"<p class=\\"description mt-0\\">Understand partner perception of new program<br/>
1Make improvements to incentives</p>","statlabel2":"Scope","stat2":"<p class=\\"description mt-0\\"> Australia, Singapore, Taiwan, EMEA, US</p>","statlabel3":"Methodology","stat3":"<p class=\\"description mt-0\\"> Online survey<br/>Vendor survey campaign<br/>Expert interviews<br/> Final presentation </p>"},"marketingsolutions":{"breadcrumb":"Back to Custom Solutions","title":"Marketing Solutions","desc1":"<p>Canalys helps existing and new clients to power their customer conversations and drive outcomes. Our research and insights are used as an integral part of technology vendors\u2019 marketing communications campaigns. We work with our clients to support various activities, whether it\u2019s to drive brand\u202fawareness, demand, lead-generation or, ultimately, revenue along your customer journey.\u200b</p><p>We offer a portfolio of content marketing solutions. We work with marketing and communications teams to create engaging, objective, credible content, all based on Canalys\u2019 independent and authoritative research.</p>","desc2":"<p>You can engage with Canalys to use our standard service content assets in your campaigns, to provide insights for your customers and followers. We can also provide new, customized analysis through our various custom solutions. Through these we can offer thought leadership to best engage your target audience.</p><p>Our global team of analysts, together with our in-house digital and marketing teams, are available to share their expertise. We\u2019ll assist in ensuring you get the outcomes you need for your campaigns.</p>","descwithlink1":"We can create reports, ebooks, blogs, |presentations and workshops| designed to support content marketing by addressing your customers\u2019 most important questions. Our research is supported by senior Canalys analysts, consultants and Candefero and is complemented by Canalys\u2019 continuous services, which bring rich analysis, insight and expertise.","descwithlink2":"Our content ensures a comprehensive understanding of the issues. We always deliver independent conclusions and strong recommendations. We always deliver independent conclusions and strong recommendations. We have specializations in |particular areas|, but often explore new, emerging topics to support our clients. ","desc3":"<p class=\\"description\\">We also work with our clients to provide <strong>social media assets, branded tiles, data cuts, distribution rights and analyst commentary</strong>. These are available as one-time, topic- or data-related graphics or to work into a regular schedule. </p><p>Clients of Canalys subscription services also receive support for PR, whether it\u2019s data points or independent analyst quotes. Our custom research agreements and distribution rights also often cover PR, social media and blog support \u2013 please check with your account manager for details. </p><p>We are independent analysts, and Canalys and our people do not endorse vendors, products or services, unless our research supports this.<p><p>Further recent examples of how we\u2019ve worked with clients include:</p>","ctaText1":"Get in touch","ctaText2":"Contact us to find out more","subtitle1":"Our capabilities","subtitle2":"Example independent reports and research","report1":"Autonomous vehicle industry","report2":"Cloud marketplaces as a channel","report3":"Cybersecurity outlook","report4":"Cybersecurity capabilities","report5":"Intelligent living","report6":"PC market","capability1":"Off-the-shelf or customized reports","capability2":"Social media, PR and other assets","capability3":"Blogs and other digital marketing content","capability5":"Data and forecasts","capability6":"Image and report rights","capability4":"Presentations, moderating and workshops","example1":"Blogs","example2":"Distribution rights","example3":"Financial results","example4":"PR","example5":"Workshops"},"speakingengagements":{"breadcrumb":"Back to Custom Solutions","title":"Speaking Engagements","preimagedesc":"<p>World-leading companies turn to Canalys to provide independent insights and thought leadership in virtual and physical presentations. Our diverse and global team of expert analysts are engaged to speak at conferences, partner advisor boards, workshops and more.</p><p> </p>
1","desc1":"<p>Our content can help the journey to your customers. A Canalys presentation, whether virtual or physical, gives you:</p>","li1":"World-renowned and independent analysis.","li2":"Access to an experienced team to support you and your event. ","li3":"Access to |a global team| that can present in multiple languages.","desc2":"<p>We typically recommend that presentations are no longer than 20 minutes, given todays \u201cTED Talk\u201d attention spans! Our analysts have given much shorter two-minute \u201clightning talks\u201d, five-minute market snapshots for virtual events and longer sessions, including Q&As. Our analysts are also highly experienced at running workshops, moderating panels and emceeing. We are regularly involved in partner advisory boards with C-level and senior executive teams. </p><p>Get in touch with us to discuss your requirements and to see how we can help bring insights and energy to your event. </p>","ctaText1":"Contact us","embedTitle":"Future channel","subtitle1":"","desc3":"Looking for top insights and controversial trends? Here, we\'ll bring together the industry\'s elite for an explosive discussion fuelled by Canalys\' Candefero Global Channel survey results. We\'re diving headfirst into the heart of the channel, uncovering its current state and the path it\'s destined to tread. Gain an unparalleled understanding of the channel landscape, unveiling the hidden opportunities and looming threats that await to stay ahead of the curve in the ever-changing world of channel sales. ","li4":"Professional equipment to deliver high-quality video presentations.","li5":"Software expertise that helps make your ideas a reality \u2013 leave boring static presentations behind! ","li6":"Fully edited video with integrated slides that minimize the work for your team.","li7":"Digital overlays that fit the brand and style of your event.","li8":"Animated data overlays and best-in-class graphics.","liextra":"Recording from our office studios, homes or external studios. ","desc4":"Watch some of our previous presentations and |meet our speakers|:","li9":"<a href=\\"https://canalys.wistia.com/medias/v8ym1c8d2l\\" target=\\"_blank\\">The race against time</a> - |Matthew Ball|","li10":"<a href=\\"https://canalys.wistia.com/medias/98ldg189ka\\" target=\\"_blank\\">Cybersecurity market update</a> - |Ketaki Borade|","li11":"<a href=\\"https://canalys.wistia.com/medias/j592iq5fbx\\" target=\\"_blank\\">EMEA PC market overview</a> - |Ishan Dutt|","li12":"<a href=\\"https://canalys.wistia.com/medias/1scrnxtkic\\" target=\\"_blank\\">EMEA smartphone market update</a> - |Runar Bj\xf8rhovde|","li13":"<a href=\\"https://canalys.wistia.com/medias/pmk2h5tge2\\" target=\\"_blank\\">Midweek Matters - Chinese mobility market update</a> - |Nicole Peng| and |Jason Low|","subtitle2":"Recent presentation topics","topic1":"<h4>Finding opportunity amid angst, change and anxiety</h4><p>A top-level keynote from our CEO aimed at senior executives in the partner community navigating their way through the early</p>","topic2":"<h4>How will we work in 2025?</h4><p>A Senior Analyst offers a vision of technology\u2019s role in the future. <i>\u201cThe world of work has changed forever. Fortunately, technology can help bring fast-moving positive change as companies plan for recovery and accelerating growth.\u201d</i></p>","topic6":"<h5>Decade of ecosystem</h5>","topic5":"<h5>The ransomware threat is far from over</h5>","topic4":"<h5>AI-capable PCs: trends and opportunities</h5>","topic3":"<h5>Competition in the cloud</h5>","topic7":"<h5></h5>","topic8":"<h5>Alpha MSPs</h5>","topic9":"<h5>AI unleashed</h5>","topic10":"<h5>\u201c<i>Busting myths around sustainability</i>\u201d</h5>","topic11":"<h5>IoT - connecting to the 5G future</h5>","topic12":"<h5>Tomorrow\'s partner programs </h5>","topic13":"<h5>AI-capable smartphone</h5>","topic14":"<h5>Busting myths around sustainability</h5>","desc5":"<p>We would love the opportunity to discuss ideas with you for your upcoming presentations, workshops, panels or event hosting requirements \u2013 whether virtual or physical. </p>","ctaText2":"Get in touch"},"interest":{"title":"Register your interest","form":{"firstName":"First name","firstNameError":"Please enter your first name","lastName":"Last name","lastNameError":"Please enter your last name","email":"Email","emailError":"Please enter a valid work email","company":"Company","companyError":"Please enter your company","country":"Country","countryError":"Please enter your country","job":"Job Title","regi
1on":"Region","regionError":"Please enter the region","interest":"I am interested in","interestError":"Please enter the interests","comments":"Comments","oncontact":"Connecting","submit":"Submit your interest"}},"leadershipmatrix":{"title":"Canalys Leadership Matrix Awards","general-desc":"<p><strong>What is the Canalys Leadership Matrix? </strong></p><p>The Leadership Matrix assesses which vendors are playing an integral role in driving the success of the partner ecosystem. Through different series and versions, the Leadership Matrix explores geographic expansion, technology excellence, innovation, and inspiration.</p><p style=\\"margin:2em 0 1em\\"><strong>Canalys Leadership Matrix Methodology </strong></p><p>The Leadership Matrix takes in three primary types of inputs:</p><div class=\\"leadership-content\\" style=\\"padding:0\\"><ul><li>Analyst assessment: Scoring of channel vision and strategy, programs and execution, portfolio competitiveness and new launches, M&A activities, and recent and future channel initiatives. Based on ongoing analyst briefings and analysis of vendor surveys (where applicable).</li><li>Ecosystem feedback: Feedback from the partner community including analyst-led interviews, Candefero <a href=\\"https://canalys.com/analysis/vendor-benchmark\\" target=\\"_blank\\">Vendor Benchmark</a> ratings for the latest 12-month period (where applicable). Partner feedback focuses on programs and enablement metrics, sales engagement metrics and partner experience.</li><li>Market performance metrics: Assessment of vendor growth and market share within peer groups for the latest 12-month period compared to the previous 12-month period. Using data from Canalys\u2019 quarterly shipment tracking services.</li></ul></div><p>Each of these metrics feed into a proprietary Canalys Leadership Matrix model which produces a series of scores. This includes an overall leadership score, representing the current standing, as well as a momentum score representing the degree of change.</p>","leadershiplisttitle":"The Leadership Matrix provides a graphical representation of Canalys\u2019 assessment of each vendor over time, placing them in one of four categories:","getintouch":"Get in touch to discuss the full reports","getnotified":"Get notified","getnotifiedlatest":"Get notified when latest matrix is released","leadershiplist":["<p><strong>Champions:</strong> Vendors with high channel scores, which have shown both continued improvement in channel management, strategy and execution, and a commitment to driving future improvements. </p>","<p><strong>Contenders:</strong> Vendors with high channel scores, but which have seen declines in channel sentiment and/or a deterioration in channel commitment or execution. </p>","<p><strong>Scalers:</strong> Vendors with lower channel ratings and/or generate less revenue for partners, but which have seen improvements in channel sentiment and/or performance. </p>","<p><strong>Foundations:</strong> Vendors with a foundation in the channel and other areas assessed, but currently have lower partner sentiment and performance levels compared to peers.</p>"],"leadshipfoottitle":"<p>The Leadership Matrix forms part of a detailed report published to clients of Canalys channel services. The report highlights the channel performance of the vendors over the past 12 months and includes: </p>","leadshipfoottitlelist":["Market summary","Champion winners feature","Leadership Matrix indicators","Individual Champion winners\u2019 performance highlights","Summary of all other Matrix quadrants"],"upcomingleadership":"Upcoming Leadership Matrices","leadershipblogtitle":"Canalys Leadership Matrix 2023-2024","leadershipblogtitlearchive":"Canalys Leadership Matrix Archives","leadershipchampiontitle":"Canalys Channel Leaders","leadershipcybersecurity":"Cybersecurity","leadershipchannelemea":"EMEA Channel","leadershipchannelapac":"APAC Channel","leadershipmanagedbdr":"Managed BDR","leadershipsustain":"Sustainable Ecosystems","leadershipchinacloud":"Mainland China Cloud Channel","leadershipcosell":"Global Co-Sell Softw
1are"},"cybersecurity-market":{"title":"Now and next for the cybersecurity ecosystem in 2023","title-desc":"In depth insights to reshape vendor and channel partners\u2019 strategies ","action":"Read the report","unlockecosystem":"Unlock the future of the cybersecurity ecosystem","main-desc-1":"<p>Cyber-attacks continue to expose weaknesses in cybersecurity defenses, causing significant disruption worldwide. Organizations are proactively investing more, but according to the latest Canalys estimates, enterprise spending on cybersecurity still accounts for less than 5% of total IT budgets.</p><p>The cybersecurity ecosystem is broad and dynamic. It consists of different but interrelated components, including threat actors, technology vendors, investment firms, channel partners, customers, cyber-insurers, law enforcement agencies and government bodies that operate in a framework of strengthening regulations. The balance between these components is constantly changing.</p><p>In this 15-page complimentary report, Canalys combines in-depth research in both cybersecurity and channels to lay out five trends set to impact the cybersecurity ecosystem landscape in 2023.</p>","main-desc-2":"<p>This in-depth analysis is the key to understanding the ever-evolving cybersecurity scene, outlining the looming risks and emergent opportunities for vendors and channel partners. It covers: </p><div class=\'center-flex\'><b><ul><li>The evolving threat landscape</li><li>Cybersecurity platform success</li><li>Managed services adoption</li><li>
1Cybersecurity channel growth driven by new vendors</li><li>The emerging AI battleground</li></ul></b></div><p>Get the report delivered to your inbox to gain insights to reshape your cybersecurity strategy in 2023.</p>","unlock":"Unlock the report","whyreadreport":"Why read this complimentary cybersecurity report from Canalys?","main-desc-3":"<p>According to Canalys\u2019s continuous global data and research, cybersecurity will remain one of the fastest-growing sectors of the tech industry in 2023, as organizations prioritize spending on improving defenses and adding new detection and response capabilities. Global cybersecurity spending (including technology and services) will rise by 13% to US$223.8 billion this year.</p>","main-desc-4":"<p>Risk levels remain high as threat actors regroup, exploiting vulnerabilities. With cybersecurity-managed services outpacing technology deployments, understanding the diverse capabilities across the partner landscape is critical. Canalys estimates that over 90% of the US$223.8 billion cybersecurity spend (on technology and services) in 2023 will go through the partner community.</p><p><b>This complimentary report provides a comprehensive insight into: </b></p>","titans":"The Canalys Cybersecurity Titans","main-desc-5":"<p>These vendors have built cybersecurity platforms and continue to expand them through a combination of organic development and tuck-in technology acquisitions, which is an increasingly important part of the overall ecosystem. </p><p>This report not only highlights the shifting cybersecurity landscape but also explores strategies to respond effectively to these changes. It emphasizes the importance of understanding differing partner capabilities and illustrates the potential upsell opportunities for cybersecurity vendors with platform strategies.</p>","main-desc-list":"<ul><li>The broad cybersecurity ecosystem, encompassing threat actors, technology vendors, investment firms, channel partners, cyber-insurers, law enforcement agencies and government bodies operating within the framework of tightening regulations.</li><li>The ongoing fight against ransomware, a threat that continues to evolve as new actors emerge and threat groups repurpose tools for targeted attacks.</li><li>The highly disruptive fallout from successful cyber-attacks on high-profile firms and organizations, underscoring the need for robust cybersecurity measures.</li><li>The dynamics of cybersecurity channel competition, especially with nearly 50 highly funded pre-IPO vendors investing in their programs for accelerated expansion.</li><li>The transformative potential of generative AI within the cybersecurity ecosystem, empowering organizations to enhance their cybersecurity capabilities while presenting new opportunities for threat actors.</li><li>The role of cybersecurity startups in driving innovation, underpinned by venture capital funding that enables the development of new technologies and strategies.</li></ul>","main-desc-threat":"<p>But cybersecurity will not be fully immune to the fallout from the turbulence affecting customers\u2019 businesses, despite heightened threat levels. War and geopolitics, rising interest rates, persisting high levels of inflation, currency fluctuations, economic slowdown, extreme weather events, and natural disasters, as well as political instability, are the notable known factors currently affecting operations and general confidence. Recent banking collapses and corporate takeovers have caused further uncertainty, while other unforeseen events will no doubt emerge this year, resulting in even more disruption. </p>","main-desc-6":"<p>The report talks about opportunities for the 16 Canalys Cybersecurity Titans (the largest publicly quoted vendors that publish quarterly cybersecurity revenue) and Microsoft (which is excluded from the Titans as it does not report its cybersecurity revenue on a quarterly basis). </p>","main-desc-eco":"<p>This report not only highlights the shifting cybersecurity landscape but also explores strategies to respond effectively to these changes. It emphasizes the importance of understanding differing partner capabilities and illustrates the potential upsell opportunities for cybersecurity vendors with platform strategies. </p>","nextstep":"Your next step","nextstepdesc":"<p>As cybersecurity threats evolve and new actors emerge, staying informed is not a choice, but a necessity. Gain the knowledge you need to prepare for \\"Now and Next\\" in the cybersecurity ecosystem landscape in 2023. Click below to get the complimentary report delivered via email.</p>","stepsnow":"Take steps now","cybersecurityActionTitle":"Receive a complimentary copy of the report","cybersecuritymarketflag":"I would like to receive cybersecurity and ecosystem related Canalys content","contactus":"Get in touch with us","recentcontent":"Recent
1Canalys cybersecurity research","titan-logo-title":"Canalys Cybersecurity Titans","ipo-logo-title":"Pre-IPO cybersecurity vendors","banner-text":"More about the Canalys Cybersecurity Analysis research","banner-action":"Info on our service"},"Learn more":"Learn more","All press releases":"All press releases","Research releases":"Research releases","Company announcements":"Company announcements","Previous":"Previous","Next":"Next","Case study":"Case study","RSS feed":"RSS feed","ces2024":{"title":"Connect with us at CES 2024","place":"9-12 January 2024 Las Vegas, NV","action":"Meet the team","introduction":"<p>Get ready to join us on an exhilarating journey! Our team is hitting the road once again for CES in Las Vegas from 9-12 January 2024. As we gear up for this exciting event, we are thrilled at the prospect of re-connecting with the tech industry face-to-face.</p><p>At the heart of CES, we will be diving into dynamic conversations on consumer behaviors, AI-capable PCs, the latest insights on Electric Vehicles and ke
1y mega-trends on the leading Automotive OEMs.</p><p>The stage is set for compelling discussions and invaluable networking opportunities whether you are seeking the latest insights or eager to explore future possibilities with some of our global analyst team.</p><p>See you at CES 2024 \u2013 where innovation meets inspiration and connections turn into collaborations!</p>","teamTitle":"Our team at CES 2024","aboutTitle":"About CES","about":"<p><a href=\'https://www.ces.tech/\' target=\'_blank\'>CES</a> 2024 is the Global Stage for Innovation. CES\xae is the most powerful tech event in the world \u2014 the proving ground for breakthrough technologies and global innovators. This is where brands get business done, meet new partners and where the industry\u2019s sharpest minds take the stage to unveil their latest releases and boldest breakthroughs. Owned and produced by the Consumer Technology Association (CTA)\xae, CES is the only trade show that showcases the entire tech landscape in one event.</p>","bookTitle":"Book a meeting"},"mwc2024":{"title":"Connect with us at Mobile World Congress 2024 in Barcelona","place":"26 - 29 February 2024 | Fira Gran Via, Barcelona","action":"Schedule a meeting","introduction":"<p>Welcome to MWC Barcelona 2024, the ultimate gathering for telecom visionaries. Immerse yourself in a world of innovation and discover the strategies that will shape the industry\u2019s future.</p><p>Meet Canalys experts at MWC 2024 to delve into the latest AI advancements in smartphones and PCs, discover key market trends in IoT, and gain unparalleled channel and ecosystem insights from our senior analysts.</p><p>Uncover strategic imperatives reshaping the industry and embark on a journey towards sustainable growth and innovation with Canalys at MWC 2024.</p><p>We look forward to compelling discussions and remarkable networking opportunities to explore future possibilities with our global analyst team.</p><p>See you at MWC 2024 \u2013 where technology, community and commerce converge to create valuable collaborations and transformations!</p>","teamTitle":"Meet our experts at MWC 2024","bookTitle":"Meet Our<br>Experts at<br>MWC 24","bookSubtitle":"Fill out the form to book your private meeting.","bookSubmit":"Schedule Meeting","preferredDateLabel":"Preferred Date","dateOptions":["Feb 26","Feb 27","Feb 28"],"areaInterestsLabel":"Area of Interests","areaInterests":["Automotive","AR/VR","Channels","PCs","Smartphones","IoT","Sustainability and Others"],"insightTitle":"Access our latest insights","insightReportTitles":["AI-PC report","10 predictions for the technology industry in 2024","Key Trends in the Middle East","Decoding Mainland China\'s AI trends and potential in smartphones"],"form":{"submit":"Schedule Meeting","preferredDateError":"Please select a date","areaInterestError":"Please select an area of interest"}},"computex2024":{"title":"Meet us at COMPUTEX Taipei 2024","place":"4 - 7 June 2024 | Taipei Nangang Exhibition Center","action":"Schedule a meeting","introduction":"<p>Join us at COMPUTEX 2024 for exclusive access to game-changing insights and strategies designed to empower your business amid the realm of generative AI and the forefront of innovation. Benefit from expert analysis and tailored solutions to stay ahead of the competition.</p><p>Meet Canalys analysts and thought leadership at COMPUTEX 2024 to delve into the latest advancements in AI computing, mobility and innovations. Discover key regional and global market trends, insights and vendor strategies from our senior analysts.</p><p>Seize the opportunity to navigate the evolving tech landscape and drive growth for 2024 and beyond.</p><p>We look forward to compelling discussions and remarkable networking opportunities to explore future possibilities with our global analyst team.</p><p>See you at COMPUTEX 2024 \u2013 where technology, community and commerce converge to create valuable collaborations and transformations!</p>","teamTitle":"Meet our experts at COMPUTEX 2024","bookTitle":"Meet Our<br>Experts at<br>COMPUTEX 24","bookSubtitle":"Fill out the form to book your private meeting.","bookSubmit":"Schedule Meeting","preferredDateLabel":"Preferred Date","dateOptions":["June 4","June 5","June 6","June 7"],"areaInterestsLabel":"Area of Interests","areaInterests":["Automotive","AR/VR","PCs","Smartphones","IoT","Sustainability and Others"],"insightTitle":"Access our latest insights","insightReportTitles":["40% of global PC shipments to be AI-capable in 2025","NVIDIA leads the Chinese ADAS market","AI-PC report","How much potential is in the information innovation PC market in Mainland China"],"form":{"submit":"Schedule Meeting","preferredDateError":"Please select a date","areaInterestError":"Please select an area of interest"}}}'),ke=JSON.parse('{"ourcontent":{"title":"Our content","more":"Learn More"},"our-analysis":{"action":"Start a conversation","access-support":{"title":"Access and support","data":{"inquiry":"Unlimited inquiry","inquirydesc":"Direct access to analysts who respond to questions within the topic scope within 24 hours","tools":"Feature-rich tools, unlimited access","toolsdesc":"Individual access to client website, spreadsheets and published content","trend":"Trends analysis","trenddesc":"Frequent data and analysis reports produced using a strict methodology and global definitions","advice":"Conclusions and advice","advicedesc":"Insight and recommendations delivered via anal
1ytical reports and direct access to our experienced analyst team"}},"channels":{"main-title":"Expert insights on channels strategies and vendor routes to market","sub-title":"Channels Analysis","general-description":"<p>Canalys established itself on its channels research expertise. Through industry-leading analysis of technology channels worldwide, Canalys\u2019 expert analysts help the world\u2019s largest technology companies develop successful go-to-market strategies and understand the ever-changing channel landscape.</p><p>The Channels Analysis service provides a unique and comprehensive view of the key issues affecting technology product sales, marketing and distribution, helping channel managers develop better strategies that deliver desired business results. Evaluate your vendor partnership strategy with the <a href=\\"/analysis/vendor-benchmark\\"> Canalys Vendor Benchmark Analyzer</a>. The analyzer tool can help you grow your partnerships by providing key insights on how you are performing against your competitors, based on rigorous channels research.</p><p>Canalys, with its <a href=\\"/analysis/alys-partner-assessment\\"> digital assessment tool called Alys </a> and partner community, <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero</a> provides enhanced insights and suggests the kind of skill sets that exist in their partner community.</p><p><strong>
1The Channels Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Unlimited inquiry","body":"Direct access to analysts who respond to your questions in less than 24 hours within the scope of the topic."},{"header":"Feature-rich tools with unlimited access to research and analysis","body":"Corporate-wide licenses give you individual access to client websites, spreadsheets and published content."},{"header":"Channel strategy analysis and feedback","body":"Systematic quantitative and qualitative research on market trends, channel developments and overall channel performance."},{"header":"Dedicated quarterly briefings","body":"Tailored quarterly briefings to key internal stakeholders from highly experienced analysts."},{"header":"Tailored advice and recommendations","body":"Insights and recommendations are delivered via analytical reports allowing you to upgrade and improve your channel strategy."}],"overview":{"title":"Channel Analysis includes","list":["Regular analytical reports on key channel topics, channel performance and vendor go-to-market strategies","Points of View reports assess the recent performance and future strategies of top systems integrators, resellers and distributors in each region","Tailored, customized client support via our inquiry service","APAC, EMEA and North America regional services","Research agenda includes: <ul> <li>Regional channel performance</li> <li>Channel management best practice</li> <li>Key channel developments</li> <li>Channel business model evolution</li> <li>Competitive channels analysis</li> </ul>","Recent channels surveys include: <ul> <li>Channels profitability</li> <li>Business model evolution</li> <li>Readiness and growth opportunities</li> </ul>"]},"content-footer":{"title":"Why Channel analysis?","desc":"Canalys uses strategic methodology with precise insights and execution models to deliver results for the channel partners. We ensure our actionable analyses can help customers drive better channel management and internal strategic planning from top-level to deep-dive insights. Reports analyze key client priorities in the channel, such as channel management best practice, channel business model evolution and competitive channels analysis. A global team of analysts delivers it to dedicated channels across different regions around the globe. Our analysts help you identify opportunities to improve market presence and help expand the channel business."},"banner":{"title":"Discover new insights from Canalys channels analysis, feel free to start a conversation"}},"partner":{"main-title":"Delivering strategic insights and analysis on industry best practices","sub-title":"Partner Program Analysis","general-description":"<p>Canalys\u2019 Partner Program Analysis provides our user community with the best analytical technologies and solutions. This service is unrivaled in its independent analysis of the leading IT vendors\u2019 program offerings, focusing on vendors\u2019 issues when building and maintaining partner programs. It provides qualitative information designed for senior worldwide channel management within vendors from across the IT spectrum. </p><p>Partner Program Analysis is a worldwide service that analyzes partner programs and how they evolve throughout the IT industry. The service also helps identify global partner program strategies and delivers analysis of best practices around program design and implementation. Evaluate your vendor partnership strategy with the <a href=\\"/analysis/vendor-benchmark\\"> Canalys Vendor Benchmark Analyzer</a>. The analyzer tool can help you grow your partnerships by providing key insights on how you are performing against your competitors, based on rigorous channels research. </p><p>Canalys, with its <a href=\\"/analysis/alys-partner-assessment\\">digital assessment tool</a>, Alys, and partner community, <a rel=\\"noopener\\" href=\\"https://www.candefero.com/\\" target=\\"_blank\\">Candefero</a>, provides insights and illuminates the kind of skill sets that exist within the partner community. </p> <p><strong>
1The Partner Program Analysis service helps clients in many ways: </strong></p>","info-swiper":[{"header":"Ecosystem trends and strategies","body":"Learn how vendors are driving partner ecosystems and collaboration while growing subscriptions and services through partner programs."},{"header":"Competitive insights","body":"Compare vendor partner programs with industry peers and learn what partner program benefits the competition offers."},{"header":"Quarterly program updates","body":"Quarterly summary of vendor partner program changes by sub-sectors across cloud and software, infrastructure, PCs, mobility devices and cybersecurity."},{"header":"Channel best practices","body":"Get feedback from partners and learn channel best practices regarding benefits such as financial incentives, deal registration and marketing development funds to make quicker and better decisions."},{"header":"Analyst feedback","body":"Receive analyst feedback on new partner program roll-outs, strategies and messaging, ensuring they align with what drives partners today."},{"header":"Global coverage","body":"Provides coverage of vendor teams around the world with access to insights and on-demand inquiries to partner program developments."}],"overview":{"title":"Partner Program Analysis service includes","list":["Quarterly analytical reports on partner programs","Partners\u2019 perception of vendor programs","Annual partner program survey","Assessment and comparison of key partner program aspects: compensation schemes, marketing, specializations and training","Best practices and program trends","Partner program profiles <ul> <li>One report per vendor</li> <li>Consistent look</li> <li>Designed to highlight key attribute of programs</li> <li>Summary of demographics, requirements and benefits</li> </ul>"]},"content-footer":{"title":"Why Partner Program Analysis?","desc":"<p>Canalys is the only analyst firm with a single analysis solution focused on a wide range of partner programs across the different IT sub-sectors. From top-level to deep-dive insights, we ensure our actionable analysis can help customers drive better channel management and internal strategic planning. Customers can use our unlimited analyst inquiry service to answer specific questions about their channel needs. With our <a rel=\\"noopener\\" href=\\"https://www.candefero.com/\\" target=\\"_blank\\" >strong relationships with the channel community</a> , Canalys can quickly gather a broad range of in-depth partner feedback. The Partner Program Analysis service complements our Channels Analysis
1service. A global team of analysts delivers it to dedicated channels across different regions around the world. </p>"},"banner":{"title":"If you are interested in Canalys\u2019 Partner Program Analysis, feel free to start a conversation"}},"managed":{"main-title":"Discover the latest market trends and channel developments in managed services","sub-title":"Managed Services Analysis","general-description":"<p>Managed IT services are one of the most profitable revenue generators for the channel, but they are also difficult to map accurately due to their breadth and depth. To successfully deliver managed services, vendors must collaborate to design and deploy the right products for managed service providers (MSPs) to use in their mission to enable customer transformation.</p><p>Canalys\u2019 MSP Analysis is designed to help vendors understand the strategies of these managed service providers, so they can maintain go-to-market models that allow them to collaborate simply and profitably.</p><p><strong> The MSP Analysis service helps vendors in many ways: </strong></p>","info-swiper":[{"header":"Unlimited inquiry","body":"Direct access to analysts who respond to questions within the topic scope within 24 hours. "},{"header":"Feature-rich tools with unlimited access to data","body":"Corporate-wide licenses give you individual access to client websites, spreadsheets and published content. "},{"header":"Trends analysis","body":"Frequent quantitative and qualitative research on market trends and MSP developments."},{"header":"Dedicated quarterly briefings","body":"Tailored quarterly briefings to key internal stakeholders from highly experienced analysts. "},{"header":"Conclusions and advice","body":"Insights and recommendations delivered through analytical reports, which allow you to take the next steps in your managed services strategy."}],"overview":{"title":"Canalys\u2019 MSP Analysis service includes","list":["Global overview of MSP development in the IT channel","Accurate market share and vendor performance data at a global level","Regular analytical reports on key areas of managed IT services, including MSP performance, transformation in managed security services and vendor go-to-market strategies","Point of view reports assessing the strengths of vendors in developing and delivering products used by partners in their managed services businesses","Global managed services opportunity database by end-customer size and country","Channel surveys tracking the growth and development of managed IT services","Tailored client support via our inquiry service","Research agenda includes: <ul> <li>Global vendor performance tracking</li> <li>Vendor and channel best practices</li> <li>MSP developments</li> <li>MSP business model evolution</li> <li>Competitive analysis</li> </ul>"]},"content-footer":{"title":"Why MSP Analysis?","desc":"<p>The digitalization of customer businesses is moving quickly, and the channel ecosystem is transforming to deliver IT services to more complex and insecure environments. This digitalization has created a need for information on best practices from partners that are striving to solve this complexity and from vendors that want to provide technology in new models and geographies. </p> <p>MSP Analysis is a global research endeavor, tracking these developments and shaping the conversation around the new IT landscape. Our analysts are here to help you with your next move. </p>"},"banner":{"title":"Get in-depth analysis of the managed services market "}},"intelligent-vehicle":{"main-title":"Driving the future of the automotive industry with data-
1powered insights","sub-title":"Intelligent Vehicle Analysis","general-description":"<p>Explore the future of automotive with Canalys\' industry-leading Intelligent Vehicle Analysis service.</p><p>Gain detailed insights into the transformation of the global automotive market with Canalys\' industry-leading Intelligent Vehicle Analysis service. We focus on critical aspects, from brand analysis to model evaluation. With our specialized research on Electric Vehicles (EVs), new energy vehicles and intelligent vehicles, Canalys provides insightful data about car connectivity, convenience, driver assistance, and safety features.</p><p><strong>Key deliverables from the Canalys Intelligent Vehicle Analysis service</strong></p>","info-swiper":[{"header":"Corporate-wide license","body":"Get unlimited access to our client site portal."},{"header":"Quarterly forecast data","body":"Stay ahead with forecasts updated quarterly and looking five years into the future. The data covers engine type, vehicle type, ADAS level, digital cockpit platform. "},{"header":"Inquiry support","body":"Leverage unlimited access to top analysts at a corporate and regional level."},{"header":"Quarterly market presentation","body":"Receive a customized presentation amalgamating Canalys\u2019 data, qualitative insights, channel research, and views on latest trends. Tailor it to cover topics of interest."},{"header":"Ongoing qualitative analysis","body":"Obtain reports on market trends, vendor strategies, industry event takeaways, forecast assumptions, and more."},{"header":"Intelligent Vehicle Market Tracker","body":"Covering 20+ markets with quarterly estimates of model, trim-level, vehicle classification, type, digital cockpit platform, cellular connectivity, and ASP/value."}],"overview":{"title":"Intelligent Vehicle Analysis includes","list":["Detailed insights into leading Original Equipment Manufacturers (OEMs) and brands by model family: <ul><li>Electrification: Details on ICE/BEV/PHEV, battery size, and range</li><li>ADAS: Information on level of autonomy and ADAS computing platform</li><li>Digital Cockpit: In-depth data on OS platform, chipset, smartphone mirroring, display details </li><li>Connectivity: Latest trends on 4G/5G connectivityRegional and country coverage (model level)</li></ul>","We cover regional and country-specific trends at model level in areas including: <ul><li>APAC: Australia*, Japan*, South Korea*, India, Southeast Asia, Rest of APAC.</li><li>Greater China: People\u2019s Republic of China*, Rest of Greater China. </li><li>North America: United States*, Canada*. </li><li>EMEA: Germany*, UK*, France*, Rest of Western Europe, Central and Eastern Europe, MEA. </li><li>LATAM: Latin America.</li></ul>"]},"revolutionize-title":"Revolutionize your decision-making","revolutionize-desc":"Our service empowers various stakeholders such as technology vendors, automotive OEMs, tier-one suppliers, service providers, and automotive ecosystem players to make informed decisions. From corporate strategy, product planning, product marketing to local strategy for the uptake of EVs and associated features, our data and forecasts are the essential guide to your success. ","research-topics-title":"Research topics and methods","r-topic1-tile":"Competitive Landscape","r-topic1-desc":"Gain an edge with our deep dive into the competitive landscape: OEM, brand and model details, market shares by country, strategies revolving around EV platform, digital cockpit, connectivity, supply chain/GTM, and ADAS. Navigate your strategy with precision and insight.","r-topic2-tile":"Market Opportunities","r-topic2-desc":"Explore new entrant launches, innovative business models, local market trends, EV penetration data, domestic versus global brand analysis, governmental support for EV, and infrastructure and ecosystem information. Discover untapped potential in the evolving automotive landscape.","r-topic3-tile":"Inquiries and a More Direct Approach","r-topic3-desc":"Connect and engage directly with our experts for unlimited inquiry service, event feedback, consumer research insights, and more, all through our dedicated client portal.","r-topic4-tile":"Sizing, Forecasts, Analysis, Planning","r-topic4-desc":"Stay ahead with our comprehensive data coverage featuring quarterly shipment estimates, analysis of over 50+ car OEMs/brands, region-s
1pecific trends, electrification and intelligence data, annual forecasts, and more.","whycanalys-title":"Why Canalys?","whycanalys-desc":"Canalys is renowned for delivering cutting-edge insights and market intelligence in the technology sector. Our expertise, drawn from decades of experience, places us in a unique position to analyze and interpret the swiftly evolving automotive market. We couple this with our robust research methodologies and a dedicated team of global analysts to ensure you receive insights that are not only comprehensive but also actionable.","whycanalys-content1":"<strong>Unparalleled expertise: </strong>Our analysts possess deep domain knowledge of the automotive industry, especially in areas such as electrification, autonomous driving, and connected cars. We go beyond the surface to understand the intricacies of the market, the players, and the evolving trends.","whycanalys-content2":"<strong>Global reach, local insights : </strong>With a broad yet detailed global view, we cover key regions with granularity, understanding the nuances that distinguish one market from another. Our global presence empowers us to deliver precise, localized insights, offering you the knowledge you need to strategize effectively.","service-title":"Why the Canalys Intelligent Vehicle Analysis Service? ","service-desc":"The Canalys Intelligent Vehicle Analysis Service goes beyond the typical market research product. It\'s a tailored solution designed to empower businesses with the tools they need to make informed decisions and stay competitive in the rapidly changing automotive landscape. ","service-foot":"In a fast-paced, ever-evolving sector like automotive, Canalys and the Canalys Intelligent Vehicle Analysis Service serve as a beacon, guiding you with reliable insights and data, helping you drive towards success. ","s-service1-title":"Comprehensive data coverage","s-service1-desc":"From OEM-specific data to electrification and connectivity trends, we cover a wide spectrum of crucial areas. We ensure you\'re fully equipped with all the data necessary to understand the market and define your strategy.","s-service2-title":"Future-focused forecasts","s-service2-desc":"Our service is not just about understanding the present; we help you prepare for the future. By forecasting key aspects of the market such as EV penetration and the growth of ADAS, we enable you to anticipate changes and position yourself optimally.","s-service3-title":"Direct access to analysts","s-service3-desc":"At Canalys, we value the importance of direct communication. Hence, our service includes unlimited access to our top analysts, ensuring that any query or clarification you might have is answered promptly and thoroughly.","s-service4-title":"Tailored Approach","s-service4-desc":"Our approach isn\'t one-size-fits-all; we understand that every business has unique needs and objectives. Therefore, we customize our presentations and insights to align with your specific interests, providing you with a truly personalized service.","banner":{"title":"The rise of Chinese automakers","desc":"Discover the opportunities and challenges faced by automakers and supply chains.","action":"Read the report"}},"it-opportunity":{"main-title":"Discover market growth opportunities with an interactive dashboard and high-quality analysis","sub-title":"Global IT Opportunity Analysis","general-description":"<p>In the ever-evolving landscape of information technology (IT), understanding the vast potential and seizing growth opportunities is essential for industry leaders and decision-makers. Canalys\u2019 IT Opportunity Analysis is a unique and comprehensive offering that provides a deep dive into the total addressable market. Through an intuitive interactive dashboard, clients gain instant access to historic IT spending estimates and short-term forecasts for eight key categories and 20 technology segments across 49 market geographies.</p><p><strong>The IT Opportunity Analysis helps clients in many ways:</strong></p>","info-swiper":[{"header":"Unlimited inquiry","body":"Direct access to analysts who respond to questions related to the topic within 24 hours."},{"header":"Feature-rich tools and an interactive dashboard with unlimited access to data","body":"Corporate-wide licenses give you individual access to client websites, interactive dashboards, spreadsheets and published content."},{"header":"Trends analysis","body":"Frequent quantitative and qualitative research on market trends and new market opportunities."},{"header":"Dedicated quarterly briefings","body":"Tailored quarterly briefings to key internal stakeholders from highly experienced analysts."},{"header":"Conclusions and advice","body":"Insights and recommendations are delivered through analytical reports, which allow you to take the next steps in the total addressable market."}],"overview":{"title":"Global IT Opportunity Analysis includes","list":["<ul><li>Total addressable IT market categories:<ul style=\'list-style-type: \'><li>Client computing, imaging and printing</li><li>
1Infrastructure</li><li>Components and peripherals</li><li>Cybersecurity</li><li>Unified communications</li><li>Software</li><li>IT services</li><li>Telecommunications services</li></ul></li><li>Analysis of 20 technology and services segments</li><li>Over 49 markets covered</li><li>Market sizing by routes-to-market</li><li>Market sizing by end user (micro, small, medium and large organizations)</li><li>Short-term forecasts by market, segment, route-to-market and end user</li><li>Regular and ad-hoc analytical reports on the state of the technology industry</li><li>Business demographics</li></ul>"]},"revolutionize-title":"Revolutionize your decision-making process","revolutionize-desc":"Our service emphasizes understanding the vast potential and seizing growth opportunities is essential for industry leaders and decision-makers. The research guides channel leaders, product planning and product marketing to finding growth regions and opportunities in the channel, backed by our data and forecast, to sail through the challenging market dynamics.","whycanalys-title":"Why Global IT Opportunity Analysis?","whycanalys-desc":"Delving deeper into the total addressable, serviceable available and serviceable obtainable markets is crucial for industry leaders and decision-makers to support their strategies. Canalys provides a comprehensive view of the entire IT landscape, routes-to-market and end user trends. The service deliverables include annual total addressable market estimates and forecasts updated each quarter, and research reports analyzing the health of the technology industry. Customers can use our unlimited analyst inquiry service to answer specific questions about their market-sizing needs","banner":{"title":"Seize your IT opportunities today! Unleash the power of IT Opportunity Analysis","action":"Unlock Growth Potential"}},"vendor-benchmark":{"main-title":"Vendor Benchmark Analyzer","sub-title":"Find out what your partners are thinking","general-description":"<p>Accelerate your growth by helping your partners grow with the Canalys Vendor Benchmark Analyzer - a key feature of the Canalys <a href=\'analysis/channels\'>Channels</a> and <a href=\'analysis/partner-program\'>Partner Program Analysis</a> services. The VB Analyzer collates channel partners\u2019 experiences of working with vendors and other partners and allows for easy cross-comparison. It is a simple, comprehensive and insightful benchmarking tool for evaluating the companies you work with. </p><p>The Canalys Vendor Benchmark Analyzer tool can help you grow your partnerships by providing easy-to-understand information about how you are performing against your competitors, based on rigorous channels research. </p><p>The newly enriched VB Analyzer shows the strengths and weaknesses of each partner across three major categories of channel management and 12 key areas:</p>","cards":[{"header":"Programs and enablement","list":"<ul><li>Training</li><li>Marketing</li><li>Tech support</li><li>Accreditations</li></ul>"},{"header":"Sales engagement","list":"<ul><li>Leads</li><li>Margin</li><li>Pricing</li><li>Growth opportunities</li></ul>"},{"header":"Partner experience","list":"<ul><li>Account management</li><li>Portals</li><li>Channel commitment</li><li>Ease of doing business</li></ul>"}],"cards-footer":"Vendor scores are determined by two important factors: an average across the 12 key topics and the recency of vendor feedback. Evaluation of your performance in the channel can be gathered by three primary routes:","primary-routes-list":"<ul><li><strong>Partner portal integration:</strong> Embed the partner interface into your existing partner portal</li><li><strong>Campaign drive:</strong> The portal provides a unique link that can be used to send campaigns via your network channels</li><li><strong>Candefero:</strong> Capture responses via Canalys\u2019 exclusive online global channel community</li></ul>","overview":{"title":"How can you use the tool?","description":"<p>Your VB Analyzer dashboard is structured into tabs, giving you an overall visual representation of its insights. Interactive dashboards and new features are released regularly so that you and your partners can deliver consistent performance across the supply chain.</p>","keytabs":"The dashboard offers the following key data tabs: ","keytabs-list":{"summary":"<p><strong>Summary: </strong>See top-level insights, such as current scores and trends over time.</p>","analytics":"<p><strong>Analytics: </strong>Get detailed breakdowns across key areas, such as category breakdowns, partner-level details and geographic insights.</p>
1","ratings":"<p><strong>Ratings and reviews: </strong>Read and respond to the ratings that partners have given you.</p>","demographics":"<p><strong>Demographics: </strong>Capture key demographic information from partners that have given feedback.</p>","comparison":"<p><strong>Comparison tool: </strong>Compare your scores with those of your peers across the industry.</p>"}},"video-heading":"How does Canalys help vendors track channel partner performance?","video-content":"Listen to <a href=\'/about/meet-us/Alex_Smith\'>Alex Smith, VP Channels</a>, Canalys, in conversation with <a href=\'/about/meet-us/Steven_Kiernan\'>Steven Kiernan, Senior Director</a> Worldwide Sales, explaining how the Canalys Vendor Benchmark tracks the experiences the channel partners have when working with different vendors, on what parameters they are scored and how they can strategize better to improve their partner performance.","ignite":"Ignite your channel partner strategy with","banner":"Find out what your partners are thinking and grow your business with the unique Canalys Vendor Benchmark Analyzer.","cta-getStarted":"Get started"},"cloud":{"main-title":"Highly detailed quarterly data and forecasts for all cloud channels","sub-title":"Cloud Ecosystems Analysis","general-description":"<p>Businesses are undergoing a rapid digital transformation due to fundamental changes in workplace and consumption habits; most companies are turning to the cloud to help manage this transition. Yet governance, compliance and cybersecurity, and the complexity of multi-cloud and hybrid IT models are also influencing adoption trends. Analysis of the development of cloud business models is of utmost importance for channel partners and vendors.</p><p>Canalys\u2019 Cloud ecosystems analysis is a unique global service analyzing the rapidly growing IaaS and SaaS cloud business models, providing timely quarterly data on the adoption of cloud services and the performance of the leading cloud service providers. The service is supported by channel insights on the development of partner ecosystems and go-to-market models, built on Canalys\u2019 strong foundation in channels research.</p><p><strong>
1The Cloud Ecosystems Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Go-to-market analysis","body":"Gain unrivalled insight into the rapidly evolving channels to market for cloud, including marketplaces, distribution, ecosystem partnerships and managed services."},{"header":"Feature-rich tools with unlimited access to research and analysis","body":"Corporate-wide licenses give you individual access to client websites, spreadsheets and published content."},{"header":"Market sizing","body":"Understand the dynamics of public cloud markets, with quarterly tracking of global IaaS and SaaS cloud services, split by vendor, market share, country, channel and forecasts."},{"header":"Competitive insights and best practice","body":"Learn the strategic direction and priorities of the leading cloud providers, delivered via analytical reports and presentations that provide insights into the latest developments, sales performance and go-to-market."},{"header":"Tailored advice and recommendations","body":"Insight and recommendations delivered to key stakeholders by highly experienced analysts, which help you take the next steps in your strategy."}],"overview":{"title":"Cloud Ecosystems Analysis includes","list":["Quarterly tracking of the value of IaaS and SaaS cloud services performance and market shares by vendor","Quarterly forecasts","Assessment of the strategies and go-to-market models of the leading cloud providers","Cloud go-to-market strategies: ecosystem/partnership models, marketplaces, distribution and more","Point of View reports evaluating the performance and approach of the leading cloud providers","Candefero channel partner surveys: cloud adoption/new business models, performance/profitability, and channel perception of cloud provider/vendor strategies","Issued reports addressing key client priorities in the channel, responding to industry developments and cloud go-to-market best practice","Quarterly market performance presentations and analysis of key developments"]},"content-footer":{"title":"Why Cloud Ecosystems Analysis?","desc":"Canalys ensures data and analysis are available faster than any other industry analyst company. The data has detailed splits, tracking all the features around the IaaS and SaaS cloud services performance and market shares by vendor. The service builds on Canalys\u2019 unique channels research to include vendors\u2019 data on tier-one and tier-two sales channels. And service deliverables include quarterly market performance presentations and analysis. Key developments of market performance overviews and research reports covering vendors\u2019 go-to-market strategies and vertical and product development updates are also available."},"banner":{"title":"Get in-depth analysis of the top cloud channel vendors."}},"infrastructure":{"main-title":"Highly detailed quarterly data and forecasts for all infrastru
1cture","sub-title":"Infrastructure Analysis","general-description":"<p>Infrastructure Analysis is a unique service from Canalys that offers route-to-market and end-user shipment insights into the world\u2019s leading IT infrastructure vendors, helping them improve their infrastructure and market strategies. The Infrastructure Analysis service has been developed to provide clients with a single quarterly comprehensive database giving a consistent view of vendor performance across servers, storage and networking by country, channel and end user. The service helps vendors enhance their technologies and optimize their infrastructure to provide a better, faster experience for end users. </p><p><strong>The Infrastructure Analysis service helps clients in many ways: </strong></p>","info-swiper":[{"header":"Go-to-market","body":"Learn best practices for go-to-market models across regions and markets, with a focus on vendors\u2019 market and product strategies."},{"header":"Market sizing","body":"Understand the size of the market and identify different market and channel opportunities with reliable and comprehensive data. "},{"header":"Industry trends","body":"Distinguish actual industry trends from hype, and understand the latest industry developments, including analyses of vendors performance, market conditions and new technologies."},{"header":"Market dynamics","body":"See the industry changes and technology shifts that influence market dynamics with coverage by our team of global analysts."},{"header":"Vendor performance","body":"Quarterly insights into key technology market trends, vendor performance and more."}],"overview":{"title":"Infrastructure Analysis service includes","list":["Technology categories covered: <ul> <li>Servers (industry standard and non-industry standard)</li> <li>Storage</li> <li>Networking (campus switching, data center switching, wireless LANs, enterprise routers and service provider routers) </li> </ul>","Over 36 markets covered","Shipment estimates by 30+ vendors","Shipment estimates by channel type","Shipment estimates by end user (micro, small, medium and large companies)","Short-term quarterly shipment forecasts by country","Long-term five-year shipment forecasts by country","Regular and ad-hoc analytical reports on the infrastructure market: <ul><li>Vendor performance index reports</li><li>Vendor insight updates</li><li>Channel opportunity reports</li> </ul>","Infrastructure forecasts and channel opportunities","Business demographics"]},"content-footer":{"title":"Why Infrastructure Analysis?","desc":"At Canalys, we ensure data and analysis are available faster than any other industry analyst firm. The data offers detailed splits, tracking a range of criteria for servers, storage, end users and many other different categories. The service also builds on Canalys\u2019 unique channels research to include data on vendors\u2019 tier-one and tier-two sales channels. The service deliverables include quarterly infrastructure shipment and forecast data, regional and top-market performance overviews, and research reports covering vendors\u2019 go-to-market strategies, vertical trends and product development updates."},"banner":{"title":"Get in-depth analysis of the top infrastructure vendors"}},"cybersecurity":{"main-title":"Highly detailed quarterly data and forecasts for all cybersecurity","sub-title":"Cybersecurity Analysis","general-description":"<p>The cybersecurity vendor ecosystem remains highly fragmented and is constantly in a state of change, with new technologies emerging to counter evolving threats and vulnerabilities. Canalys\' Cybersecurity analysis is a comprehensive service that offers qualitative and quantitative analysis on route-to-market, end-user and technology deployment for the leading cybersecurity vendors, and insights into new emerging vendors. Canalys provides competitive intelligence information across six security segments: endpoint security, network security, data security, web and email security, vulnerability and security analytics, and identity access management. Quarterly deliverables focus on identifying and analyzing the latest cybersecurity market, vendor trends, and providing updates to the segment\'s short-term quarterly and longer-term five-year forecasts</p><p><strong>
1The Cybersecurity Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Go-to-market","body":"Understand routes-to-market across six cybersecurity segments, regions, and markets to highlight the differences by tier and key channel categories such as MSSPs."},{"header":"Market Sizing","body":"Comprehensive market sizing, identifying different segments and channel opportunities with reliable and complete data."},{"header":"Industry Trends","body":"Gain insights into industry trends, including analysis of vendor performances, market conditions and emerging technologies."},{"header":"Market dynamics","body":"See the industry changes and technology shifts that influence market dynamics with coverage by a team of global analysts."},{"header":"Emerging vendors","body":"Quarterly insights into the funding of pre-IPO cybersecurity firms to understand the next generation of vendors and technologies."}],"overview":{"title":"Cybersecurity Analysis includes","list":["Cybersecurity technology categories covered: <ul> <li>Endpoint security</li><li>Network security</li><li>Data security</li><li>Web and email security</li><li>Vulnerability and security analytics</li><li>Identity access management</li> </ul>","Over 55 markets covered","Shipment estimates by 40+ vendors","Shipment estimates by channel type","Shipment estimates by end-user (micro, small, medium, and large)","Short-term quarterly shipment forecasts by country","Long-term five-year shipment forecasts by country","Canalys Cybersecurity Leadership Matrix","Tracking of merger and acquisition activity of the leading vendors","Quarterly insights into funding of pre-IPO cybersecurity vendors","Regular and ad-hoc analytical reports on the cybersecurity market: <ul> <li>Vendor performance index reports</li><li>Vendor insight updates</li><li>Channel opportunity reports</li> </ul>","Business demographics","Uncapped inquiry facility"]},"content-footer":{"title":"Why Cybersecurity analysis?","desc":"Canalys provides a comprehensive view of the cybersecurity landscape, with insights into the leading vendors, emerging technologies and their routes to market. We ensure our actionable analyses can help vendors drive better channel management and internal strategic planning from top-level to deep-dive insights. Customers can use our unlimited analyst inquiry service to answer specific questions around their channel needs. With our strong relationships with the channel community, Canalys can gather a quick turnaround of partner feedback. A global team of analysts delivers it to dedicated vendors across different regions around the globe."},"banner":{"title":"Get our free report for the cybersecurity ecosystem in 2023","action":"Get the report"}},"smartphone":{"main-title":"Highly detailed quarterly data and forecasts for all mobile phone categories","sub-title":"Smartphone Horizon Service","general-description":"<p>Canalys\u2019 Smartphone Horizon service has been a cornerstone for the mobility industry for nearly two decades. It offers a unique view of the worldwide smartphone market with accurate, reliable and detailed data.</p><p>Canalys\u2019 exclusive smartphone shipment tracking database is delivered via an innovative, in-house advanced digital delivery tool that enables you to download the necessary data at any time, from any location and in any format. We combine this with Canalys\u2019 unique expertise along with direct channels research to provide a detailed view of routes-to-market dynamics and end-user demand.</p><p><strong>The Smartphone Horizon Service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Globally integrated analyst team","body":"We have expert analysts in our offices all around the world."},{"header":"Advanced digital tools for data collation","body":"The most granular and detailed vendor information in the industry, delivered by our advanced digital tooling and market source collation technology."},{"header":"Unique channel-level insights","body":"Candefero, an online forum of channel partners, fully owned and operated by Canalys, provides unique insights that nobody else in the industry can offer. "},{"header":"Serving the world\u2019s top technology companies","body":"Four of the world\u2019s five largest tech companies are clients of Canalys smartphone research. "},{"header":"Direct access to analysts for unlimited inquiry","body":"Direct access to analysts who respond to questions within 24 hours of your inquiry."}],"overview":{"title":"Canalys\u2019 Smartphone Horizon service includes","list":["Smartphone shipments by units, value and price band","Market shares by vend
1or, model, country/region and OS","Channel and end-user category splits","We track 35+ features, including battery capacity, display technology, dual-SIM, fast charging, fingerprint scanner, iris scanner, network generation, OS version, price band, primary camera megapixels, processor cores, processor speed band, processor vendor, RAM, screen size, AR/VR platform and more","We deliver detailed data sets for analyzing market sizing, addressable market forecasting and vendor/product performance by using consistent definitions and a rigorous methodology","Our analyst inquiry service goes far beyond tracking the data to provide key insights and recommendations through reports","We analyze and identify the trends in competitor initiatives, market performance, and technological and channel strategy developments"]},"content-footer":{"title":"Why Smartphone Horizon Services?","desc":"Canalys\u2019 Smartphone Horizon service provides a complete country-level view of shipment estimates far in advance of our competitors. We provide quarterly market share data, timely historical data tracking, detailed analysis of storage, processors, memory, cameras and many other specs. We combine detailed worldwide statistics for all categories with Canalys\u2019 unique data on shipments via tier-one and tier-two channels. The service also provides a unique view of end-user type. At the same time, we deliver regular analysis to give insights into the data, including the assumptions behind our forecast outlooks."},"banner":{"title":"Get in-depth analysis of all the vendors and their impact on the worldwide smartphone market","subtitle":"Benchmarking the strategies of the top companies in the worldwide smartphone market"}},"pc":{"main-title":"Highly detailed quarterly data and forecasts for all PC categories","sub-title":"PC Horizon Service","general-description":"<p>Canalys\u2019 global PC Horizon service offers a unique view of the entire client PC market, with sound methodology-driven shipment estimates and forecasts for desktops, notebooks and tablets. We combine this with unique expertise and direct channels research Canalys\u2019 <a href=\\"/analysis/channels\\">Channel Analysis</a> service to provide a detailed view of routes-to-market dynamics and end-user demand.</p> <p>Canalys\u2019 proprietary PC shipment tracking database is delivered via an innovative, in-house advanced digital delivery tool that allows you to download the required data at any time, from any location and in any format. At Canalys, we deliver the most detailed and accurate data for the client PC market, with shipment estimates and forecasts for desktops, notebooks, tablets and two-in-ones.</p><p><strong>The PC Horizon service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Innovative market sizing","body":"Canalys\u2019 advanced digital tooling and market source collation technology delivers highly accurate PC market sizing."},{"header":"Latest industry trends analysis","body":"Unlike the competition, our analysis has been built ground-up to support intelligence about trends, such as connected PCs, gaming-capable PCs, ultra-slims and even secure PCs."},{"header":"Market-based historical and forecast indexes","body":"Canalys provides regional and market-based vendor indexes (slide decks) that help clients to absorb all our data quickly for better top-level understanding."},{"header":"Unique channel-level insights","body":"Candefero, an online community of channel partners fully owned by Canalys, provides unique insights."},{"header":"Installed base estimates and forecasts","body":"An industry first, Canalys publishes quarterly updated installed base estimates of PCs by different categories to help OEMs and platform vendors measure the total addressable market accurately."},{"header":"Digital data delivery with customizable APIs","body":"Canalys creates customized APIs for your organization to deliver real-time data so that you always have the latest numbers."}],"overview":{"title":"Canalys\u2019 PC Horizon Service includes","list":["Desktop, notebook, tablet and workstation shipment estimates by model covering 50+ specs","Offered in 52+ markets across seven sub-regions","The latest specs, including CPU and GPU for Intel, Nvidia, Qualcomm, AMD, Apple and more","Accurate value tracking via sell-through pricing for usable revenue analysis","Global Chromebook shipment estimates by vend
1or broken down in 20+ core markets ","Additional splits by channel (ecommerce, store, reseller, systems integrator and more); end user (consumer, micro, small, medium, large, enterprise, government, education) shipment estimates","Two-year quarterly and five-year annual forecasts by category, platform and end user (commercial/consumer)","Additional forecast splits by screen size and price band across all categories for granular and targeted analysis","Installed base estimates and forecasts by category and platform (Android, macOS, iPadOS, Windows, Linux) ","Unlimited inquiries with a 24-hour response time","A range of accessible analysis: strategy outlooks, vendor performance indexes, country profiles and forecast summaries and assumptions"]},"content-footer":{"title":"Why PC Horizon Service?","desc":"Canalys\u2019 PC Horizon service gives a complete country-level view of shipment estimates far in advance of our competitors. It provides quarterly market share data, timely historical data tracking, detailed analysis of CPU share, storage and memory, among other specs. We combine detailed worldwide statistics for all categories with Canalys\u2019 unique data on shipments via tier-one and tier-two channels. The service also provides a unique view of end-user type. At the same time, we deliver regular analysis to give insights into the data, including the assumptions behind our forecast outlooks."},"banner":{"title":"Get in-depth analysis of all the vendors and their impact on the worldwide PC market","subtitle":"Benchmarking the strategies of the top companies in the worldwide PC market"}},"wearable":{"main-title":"Highly detailed quarterly data and forecasts for all wearable band","sub-title":"Wearable Band Analysis","general-description":"<p>Global wearable technology shipments are growing fast. Advances in technology have seen wristwatches and smartwatches take over from basic bands. Vendors are attempting a big generational leap in smartwatch technologies, striving to improve their products\u2019 user interfaces, battery life, charging and types of sensors, and to broaden their ecosystems of health and fitness services.</p><p>Canalys\u2019 <strong>Wearable Band Analysis </strong> service provides qualitative and quantitative insights into the wearable band market and addresses the areas where vendors can improve. Our best-in-class service guides vendors and partners to make the right decisions on value propositions, choose the right channel partners and enhance go-to-market strategies to engage in different markets worldwide.</p><p><strong>
1The Wearable Band Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Go-to-market","body":"Learn best practices for go-to-market models across regions and markets, with a focus on vendors\u2019 market and product strategies."},{"header":"Market sizing","body":"Understand the size of the market and identify different market and channel opportunities with reliable and comprehensive data."},{"header":"Industry trends","body":"Distinguish actual industry trends from hype, and understand the latest industry developments, including new device launches, modern technologies and innovative features."},{"header":"Market dynamics","body":"See the industry changes and technology shifts that influence market dynamics with coverage by a team of global analysts."},{"header":"Ecosystem strategies and Use cases","body":"Realize the potential of a robust ecosystem strategy by benchmarking against market leaders and exploring critical vertical use-cases."}],"overview":{"title":"Wearable Band Analysis includes","list":["Device categories covered: <ul> <li>Basic bands</li> <li>Basic watches</li> <li>Smartwatches</li> </ul>","Over 30 markets covered","Shipment estimates by 20+ vendors","40+ models and specifications","Shipment estimates by channel type and channel group","Shipment estimates by end-user transaction (online/offline)","Five-year shipment forecasts by country","Five year installed base forecasts by country","Regular and ad-hoc analytical reports on the wearable band market: <ul> <li>Wearable band market overviews</li> <li>Wearable band vendor strategy outlooks</li> <li>Channel development updates</li> <li>Key takeaways from significant events, such as IFA, CES and MWC.</li></ul>"]},"content-footer":{"title":"Why Wearable Band Analysis?","desc":"At Canalys, we ensure data and analysis is available faster than any other market research agency. The data has detailed splits, tracking a list of 50+ features around connectivity, components, sensors, chipsets and many other different categories. Model-level information is available for 30+ key markets. The service also builds on Canalys\u2019 unique channels research to include data on vendors\u2019 tier-one and tier-two sales channels. The service deliverables include wearable band quarterly shipment and forecast data, regional and top-market performance overviews, and research reports covering vendors\u2019 go-to-market strategies, vertical and use case analysis, and product development updates."},"banner":{"title":"Get in-depth analysis of the wearable band market"}},"speaker":{"main-title":"Highly detailed quarterly data and forecasts for all smart speakers","sub-title":"Smart Speakers Analysis","general-description":"<p>Among the various elements that make up the smart home, smart speakers have picked up tremendous momentum in a short space of time, bringing exciting potential to our intelligent future.</p><p>Factors driving the smart speaker market include advances in audio technology, a rising number of smart homes with wireless technology, increasing penetration of smartphones and smart devices, and product innovation with the integration of modern technologies and services, all areas in which Canalys analysts have significant expertise garnered over the last two decades.<p>Canalys studies the market in the face of changing global trends. Canalys\u2019 <strong>Smart Speaker Analysis</strong> service provides qualitative and quantitative insights into the smart speaker and smart display markets. It guides vendors and partners to make the right decisions on value propositions, choose the right channel partners and sell on the appropriate platforms to engage in different markets around the world.</p><p ><strong>The Smart Speaker Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Go-to-market","body":"Learn best practices for go-to-market models across regions and markets, with a focus on vendors\u2019 market and product strategies."},{"header":"Market sizing","body":"Understand the size of the market and identify different market and channel opportunities with reliable and comprehensive data."},{"header":"Industry trends","body":"Distinguish actual industry trends from hype, and understand the latest industry developments, including new device launches, modern technologies and innovative features."},{"header":"Market dynamics","body":"See the industry changes and technology shifts that influence market dynamics with coverage by a team of global analysts."},{"header":"Ecosystem strategies","body":"Realize the potential of a robust ecosystem strategy by benchmarking against market leaders and exploring critical vertical use-cases."}],"overview":{"title":"Smart Speaker Analysis includes","list":["Smart Speaker quarterly shipment estimates by model and spec for 20+ vendors","Over 30 markets covered","Five-year forecasts by year, platform, display and country, updated quarterly","Five-year installed base forecasts by year and country, updated quarterly","Vendor product and marketing strategies","Analytical reports covering key announcements and industry changes","Supply and demand value chain","Design your service"]},"content-footer":{"title":"Why Smart Speaker Analysis?","desc":"At Canalys, we ensure data and analysis is available faster than any other market research agency. The data has detailed splits, tracking a list of 20+ vendors. Model-level information is available for 30+ key countries. The service also builds on Canalys\u2019 rigorous research methods to include data on vendors\u2019 shipments and specifications. The service deliverables include smart speaker quarterly shipment and forecast data, regional and top-market performance overviews, and research reports covering vendors\u2019 go-to-market strategies, vertical and use case analysis, and product development updates."},"banner":{"title":"Get in-depth analysis of the smartphone speakers","subtitle":"Bench marking strategy of the top companies in smart speaker market"}},"audio":{"main-title":"Highly detailed quarterly data and forecasts for all smart personal audio","sub-title":"Smart Personal Audio Analysis","general-description":"<p>Personal audio is evolving rapidly. Smart personal audio devices \u2013 wireless earphones, headphones and True Wireless Stereo (TWS) \u2013 allow individual interaction with smart assistants via voice and intelligent sensors.</p><p>Canalys studies the market in the face of changing global trends. Canalys\u2019 <strong>Smart Personal Audio Analysis</strong> is a service that provides qualitative and quantitative insight into the market for smart personal audio devices. It guides vend
1ors and partners to make the right decisions on value propositions, choose the right channel partners and sell on the appropriate platforms to engage in different markets worldwide. </p> <p><strong>The Smart Personal Audio Analysis service helps clients in many ways:</strong></p>","info-swiper":[{"header":"Go-to-market","body":"Learn best practices for go-to-market models across regions and markets, with a focus on vendors\u2019 market and product strategies."},{"header":"Market sizing","body":"Understand the size of the market and identify different market and channel opportunities with reliable and comprehensive data."},{"header":"Industry trends","body":"Distinguish actual industry trends from hype, and understand the latest industry developments, including new device launches, modern technologies and innovative features."},{"header":"Market dynamics","body":"See the industry changes and technology shifts that influence market dynamics with coverage by a team of global analysts."},{"header":"Ecosystem strategies and use cases","body":"Realize the potential of a robust ecosystem strategy by benchmarking against market leaders and exploring critical vertical use-cases."}],"overview":{"title":"Smart Personal Audio Analysis includes","list":["Smart personal audio quarterly shipment estimates by individual model and spec for 15+ vendors","Over 30 markets covered ","Five-year forecasts by vendor, platform, category and models, updated quarterly","Five-year installed base forecasts by year and country, updated quarterly","Vendor product and marketing strategies\u200b","Analytical reports covering key announcements and industry changes\u200b","Supply and demand value chain\u200b","Design your service\u200b"]},"content-footer":{"title":"Why Smart Personal Audio Analysis?","desc":"At Canalys, we ensure data and analysis are available faster than any other market research agency. The data has detailed splits, tracking a list of 15+ vendors. Model-level information is available for 30+ key countries. The service also builds on Canalys\u2019 rigorous research methods to include data on vendors\u2019 shipments and specifications. The service deliverables include smart personal audio quarterly shipment and forecast data, regional and top-market performance overviews and research reports covering vendors\u2019 go-to-market strategies, vertical and use case analysis and product development updates."},"banner":{"title":"Get in-depth analysis of the smart personal audio devices market","subtitle":"Benchmarking strategies of the top companies in the smart personal audio devices market"}},"sustainable":{"main-title":"Assisting vendors channel strategies to enable a more sustainable future","sub-title":"Sustainable Channels Analysis","general-description":"<p>Environmental, social and governance (ESG) goals have become a core part of vendors\u2019 KPIs. While a focus on environmental sustainability creates business value, investors and organizations are starting to realize the importance of the non-financial benefits. The technology industry is facing up to its role and responsibilities in addressing climate change. An ESG focus also provides greater purpose and meaning to employees and partners.</p> <p>Sustainability initiatives and legislation continue to vary widely around the world. For vendors to successfully achieve their goals, they must develop messaging and drive action with their channel partners and customers. The process works both ways, with customers turning to their suppliers to help meet ESG goals. The <b>
1Canalys Sustainable Channels Analysis service</b> is designed to help IT vendors assess key sustainability channel trends among their competitors, and across the channel and customers. Through our research and surveys via <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">our community of channel partners</a>, Canalys analysts help vendors assess trends, regional and country developments, and channel partner opinions to make the right investments. This is all delivered through analyst reports, presentations and our inquiry service. <p>Canalys is a world leader in researching how vendors, partners and customers are addressing ESG issues. We believe that every individual and every organization can play a part in helping the planet toward a sustainable future, whether large or small. In 2022, we launched the <a href=\\"/sustainable-channels\\" >Canalys Sustainable Channels Initiative</a> the basis of which was building a network of sustainability-focused partners. </p><p><b>The Sustainable Channels Analysis service helps vendors in many ways: </b></p>","info-swiper":[{"header":"Unlimited inquiry","body":"Direct access to analysts who respond to questions within the topic scope within 24 hours."},{"header":"Sustainability Leadership Matrix","body":"See which vendors are leading in their sustainability efforts."},{"header":"Trends analysis","body":"Frequent quantitative and qualitative research on ESG trends and developments affecting the IT industry."},{"header":"Dedicated quarterly briefings","body":"Tailored quarterly briefings to key internal stakeholders from highly experienced analysts."},{"header":"Conclusions and advice","body":"Insights and recommendations delivered through analytical reports, which allow you to take the next steps in your ESG investments and goals focused on the channel."}],"overview":{"title":"Canalys\u2019 Sustainable Channels Analysis
1service includes","list":["Global overview of sustainability developments in the IT channel.","Regular analytical reports on key areas, including vendor sustainability channel strategies, key channel partner and distributor sustainability activities, market development and regulatory analysis.","Channel surveys tracking the growth and development of sustainability initiatives focused on the channel.","Sustainability Leadership Matrix.","Tailored client support via our inquiry service.","Research agenda includes: \u200b<ul><li>Global vendor performance tracking.</li><li>Vendor and channel best practices.</li><li>Country sustainability maturity index.</li><li>Sustainable channel developments.</li><li>Sustainable channel business model evolution.</li><li>Competitive analysis.</li></ul>"]},"content-footer":{"title":"Why Sustainable Channels Analysis?","desc":"<p>The environmental sustainability landscape for the technology industry is evolving quickly, driven by government legislation, customer demand and growing societal pressures. Investors and organizations are starting to realize the importance of environmental sustainability. But end-user awareness and receptiveness continue to vary widely around the world. Many countries remain underdeveloped in terms of sustainability. But this is changing, with certain countries now starting to gather pace. The indirect channel will play a vital role in delivering a more sustainable future for the businesses they serve. </p><p>
1The Canalys Sustainable Channels Analysis service tracks the trends shaping the conversation around this new landscape. Our extensive research and heritage in Channels Analysis mean that we are leading market analysts in the ESG space. Our <a href=\\"/analysis/alys-partner-assessment\\">digital assessment tool, Alys</a>, and partner community, <a href=\\"https://www.candefero.com\\" target=\\"_blank\\">Candefero</a>, provide enhanced insights and the latest recommendations. Our team of global analysts is here to help you with your next move. </p>"},"banner":{"title":"Get in-depth analysis of the trends in sustainability affecting vendors and the channel"}},"consumer":{"main-title":"Expert insights into smartphone vendor channel strategies and end-user buying behavior","sub-title":"Consumer Device Channels Analysis","general-description":"<p>Do you have the most up-to-date view of the smartphone channel and the evolving routes to market? Do you understand consumer behavior and what drives people to choose a particular channel? Do you know what a channel partner values in its relationship with you as a vendor? Do you understand your competitors\u2019 channel strategies?</p><p>Our research agenda is informed by \u201cvoice of the end user\u201d insights, from a research panel comprising thousands of consumer respondents around the world. Buying trends and consumer preference insights are delivered via an interactive dashboard to power your decision-making. We analyze our in-depth data and apply our unique expertise in channels research to unlock additional insights. Consumer Device Channels Analysis helps clients understand and capitalize on end-user buying behavior, with research covering mobility products, including smartphones, PCs and IoT. </p><p><b>
1The Consumer Device Channels Analysis service helps clients in many ways:</b></p>","info-swiper":[{"header":"Unlimited inquiry","body":"Direct access to analysts who respond to your questions in less than 24 hours within the scope of the topic."},{"header":"Feature-rich tools with unlimited access to research and analysis","body":"Corporate-wide licenses give you individual access to client websites, spreadsheets and published content."},{"header":"Channel strategy analysis and feedback","body":"Systematic quantitative and qualitative research on market trends, channel developments and overall channel performance."},{"header":"Dedicated quarterly briefings","body":"Tailored quarterly briefings to key internal stakeholders from highly experienced analysts."},{"header":"Tailored advice and recommendations","body":"Insights and recommendations are delivered via analytical reports allowing you to upgrade and improve your channel strategy."}],"overview":{"title":"Consumer Device Channels Analysis includes","list":["Strategic analysis of vendor channels, including: <ul><li>Online and offline channel trends</li><li>The impact of consumer buying trends on operator and retail stores</li><li>Distribution and supply chain management</li><li>Vendor success in execution of channel strategies</li></ul>","Key channel partnerships","Bi-annual end-user buyer behavior survey","Data tools that help you generate custom slides and slice the data any way you want <ul><li>Visualize survey data by vendor, country and region, enabling benchmarking over time</li></ul>","Market trends reports and presentations on <ul><li>Key channel developments: retail, telcos, ecommerce and direct</li><li>Voice of the customer: brand preference and behavior</li><li>Supply chain and logistics</li><li>Competitive channels analysis</li><li>Evolution of channels and buyer behavior</li></ul>","The combination of the above plus unlimited inquiry support from our global team of mobile and channel expert analysts provides the most comprehensive 360-degree view when benchmarking yourself against your competitors and helps you gain the advantage in the channel in the smartphone market"]},"content-footer":{"title":"Why Consumer Device Channels Analysis?","desc":"Consumer Device Channels Analysis provides the most comprehensive data available to track use and behavior on the customer mobile purchasing journey, giving you a comprehensive view of the market when complemented by Canalys\u2019 existing \u201csales in\u201d mobility data services portfolio. Alongside its unlimited inquiry facility and in-depth analysis of vendor channel strategies, channel trends and future channel market developments, this service is a must for any vendor looking to obtain competitive differentiation beyond product and pricing in this challenging market. As a team we work extensively with smartphone vendors, operators, channel partners and other players in the mobility industry, together with ecosystem clients to close critical gaps in competitive intelligence and research. Through our ongoing mobility portfolio subscription services, we work with our customers to help them identify their tactical and strategic priorities. Our research and analysis ultimately help vendors to measure their performance and drive action plans to increase their market and revenue share. By using the resources of our global team of analysts to support you and your teams, we aim to deliver intelligence that benefits your business."},"banner":{"title":"Discover new insights from Canalys consumer channel analysis"}}},"alys":{"title":"Assess the channel\u2019s capabilities and nurture partners to grow\u200b","subtitle":"Alys offers vendors a high-value method to evaluate channel partners at scale and engage with them digitally.\u200b","whatisalys":"What is Alys?","desc":"<p>Alys is a fully customizable assessment tool created by Canalys channels analysts to evaluate channel partners.</p><p>Vendors chose categories to align with their unique strategies. Senior Canalys analysts work with our vendor clients to create a digital questionnaire focused on specific needs. </p><p>There is a well-developed back-end structure and algorithm. Alys projects on cybersecurity and sustainability are ready to go. We also offer highly-tailored solutions, customizable to vendors\u2019 requirements to meet their channel partners\u2019 unique needs.</p>","assessmentandreport":"The Alys assessment and\xa0report","selfassessment":"Partners complete a simple self-assessment form","downloadablereport":"Respondents receive an immediate downloadable report with personalized guidance","customizealys":"Customize Alys","customised-design":"<p><strong>Customized design:</strong> includes your logo, custom text and background image.</p>","executive-summary":"<p><strong>Executive summary:</strong> each respondent receives an overall score based on their specific Alys responses, including a spider diagram graded across the four questionnaire categories.</p>","capability-report":"<p><strong>Capabilities report:</strong> these interactive buttons allow respondents to drill into granular data from Alys.</p>","customized-each-project":"Each respondent receives a detailed report with individual guidance from the Alys recommendation engine. Content can be customized for each project.","capability-summary":"<p><strong>Capabilities summary:</strong> The report provides granular scores across each sub-category. This second spider diagram automatically updates depending on which category is selected above.</p>","scoring":"<p><strong>Scoring:</strong> This traffic light system provides a score for each sub-category across four grades: </p><div> 1. Lagging </div><div> 2. Intermediate </div><div> 3. Advanced </div><div> 4. Leader </div>","actionable-recommendations":"Provides partners with actionable recommendations based on their responses.","recommendations":"<p><strong>Recommendations:</strong> each report offers custom recommendations based on the respondent\u2019s input. </p><p>These recommendations can use Canalys data and market insights, vendor messaging and information from third-party sources.</p><p>Think about using the recommendations to direct partners toward specific programs and portals.</p>","partner-view":"Partners can see how they are doing against their peers. ","benchmarking":"<p><strong>Benchmarking:</strong> this section of the report provides detailed scoring on each response and how it compares to the wider response pool. </p><p>This is valuable, actionable information to help partners identify their individual strengths and areas for improvement.</p>","alys-analyzer":"The Alys Analyzer dashboard for vendors","alys-analyzer-survey":"The pooled survey responses allow vendors to identify channel leaders and laggards.","alys-analyzer-dash":"The dashboard allows vendors to drill into each partner\u2019s skills.","alys-feedbacktitle":"Positive feedback from vendors and partners","alys-feedbackdesc":"Alys projects succeed by providing benefits for all stakeholders.","range-of-benefits":"Alys offers a range of benefits to vendors and partners","assess-title":"What areas could you assess?","demo":"Contact us for a demo","requestdemo":"Request demo","action":"See Alys in action!","banner":"Gain customized deeper insights to evaluate channel partners at scale and engage with them digitally.","assessandreportlist":["Customized design","Executive summary","Capabilities report","Capabilities summary","Scoring"],"benefits":["Partners receive immediate actionable recommendations","Vendor gets total landscape view of partners\u2019 capabilities","Offers innovative, high-impact partner communication","Results allow vendor to make data-driven investments in ecosystem","Digital approach replaces time-consuming manual methods of data collection","Indiv
1idual profiles provide granular data on specific partners\u2019 capabilities","Innovative assessment format combats survey fatigue","Partner business managers use results in discussion with partners"],"feedbacks":[{"message":"This is great \u2013 it has really helped discussions with partners as to their growth strategies and where we can plan together.","user":"Partner business manager"},{"message":"The assessment tool is spot on in regard to ease of understanding and the recommendations.","user":"Partner principal"},{"message":"It\u2019s an interesting exercise and tells us what improvements need to be made to compete in the digital marketing space.","user":"Channel partner"}],"assess":{"business":"Business metrics","businessfeature":"<ul><li>Revenue growth</li><li>Revenue mix</li><li>Consumption models</li><li>Recruitment</li><li>Investment in training</li><li>Automation</li></ul>","managed":"Managed services","managedfeature":"<ul><li>Recurring revenue</li><li>Portfolio depth and breadth</li><li>Software development</li><li>Technical resources</li><li>Regulatory understanding</li></ul>","cybersecurity":"Cybersecurity","cybersecurityfeature":"<ul><li>Security practice metrics</li><li>Managed security skills</li><li>Threat hunter capabilities</li><li>Trusted advisor status</li></ul>","marketing":"Marketing","marketingfeature":"<ul><li>Asset creation</li><li>Digital marketing skills</li><li>Use of marketing spend</li></ul>","customer":"Customer focus","customerfeature":"<ul><li>Customer success</li><li>Customer engagement</li><li>Vertical focus</li><li>CRM</li><li>Cross-sell</li><li>New customer acquisition</li></ul>","sustainability":"Sustainability","sustainabilityfeature":"<ul><li>ESG</li><li>Environmental KPIs</li><li>DIE initiatives</li><li>Carbon footprints</li></ul>"}},"sustainability":{"title":"Canalys Sustainable Channels Initiative\u200b","subtitle":"Bringing together the ESG-focused technology channel community\u200b","sustainabiltyinitiative":"What is the Canalys Sustainable Channels Initiative?","sustainabilitycontent":"<p>We believe that every individual and every organization can play a part in helping the planet toward a sustainable future, whether large or small. At Canalys, we aim to direct our efforts toward working with the technology channel community, an ecosystem we have partnered with for 25 years.</p><p>In 2022, we launched the <b>Canalys Sustainable Channels Initiative</b> with the following objectives:</p>","sustainabilitychannel":"Assessing sustainable practices in the channel","sustainabilitychannelcontent":"<p>As a starting point, any recognized technology partner can request to take our <a href=\\"https://www.candefero.com/survey/surveystart.php?id=908\\" target=\\"_blank\\">Alys Sustainable Channel Assessment</a>. With this online tool, Canalys helps partners measure and assess their environmental, sustainability and governance performance. They can also get Canalys insights and tips to help their sustainability practices. Our ongoing research with the channel and technology vendors informs our syndicated analysis and <a href=\\"/analysis/custom-solutions\\" >custom project work</a>. We examine vendors\u2019 sustainable channel strategies, including assessing ongoing changes to partner programs and incentives, and regularly report on the key topics driving change in the channel community.</p>","esgresearch":"Recent examples of Canalys ESG research","esgcontent":"<p>Our vendor clients can access Canalys research through our ongoing services in <a href=\\"/analysis/channels\\" >channels, partner programs and sustainable channels</a>. Channel partners can join our <a href=\\"https://www.candefero.com/survey/surveystart.php?id=908\\" target=\\"_blank\\" >Candefero partner community</a> to access our information free of charge in return for their engagement with our short polls and surveys.</p>","partnerleader":"Which channel partners lead in sustainability?","partnercontent":"<p>Canalys Environmental Partner Leaders are those partners that have demonstrated both a strategy and a commitment to do better for their industry, people, community and environment. This badge recognizes those partners that are leading the industry in this regard. Canalys awards badges based on our ongoing research and analyzing responses and scores in our <a href=\\"https://www.candefero.com/survey/surveystart.php?id=908\\" target=\\"_blank\\">Alys Sustainable Channel Assessment</a>.</p>","partnerswho":"Meet the Canalys 2022 environmental partner leaders","companiescontent":"The awards will run again in 2023.","feedbackheader":"In their own words","esgareas":"Canalys helps channel partners evaluate their performance in the following key ESG areas","energy":"Energy","carbon":"Carbon","product":"Product","recycle":"Reduce-Reuse-Recycle","diversity":"Employee diversity","wellbeing":"Employee well-being","customers":"Customers","communities":"Communities","leadership":"Leadership","employees":"Employees","advocacy":"Public advocacy","interested":"Are you interested in working with Canalys on sustainability in the channel?","interestedcontent":"Our team of global consultants and analysts looks forward to the opportunity to explore new areas, provide deeper insights and bespoke analysis","contactus":"Talk to us about ESG and the channel","initiatives":["To help drive adoption of sustainable practices in the channel.","To establish a network of sustainability-focused partners.","To promote the network\u2019s achievements to the wider industry."],"feedbacks":[{"message":"Atea achieved a Canalys Environmental Partner Leader award as a result of its focus and efforts on
1sustainability. It is successfully implementing ESG actions across its entire business and reducing its environmental impact.","user":"Andreas Antonsen","company":"Atea","title":"Director of Corporate Responsibility"},{"message":"Softcat is committed to delivering a Net Zero Supply chain by 2040. We believe everyone has a part to play, we recognize it cannot be solved alone, but together we can drive change and a sustainable future. We call on everyone to come together, play their part and create a better outlook for future generations.","user":"Alastair Wynn","company":"Softcat","title":"Operations Director"}]},"ecosystemlandscape":{"title":"Channels Ecosystem Landscape\u200b","subtitle":"Analyzing the segmentation, evolution and growth of the channels ecosystem landscape","aboutEcosystemHeading":"What is the Canalys Channels Ecosystem Landscape?","aboutEcosystem":"<p>We have developed this research to bring focus to the underlying technology that will drive competitive advantage in the decade of the ecosystem. The hundreds of software companies represented in the landscape are providing automation and advanced digital capabilities to help companies design, develop, execute and manage a broad partner and alliance ecosystem</p> <p>There are increasing demands on channel professionals to find, recruit, onboard, develop, incentivize, co-sell, co-market, co-innovate, measure, manage and report on partner value at scale. Automation, deeper integrations and data-driven decision-making are creating measurable competitive advantage (through partnerships) and are quickly becoming table stakes in the industry.</p> <p>Canalys research shows that there are now 223 companies forming the ecosystem software landscape. These companies represent US$3.9 billion in channel category revenue and raised over US$3 billion in private equity funding last year. The latest Canalys forecasts show that this channel software market will reach US$8.9 billion in revenue by 2027.</p>","interestingFacts":"<p>Some interesting facts about the 2023 landscape: </p> <ul> <li>There were 37 changes from last year\u2019s landscape \u2013 this includes new companies, M&A, companies shutting down or pivoting away, and re-brandings.</li> <li>We are watching 38 additional startup companies in the channel/ecosystem tech space vying for a spot on next year\u2019s landscape. We look for a minimum of 5 full time employees and a fully shipping product with delighted/recurring customers.</li> <li>From a revenue perspective, 14 of these companies are driving over $100 million in channel software revenue, and roughly half the list is north of $10 million. </li> <li>There is not the 80/20 revenue split that you find in most lists. The Fortune-sized companies such as IBM, Oracle, SAP, Salesforce, and Adobe (combined) drive only 13% of the total revenue.</li> <li>There are 25 companies on the landscape founded in the past 5 years. On the other side of the maturity scale, there are 23 companies over 30 years old. Four of them are over 100 years old! (ACB, Ansira, IBM, and Maritz)</li> <li>Consistent with other SaaS categories, there was a sizable drop in private equity funding. In 2021, the funding totaled over $3.1 billion, while in 2022 it dropped 75% to $763.4 million. Current year (2023) funding is at $441.8 million by August so is tracking to be similar to 2022.</li><li>Given recent HR trends around the great resignation, return to work, and half a million tech layoffs over the past 10 months, the Glassdoor ratings remain unchanged (compared to 18 months ago) with a weighted average 3.866 for these 233 companies. The global average on Glassdoor is 3.3 (according the company itself) so working in the channel tech industry is a better experience overall for these 30,306 workers (Canalys estimate).</li> <li>Almost two thirds of companies are headquartered in the US. The UK is next with 20 companies, then Canada with 14, then France and Germany with eight each. </li> <li>Top headquarters cities are San Francisco with 21 companies, London with nine, New York with seven, Boston with six, and Chicago and Paris each with five. </li> </ul>","categorylistText":"In 2023, we have broken this final category down into five sub-categories: ","subscribe":"Subscribe to updates","getaccess":"Get access","aboutEcosystemFooter"
1:"Canalys tracks the channels ecosystem as part of its renowned worldwide <a href=\'https://www.canalys.com/analysis/channels\'>Channels Analysis</a> services. We also conduct <a href=\'https://www.canalys.com/analysis/custom-solutions\'>bespoke projects to help vendors</a> leverage more power from the channel ecosystem. Get in touch with us to find out more.","landscapeHeading":"Canalys Channels Ecosystem Landscape 2023","landscapeintro":"The Channels Ecosystem Landscape encompasses a group of technologies that help companies develop, design and execute plans to find, recruit, onboard, develop, enable, incentivize, co-sell, co-market, co-innovate, collaborate, manage, measure and report on partners. Software companies providing these technologies deliver automation of indirect sales processes, workflows and partner programs, and are becoming vital to a vendor\u2019s ability to find, win, serve and retain its customers and partners.","landscapesubheading":"The channels ecosystem \u2018\u2018islands\u2019\u2019","categories":[{"title":"Channel data management","para":"Manages channel partner data, including data from points of sale, and inventory and incentive data, from a single data platform that provides actionable insights and streamlines decision-making processes. These automated tools use AI, machine learning and predictive modeling."},{"title":"Channel finance, pricing and inventory","para":"Governs indirect sales financials, streamlines reporting processes, calculates true transactional values and avoids allocation errors. Optimizes processes involving pricing, demand forecasting, gross-to-net accounting calculations, inventory planning and price adjustments."},{"title":"Channel incentives management","para":"Helps develop and manage channel incentive programs, spanning allotment, calculation and issuance of performance-based incentives to drive positive behavioral modifications to the partner ecosystem. Common incentives include discounts, rebates, market development funds, co-op funds and sales performance incentive funds."},{"title":"Channel learning and readiness","para":"Helps partner organizations to train and develop employees through the design and delivery of up-to-date training initiatives and resources, spanning training modules, competencies, certifications, learning management systems, online portals, education tracking and sales enablement tools."},{"title":"Partner relationship management","para":"Automates various programmatic activities around the management of partner lifecycles. Common features include partner recruitment, onboarding, training, performance-tracking, co-selling, co-marketing, co-innovation, collaboration, enablement and communication. Often seamlessly integrates with existing systems, such as CRM, marketing automation, content management, ERP, payment gateways and collaboration applications."},{"title":"Through-channel marketing automation","para":"Helps vendors empower their partners to effectively communicate, market and advertise locally while maintaining global brand consistency. Automated platforms provide scale, control and governance that enables partners to generate marketing campaigns using market development funds and proven insights."}],"islandText":"There are five \'islands\' within this -","categoryChannelManagement":{"title":"Channel Ecosystem Management","intro":"This group supports a broad array of partner types, covering influence, transaction, transaction-assist, retention, and technology, strategic and business alliances. Supports the entire customer buying journey and augments marketing, sales, customer success, product and strategy within an organization. Helps facilitate multi-directional relationships and activities with partners across the entire channel ecosystem. Commonly aids in recruitment, visualization, influence, partner attribution, data, account mapping, marketplace, technology integrations, delivering management, measurement, real-time monitoring and orchestration to drive effective go-to-market strategies.","cat1":"<ul> <li data-aos=\'zoom-in\'><strong>Ecosystem recruitment and visualization</strong> - Assists in planning, identifying, targeting and recruiting non-traditional partners to drive the expansion of the channel ecosystem and the total addressable market. Provides actionable go-to-market and route-to-market expansion beyond current buyer, industry, geography, segment, delivery or product boundaries. </li> <li data-aos=\'zoom-in\'> <strong>Ecosystem influence and attribution</strong> - Supports marketing attribution in the post-cookie marketing environment, delivering recognition and incentivization of affiliates, advocates, ambassadors and influencer partners. Helps vendors\u2019 data-driven platforms quantify partner influence and activities and their effect on marketing, sales and retention. </li> <li data-aos=\'zoom-in\'> <strong>Ecosystem data and mapping</strong> - Enables data-sharing opportunities with and between partners in a controlled and secure manner. Automates account mapping to leverage network effects and streamlines collaboration, co-marketing, co-selling, value creation and co-innovation. </li> </ul>","cat2":"<ul> <li data-aos=\'zoom-in\'><strong>Ecosystem marketplace and integrations</strong> - Helps B2B-centric organizations with the planning, design and execution of internal and external digital marketplaces to expand market opportunities. Supports changing business models toward subscription and consumption models and provides frictionless execution of customer procurement and provisioning of solutions. Assists in marketplace deployment, storefront customization, API integration and listing support, among other aspects, to streamline the workflows of all stakeholders. </li> <li data-aos=\'zoom-in\'> <strong>Ecosystem management and orchestration</strong> - Automates and simplifies various activities of multi-directional partnerships across the broader channel ecosystem. Supports ecosystem planning, programs, processes and people, including partner onboarding, training and development, co-selling, enablement, collaboration, performance reporting and insights. Often seamlessly integrates with other channel and ecosystem tools. </li> </ul>"},"vendorsHeading":"Channels ecosystem software vendors 2023","Company":"Company","CEO":"CEO","Founded":"Founded","City":"City","Country":"Country","channelMethodTitle":"Channels Ecosystem Landscape methodology and definitions","channelMethodPara":"<p>Canalys publishes channel-related data on a regular basis. It standardizes on a common methodology across all data-led continuous services. The methodology centers on the tracking of the people, processes, programs, partners and underlying technology that drives the global channel ecosystem.</p> <p> The goal is always to provide the best possible, consistent and meaningful view of a market, even when it encompasses a diverse set of products, technologies, geographies, vendors and business models. For each market studied, Canalys uses a clear set of rules and definitions to classify data sets unambiguou
1sly. From time to time, as markets develop, a classification scheme may require updating. Canalys conducts regular reviews to ensure it continues to deliver the maximum value to clients and any changes are always communicated clearly. Across its services, Canalys uses consistent terminology, definitions and segmentation to avoid double-counting and to facilitate comparison and analysis.</p><p>Canalys employs a number of techniques to generate its estimates; the most appropriate information sources will depend on the specific research but may include vendor, distributor and partner public disclosures, Candefero surveys, government reports, public/private financial analysis, industry media and social sentiment. </p>","CDM":"Channel data management","Finance":"Channel finance, pricing and inventory","CIM":"Channel incentives management","CLR":"Channel learning and readiness","PRM":"Partner relationship management","TCMA":"Through-channel marketing automation","CEM":"Channel ecosystem managment","vendorCDM":[{"company":"360insights","companyurl":"https://360insights.com/","ceo":"Jason Atkins","ceourl":"https://www.linkedin.com/in/jayatkins/","founded":2008,"city":"Whitby","country":"Canada"},{"company":"Aximpro","companyurl":"https://aximpro.com","ceo":"Andreas Reid","ceourl":"https://www.linkedin.com/in/andreasried/","foun
1ded":2008,"city":"Freising","country":"Germany"},{"company":"bChannels","companyurl":"https://bchannels.com/","ceo":"Phil Gowing","ceourl":"https://www.linkedin.com/in/philgowing/","founded":1999,"city":"Oxford","country":"UK"},{"company":"Bizcise","companyurl":"https://bizcise.com/","ceo":"Matt Wilson","ceourl":"https://www.linkedin.com/in/mwilsonj/","founded":2017,"city":"Sammamish","country":"USA"},{"company":"Bomisco","companyurl":"https://bomisco.com/","ceo":"Mihir Mehta","ceourl":"https://www.linkedin.com/in/mihirkmehta/","founded":2018,"city":"San Francisco","country":"USA"},{"company":"Bydek","companyurl":"http://www.bydek.com","ceo":"Badal Manuj","ceourl":"https://www.linkedin.com/in/badalmanuj/","founded":2018,"city":"Sheridan","country":"USA"},{"company":"Channel360","companyurl":"https://out-bound.co.uk/","ceo":"Mark Fowler","ceourl":"https://www.linkedin.com/in/markpfowler/","founded":1999,"city":"Yateley","country":"UK"},{"company":"Compubase","companyurl":"https://en.compubase.net/","ceo":"Jack Mandard","ceourl":"https://www.linkedin.com/in/mandard/","founded":1989,"city":"Les Ulis","country":"France"},{"company":"Computer Market Research","companyurl":"https://computermarketresearch.com/","ceo":"Del Heles","ceourl":"https://www.linkedin.com/in/delheles/","founded":1984,"city":"San Diego","country":"USA"},{"company":"Crossbeam","companyurl":"https://crossbeam.com/","ceo":"Bob Moore ","ceourl":"https://www.linkedin.com/in/robertjmoore/","founded":2018,"city":"Philadelphia","country":"USA"},{"company":"E2open","companyurl":"https://e2open.com","ceo":"Michael Farlekas","ceourl":"https://www.linkedin.com/in/michaelfarlekas/","founded":2000,"city":"Austin","country":"USA"},{"company":"Gorilla","companyurl":"https://gorillaict.com/","ceo":"Carlo Tortora Brayda di Belvedere","ceourl":"https://www.linkedin.com/in/carlotortorabrayda/","founded":1992,"city":"San Francisco","country":"USA"},{"company":"Gradient","companyurl":"https://meetgradient.com/","ceo":"Colin Knox","ceourl":"https://www.linkedin.com/in/realityknox/","founded":2020,"city":"Calgary","country":"Canada"},{"company":"IQBlade","companyurl":"https://iqblade.com/","ceo":"Ben Abraham","ceourl":"https://www.linkedin.com/in/benmilesabraham/","founded":2016,"city":"Liverpool","country":"UK"},{"company":"Model N","companyurl":"https://modeln.com","ceo":"Jason Blessing","ceourl":"https://www.linkedin.com/in/jasonblessing/","founded":1999,"city":"Redwood City","country":"USA"},{"company":"Partner Sonar","companyurl":"https://bain.com/industry-expertise/technology/channel-optimization/","ceo":"Manny Maceda","ceourl":"https://www.linkedin.com/in/manny-maceda/","founded":1973,"city":"Boston","country":"USA"},{"company":"PartnerOptimizer","companyurl":"https://partneroptimizer.com/","ceo":"Dina Moskowitz","ceourl":"https://www.linkedin.com/in/dinamoskowitz/","founded":2011,"city":"San Diego","country":"USA"},{"company":"PartnerScore","companyurl":"https://partnerscore.io/","ceo":"David Ward","ceourl":"https://www.linkedin.com/in/djward1/","founded":2020,"city":"London","country":"UK"},{"company":"PartnerTap","companyurl":"https://partnertap.com/","ceo":"Cassandra Gholston","ceourl":"https://www.linkedin.com/in/cassandragholston/","founded":2016,"city":"Seattle","country":"USA"},{"company":"Q2E","companyurl":"https://q2e.com/","ceo":"Mahesh Rao","ceourl":"https://www.linkedin.com/in/maheshcrao/","founded":2016,"city":"Cupertino","country":"USA"},{"company":"Salesforce","companyurl":"https://salesforce.com/products/sales-cloud/features/channel-partner-management/","ceo":"Marc Benioff","ceourl":"https://www.linkedin.com/in/marcbenioff/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"SalesStreamliner","companyurl":"https://salesstreamliner.com/","ceo":"Alysia Hardy","ceourl":"https://www.linkedin.com/in/alysiahardy/","founded":2016,"city":"Cleveland","country":"USA"},{"company":"Successful Channels","companyurl":"https://successfulchannels.com/","ceo":"Gary Morris","ceourl":"https://www.linkedin.com/in/garyrobertmorris/","founded":2015,"city":"Centerville","country":"USA"},{"company":"TechTarget","companyurl":"https://techtarget.com/","ceo":"Mike Cotoia","ceourl":"https://www.linkedin.com/in/mike-cotoia-10b3911/","foun
1ded":1999,"city":"Newton","country":"USA"},{"company":"Vistex","companyurl":"https://vistex.com/product-suites/channel-conduit-suite","ceo":"Sanjay Shah","ceourl":"https://www.linkedin.com/in/sanjayshahvistex/","founded":1999,"city":"Hoffman Estates","country":"USA"},{"company":"Yagna iQ","companyurl":"https://yagnaiq.com","ceo":"Ram Rai","ceourl":"https://www.linkedin.com/in/ram-rai-023a21/","founded":2006,"city":"Plano","country":"USA"},{"company":"Zomentum","companyurl":"https://zomentum.com","ceo":"Shruti Ghatge","ceourl":"https://www.linkedin.com/in/shrutighatge/","founded":2018,"city":"San Francisco","country":"USA"}],"vendorfinance":[{"company":"AppBind","companyurl":"https://appbind.com/","ceo":"Sunir Shah","ceourl":"https://www.linkedin.com/in/sunirshah/","founded":"2018","city":"Menlo Park","country":"USA"},{"company":"AppXite","companyurl":"https://appxite.com/","ceo":"Nicolas Albana","ceourl":"https://www.linkedin.com/in/nicolasalbana/","founded":"2014","city":"Riga","country":"Latvia"},{"company":"Arrow","companyurl":"https://www.arrow.com/globalecs/na/platforms/arrowsphere/","ceo":"Sean Kerins","ceourl":"https://www.linkedin.com/in/sean-k-a9031b3/","founded":"1935","city":"Centennial","country":"USA"},{"company":"Channel Mechanics","companyurl":"https://channelmechanics.com/","ceo":"Kenneth Fox","ceourl":"https://www.linkedin.com/in/kenneth-fox-a87a0b59/","founded":"2011","city":"Galway","country":"Ireland"},{"company":"ChannelAdvisor","companyurl":"https://channeladvisor.com","ceo":"David Spitz","ceourl":"https://www.linkedin.com/in/spitz/","founded":"2001","city":"Morrisville","country":"USA"},{"company":"Cleverbridge","companyurl":"https://cleverbridge.com","ceo":"Craig Vodnik","ceourl":"https://www.linkedin.com/in/craigvodnik/","founded":"2005","city":"Cologne","country":"Germany"},{"company":"CloudBlue","companyurl":"https://cloudblue.com","ceo":"","ceourl":"","founded":"2015","city":"Irvine","country":"USA"},{"company":"Computer Market Research","companyurl":"https://computermarketresearch.com/","ceo":"Del Heles","ceourl":"https://www.linkedin.com/in/delheles/","founded":"1984","city":"San Diego","country":"USA"},{"company":"Conga","companyurl":"https://conga.com","ceo":"Noel Goggin","ceourl":"https://www.linkedin.com/in/noel-goggin-ceo-%E2%98%85-78ba45/","founded":"2006","city":"San Mateo","country":"USA"},{"company":"DealHub.io","companyurl":"https://dealhub.io","ceo":"Eyal Elbahary","ceourl":"https://www.linkedin.com/in/eyal-elbahary-3488285/","founded":"2014","city":"Austin","country":"USA"},{"company":"DemandBridge","companyurl":"https://demandbridge.com/","ceo":"David Rich","ceourl":"https://www.linkedin.com/in/dave-rich-1b84b5b/","founded":"1975","city":"Norcross","country":"USA"},{"company":"E2open","companyurl":"https://e2open.com","ceo":"Michael Farlekas","ceourl":"https://www.linkedin.com/in/michaelfarlekas/","founded":2000,"city":"Austin","country":"USA"},{"company":"iasset.com","companyurl":"https://iasset.com/","ceo":"Scott Frew","ceourl":"https://www.linkedin.com/in/scott-frew-521948/","founded":"2008","city":"San Francisco","country":"USA"},{"company":"Model N","companyurl":"https://modeln.com","ceo":"Jason Blessing","ceourl":"https://www.linkedin.com/in/jasonblessing/","founded":"1999","city":"Redwood City","country":"USA"},{"company":"NowApps ChannelKonnect","companyurl":"https://channelkonnect.com/","ceo":"Basaveswarlu Boyapati","ceourl":"https://www.linkedin.com/in/bboyapati/","founded":"2015","city":"Bengaluru","country":"India"},{"company":"OneBill","companyurl":"https://onebillsoftware.com/","ceo":"JK Chelladurai","ceourl":"https://www.linkedin.com/in/jkchelladurai/","founded":"2009","city":"Santa Clara","country":"USA"},{"company":"Oracle PRM","companyurl":"https://oracle.com/cx/sales/partner-relationship-management/","ceo":"Safra Catz","ceourl":"https://www.linkedin.com/in/safra-c-96780667/","founded":"1977","city":"Redwood Shores","country":"USA"}
1,{"company":"PriceFX","companyurl":"https://pricefx.com/","ceo":"Marcin Cichon","ceourl":"https://www.linkedin.com/in/marcin-cichon-3846241/","founded":"2011","city":"Pfaffenhofen","country":"Germany"},{"company":"PROS","companyurl":"https://pros.com/","ceo":"Andres Reiner","ceourl":"https://www.linkedin.com/in/andres-reiner-840177/","founded":"1985","city":"Houston","country":"USA"},{"company":"RebateMAX","companyurl":"https://rebatemax.io","ceo":"Rahul Dharankar","ceourl":"https://www.linkedin.com/in/rahuldharankar/","founded":"2017","city":"Dallas","country":"USA"},{"company":"Renewtrak","companyurl":"https://renewtrak.com","ceo":"Mathew Cagney","ceourl":"https://www.linkedin.com/in/mathewcagney/","founded":"2014","city":"Sydney","country":"Australia"},{"company":"Salesforce","companyurl":"https://salesforce.com/products/sales-cloud/features/channel-partner-management/","ceo":"Marc Benioff","ceourl":"https://www.linkedin.com/in/marcbenioff/","founded":"1999","city":"San Francisco","country":"USA"},{"company":"SAP","companyurl":"https://calliduscloud.com/roles/channel-manager/","ceo":"Christian Klein","ceourl":"https://www.linkedin.com/in/christian-klein/","founded":"1996","city":"Dublin","country":"USA"},{"company":"servicePath","companyurl":"https://servicepath.co/","ceo":"Daniel Kube","ceourl":"https://www.linkedin.com/in/danielkube/","founded":"2011","city":"Burlington","country":"Canada"},{"company":"TD Synnex","companyurl":"https://www.synnexcorp.com/stellr/community/marketplace/","ceo":"Rich Hume","ceourl":"https://www.linkedin.com/in/richhume/","founded":"1974","city":"Freemont","country":"USA"},{"company":"Vendavo","companyurl":"https://vendavo.com/","ceo":"Bruno Slosse","ceourl":"https://www.linkedin.com/in/bruno-slosse-7b84a792/","founded":"1998","city":"Denver","country":"USA"},{"company":"Vistex","companyurl":"https://vistex.com/product-suites/channel-conduit-suite","ceo":"Sanjay Shah","ceourl":"https://www.linkedin.com/in/sanjayshahvistex/","founded":"1999","city":"Hoffman Estates","country":"USA"},{"company":"Yagna iQ","companyurl":"https://yagnaiq.com","ceo":"Ram Rai","ceourl":"https://www.linkedin.com/in/ram-rai-023a21/","founded":"2006","city":"Plano","country":"USA"}],"vendorCIM":[{"company":"360insights","companyurl":"https://360insights.com/","ceo":"Jason Atkins","ceourl":"https://www.linkedin.com/in/jayatkins/","founded":2008,"city":"Whitby","country":"Canada"},{"company":"ACB","companyurl":"https://acbcoop.com/","ceo":"Michael Bookman","ceourl":null,"founded":1917,"city":"New York","country":"USA"},{"company":"Ansira","companyurl":"https://ansira.com","ceo":"Andy Arnold","ceourl":"https://www.linkedin.com/in/andyarnold2/","founded":1919,"city":"St. Louis","country":"USA"},{"company":"Augeo","companyurl":"https://augeomarketing.com/","ceo":"David Kristal","ceourl":"https://www.linkedin.com/in/david-kristal-47490a/","founded":1999,"city":"St. Paul","country":"USA"},{"company":"Awin","companyurl":"https://awin.com/us","ceo":"Mark Walters ","ceourl":"https://www.linkedin.com/in/mark-walters-a251423/","founded":2000,"city":"Berlin","country":"Germany"},{"company":"Aximpro","companyurl":"https://aximpro.com","ceo":"Andreas Reid","ceourl":"https://www.linkedin.com/in/andreasried/","foun
1ded":2008,"city":"Freising","country":"Germany"},{"company":"Benepik","companyurl":"https://benepik.co.in/","ceo":"Saurabh Jain","ceourl":"https://www.linkedin.com/in/saurabh-jain-a574204/","founded":2016,"city":"Gurgaon","country":"India"},{"company":"BI Worldwide","companyurl":"https://biworldwide.com/","ceo":"Abby Cohen","ceourl":"https://www.linkedin.com/company/biworldwide/","founded":1950,"city":"Minneapolis","country":"USA"},{"company":"Blackhawk Network","companyurl":"https://blackhawknetwork.com/","ceo":"Talbott Roche","ceourl":"https://www.linkedin.com/in/talbottroche/","founded":2015,"city":"Addison","country":"USA"},{"company":"Brandmuscle","companyurl":"https://Brandmuscle.com","ceo":"Scott Weeren","ceourl":"https://www.linkedin.com/in/scottweeren/","founded":2000,"city":"Chicago","country":"USA"},{"company":"Brightspot","companyurl":"http://gobrightspot.com/","ceo":"Mike May","ceourl":"https://www.linkedin.com/in/maymike/","founded":1994,"city":"Irving","country":"USA"},{"company":"Capillary Technologies","companyurl":"https://capillarytech.com/","ceo":"Aneesh Reddy","ceourl":"https://www.linkedin.com/in/aneesh-reddy-38b176b/","founded":2008,"city":"Singapore","country":"Singapore"},{"company":"Channel Fusion","companyurl":"https://channel-fusion.com/","ceo":"Pankaj Monga","ceourl":"https://www.linkedin.com/in/pankaj-monga-8419401/","foun
1ded":2003,"city":"Hiawatha","country":"USA"},{"company":"Channel Mechanics","companyurl":"https://channelmechanics.com/","ceo":"Kenneth Fox","ceourl":"https://www.linkedin.com/in/kenneth-fox-a87a0b59/","founded":2011,"city":"Galway","country":"Ireland"},{"company":"ChannelAssist","companyurl":"https://channelassist.com/","ceo":"David Auld","ceourl":"https://www.linkedin.com/in/davidauld/","founded":1999,"city":"Concord","country":"Canada"},{"company":"ChannelPro REACH","companyurl":"https://channelpro.co/","ceo":"Elias Bou Ghosn","ceourl":"https://www.linkedin.com/in/eliasboughosn/","founded":2018,"city":"Dubai","country":"UAE"},{"company":"Comviva","companyurl":"https://comviva.com/","ceo":"Manoranjan Mohapatra","ceourl":"https://www.linkedin.com/in/manoranjan-mao-mohapatra-3545724/","founded":1999,"city":"Gurgaon","country":"India"},{"company":"Conga","companyurl":"https://conga.com","ceo":"Noel Goggin","ceourl":"https://www.linkedin.com/in/noel-goggin-ceo-%E2%98%85-78ba45/","founded":2006,"city":"San Mateo","country":"USA"},{"company":"Dash Solutions","companyurl":"https://dashsolutions.com/","ceo":"Stephen Faust","ceourl":"https://www.linkedin.com/in/stephen-faust-92243758/","founded":1998,"city":"Birmingham","country":"USA"},{"company":"E2open","companyurl":"https://e2open.com","ceo":"Michael Farlekas","ceourl":"https://www.linkedin.com/in/michaelfarlekas/","founded":2000,"city":"Austin","country":"USA"},{"company":"Enable","companyurl":"https://enable.com/","ceo":"Andrew Butt","ceourl":"https://www.linkedin.com/in/awbutt/","founded":2000,"city":"San Francisco","country":"USA"},{"company":"Fielo","companyurl":"https://fielo.com/","ceo":"Sanjay Agarwal","ceourl":"https://www.linkedin.com/in/sanjay-agarwal-33a1a3/","founded":2010,"city":"San Francisco","country":"USA"},{"company":"Flintfox","companyurl":"https://flintfox.com/","ceo":"Mike Ridgway","ceourl":"https://www.linkedin.com/in/mbridgway/","founded":1987,"city":"North Shore","country":"New Zealand"},{"company":"forma.ai","companyurl":"https://www.forma.ai/","ceo":"Nabeil Alazzam","ceourl":"https://www.linkedin.com/in/nabeilalazzam/","founded":2016,"city":"Toronto","country":"Canada"},{"company":"forma.ai","companyurl":"https://www.forma.ai/","ceo":"Nabeil Alazzam","ceourl":"https://www.linkedin.com/in/nabeilalazzam/","founded":2016,"city":"Toronto","country":"Canada"},{"company":"Glu Group","companyurl":"https://www.glu-group.com/","ceo":"Billy Haining","ceourl":"https://www.linkedin.com/in/billyhaining/","founded":2015,"city":"Whiteley","country":"UK"},{"company":"HeraldLogic","companyurl":"https://heraldlogic.com/","ceo":"Ram Ramdas","ceourl":"https://www.linkedin.com/in/ramramdas/","founded":2000,"city":"Mumbai","country":"India"},{"company":"Hinda Incentives","companyurl":"https://hinda.com","ceo":"Michael Donnelly","ceourl":"https://www.linkedin.com/in/mdonnelly1/","foun
1ded":1970,"city":"Chicago","country":"USA"},{"company":"HMI Performance Incentives","companyurl":"https://hmiaward.com/","ceo":"Kiwon Chang","ceourl":"https://www.linkedin.com/in/kiwon-chang-3835581/","founded":1980,"city":"Norwood","country":"USA"},{"company":"Impact","companyurl":"https://impact.com","ceo":"David Yovanno","ceourl":"https://www.linkedin.com/in/dyovanno/","founded":2008,"city":"Santa Barbara","country":"USA"},{"company":"Incentive Solutions","companyurl":"https://incentivesolutions.com/","ceo":"Mark Herbert","ceourl":"https://www.linkedin.com/in/mherbert/","founded":1994,"city":"Atlanta","country":"USA"},{"company":"ITA Group","companyurl":"https://itagroup.com/channel-incentives","ceo":"Brent Vander Waal","ceourl":null,"founded":1963,"city":"West Des Moines","country":"USA"},{"company":"Maritz","companyurl":"https://maritz.com/","ceo":"Steve Maritz","ceourl":null,"founded":1894,"city":"St. Louis","country":"USA"},{"company":"Model N","companyurl":"https://modeln.com","ceo":"Jason Blessing","ceourl":"https://www.linkedin.com/in/jasonblessing/","founded":1999,"city":"Redwood City","country":"USA"},{"company":"Online Rewards","companyurl":"https://online-rewards.com/","ceo":"Michael Levy","ceourl":"https://www.linkedin.com/in/michaellevy5/","founded":2002,"city":"Richardson","country":"USA"},{"company":"Partnerize","companyurl":"https://partnerize.com/","ceo":"Matt Gilbert","ceourl":"https://www.linkedin.com/in/mattgilbert/","founded":2010,"city":"Newcastle","country":"UK"},{"company":"Salesforce","companyurl":"https://salesforce.com/products/sales-cloud/features/channel-partner-management/","ceo":"Marc Benioff","ceourl":"https://www.linkedin.com/in/marcbenioff/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"Sproutloud","companyurl":"https://sproutloud.com","ceo":"Jared Shusterman","ceourl":"https://www.linkedin.com/in/jaredshusterman/","founded":2006,"city":"Sunrise","country":"USA"},{"company":"TenXengage","companyurl":"https://tenxengage.com/","ceo":"Pratap Chillakanti","ceourl":"https://www.linkedin.com/in/pratap-chillakanti-79a20b7/","founded":2021,"city":"San Francisco","country":"USA"},{"company":"Vanson","companyurl":"https://vansontech.com","ceo":"Chris Vanderploeg","ceourl":"https://www.linkedin.com/in/chris-vanderploeg-8450b9b/","founded":1997,"city":"Minneapolis","country":"USA"},{"company":"Vendavo","companyurl":"https://vendavo.com/","ceo":"Bruno Slosse","ceourl":"https://www.linkedin.com/in/bruno-slosse-7b84a792/","founded":1998,"city":"Denver","country":"USA"},{"company":"Virtual Incentives","companyurl":"https://virtualincentives.com/","ceo":"James Gary","ceourl":"https://www.linkedin.com/in/jamesgary/","founded":2010,"city":"Fishkill","country":"USA"},{"company":"Vistex","companyurl":"https://vistex.com/product-suites/channel-conduit-suite","ceo":"Sanjay Shah","ceourl":"https://www.linkedin.com/in/sanjayshahvistex/","founded":1999,"city":"Hoffman Estates","country":"USA"},{"company":"Vortex 6","companyurl":"https://vortex6.com/","ceo":"Peter Olive","ceourl":"https://www.linkedin.com/in/polive/","founded":2009,"city":"Bracknell","country":"UK"},{"company":"Xoxoday","companyurl":"https://xoxoday.com","ceo":"Sumit Khandelwal","ceourl":"https://www.linkedin.com/in/sumitkhandelwal2/","founded":2012,"city":"Bengaluru","country":"India"}],"vendorCLR":[{"company":"360Learning","companyurl":"https://en.360learning.com/","ceo":"Nick Hernandez","ceourl":"https://www.linkedin.com/in/nicoconut/","founded":2013,"city":"Paris","country":"France"},{"company":"Absorb LMS","companyurl":"https://absorblms.com/home","ceo":"Mike Owens","ceourl":"https://www.linkedin.com/in/mike-owens-3268b85/","founded":2003,"city":"Calgary","country":"Canada"},{"company":"Adobe Captivate Prime","companyurl":"https://adobe.com/products/captivateprime.html","ceo":"Shantanu Narayen","ceourl":null,"founded":1982,"city":"San Jose","country":"USA"},{"company":"Bigtincan","companyurl":"https://bigtincan.com/platform/bigtincan-zunos/","ceo":"David Keane","ceourl":"https://www.linkedin.com/in/dakeane/","founded":2012,"city":"San Francisco","country":"USA"},{"company":"BlueVolt","companyurl":"https://bluevolt.com/","ceo":"Benjamin Ertischek","ceourl":"https://www.linkedin.com/in/benjaminertischek/","foun
1ded":2003,"city":"Portland","country":"USA"},{"company":"Brainshark","companyurl":"https://brainshark.com","ceo":"Greg Flynn","ceourl":"https://www.linkedin.com/in/gflynn/","founded":1999,"city":"Waltham","country":"USA"},{"company":"Channel Rocket","companyurl":"https://channelrocket.com/","ceo":"Greg Sherrill","ceourl":"https://www.linkedin.com/in/greg-sherrill-3674041/","founded":2013,"city":"Golden","country":"USA"},{"company":"Channel360","companyurl":"https://out-bound.co.uk/","ceo":"Mark Fowler","ceourl":"https://www.linkedin.com/in/markpfowler/","founded":1999,"city":"Yateley","country":"UK"},{"company":"ChannelEZ","companyurl":"https://channelez.com/","ceo":"Sam Gadi","ceourl":"https://www.linkedin.com/in/sgadi/","founded":2013,"city":"San Francisco","country":"USA"},{"company":"ChannelPro REACH","companyurl":"https://channelpro.co/","ceo":"Elias Bou Ghosn","ceourl":"https://www.linkedin.com/in/eliasboughosn/","founded":2018,"city":"Dubai","country":"UAE"},{"company":"Cornerstone","companyurl":"https://cornerstoneondemand.com/","ceo":"Phil Saunders","ceourl":"https://www.linkedin.com/in/philsaunders1/","founded":1999,"city":"Santa Monica","country":"USA"},{"company":"CoSell.io","companyurl":"https://cosell.io/","ceo":"Rob Brown","ceourl":"https://www.linkedin.com/in/rob-brown-2b393a108/","founded":2019,"city":"San Francisco","country":"USA"},{"company":"Crowd Wisdom","companyurl":"https://communitybrands.com/","ceo":"Sharon Love","ceourl":"https://www.linkedin.com/in/sharonlove/","founded":2017,"city":"St. Petersburg","country":"USA"},{"company":"CSG Services","companyurl":"https://csgservices.com/business-needs-channel/","ceo":"Ian McAlister","ceourl":"https://www.linkedin.com/in/ianmcalister/","founded":1997,"city":"Redmond","country":"USA"},{"company":"Elioplus","companyurl":"https://elioplus.com","ceo":"Elias Ndreu","ceourl":"https://www.linkedin.com/in/iliasndreu/","founded":2015,"city":"Athens","country":"Greece"},{"company":"Expertus","companyurl":"https://expertusone.com/","ceo":"Ramesh Ramani","ceourl":"https://www.linkedin.com/in/rameshramani/","founded":1998,"city":"Santa Clara","country":"USA"},{"company":"Fision","companyurl":"https://fisiononline.com/","ceo":"Mike Brown","ceourl":"https://www.linkedin.com/in/mike-brown-236b857/","founded":2011,"city":"Minneapolis","country":"USA"},{"company":"Flipdeck","companyurl":"https://flipdeck.com/","ceo":"Lee Mayfield","ceourl":"https://www.linkedin.com/in/lee-mayfield-a4111a/","founded":2015,"city":"Los Gatos","country":"USA"},{"company":"FusionGrove","companyurl":"https://fusiongrove.com/","ceo":"Brian Allsopp","ceourl":"https://www.linkedin.com/in/brianallsopp/","founded":2001,"city":"London","country":"UK"},{"company":"Global Knowledge","companyurl":"https://globalknowledge.com/","ceo":"Jeff Tarr","ceourl":"https://www.linkedin.com/in/jeffreytarr/","founded":1995,"city":"Cary ","country":"USA"},{"company":"Growth Engineering","companyurl":"https://growthengineering.co.uk/","ceo":"David Denny","ceourl":"https://www.linkedin.com/in/david-denny-0a4165/","founded":2004,"city":"Windsor","country":"UK"},{"company":"Highspot","companyurl":"https://highspot.com/","ceo":"Robert Wahbe","ceourl":"https://www.linkedin.com/in/robertwahbe/","founded":2012,"city":"Seattle","country":"USA"},{"company":"IBM Partner Engagement Manager","companyurl":"https://ibm.com/us-en/marketplace/trading-partner-onboarding-solution","ceo":"Arvind Krishna","ceourl":"https://www.linkedin.com/in/arvindkrishna/","founded":1911,"city":"Armonk","country":"USA"},{"company":"Improved Apps","companyurl":"https://improvedapps.com/","ceo":"Simon Thompson","ceourl":"https://www.linkedin.com/in/thomps/?miniProfileUrn=urn%3Ali%3Afs_miniProfile%3AACoAAAAmbKkBRiB9J9V7cthMEk0gIVsuYj8iRBc","founded":2011,"city":"Camberley","country":"UK"},{"company":"Kickpost.io","companyurl":"https://kickpost.io/","ceo":"Richard Rodriguez","ceourl":"https://www.linkedin.com/in/richrod1/","foun
1ded":2018,"city":"Scottsdale ","country":"USA"},{"company":"Klyck","companyurl":"https://klyck.io/","ceo":"Chris Skura","ceourl":"https://www.linkedin.com/in/chrisskura/","founded":2016,"city":"Toronto","country":"Canada"},{"company":"Latitude Learning","companyurl":"https://latitudelearning.com/","ceo":"Jeff Walter","ceourl":"https://www.linkedin.com/in/jeffreywalter/","founded":2003,"city":"Saline","country":"USA"},{"company":"LeadMethod","companyurl":"https://leadmethod.com/","ceo":"Justin Johnson","ceourl":"https://www.linkedin.com/in/justinjjohnson/","founded":2014,"city":"Bend","country":"USA"},{"company":"LeadSmart","companyurl":"https://leadsmarttech.com","ceo":"Kevin Brown","ceourl":"https://www.linkedin.com/in/brownkevinl/","founded":2018,"city":"Santa Barbara","country":"USA"},{"company":"Mediafly","companyurl":"https://mediafly.com/","ceo":"Carson Conant","ceourl":"https://www.linkedin.com/in/carsonconant/","founded":2006,"city":"Chicago","country":"USA"},{"company":"Membrain","companyurl":"https://membrain.com/","ceo":"George Bront\xe9n","ceourl":"https://www.linkedin.com/in/georgebronten/","founded":2012,"city":"Solna","country":"Sweden"},{"company":"Mindtickle","companyurl":"https://www.mindtickle.com/","ceo":"Gopal Depura","ceourl":"https://www.linkedin.com/in/krishna-gopal-depura-344630/","founded":2012,"city":"San Francisco","country":"USA"},{"company":"Mobileforce","companyurl":"https://mobileforcesoftware.com/solutions/channelvelocity%E2%84%A2","ceo":"Jagadish Bandhole","ceourl":"https://www.linkedin.com/in/jagsband/","founded":2011,"city":"Sunnyvale","country":"USA"},{"company":"NetExam","companyurl":"https://netexam.com/","ceo":"Brett Strauss","ceourl":"https://www.linkedin.com/in/bstrauss/","founded":1999,"city":"Dallas","country":"USA"},{"company":"PartnerAmp","companyurl":"https://partneramp.io/","ceo":"Jon Aleckson","ceourl":"https://www.linkedin.com/in/jonaleckson/","founded":1999,"city":"Madison","country":"USA"},{"company":"Partnerhood","companyurl":"https://saleshood.com/sales-enablement-platform/partners/","ceo":"Elay Cohen","ceourl":"https://www.linkedin.com/in/elaycohen/","founded":2013,"city":"San Francisco","country":"USA"},{"company":"PartnerInsight","companyurl":"https://partnerinsight.io/","ceo":"Roman Kirsanov","ceourl":"https://www.linkedin.com/in/romankirsanov/","founded":2019,"city":"London","country":"UK"},{"company":"PartnerOn","companyurl":"https://partneron.com/","ceo":"Jeffrey Mesnik","ceourl":"https://www.linkedin.com/in/jmesnik/","founded":2010,"city":"Newton","country":"USA"},{"company":"Q2E","companyurl":"https://q2e.com/","ceo":"Mahesh Rao","ceourl":"https://www.linkedin.com/in/maheshcrao/","founded":2016,"city":"Cupertino","country":"USA"},{"company":"Qotient","companyurl":"https://qotient.com/","ceo":"John De Los Reyes","ceourl":"https://www.linkedin.com/in/justinwright1/","founded":2013,"city":"San Jose","country":"USA"},{"company":"Recur Global","companyurl":"https://recur.net/","ceo":"Matthew Hathorn","ceourl":"https://www.linkedin.com/in/matthathorn/","founded":2011,"city":"Harpenden","country":"UK"},{"company":"Salesforce","companyurl":"https://salesforce.com/products/sales-cloud/features/channel-partner-management/","ceo":"Marc Benioff","ceourl":"https://www.linkedin.com/in/marcbenioff/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"Seismic","companyurl":"https://seismic.com","ceo":"Doug Winter","ceourl":"https://www.linkedin.com/in/doug-winter/","founded":2010,"city":"San Diego","country":"USA"},{"company":"Skilljar","companyurl":"https://skilljar.com/","ceo":"Sandi Lin","ceourl":"https://www.linkedin.com/in/sandislin/","founded":2013,"city":"Seattle","country":"USA"},{"company":"Streamz","companyurl":"https://streamz.ai/","ceo":"Jawahar Kanjilal","ceourl":"https://www.linkedin.com/in/jawaharkanjilal/","founded":2016,"city":"Singapore","country":"Singapore"},{"company":"TalentLMS","companyurl":"https://talentlms.com/","ceo":"Thanos Papangelis","ceourl":"https://www.linkedin.com/in/papagelis/","founded":2012,"city":"San Francisco","country":"USA"},{"company":"Teckedin.com","companyurl":"https://teckedin.com/","ceo":"Debby Kruzic","ceourl":"https://www.linkedin.com/in/privacy-driventechplatformfounder/","founded":2016,"city":"Albuquerque","country":"USA"},{"company":"TIDWIT","companyurl":"https://tidwit.com/","ceo":"Wissam (Will) Yafi","ceourl":"https://www.linkedin.com/in/wissam-will-yafi-8696946/","foun
1ded":2003,"city":"Reston","country":"USA"},{"company":"Vartopia","companyurl":"https://vartopia.com/","ceo":"Michael Reilly","ceourl":"https://www.linkedin.com/in/michaelreilly2/","founded":2009,"city":"Worland","country":"USA"},{"company":"Whistle","companyurl":"https://wewhistle.com/","ceo":"Drew Carter","ceourl":"https://www.linkedin.com/in/drewcarter/","founded":2020,"city":"St. Louis","country":"USA"}],"vendorPRM":[{"company":"360insights","companyurl":"https://webinfinity.com/","ceo":"James Hodgkinson","ceourl":"https://www.linkedin.com/in/jahodgkinson/","founded":2012,"city":"Huntington","country":"USA"},{"company":"Allbound","companyurl":"https://allbound.com/","ceo":"Paul Szemerenyi","ceourl":"https://www.linkedin.com/in/paulszemerenyi/","founded":2014,"city":"Atlanta","country":"USA"},{"company":"AppDirect","companyurl":"https://appdirect.com/","ceo":"Nicolas Desmarais","ceourl":"https://www.linkedin.com/in/nicolas-desmarais-8069a914/","founded":2017,"city":"San Francisco","country":"USA"},{"company":"Bench","companyurl":"https://bench.team/","ceo":"Sukhi Bhullar","ceourl":"https://www.linkedin.com/in/sukhibhullar/","founded":2016,"city":"Sydney","country":"Australia"},{"company":"Channel Mechanics","companyurl":"https://channelmechanics.com/","ceo":"Kenneth Fox","ceourl":"https://www.linkedin.com/in/kenneth-fox-a87a0b59/","founded":2011,"city":"Galway","country":"Ireland"},{"company":"Channeltivity","companyurl":"https://channeltivity.com","ceo":"Jason Jacobs","ceourl":"https://www.linkedin.com/in/jasondjacobs/","founded":2007,"city":"Charlotte","country":"USA"},{"company":"ChannelXperts","companyurl":"https://channelxperts.com/","ceo":"Volker Wiora","ceourl":"https://www.linkedin.com/in/vwiora/","founded":2006,"city":"Landau","country":"Germany"},{"company":"Channelyze","companyurl":"https://channelyze.io/","ceo":"Ashley Speight","ceourl":"https://www.linkedin.com/in/ashley-speight-315297106/","founded":2021,"city":"London","country":"UK"},{"company":"CloudCC","companyurl":"https://www.cloudcc.com/en/products/partner","ceo":"Mandi Sun","ceourl":"","founded":2008,"city":"Beijing","country":"China"},{"company":"Computer Market Research","companyurl":"https://computermarketresearch.com/","ceo":"Del Heles","ceourl":"https://www.linkedin.com/in/delheles/","founded":1984,"city":"San Diego","country":"USA"},{"company":"Comviva","companyurl":"https://comviva.com/","ceo":"Manoranjan Mohapatra","ceourl":"https://www.linkedin.com/in/manoranjan-mao-mohapatra-3545724/","founded":1999,"city":"Gurgaon","country":"India"},{"company":"Creatio","companyurl":"https://creatio.com/","ceo":"Katherine Kostereva","ceourl":"https://www.linkedin.com/in/katherine-kostereva-284a523/","founded":2002,"city":"Boston","country":"USA"},{"company":"Elioplus","companyurl":"https://elioplus.com","ceo":"Elias Ndreu","ceourl":"https://www.linkedin.com/in/iliasndreu/","founded":2015,"city":"Athens","country":"Greece"},{"company":"GorillaToolz","companyurl":"https://GorillaToolz.com","ceo":"Jay Fruin","ceourl":"https://www.linkedin.com/in/jayfruin/","founded":2007,"city":"Wantagh","country":"USA"},{"company":"Impartner","companyurl":"https://impartner.com","ceo":"Joe Wang","ceourl":"https://www.linkedin.com/in/joe-wang-a17840/","founded":1997,"city":"South Jordan","country":"USA"},{"company":"Inova Software","companyurl":"https://inova.io/","ceo":"Gilles Toulemonde\\n","ceourl":"https://www.linkedin.com/in/gillestoulemonde/","founded":2010,"city":"Lyon","country":"France"},{"company":"Kademi","companyurl":"https://www.kademi.co/","ceo":"Patrick Hone","ceourl":"https://www.linkedin.com/in/patrickhone/","founded":2012,"city":"Auckland","country":"New Zealand"},{"company":"Kingdee","companyurl":"https://www.kingdee.com","ceo":"Shaochun Xu","ceourl":"","founded":1993,"city":"Shenzen","country":"China"},{"company":"Kiflo PRM","companyurl":"https://kiflo.com/","ceo":"Steven Muhr","ceourl":"https://www.linkedin.com/in/stevenmuhr/","founded":2018,"city":"Paris","country":"France"},{"company":"LogicBay","companyurl":"https://logicbay.com/","ceo":"Tim Lindsay","ceourl":"https://www.linkedin.com/in/tim-lindsay-919883/","founded":1980,"city":"Wilmington","country":"USA"},{"company":"Magentrix","companyurl":"https://magentrix.com/","ceo":"Sam Arjmandi","ceourl":"https://www.linkedin.com/in/arjmandi/","foun
1ded":2012,"city":"Richmond Hill","country":"Canada"},{"company":"Mindmatrix","companyurl":"https://mindmatrix.net/","ceo":"Harbinder Khera","ceourl":"https://www.linkedin.com/in/harbinderkhera/","founded":1998,"city":"Pittsburgh","country":"USA"},{"company":"myprm","companyurl":"https://myprm.com","ceo":"Richard Bessis","ceourl":"https://www.linkedin.com/in/richard-bessis-726a151/","founded":2015,"city":"Levallois-Perret","country":"France"},{"company":"Neocrm","companyurl":"https://www.neocrm.com/en/prm","ceo":"Yanze Shi","ceourl":"","founded":2011,"city":"Mumbai","country":"India"},{"company":"NowApps ChannelKonnect","companyurl":"https://channelkonnect.com/","ceo":"Basaveswarlu Boyapati","ceourl":"https://www.linkedin.com/in/bboyapati/","founded":2015,"city":"Bengaluru","country":"India"},{"company":"Oracle PRM","companyurl":"https://oracle.com/cx/sales/partner-relationship-management/","ceo":"Safra Catz","ceourl":"https://www.linkedin.com/in/safra-c-96780667/","founded":1977,"city":"Redwood Shores","country":"USA"},{"company":"Partnerpage.io","companyurl":"https://partnerpage.io/","ceo":"Mario Tarabbia","ceourl":"https://www.linkedin.com/in/mariotarabbia/","founded":2019,"city":"San Francisco ","country":"USA"},{"company":"PartnerPortal.io","companyurl":"https://partnerportal.io/","ceo":"Jonathan Coy","ceourl":"https://www.linkedin.com/in/jonathan-coy/","founded":2018,"city":"Ottawa","country":"Canada"},{"company":"PartnerStack","companyurl":"https://partnerstack.com/","ceo":"Bryn Jones","ceourl":"https://www.linkedin.com/in/bryn-jones/","founded":2015,"city":"Toronto","country":"Canada"},{"company":"Pegasystems","companyurl":"https://pega.com/","ceo":"Alan Trefler","ceourl":"https://www.linkedin.com/in/alantrefler/","founded":1983,"city":"Cambridge","country":"USA"},{"company":"Rockwell","companyurl":"https://rockinfo.com/","ceo":"Nicky Rockwell","ceourl":"https://www.linkedin.com/in/nicky-rockwell-454777a/","founded":2000,"city":"Hornsby","country":"Australia"},{"company":"Salesforce","companyurl":"https://salesforce.com/products/sales-cloud/features/channel-partner-management/","ceo":"Marc Benioff","ceourl":"https://www.linkedin.com/in/marcbenioff/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"Scalando","companyurl":"https://scalando.com","ceo":"Eirik Gyllensten Bj\xf8rnsen","ceourl":"https://www.linkedin.com/in/eirik-gyllensten-bj%C3%B8rnsen-ab2626/","founded":2020,"city":"Sant Vicen\xe7 de Montalt","country":"Spain"},{"company":"Torchlite","companyurl":"https://torchlite.com","ceo":"Robert Harris","ceourl":"https://www.linkedin.com/in/robert-lee-harris/","founded":2015,"city":"Indianapolis","country":"USA"},{"company":"Yonyou","companyurl":"https://intl.yonyou.com","ceo":"You Li","ceourl":"","founded":1988,"city":"Beijing","country":"China"},{"company":"Zift Solutions","companyurl":"https://ziftsolutions.com","ceo":"Tobias Hartmann","ceourl":"https://www.linkedin.com/in/tobiashartmann/","founded":2006,"city":"Jersey City","country":"USA"},{"company":"Zinfi Technologies","companyurl":"https://zinfi.com","ceo":"Sugata Sanyal","ceourl":"https://www.linkedin.com/in/sugatasanyal/","founded":2007,"city":"Pleasanton","country":"USA"},{"company":"Zomentum","companyurl":"https://zomentum.com","ceo":"Shruti Ghatge","ceourl":"https://www.linkedin.com/in/shrutighatge/","founded":2018,"city":"San Francisco","country":"USA"}],"vendorTCMA":[{"company":"Acquia","companyurl":"https://acquia.com/","ceo":"Michael Sullivan","ceourl":"https://www.linkedin.com/in/mpsully/","founded":2007,"city":"Boston","country":"USA"},{"company":"Ansira","companyurl":"https://ansira.com","ceo":"Andy Arnold","ceourl":"https://www.linkedin.com/in/andyarnold2/","founded":1919,"city":"St. Louis","country":"USA"},{"company":"Aprimo","companyurl":"https://aprimo.com/","ceo":"Erik Huddleston","ceourl":"https://www.linkedin.com/in/ehuddleston/","founded":2006,"city":"Chicago","country":"USA"},{"company":"Brand Wings","companyurl":"https://brandwings.com/","ceo":"Greg Salzman","ceourl":"https://www.linkedin.com/in/gregsalzman/","founded":2021,"city":"West Chicago ","country":"USA"},{"company":"BrandMaker","companyurl":"https://brandmaker.com/","ceo":"Mirko Holzer","ceourl":"https://www.linkedin.com/in/mirkoholzer/","founded":1999,"city":"Karlsruhe","country":"Germany"},{"company":"Brandmuscle","companyurl":"https://Brandmuscle.com","ceo":"Scott Weeren","ceourl":"https://www.linkedin.com/in/scottweeren/","foun
1ded":2000,"city":"Chicago","country":"USA"},{"company":"Bridgeline Digital","companyurl":"https://bridgelinedigital.com/","ceo":"Ari Kahn","ceourl":"https://www.linkedin.com/in/arikahn/","founded":2000,"city":"Burlington","country":"USA"},{"company":"CampaignDrive by Pica9","companyurl":"https://pica9.com","ceo":"Kevin Groome","ceourl":"https://www.linkedin.com/in/kgroome/","founded":2001,"city":"New York","country":"USA"},{"company":"Channel Fusion","companyurl":"https://channel-fusion.com/","ceo":"Pankaj Monga","ceourl":"https://www.linkedin.com/in/pankaj-monga-8419401/","founded":2003,"city":"Hiawatha","country":"USA"},{"company":"ChannelXperts","companyurl":"https://channelxperts.com/","ceo":"Volker Wiora","ceourl":"https://www.linkedin.com/in/vwiora/","founded":2006,"city":"Landau","country":"Germany"},{"company":"Channext","companyurl":"https://channext.com","ceo":"Rick van den Bosch","ceourl":"https://www.linkedin.com/in/rickvandenbosch/","founded":2018,"city":"Utrecht","country":"Netherlands"},{"company":"Code Worldwide","companyurl":"https://codeworldwide.com","ceo":"Matt McNeany","ceourl":"https://www.linkedin.com/in/mattmcneany/","founded":2003,"city":"London","country":"UK"},{"company":"Computer Market Research","companyurl":"https://computermarketresearch.com/","ceo":"Del Heles","ceourl":"https://www.linkedin.com/in/delheles/","founded":1984,"city":"San Diego","country":"USA"},{"company":"ContentMX","companyurl":"https://contentmx.com/","ceo":"Jeffrey Mesnik","ceourl":"https://www.linkedin.com/in/jmesnik/","founded":2009,"city":"Newton","country":"USA"},{"company":"daXai","companyurl":"https://daxai.com/","ceo":"Gail Mercer-MacKay","ceourl":"https://www.linkedin.com/in/gailmm/","founded":2021,"city":"Toronto","country":"Canada"},{"company":"DemandBridge","companyurl":"https://demandbridge.com/","ceo":"David Rich","ceourl":"https://www.linkedin.com/in/dave-rich-1b84b5b/","founded":1975,"city":"Norcross","country":"USA"},{"company":"Distribion","companyurl":"https://distribion.com/","ceo":"Eric Meyers","ceourl":"https://www.linkedin.com/in/eric-myers-124a4a5/","founded":2009,"city":"Dallas","country":"USA"},{"company":"E2open","companyurl":"https://e2open.com","ceo":"Michael Farlekas","ceourl":"https://www.linkedin.com/in/michaelfarlekas/","founded":2000,"city":"Austin","country":"USA"},{"company":"Elateral","companyurl":"https://elateral.com","ceo":"Peter Blackburn","ceourl":"https://www.linkedin.com/in/peter-blackburn-0581a53/","founded":1998,"city":"Farnham","country":"UK"},{"company":"eTrigue","companyurl":"https://etrigue.com/","ceo":"Jeff Holmes","ceourl":"https://www.linkedin.com/in/jeffholmesdemandgen/","founded":2011,"city":"San Jose","country":"USA"},{"company":"Fielo","companyurl":"https://fielo.com/","ceo":"Sanjay Agarwal","ceourl":"https://www.linkedin.com/in/sanjay-agarwal-33a1a3/","founded":2010,"city":"San Francisco","country":"USA"},{"company":"GlassHive","companyurl":"https://glasshive.com/","ceo":"Giovanni Sanguily","ceourl":"https://www.linkedin.com/in/giovannisanguily/","founded":2018,"city":"Plano","country":"USA"},{"company":"Gorilla","companyurl":"https://gorillaict.com/","ceo":"Carlo Tortora Brayda di Belvedere","ceourl":"https://www.linkedin.com/in/carlotortorabrayda/","founded":1992,"city":"San Francisco","country":"USA"},{"company":"Impartner","companyurl":"https://impartner.com","ceo":"Joe Wang","ceourl":"https://www.linkedin.com/in/joe-wang-a17840/","founded":1997,"city":"South Jordan","country":"USA"},{"company":"Ingenious Technologies","companyurl":"https://ingenioustechnologies.com/","ceo":"Siamak Haschemi","ceourl":"https://www.linkedin.com/in/dr-siamak-haschemi-76a77328/","founded":2012,"city":"Berlin","country":"Germany"},{"company":"MarcomCentral","companyurl":"https://marcom.com","ceo":"Byung Choi","ceourl":"https://www.linkedin.com/in/bchoient/","founded":2000,"city":"Solona Beach","country":"USA"},{"company":"Mindmatrix","companyurl":"https://mindmatrix.net/","ceo":"Harbinder Khera","ceourl":"https://www.linkedin.com/in/harbinderkhera/","founded":1998,"city":"Pittsburgh","country":"USA"},{"company":"MRP","companyurl":"https://mrpfd.com/","ceo":"Kevin Cunningham","ceourl":"https://www.linkedin.com/in/kevin-cunningham-9a3551/","foun
1ded":2002,"city":"Philadelphia","country":"USA"},{"company":"Netsertive","companyurl":"https://netsertive.com","ceo":"Steve Leonard","ceourl":"https://www.linkedin.com/in/stephenleonard/","founded":2009,"city":"Morrisville","country":"USA"},{"company":"PageFlex","companyurl":"https://pageflex.com/","ceo":"Jim Dore","ceourl":"https://www.linkedin.com/in/james-dore-5787ab8/","founded":1997,"city":"Marlborough","country":"USA"},{"company":"Powerchord","companyurl":"https://powerchord.com/","ceo":"William Volmuth","ceourl":"https://www.linkedin.com/in/william-volmuth-ba8a572/","founded":2001,"city":"St. Petersburg","country":"USA"},{"company":"promoboxx","companyurl":"https://promoboxx.com/","ceo":"Brent Delehey","ceourl":"https://www.linkedin.com/in/brentdelehey/","founded":2010,"city":"Boston","country":"USA"},{"company":"Relevize","companyurl":"https://relevize.io/","ceo":"Michael Nardella","ceourl":"https://www.linkedin.com/in/michaelnardella1/","founded":2019,"city":"Boston","country":"USA"},{"company":"RVLVR","companyurl":"https://gorvlvr.com/","ceo":"Mike Trevino","ceourl":"https://www.linkedin.com/in/miketrevino/","founded":2017,"city":"San Diego","country":"USA"},{"company":"Silvercrest","companyurl":"https://silvercrest.agency","ceo":"William Rodriguez","ceourl":"https://www.linkedin.com/in/williamfrankrodriguez/","founded":2011,"city":"Van Nuys","country":"USA"},{"company":"Sitecore","companyurl":"https://sitecore.com/","ceo":"Mark Frost","ceourl":"https://www.linkedin.com/in/markfrost/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"Sproutloud","companyurl":"https://sproutloud.com","ceo":"Jared Shusterman","ceourl":"https://www.linkedin.com/in/jaredshusterman/","founded":2006,"city":"Sunrise","country":"USA"},{"company":"StructuredWeb","companyurl":"https://structuredweb.com/","ceo":"Daniel Nissan","ceourl":"https://www.linkedin.com/in/danielnissan/","founded":1998,"city":"New York","country":"USA"},{"company":"TripTych","companyurl":"https://triptych.com/","ceo":"Fuzzy Marek","ceourl":"https://www.linkedin.com/in/fuzzymarek/","founded":1974,"city":"Eden Prairie","country":"USA"},{"company":"twogether","companyurl":"https://partnermarketing.com/","ceo":"Kirsty Gilchrist","ceourl":"https://www.linkedin.com/in/kirsty-gilchrist-631080a/","founded":2001,"city":"Marlow","country":"UK"},{"company":"Vendasta","companyurl":"https://vendasta.com/","ceo":"Brendan King","ceourl":"https://www.linkedin.com/in/brendanking/","founded":2008,"city":"Saskatoon","country":"Canada"},{"company":"Vistex","companyurl":"https://vistex.com/product-suites/channel-conduit-suite","ceo":"Sanjay Shah","ceourl":"https://www.linkedin.com/in/sanjayshahvistex/","founded":1999,"city":"Hoffman Estates","country":"USA"},{"company":"Wedia","companyurl":"https://wedia-group.com/","ceo":"Nicolas Boutet","ceourl":"https://www.linkedin.com/in/nicolas-boutet-wedia/","founded":2001,"city":"Paris","country":"France"},{"company":"xAmplify","companyurl":"https://xamplify.com/","ceo":"Sudhir Nambiar","ceourl":"https://www.linkedin.com/in/sudhir-nambiar-1846511/","founded":2018,"city":"Fremont","country":"USA"},{"company":"Zift Solutions","companyurl":"https://ziftsolutions.com","ceo":"Tobias Hartmann","ceourl":"https://www.linkedin.com/in/tobiashartmann/","founded":2006,"city":"Jersey City","country":"USA"},{"company":"Zinfi Technologies","companyurl":"https://zinfi.com","ceo":"Sugata Sanyal","ceourl":"https://www.linkedin.com/in/sugatasanyal/","founded":2007,"city":"Pleasanton","country":"USA"}],"vendorCEM":[{"company":"360insights","companyurl":"https://webinfinity.com/","ceo":"James Hodgkinson","ceourl":"https://www.linkedin.com/in/jahodgkinson/","founded":2012,"city":"Huntington","country":"USA"},{"company":"Allianceboard","companyurl":"https://allianceboard.com/","ceo":"Louis Rinfret","ceourl":"https://www.linkedin.com/in/lrinfret/","founded":2017,"city":"Trois-Rivi\xe8res","country":"Canada"},{"company":"Anaqua IdeaPoint","companyurl":"https://anaqua.com/ideapoint/","ceo":"Scott Shaunessy","ceourl":"https://www.linkedin.com/in/scottshaunessy/","foun
1ded":2008,"city":"Boston","country":"USA"},{"company":"Apideck","companyurl":"https://apideck.com/","ceo":"Gertjan De Wilde","ceourl":"https://www.linkedin.com/in/gertjandewilde/","founded":2018,"city":"San Francisco","country":"USA"},{"company":"AppDirect","companyurl":"https://appdirect.com/","ceo":"Nicolas Desmarais","ceourl":"https://www.linkedin.com/in/nicolas-desmarais-8069a914/","founded":2017,"city":"San Francisco","country":"USA"},{"company":"AppXite","companyurl":"https://appxite.com/","ceo":"Nicolas Albana","ceourl":"https://www.linkedin.com/in/nicolasalbana/","founded":2014,"city":"Riga","country":"Latvia"},{"company":"Arcadier","companyurl":"https://arcadier.com","ceo":"Dinuke Ranasinghe","ceourl":"https://www.linkedin.com/in/dinuke-ranasinghe/","founded":2013,"city":"Singapore","country":"Singapore"},{"company":"Arrow","companyurl":"https://www.arrow.com/globalecs/na/platforms/arrowsphere/","ceo":"Sean Kerins","ceourl":"https://www.linkedin.com/in/sean-k-a9031b3/","founded":1935,"city":"Centennial","country":"USA"},{"company":"Awin","companyurl":"https://awin.com/us","ceo":"Mark Walters ","ceourl":"https://www.linkedin.com/in/mark-walters-a251423/","founded":2000,"city":"Berlin","country":"Germany"},{"company":"Balluun","companyurl":"https://balluun.com","ceo":"Deepak Gupta","ceourl":"https://www.linkedin.com/in/deepak-gupta-52aa92/","founded":2009,"city":"Sunnyvale","country":"USA"},{"company":"Breezy.io","companyurl":"https://breezy.io/","ceo":"Alex Phillips","ceourl":"https://www.linkedin.com/in/alexanderjphillips/","founded":2019,"city":"London","country":"UK"},{"company":"Builtfirst","companyurl":"https://builtfirst.com/","ceo":"Aaron Bailey","ceourl":"https://www.linkedin.com/in/aaroncbailey91/","founded":2020,"city":"San Francisco","country":"USA"},{"company":"Channel Program","companyurl":"https://channelprogram.com","ceo":"Kevin Lancaster","ceourl":"https://www.linkedin.com/in/kevinlancaster/","founded":2021,"city":"Edgewater","country":"USA"},{"company":"Channelyze","companyurl":"https://channelyze.io/","ceo":"Ashley Speight","ceourl":"https://www.linkedin.com/in/ashley-speight-315297106/","founded":2021,"city":"London","country":"UK"},{"company":"Channext","companyurl":"https://channext.com","ceo":"Rick van den Bosch","ceourl":"https://www.linkedin.com/in/rickvandenbosch/","founded":2018,"city":"Utrecht","country":"Netherlands"},{"company":"Circlewise","companyurl":"https://circlewise.io/","ceo":"Stephan Vogel","ceourl":"https://www.linkedin.com/in/stephanvogel82/","founded":2014,"city":"Skjetten","country":"Norway"},{"company":"CJ","companyurl":"https://cj.com/","ceo":"Mayuresh Kshetramade","ceourl":"https://www.linkedin.com/in/mayureshkshetramade/","founded":1998,"city":"Santa Barbara","country":"USA"},{"company":"CloudBlue","companyurl":"https://cloudblue.com","ceo":null,"ceourl":null,"founded":2015,"city":"Irvine","country":"USA"},{"company":"CONNACT","companyurl":"https://connact.cloud/","ceo":"Yuval Chayo","ceourl":"https://www.linkedin.com/in/yuval-chayo/","founded":2020,"city":"Rannana","country":"Israel"},{"company":"Constellant","companyurl":"https://constellant.com/","ceo":"Bhavesh Patal","ceourl":"https://www.linkedin.com/in/bhaveshtpatel/","founded":2001,"city":"Austin","country":"USA"},{"company":"CoSell.io","companyurl":"https://cosell.io/","ceo":"Rob Brown","ceourl":"https://www.linkedin.com/in/rob-brown-2b393a108/","founded":2019,"city":"San Francisco","country":"USA"},{"company":"Crossbeam","companyurl":"https://crossbeam.com/","ceo":"Bob Moore ","ceourl":"https://www.linkedin.com/in/robertjmoore/","founded":2018,"city":"Philadelphia","country":"USA"},{"company":"Everflow","companyurl":"https://www.everflow.io","ceo":"Sam Darawish","ceourl":"https://www.linkedin.com/in/samdarawish/","founded":2016,"city":"Mountain Vie
1w","country":"USA"},{"company":"Findr","companyurl":"https://findr.global/","ceo":"Greg Watts","ceourl":"https://www.linkedin.com/in/gpewatts/","founded":2019,"city":"London","country":"UK"},{"company":"Forecastable","companyurl":"https://forecastable.com","ceo":"Alex Buckles","ceourl":"https://www.linkedin.com/in/alexbuckles/","founded":2019,"city":"Orlando","country":"USA"},{"company":"Gradient","companyurl":"https://meetgradient.com/","ceo":"Colin Knox","ceourl":"https://www.linkedin.com/in/realityknox/","founded":2020,"city":"Calgary","country":"Canada"},{"company":"Grata","companyurl":"https://grata.com/","ceo":"Andrew Bocskocsky","ceourl":"https://www.linkedin.com/in/andrew-bocskocsky/","founded":2016,"city":"New York","country":"USA"},{"company":"iasset.com","companyurl":"https://iasset.com/","ceo":"Scott Frew","ceourl":"https://www.linkedin.com/in/scott-frew-521948/","founded":"2008","city":"San Francisco","country":"USA"},{"company":"Impact","companyurl":"https://impact.com","ceo":"David Yovanno","ceourl":"https://www.linkedin.com/in/dyovanno/","founded":2008,"city":"Santa Barbara","country":"USA"},{"company":"Impartner","companyurl":"https://impartner.com","ceo":"Joe Wang","ceourl":"https://www.linkedin.com/in/joe-wang-a17840/","founded":1997,"city":"South Jordan","country":"USA"},{"company":"Ingenious Technologies","companyurl":"https://ingenioustechnologies.com/","ceo":"Siamak Haschemi","ceourl":"https://www.linkedin.com/in/dr-siamak-haschemi-76a77328/","founded":2012,"city":"Berlin","country":"Germany"},{"company":"interworks.cloud","companyurl":"https://interworks.cloud","ceo":"Vassilis Zografos","ceourl":"https://www.linkedin.com/in/vzografos/","foun
1ded":2001,"city":"Thessaloniki","country":"Greece"},{"company":"Jitterbit","companyurl":"https://jitterbit.com/","ceo":"George Gallegos","ceourl":"https://www.linkedin.com/in/georgegallegos/?authType=","founded":2004,"city":"Alameda","country":"USA"},{"company":"Labra","companyurl":"https://www.labra.io/","ceo":"Sridhar Adusumilli","ceourl":"https://www.linkedin.com/in/sredhar/","founded":2018,"city":"Princeton","country":"USA"},{"company":"LeadSmart","companyurl":"https://leadsmarttech.com","ceo":"Kevin Brown","ceourl":"https://www.linkedin.com/in/brownkevinl/","founded":2018,"city":"Santa Barbara","country":"USA"},{"company":"LogicBay","companyurl":"https://logicbay.com/","ceo":"Tim Lindsay","ceourl":"https://www.linkedin.com/in/tim-lindsay-919883/","founded":1980,"city":"Wilmington","country":"USA"},{"company":"Marketplacer","companyurl":"https://marketplacer.com/","ceo":"Jason Wyatt","ceourl":"https://www.linkedin.com/in/jason-wyatt-43240625/","founded":2012,"city":"Melbourne","country":"Australia"},{"company":"MeasureMatch","companyurl":"https://measurematch.com/","ceo":"James Sandoval","ceourl":"https://www.linkedin.com/in/jamessandoval/","founded":2016,"city":"London","country":"UK"},{"company":"Mirakl","companyurl":"https://mirakl.com","ceo":"Philippe Corrot","ceourl":"https://www.linkedin.com/in/pcorrot/","founded":2011,"city":"Paris","country":"France"},{"company":"Moonshot","companyurl":"https://moonshot.ceo/","ceo":"David Suriol Puigvert","ceourl":"https://www.linkedin.com/in/davidsuriol/","founded":2017,"city":"Pozuelo de Alarc\xf3n","country":"Spain"},{"company":"Morphed","companyurl":"https://morphed.io/","ceo":"Graeme Wilson","ceourl":"https://www.linkedin.com/in/graemewilson-morphed/","founded":2020,"city":"Johannesburg","country":"South Africa"},{"company":"Oro","companyurl":"https://oroinc.com","ceo":"Yoav Kutner","ceourl":"https://www.linkedin.com/in/yoavkutner/","founded":2012,"city":"Los Angeles","country":"USA"},{"company":"P2P Global","companyurl":"https://p2pglobal.info/","ceo":"John Guido","ceourl":"https://www.linkedin.com/in/john-guido/","founded":2019,"city":"Cleveland","country":"USA"},{"company":"Pandium","companyurl":"https://pandium.com/","ceo":"Cristina Flaschen","ceourl":"https://www.linkedin.com/in/cristina-flaschen/","founded":2017,"city":"New York","country":"USA"},{"company":"Partner Fleet","companyurl":"https://partnerfleet.io","ceo":"Kenny Browne","ceourl":"https://www.linkedin.com/in/kennybrowne/","founded":2021,"city":"Bristol","country":"USA"},{"company":"Partner to Profit","companyurl":"https://meetpartnertoprofit.com/","ceo":"Keith Gaylord","ceourl":"https://www.linkedin.com/in/keithgaylord/","founded":2015,"city":"Williston","country":"USA"},{"company":"PartnerConnect","companyurl":"https://partnerconnect.io","ceo":"Rohan Kulkarni","ceourl":"https://www.linkedin.com/in/rakulkarni/","founded":2017,"city":"San Mateo","country":"USA"},{"company":"Partnerhub","companyurl":"https://partnerhub.app/","ceo":"Alex Glenn","ceourl":"https://www.linkedin.com/in/alex-glenn/","founded":2021,"city":"Chicago","country":"USA"},{"company":"Partnerize","companyurl":"https://partnerize.com/","ceo":"Matt Gilbert","ceourl":"https://www.linkedin.com/in/mattgilbert/","founded":2010,"city":"Newcastle","country":"UK"},{"company":"PartnerOptimizer","companyurl":"https://partneroptimizer.com/","ceo":"Dina Moskowitz","ceourl":"https://www.linkedin.com/in/dinamoskowitz/","founded":2011,"city":"San Diego","country":"USA"},{"company":"PartnerStack","companyurl":"https://partnerstack.com/","ceo":"Bryn Jones","ceourl":"https://www.linkedin.com/in/bryn-jones/","founded":2015,"city":"Toronto","country":"Canada"},{"company":"PartnerTap","companyurl":"https://partnertap.com/","ceo":"Cassandra Gholston","ceourl":"https://www.linkedin.com/in/cassandragholston/","founded":2016,"city":"Seattle","country":"USA"},{"company":"Pax8","companyurl":"https://pax8.com","ceo":"John Street","ceourl":"https://www.linkedin.com/in/john-street-pax8","founded":2011,"city":"Denver","country":"USA"},{"company":"Pronto","companyurl":"https://gopronto.io/","ceo":"Swaroop Kolli","ceourl":"https://www.linkedin.com/in/swaroopkolli/","foun
1ded":2018,"city":"Sunnyvale","country":"USA"},{"company":"Qollabi","companyurl":"https://qollabi.com/","ceo":"Friedrich P\xe9tr\xe9","ceourl":"https://www.linkedin.com/in/friedrichpetre/","founded":2009,"city":"Brussels","country":"Belgium"},{"company":"Reveal","companyurl":"https://reveal.co/","ceo":"Simon Bouchez","ceourl":"https://www.linkedin.com/in/simonbouchez/","founded":2018,"city":"Paris","country":"France"},{"company":"Scalando","companyurl":"https://scalando.com","ceo":"Eirik Gyllensten Bj\xf8rnsen","ceourl":"https://www.linkedin.com/in/eirik-gyllensten-bj%C3%B8rnsen-ab2626/","founded":2020,"city":"Sant Vicen\xe7 de Montalt","country":"Spain"},{"company":"Sitecore","companyurl":"https://sitecore.com/","ceo":"Mark Frost","ceourl":"https://www.linkedin.com/in/markfrost/","founded":1999,"city":"San Francisco","country":"USA"},{"company":"Spiisee","companyurl":"https://spiisee.com/","ceo":"Carl Watene","ceourl":"https://www.linkedin.com/in/carl-watene-4785025/","founded":2018,"city":"Collingwood","country":"Canada"},{"company":"Spryker","companyurl":"http://www.spryker.com","ceo":"Boris Lokschin","ceourl":"https://www.linkedin.com/in/boris-lokschin-aba53013/","founded":2014,"city":"Berlin","country":"Germany"},{"company":"Suger","companyurl":"http://suger.io/","ceo":"Jon Yoon","ceourl":"https://www.linkedin.com/in/jon-yoo-4861439a/","founded":2022,"city":"San Francisco","country":"USA"},{"company":"Superglue","companyurl":"https://www.superglue.io/","ceo":"Rob Rebholz","ceourl":"https://www.linkedin.com/in/robrebholz/","founded":2022,"city":"San Francisco","country":"USA"},{"company":"TD Synnex","companyurl":"https://www.synnexcorp.com/stellr/community/marketplace/","ceo":"Rich Hume","ceourl":"https://www.linkedin.com/in/richhume/","founded":1974,"city":"Freemont","country":"USA"},{"company":"The Community Atlas","companyurl":"https://thecommunityatlas.com/en/","ceo":"Damiano Ramazzotti","ceourl":"https://www.linkedin.com/in/damianoramazzotti/","founded":2020,"city":"Milan","country":"Italy"},{"company":"TIDWIT","companyurl":"https://tidwit.com/","ceo":"Wissam (Will) Yafi","ceourl":"https://www.linkedin.com/in/wissam-will-yafi-8696946/","founded":2003,"city":"Reston","country":"USA"},{"company":"Tr3dent","companyurl":"https://tr3dent.com/","ceo":"Kevin McCaffrey","ceourl":"https://www.linkedin.com/in/kevinmccaffrey/","founded":2011,"city":"Galway City","country":"Ireland"},{"company":"Trackstreet","companyurl":"https://www.trackstreet.com/","ceo":"Andrew Schyldowsky","ceourl":"https://www.linkedin.com/in/andrewschydlowsky/","founded":2015,"city":"Las Vegas","country":"USA"},{"company":"TUNE","companyurl":"https://tune.com/","ceo":"Cameron Stewart","ceourl":"https://www.linkedin.com/in/camerons/","founded":2009,"city":"Seattle","country":"USA"},{"company":"Union Resolute","companyurl":"https://unionresolute.com/","ceo":"Mark Troy","ceourl":"https://www.linkedin.com/in/intentsales/","founded":2014,"city":"New York","country":"USA"},{"company":"Vation Ventures","companyurl":"https://vationventures.com/","ceo":"Dave O\'Callaghan","ceourl":"https://www.linkedin.com/in/daveo4/","founded":2017,"city":"Denver","country":"USA"},{"company":"Vendasta","companyurl":"https://vendasta.com/","ceo":"Brendan King","ceourl":"https://www.linkedin.com/in/brendanking/","founded":2008,"city":"Saskatoon","country":"Canada"},{"company":"VikRee","companyurl":"https://vikree.ai","ceo":"Srihari Govindarajan","ceourl":"https://www.linkedin.com/in/sriharigovindarajan/","founded":2020,"city":"Singapore","country":"Singapore"},{"company":"VTEX","companyurl":"https://www.vtex.com/","ceo":"Mariano Gomide de Faria","ceourl":"https://www.linkedin.com/in/mariano-gomide-de-faria-vtex/","founded":2000,"city":"London","country":"UK"},{"company":"WorkSpan","companyurl":"https://workspan.com/","ceo":"Mayank Singh Bawa","ceourl":"https://www.linkedin.com/in/mayankbawa/","founded":2015,"city":"Foster City","country":"USA"},{"company":"Zomentum","companyurl":"https://zomentum.com","ceo":"Shruti Ghatge","ceourl":"https://www.linkedin.com/in/shrutighatge/","founded":2018,"city":"San Francisco","country":"USA"}]}}');var te=m(2294),ie=m(1303),G1=m(9329),ne=m(2198),Ke=m(2340),t2=m(5817),Je=m(9808),H1=m(8387),O1=m(2205);function Z1(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"button",9),a.NdJ("click",function(){const d=a.CHM(_).$implicit;return a.oxw().changeLanguage(d.lang)}),a._uU(1),a.qZA()}if(2&S){const _=a1.$implicit,Y=a.oxw();a.Q6J("ngClass",Y.activeLang==_.lang?"btn btn-success":"btn btn-outline-success"),a.xp6(1),a.hij(" ",_.label," ")}}let d1=(()=>{class S{constructor(_,Y){this.generalService=_,this.storageService=Y,this.languages=O1.d.languages}ngOnInit(){this.activeLang=this.generalService.currentLang}changeLanguage(_){this.activeLang!=_&&(this.storageService.savetoLocalStorage("canalysLang",_),window.location.reload())}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(te.m),a.Y36(ie.V))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-translate-language"]],decls:14,vars:7,consts:[["id","translateModal","tabindex","-1","role","dialog","aria-labelledby","translateModalLabel","aria-hidden","true",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-header"],["id","translateModalLabel",1,"modal-title"],["data-bs-dismiss","modal",1,"btn-close"],[1,"modal-body"],[1,"language-container"],[3,"ngClass","click",4,"ngFor","ngForOf"],[3,"ngClass","click"]],template:function(_,Y){1&_&&(a.TgZ(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"h5",4),a._uU(5),a.ALo(6,"translate"),a.qZA(),a._UZ(7,"button",5),a.qZA(),a.TgZ(8,"div",6)(9,"div",7),a.YNc(10,Z1,2,2,"button",8),a.qZA(),a.TgZ(11,"p"),a._uU(12),a.ALo(13,"translate"),a.qZA()()()()()),2&_&&(a.xp6(5),a.hij(" ",a.lcZ(6,3,"languagetranslate.title")," "),a.xp6(5),a.Q6J("ngForOf",Y.languages),a.xp6(2),a.Oqu(a.lcZ(13,5,"languagetranslate.footer")))},directives:[Je.sg,Je.mk],pipes:[X.X$],styles:["#translateModal[_ngcontent-%COMP%] .modal
1-header[_ngcontent-%COMP%]{position:relative;top:0;justify-content:center}#translateModal[_ngcontent-%COMP%] .modal-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{font-weight:500}#translateModal[_ngcontent-%COMP%] .modal-header[_ngcontent-%COMP%] .btn-close[_ngcontent-%COMP%]{position:absolute;right:30px;width:0;height:0}#translateModal[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] .language-container[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);align-items:center;justify-content:space-evenly}#translateModal[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] .language-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:.5rem}#translateModal[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center;margin-top:.6rem;margin-bottom:0}@media all and (max-width: 400px){#translateModal[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] .language-container[_ngcontent-%COMP%]{grid-template-columns:1fr;height:320px;overflow-y:auto}}"],changeDetection:0}),S})();var I1=m(8924);function O(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"video",7),a._UZ(2,"source",8),a.qZA(),a.BQk()),2&S){const _=a.oxw();a.xp6(2),a.s9C("src",_.src,a.LSH)}}let h1=(()=>{class S{constructor(_){this.videoPopupService=_,this.subs=new de.Y,this.src="",this.showPopup=!1}ngOnInit(){this.subs.sink=this.videoPopupService.srcState.subscribe(_=>{this.src=_,this.showPopup=!this.showPopup})}ngOnDestroy(){this.subs.unsubscribe()}toggleModal(_){this.showPopup=_||!1}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(I1.z))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-video-popup"]],decls:7,vars:3,consts:[["id","video-popup-modal","role","dialog",1,"modal","fade",3,"click"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-body","p-0"],[1,"btn","btn-modal-close",3,"click"],[1,"bi","bi-x-lg"],[4,"ngIf"],["controls","","autoplay","","preload","auto","height","auto",1,"w-100","h-100"],["type","video/mp4",3,"src"]],template:function(_,Y){1&_&&(a.TgZ(0,"div",0),a.NdJ("click",function(){return Y.toggleModal(!1)}),a.TgZ(1,"div",1)(2,"div",2)(3,"div",3)(4,"button",4),a.NdJ("click",function(){return Y.toggleModal(!1)}),a._UZ(5,"i",5),a.qZA(),a.YNc(6,O,3,1,"ng-container",6),a.qZA()()()()),2&_&&(a.ekj("show",Y.showPopup),a.xp6(6),a.Q6J("ngIf",Y.src&&Y.showPopup))},directives:[Je.O5],styles:["#video-popup-modal[_ngcontent-%COMP%]{display:flex;transition:.4s all;overflow:hidden;height:0;opacity:0;transition:height 0ms .4s,opacity .4s 0ms}#video-popup-modal.show[_ngcontent-%COMP%]{height:100%;align-items:center;opacity:1;transition:height 0ms 0ms,opacity .6s 0ms}#video-popup-modal[_ngcontent-%COMP%] .modal-dialog[_ngcontent-%COMP%]{margin:0 auto}@media screen and (min-width: 993px){#video-popup-modal[_ngcontent-%COMP%] .modal-dialog[_ngcontent-%COMP%]{min-width:50%!important}}#video-popup-modal[_ngcontent-%COMP%] .modal-dialog[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%]{position:relative;overflow:hidden}#video-popup-modal[_ngcontent-%COMP%] .modal-dialog[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] .btn-modal-close[_ngcontent-%COMP%]{position:absolute;right:0;top:0px;color:#d3d3d3;padding:10px;z-index:2;cursor:pointer;border-radius:50%;width:46px;height:46px;margin:5px;transition:all .4s}#video-popup-modal[_ngcontent-%COMP%] .modal-dialog[_ngcontent-%COMP%] .modal-body[_ngcontent-%COMP%] .btn-modal-close[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.5);opacity:1;color:#fff}"]}),S})();const q1=["nav"];function _1(S,a1){1&S&&(a.ynx(0),a._UZ(1,"img",59),a.BQk())}function T1(S,a1){1&S&&a._UZ(0,"img",60)}function p1(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"a",66),a.NdJ("click",function(){return a.CHM(_),a.oxw(5).collapseDropdownMenu()}),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()}if(2&S){const _=a.oxw().$implicit;a.Q6J("routerLink",null==_?null:_.url),a.xp6(1),a.hij("",a.lcZ(2,2,a.lcZ(3,4,"header."+_.title))," >")}}function P1(S,a1){if(1&S&&(a.TgZ(0,"a",67),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()),2&S){const _=a.oxw().$implicit;a.Q6J("href",_.url,a.LSH),a.xp6(1),a.hij(" ",a.lcZ(2,2,a.lcZ(3,4,"header."+_.title))," ")}}function B1(S,a1){if(1&S&&(a.TgZ(0,"li"),a.YNc(1,p1,4,6,"a",64),a.YNc(2,P1,4,6,"ng-template",null,65,a.W1O),a.qZA()),2&S){const _=a1.$implicit,Y=a.MAs(3);a.xp6(1),a.Q6J("ngIf",!(null!=_&&null!=_.url&&_.url.includes("http")))("ngIfElse",Y)}}function me(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"li")(2,"a",62),a._uU(3),a.ALo(4,"translate"),a.ALo(5,"lowercase"),a.qZA(),a.TgZ(6,"ul",63),a.YNc(7,B1,4,2,"li",31),a.qZA()(),a.BQk()),2&S){const _=a.oxw(2).$implicit;a.xp6(3),a.hij(" ",a.lcZ(4,2,a.lcZ(5,4,"header."+_.title))," "),a.xp6(4),a.Q6J("ngForOf",_.items)}}function Oe(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"li")(1,"a",68),a.NdJ("click",function(){return a.CHM(_),a.oxw(3).collapseDropdownMenu()}),a._uU(2),a.ALo(3,"translate"),a.ALo(4,"lowercase"),a.qZA()()}if(2&S){const _=a.oxw(2).$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.url),a.xp6(1),a.Oqu(a.lcZ(3,2,a.lcZ(4,4,"header."+_.title)))}}function h2(S,a1){if(1&S&&(a.ynx(0),a.YNc(1,me,8,6,"ng-container",19),a.YNc(2,Oe,5,6,"ng-template",null,61,a.W1O),a.BQk()),2&S){const _=a.MAs(3),Y=a.oxw().$implicit;a.xp6(1),a.Q6J("ngIf",Y.items.length)("ngIfElse",_)}}function y2(S,a1){if(1&S&&(a.ynx(0),a.YNc(1,h2,4,2,"ng-container",58),a.BQk()),2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("ngIf","About"==_.category)}}function P2(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"li")(1,"a",66),a.NdJ("click",function(){return a.CHM(_),a.oxw(4).collapseDropdownMenu()}),a._uU(2),a.ALo(3,"translate"),a.ALo(4,"lowercase"),a.qZA()()}if(2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.url),a.xp6(1),a.hij("",a.lcZ(3,2,a.lcZ(4,4,"header."+_.title))," ")}}function K2(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"li")(2,"a",69),a._uU(3),a.ALo(4,"translate"),a.ALo(5,"lowercase"),a.qZA(),a.TgZ(6,"ul",63),a.YNc(7,P2,5,6,"li",31),a.qZA()(),a.BQk()),2&S){const _=a.oxw(2).$implicit;a.xp6(2),a.Q6J("routerLink",_.url),a.xp6(1),a.hij(" ",a.lcZ(4,3,a.lcZ(5,5,"header."+_.title))," "),a.xp6(4),a.Q6J("ngForOf",_.items)}}function A2(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"a",68),a.NdJ("click",function(){return a.CHM(_),a.oxw(4).collapseDropdownMenu()}),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()}if(2&S){const _=a.oxw(3).$implicit;a.Q6J("routerLink",null==_?null:_.url),a.xp6(1),a.Oqu(a.lcZ(2,2,a.lcZ(3,4,"header."+_.title)))}}function V2(S,a1){if(1&S&&(a.TgZ(0,"li"),a.YNc(1,A2,4,6,"a",70),a.qZA()),2&S){a.oxw();const _=a.MAs(5),Y=a.oxw().$implicit;a.xp6(1),a.Q6J("ngIf",!(null!=Y&&null!=Y.url&&Y.url.includes("http")))("ngIfElse",_)}}function mt(S,a1){if(1&S&&(a.TgZ(0,"li")(1,"a",71),a._uU(2),a.ALo(3,"translate"),a.ALo(4,"lowercase"),a.qZA()()),2&S){const _=a.oxw(2).$implicit;a.xp6(1),a.Q6J("href",_.url,a.LSH),a.xp6(1),a.hij(" ",a.lcZ(3,2,a.lcZ(4,4,"header."+_.title))," ")}}function We(S,a1){if(1&S&&(a.ynx(0),a.YNc(1,K2,8,7,"ng-container",19),a.YNc(2,V2,2,2,"ng-template",null,61,a.W1O),a.YNc(4,mt,5,6,"ng-template",null,65,a.W1O),a.BQk()),2&S){const _=a.MAs(3),Y=a.oxw().$implicit;a.xp6(1),a.Q6J("ngIf",Y.items.length)("ngIfElse",_)}}function ue(S,a1){if(1&S&&(a.ynx(0),a.YNc(1,We,6,2,"ng-container",58),a.BQk()),2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("ngIf","Our analysis"==_.category)}}const Q=function(S){return{active:S}};function g1(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"a",75),a.NdJ("click",function(p){a.CHM(_);const d=a.oxw(2).$implicit;return a.oxw().setActiveNavItemDropdownItem(d.title,p)}),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()}if(2&S){const _=a.oxw(2).$implicit,Y=a.oxw();a.Q6J("ngClass",a.VKq(7,Q,Y.activeDropdownItem.title===_.title))("href",null==_?null:_.url,a.LSH),a.xp6(1),a.hij(" ",a.lcZ(2,3,a.lcZ(3,5,"header."+_.title))," ")}}function se(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"a",77),a.NdJ("click",function(p){a.CHM(_);const d=a.oxw(3).$implicit;return a.oxw().setActiveNavItemDropdownItem(d.title,p)}),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()}if(2&S){const _=a.oxw(3).$implicit,Y=a.oxw();a.Q6J("ngClass",a.VKq(6,Q,Y.activeDropdownItem.title===_.title)),a.xp6(1),a.hij(" ",a.lcZ(2,2,a.lcZ(3,4,"header."+_.title))," ")}}function ce(S,a1){if(1&S&&a.YNc(0,se,4,8,"a",76),2&S){a.oxw();const _=a.MAs(6),Y=a.oxw().$implicit;a.Q6J("ngIf","About"!==Y.category)("ngIfElse",_)}}function ye(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"a",78),a.NdJ("click",function(p){a.CHM(_);const d=a.oxw(2).$implicit,h=a.oxw();return h.setActiveNavItemDropdownItem(d.title,p),h.collapseDropdownMenu()}),a.TgZ(1,"span"),a._uU(2),a.ALo(3,"translate"),a.ALo(4,"lowercase"),a.qZA()()}if(2&S){const _=a.oxw(2).$implicit;a.Q6J("routerLink",null==_?null:_.url),a.xp6(2),a.hij(" ",a.lcZ(3,2,a.lcZ(4,4,"header."+_.title))," ")}}function ze(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"li",72),a.YNc(2,g1,4,9,"a",73),a.YNc(3,ce,1,2,"ng-template",null,65,a.W1O),a.YNc(5,ye,5,6,"ng-template",null,74,a.W1O),a.qZA(),a.BQk()),2&S){const _=a.MAs(4),Y=a.oxw().$implicit;a.xp6(2),a.Q6J("ngIf",(null==Y||null==Y.url?null:Y.url.includes("http"))||"AI Insights"==Y.title||"Partner advisory"==Y.title)("ngIfElse",_)}}function z2(S,a1){if(1&S&&(a.ynx(0),a.YNc(1,ze,7,2,"ng-container",58),a.BQk()),2&S){const _=a1.$implicit,Y=a.oxw();a.xp6(1),a.Q6J("ngIf",_.category==Y.activeDropdownItem.category)}}function i2(S,a1){if(1&S&&(a.TgZ(0,"div",85),a._UZ(1,"app-video-loader",86),a.qZA()),2&S){const _=a.oxw(2).$implicit,Y=a.oxw();a.xp6(1),a.Q6J("src",_.video)("isPopup",Y.showVideosAsPopup)("thumbnail",null==_?null:_.thumbnail)}}function Qe(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"div",83),a.YNc(2,i2,2,3,"div",84),a.qZA(),a.BQk()),2&S){const _=a.oxw(2);a.xp6(2),a.Q6J("ngIf",_.screenwidth>=1200)}}function O2(S,a1){}function x2(S,a1){if(1&S&&(a.TgZ(0,"p"),a._uU(1),a.ALo(2,"translate"),a.ALo(3,"lowercase"),a.qZA()),2&S){const _=a.oxw().$implicit;a.xp6(1),a.hij(" ",a.lcZ(2,1,a.lcZ(3,3,"header."+_.description))," ")}}function W2(S,a1){if(1&S){const _=a.EpF();a.ynx(0),a.TgZ(1,"button",87),a.NdJ("click",function(){return a.CHM(_),a.oxw(2).collapseDropdownMenu()}),a._uU(2),a.ALo(3,"translate"),a._UZ(4,"i",12),a.qZA(),a.BQk()}if(2&S){const _=a.oxw().$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.url),a.xp6(1),a.hij(" ",a.lcZ(3,2,"header.learnmore")," ")}}function je(S,a1){1&S&&(a.TgZ(0,"h5",93),a._uU(1),a.ALo(2,"translate"),a.qZA()),2&S&&(a.xp6(1),a.hij(" ",a.lcZ(2,1,"header.categories")," "))}function Pe(S,a1){1&S&&(a.ynx(0),a._UZ(1,"img",97),a.BQk())}function Ye(S,a1){if(1&S&&(a.ynx(0),a._UZ(1,"img",100),a.BQk()),2&S){const _=a.oxw(2).$implicit;a.xp6(1),a.Q6J("src",_.icon,a.LSH)}}function x1(S,a1){1&S&&a._UZ(0,"img",101)}function j1(S,a1){if(1&S&&(a.YNc(0,Ye,2,1,"ng-container",19),a.YNc(1,x1,1,0,"ng-template",null,98,a.W1O),a.TgZ(3,"div")(4,"div",99),a._uU(5),a.ALo(6,"translate"),a.ALo(7,"lowercase"),a.qZA()()),2&S){const _=a.MAs(2),Y=a.oxw().$implicit;a.Q6J("ngIf",null==Y?null:Y.icon)("ngIfElse",_),a.xp6(5),a.hij(" ",a.lcZ(6,3,a.lcZ(7,5,"header."+Y.title))," ")}}function c1(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"div",94)(1,"span",95),a.NdJ("click",function(){const d=a.CHM(_).$implicit,h=a.oxw(3);return h.handleRoute(d.url),h.collapseDropdownMenu()}),a.YNc(2,Pe,2,0,"ng-container",19),a.YNc(3,j1,8,7,"ng-template",null,96,a.W1O),a.qZA()()}if(2&S){const _=a1.$implicit,Y=a.MAs(4);a.xp6(2),a.Q6J("ngIf","Canapii"==(null==_?null:_.title))("ngIfElse",Y)}}function F1(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"div",88),a.YNc(2,je,3,3,"h5",89),a.TgZ(3,"div",80)(4,"div",90)(5,"div",91),a.YNc(6,c1,5,2,"div",92),a.qZA()()()(),a.BQk()),2&S){const _=a.oxw().$implicit;a.xp6(2),a.Q6J("ngIf",_.items.length),a.xp6(4),a.Q6J("ngForOf",_.items)}}const Re=function(S){return{"border-right":S}};function Ze(S,a1){if(1&S&&(a.ynx(0),a.TgZ(1,"div",79)(2,"div",80)(3,"div",50)(4,"div",81),a.YNc(5,Qe,3,1,"ng-container",19),a.YNc(6,O2,0,0,"ng-template",null,82,a.W1O),a.YNc(8,x2,4,5,"p",58),a.YNc(9,W2,5,4,"ng-container",58),a.qZA(),a.YNc(10,F1,7,2,"ng-container",58),a.qZA()()(),a.BQk()),2&S){const _=a1.$implicit,Y=a.MAs(7),p=a.oxw();a.xp6(1),a.s9C("id",_.title),a.Q6J("ngClass",a.VKq(8,Q,p.activeDropdownItem.title===_.title&&"About"!==_.category)),a.xp6(3),a.Q6J("ngClass",a.VKq(10,Re,_.items.length)),a.xp6(1),a.Q6J("ngIf",_.video)("ngIfElse",Y),a.xp6(3),a.Q6J("ngIf","https://www.candefero.com/"!=(null==_?null:_.url)&&"AI Insights"!=_.title&&"Partner advisory"!=_.title),a.xp6(1),a.Q6J("ngIf",(null==_?null:_.url)&&""!=_.url&&"https://www.candefero.com/"!=(null==_?null:_.url)&&"AI Insights"!=_.title&&"Partner advisory"!=_.title),a.xp6(1),a.Q6J("ngIf",_.items.length)}}function E2(S,a1){1&S&&(a.ynx(0),a._UZ(1,"div",102),a.BQk())}const U2=function(S,a1){return{top:S,"clip-path":a1}},I2=function(){return["/contact"]},dt=function(S,a1){return{height:S,"clip-path":a1}};let J2=(()=>{class S{constructor(_,Y,p,d,h){this.headerService=_,this.generalService=Y,this.storageSerive=p,this.router=d,this.fb=h,this.eventExteneralLink=Ke.N.origin+"/events",this.navHe
1ight=new a.vpe,this.sub=new de.Y,this.isNewsroom=!1,this.isSearchPage=!1,this.isHomePage=!1,this.isScrolled=!1,this.isSearchActive=!1,this.isSearchLoading=!1,this.isDarkMode=!1,this.isNavbarOpen=!1,this.isDropdownOpen=!1,this.showVideosAsPopup=!0,this.activeDropdownItem={category:"",title:"",description:"",video:"",url:"",items:[]},this.headerNavbarIndicator={width:"0px",height:"0px",left:"0px",right:"0px"},this.navbarGradient={left:"0px",right:"0px",top:"0px"},this.dropdownItems=[{category:"About",title:"Our story",description:"our-story-description",url:"/about/our-story",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/about.webp",items:[]},{category:"About",title:"Meet us",description:"meet-us-description",url:"/about/meet-us",items:[]},{category:"About",title:"Careers",description:"career-description",url:"/about/careers",items:[]},{category:"About",title:"Our offices",description:"our-offices-description",url:"/about/our-offices",items:[]},{category:"Our analysis",title:"AI Insights",description:"",url:"/ai-insights/",items:[]},{category:"Our analysis",title:"Channel strategy",description:"channel-strategy-description",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/channel-strategy.webp",items:[{title:"Channels Analysis",url:"/analysis/channels",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/channel_management_icon.webp"},{title:"Channel Ecosystem",url:"channels-ecosystem-landscape-2023",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/ppa_icon.webp"},{title:"Global IT Opportunity",url:"/analysis/global-it-opportunity",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/market_entry_icon.webp"},{title:"Managed services analysis",url:"/analysis/managed-services",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/managed_services_icon.webp"},{title:"Partner program analysis",url:"/analysis/partner-program",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/ppa_icon.webp"},{title:"Sustainable Channels analysis",url:"/analysis/sustainable-channels",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/competitor_strategy.webp"}]},{category:"Our analysis",title:"Mobility",description:"mobility-description",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/mobility.webp",items:[{title:"Smartphone analysis",url:"/analysis/smartphone",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/smartphone_icon.webp"},{title:"PC analysis",url:"/analysis/pc",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/pc_icon.webp"},{title:"Connected Life Horizon",url:"https://omdia.tech.informa.com/advance-your-business/consumer-electronics-and-pro-av/connected-life-horizon-service",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/channel_management_icon.webp"}]},{category:"Our analysis",title:"Custom solutions",description:"custom-solutions-description",url:"/analysis/custom-solutions",items:[{title:"Channel Development",url:"/analysis/custom-solutions/channel-development",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/cd_icon.webp"},{title:"Channel Management",url:"/analysis/custom-solutions/channel-management",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/channel_management_icon.webp"},{title:"Competitor Strategy",url:"/analysis/custom-solutions/competitor-strategy",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/competitor_strategy.webp"},{title:"Customised data",url:"/analysis/custom-solutions/customised-data",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/customised_data_icon.webp"},{title:"Market entry",url:"/analysis/custom-solutions/market-entry",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/market_entry_icon.webp"},{title:"Marketing solutions",url:"/analysis/custom-solutions/marketing-solutions",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/marketing_solutions_icon.webp"},{title:"Partner programs",url:"/analysis/custom-solutions/partner-programs",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/ppa_icon.webp"},{title:"Speaking engagements",url:"/analysis/custom-solutions/speaking-engagements",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/speaking_engagement.webp"}]},{category:"Our analysis",title:"Enterprise tech",description:"enterprise-tech-description",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/enterprise-tech.webp",items:[{title:"Cloud channnels analysis",url:"/analysis/cloud-channels",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/cloud_icon.webp"}
1,{title:"Infrastructure analysis",url:"/analysis/infrastructure",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/infrastructure_icon.webp"},{title:"Cybersecurity analysis",url:"/analysis/cybersecurity",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/cybersecurity_icon.webp"}]},{category:"Our analysis",title:"Partner assessment",description:"partner-assessment-description",url:"/analysis/alys-partner-assessment",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/alys.webp",items:[]},{category:"Our analysis",title:"Partner community",description:"partner-community-description",url:"https://www.candefero.com/",items:[]},{category:"Our analysis",title:"Emerging tech",description:"emerging-tech-description",thumbnail:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/media/header/emerging-tech.webp",items:[{title:"Intelligent vehicle analysis",url:"/analysis/intelligent-vehicle",icon:"https://canalys-prod-public.s3.eu-west-1.amazonaws.com/static/public/IVA_icon.webp"}]}],this.getScreenSize(),this.sub.sink=this.router.events.pipe((0,ne.h)(T=>T instanceof I.m2)).subscribe(T=>{T instanceof I.m2&&(this.isNavbarOpen=!1,this.isDropdownOpen=!1),this.isHomePage="/"==T.url,this.isNewsroom=T.url.indexOf("/newsroom")>-1,this.isSearchPage=T.url.indexOf("/search")>-1,this.isDarkMode=!(!this.isHomePage&&!this.isNewsroom)})}getScreenSize(_){this.screenwidth=window.innerWidth}scrollEvent(){this.isScrolled=window.pageYOffset>=56,this.screenwidth<1200&&(this.isDropdownOpen=!1,this.isNavbarOpen=!1),window.pageYOffset>=1?(this.informaExpand(document.getElementById("informa-ribbon"),!0),this.navBarExpand(document.querySelector(".navbar"),!0)):this.navBarExpand(document.querySelector(".navbar"),!1)}ngOnInit(){this.sub.sink=this.headerService.analysisFocusState.subscribe(_=>{this.toggleActiveDropdownItem("Our analysis",void 0,!0)}),this.searchForm=this.fb.group({search_query:[""]})}submitSearch(_){this.router.navigate(["search"],{queryParams:{search:this.searchForm.value.search_query}})}toggleSearch(){this.isSearchActive=!this.isSearchActive}onDestroy(){this.sub.unsubscribe()}informaExpand(_,Y=!1){_.className=_.classList.contains("show")||Y?"informa-ribbon":"informa-ribbon show"}navBarExpand(_,Y=!1){Y?_.classList.add("collapsed"):_.classList.remove("collapsed")}changeBroswerLang(_){this.storageSerive.savetoLocalStorage("canalysLang",_),this.generalService.changedLanguage.next(_)}toggleActiveDropdownItem(_,Y,p){if(p&&p.classList.contains("navbar-toggler-icon"))this.isDropdownOpen=!this.isDropdownOpen,this.isNavbarOpen=!this.isNavbarOpen;else{const d=window.innerWidth<=1199;d&&0==this.isNavbarOpen&&(this.activeDropdownItem={category:"",title:"",description:"",video:"",url:"",items:[]}),d&&this.isNavbarOpen||1==this.isDropdownOpen&&this.activeDropdownItem.category!==_||1==this.isDropdownOpen&&this.activeDropdownItem.category==_&&Y||(this.isNavbarOpen=!this.isNavbarOpen,this.isDropdownOpen=!this.isDropdownOpen),this.isDropdownOpen?(this.isDarkMode=!1,this.headerNavbarIndicator.left="0px",this.headerNavbarIndicator.right="0px",this.headerNavbarIndicator.height="5px",p&&Object.values(p).some(h=>void 0!==h)?(this.navbarGradient.top=p.offsetTop+"px",this.navbarGradient.left=p.offsetLeft+"px",this.navbarGradient.right=window.innerWidth-(p.offsetLeft+p.offsetWidth)-22+"px"):(this.navbarGradient.top="0px",this.navbarGradient.left="0px",this.navbarGradient.right="0px")):(this.isDarkMode=!0,this.headerNavbarIndicator.height="0px"),this.activeDropdownItem="Search"!==_?this.dropdownItems.find(h=>Y&&""!==Y?h.title===Y:h.category===_):{title:"",description:"",items:[],category:"Search"}}}setActiveHover(_){this.isDropdownOpen||(_&&Object.values(_).some(Y=>void 0!==Y)?(this.headerNavbarIndicator.height="5px",this.headerNavbarIndicator.width=_.offsetWidth+"px",this.headerNavbarIndicator.left=_.offsetLeft+"px",this.headerNavbarIndicator.right=window.innerWidth-(_.offsetLeft+_.offsetWidth)-22+"px"):(this.headerNavbarIndicator.height="0px",this.headerNavbarIndicator.width="0px"))}handleRoute(_){0==_.indexOf("http")?window.open(_,"_blank"):this.router.navigate([_])}setActiveNavItemDropdownItem(_,Y){this.activeDropdownItem=this.dropdownItems.find(p=>p.title==_)}onOutsideNavClick(_){this.nav.nativeElement.contains(_.target)||(this.isDropdownOpen=!1,this.isNavbarOpen=!1)}collapseDropdownMenu(){this.isDropdownOpen=!1,this.isNavbarOpen=!1}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(t2.r),a.Y36(te.m),a.Y36(ie.V),a.Y36(I.F0),a.Y36(r1.qu))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-header"]],viewQuery:function(_,Y){if(1&_&&a.Gf(q1,7),2&_){let p;a.iGM(p=a.CRH())&&(Y.nav=p.first)}},hostVars:2,hostBindings:function(_,Y){1&_&&a.NdJ("click",function(d){return Y.onOutsideNavClick(d)},!1,a.Jf7)("resize",function(d){return Y.getScreenSize(d)},!1,a.Jf7)("scroll",function(){return Y.scrollEvent()},!1,a.Jf7),2&_&&a.ekj("scroll",Y.scrollEvent)}
vendor: 4,096 bytes, line 1
1,outputs:{navHeight:"navHeight"},decls:108,vars:63,consts:[["id","informa-ribbon",1,"informa-ribbon"],["informaribbon",""],[1,"informa-ribbon__wrapper"],[1,"informa-ribbon__line"],[1,"informa-ribbon__title",3,"click"],[1,"line-info"],["src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAABHNCSVQICAgIfAhkiAAAAalJREFUSEuVlY1RwzAMhfEEwARkg5YJaCaATtAwAWUCYALKBKQTtExA2KCdALpBNwjvGak4OcdyfKdLLpY+yfpx3FlitW17h+1bSAGZieoPnpQt5MM5x/focrGvgFb4/iTQlH/urSAvcHLsK3bggF5A4R3CiMcsgks42IVGJ7iAP7E5NahfonPe06ODORw0+j2E8+ONAWZ0jQTCXMccXGsdPFxyzHQkF4xygmmgVhKkcEZxZcGx74snNUkF40/opN02GeAxKmvAK8JrWC0MyzX22QksWpVRmyPgl4RbheSwEPymvQwbOukXsx9fSXibeV6fR2kAOpsYdqPgbDE/JJkBeXhOpxwALgTM6c1pAA+3ck6mr77A2Y4PGan0BV1C8dVQvge8HpHvPfSnhPO432Zx/ouZk8ZHwFc6odZRt1CeawDG4J3qo3BetYwo1bvcp/DWpP7Q4s3I2fi7WySXNGoMB1Yd+dN4VqX+z2KGDXq1pi/mpAPuRB6coMB7DbHudjU54GWpqQi9Rv+hkiaeooJwaGIn2TMIdsVQrgbhoQG6g47CtdNLLFWEX6p9sxmf9HCxAAAAAElFTkSuQmCC","alt","info icon",1,"info-icon"],[1,"informa-ribbon__detail"],["target","_blank","href","/reports/AI-PC-market-forecasts?utm_source=canalyspublic&utm_campaign=bluebar"],["id","navbar-banner",1,"container-fluid",3,"ngClass"],[1,"col-12","text-center","d-flex","align-items-center","justify-content-center","h-100"],[1,"link"],[1,"bi","bi-arrow-right"],["navbar","",1,"navbar","fixed-top","navbar-expand-xl",3,"ngClass"],["nav",""],[1,"navbar-gradient-bg",3,"ngStyle"],[1,"container"],[1,"navbar-brand-wrapper"],["routerLink","/",1,"navbar-brand"],[4,"ngIf","ngIfElse"],["lightModeLogo",""],["id","login-btn-custom","href","https://www.canalys.com/client/login.php","target","_blank","rel","noopener",1,"button","button-main-nav"],["type","button",1,"navbar-toggler",3,"click"],[1,"navbar-toggler-icon"],["id","navbarSupportedContent",1,"collapse","navbar-collapse"],[1,"navbar-nav","mb-2","mb-lg-0"],[1,"nav-item","dropdown",3,"mouseenter","mouseleave"],["navItemHover","","id","aboutDropdown","role","button","data-bs-toggle","dropdown","aria-expanded","false",1,"nav-link","dropdown-toggle",3,"click"],[1,"caret-dropdown"],["aria-labelledby","aboutDropdown",1,"dropdown-menu",3,"click"],[1,"dropdown-menu-list"],[4,"ngFor","ngForOf"],["id","analysisDropdown","role","button","data-bs-toggle","dropdown","aria-expanded","false",1,"nav-link","dropdown-toggle",3,"click"],["aria-labelledby","analysisDropdown",1,"dropdown-menu",3,"click"],[1,"nav-item",3,"mouseenter","mouseleave"],["navItemHover","","routerLink","/events","rel","noopener",1,"nav-link"],["navItemHover","","routerLink","/newsroom",1,"nav-link"],["navItemHover","","routerLink","/resources",1,"nav-link"],["navItemHover","","routerLink","/insights",1,"nav-link"],["navItemHover","","routerLink","/ai-insights","rel","noopener",1,"nav-link"],["id","header-action",1,"d-flex","align-items-center","justify-content-flex-end","ms-auto"],["routerLink","search","aria-label","search",1,"btn-main-nav","nav-link"],[1,"bi","bi-search"],["data-bs-toggle","modal","data-bs-target","#translateModal",1,"btn-main-nav","nav-link"],[1,"bi","bi-globe"],["id","login-btn","href","https://www.canalys.com/client/login.php","target","_blank","rel","noopener",1,"btn-main-nav","btn","btn-outline"],["id","contact-btn",1,"btn-main-nav",3,"routerLink"],["id","header-nav-indicator",3,"ngClass","ngStyle"],[1,"dropdown-menu-widescreen",3,"ngClass","click"],[1,"excess-bg"],[1,"row"],[1,"col-2","px-0"],["id","tabs"],["tabs",""],[1,"nav","nav-pills"],[1,"col-sm-10","bg-light-accent"],[1,"tab-content"],[1,"navbar-underline","bg-secondary-gradient"],[4,"ngIf"],["src","../../../assets/images/omdia-white.png","height","44","alt","Canalys logo"],["src","../../../assets/images/omdia-indigo.png","height","44","alt","Canalys logo"],["showItem",""],["role","button","data-bs-toggle","dropdown","aria-expanded","false",1,"dropdown-toggle"],[1,"dropdown-menu"],["class","dropdown-item",3,"routerLink","click",4,"ngIf","ngIfElse"],["inapprouting",""],[1,"dropdown-item",3,"routerLink","click"],["rel","noopener",1,"dropdown-item",3,"href"],[3,"routerLink","click"],["role","button","data-bs-toggle","dropdown","aria-expanded","fal
1se",1,"dropdown-toggle",3,"routerLink"],[3,"routerLink","click",4,"ngIf","ngIfElse"],["rel","noopener","role","button",3,"href"],[1,"nav-item","d-block","w-100"],["class","nav-link active","data-toggle","tab","rel","noopener",3,"ngClass","href","click",4,"ngIf","ngIfElse"],["directrouting",""],["data-toggle","tab","rel","noopener",1,"nav-link","active",3,"ngClass","href","click"],["class","nav-link active","data-toggle","tab",3,"ngClass","click",4,"ngIf","ngIfElse"],["data-toggle","tab",1,"nav-link","active",3,"ngClass","click"],["data-toggle","tab",1,"nav-link","direct",3,"routerLink","click"],[1,"tab-pane",3,"id","ngClass"],[1,"container","p-0"],[1,"col-6","col-dropdown-intro",3,"ngClass"],["noVideo",""],[1,"mb-3"],["class","video-wrapper",4,"ngIf"],[1,"video-wrapper"],[3,"src","isPopup","thumbnail"],[1,"button",3,"routerLink","click"],[1,"col-6","col-dropdown-subcategories"],["class","label mb-1",4,"ngIf"],[1,"row","py-0"],[1,"col-12"],["class","subnav-link-wrap",4,"ngFor","ngForOf"],[1,"label","mb-1"],[1,"subnav-link-wrap"],[1,"subnav-link-new","w-inline-block",3,"click"],["defaultSubitem",""],["srcset","\n ../../assets/images/canapii_logo.png\n ","alt","Canapii",2,"width","100px","height","auto"],["defaultIcon",""],[1,"subnav-link-title"],["alt","","height","100%","width","100%",1,"nav-icon-new",3,"src"],["src","https://assets-global.website-files.com/5fa24a97853b6c62b7063020/60c9f9c059e266557530fec2_Virtual%20Events%20icon.png","alt","","height","24","width","24",1,"nav-icon-new"],[1,"navbar-underlay-spacing"]],template:function(_,Y){if(1&_){const p=a.EpF();a.TgZ(0,"div",0,1)(2,"div",2)(3,"div",3)(4,"button",4),a.NdJ("click",function(){a.CHM(p);const h=a.MAs(1);return Y.informaExpand(h)}),a._uU(5," Informa "),a.qZA(),a.TgZ(6,"div",5),a._UZ(7,"img",6),a.TgZ(8,"span"),a._uU(9,"TechTarget and Informa Tech\u2019s Digital Business Combine"),a.qZA()()(),a.TgZ(10,"div",7)(11,"h4"),a._uU(12,"Expanded Scale and Leadership in B2B: From R&D to ROI"),a.qZA(),a.TgZ(13,"p"),a._uU(14," With a combined permissioned audience of 50+ million professionals, TechTarget and Informa Tech\u2019s digital businesses have come together to offer industry-leading, global solutions that enable vendors in enterprise technology and other key industry markets to accelerate their revenue growth at scale. "),a.qZA()()()(),a.TgZ(15,"a",8)(16,"div",9)(17,"div",10)(18,"p")(19,"strong"),a._uU(20,"AI-capable PCs: current market trends, future opportunities and potential challenges"),a.qZA(),a._uU(21,"\xa0\xa0 "),a.TgZ(22,"span",11),a._uU(23," Get your complimentary report! "),a._UZ(24,"i",12),a.qZA()()()()(),a.TgZ(25,"nav",13,14),a._UZ(27,"div",15),a.TgZ(28,"div",16)(29,"div",17)(30,"a",18),a.YNc(31,_1,2,0,"ng-container",19),a.YNc(32,T1,1,0,"ng-template",null,20,a.W1O),a.qZA()(),a.TgZ(34,"div")(35,"a",21),a._uU(36),a.ALo(37,"translate"),a.qZA(),a.TgZ(38,"button",22),a.NdJ("click",function(h){return Y.toggleActiveDropdownItem("About","",h.target),h.stopPropagation()}),a._UZ(39,"span",23),a.qZA()(),a.TgZ(40,"div",24)(41,"ul",25)(42,"li",26),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(43,"a",27),a.NdJ("click",function(h){return Y.toggleActiveDropdownItem("About","",h.target),h.stopPropagation()}),a._uU(44),a.ALo(45,"translate"),a.ALo(46,"lowercase"),a._UZ(47,"span",28),a.qZA(),a.TgZ(48,"div",29),a.NdJ("click",function(h){return h.stopPropagation()}),a.TgZ(49,"ul",30),a.YNc(50,y2,2,1,"ng-container",31),a.qZA()()(),a.TgZ(51,"li",26),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(52,"a",32),a.NdJ("click",function(h){return Y.toggleActiveDropdownItem("Our analysis",void 0,h.target),h.stopPropagation()}),a._uU(53),a.ALo(54,"translate"),a.ALo(55,"lowercase"),a._UZ(56,"span",28),a.qZA(),a.TgZ(57,"div",33),a.NdJ("click",function(h){return h.stopPropagation()}),a.TgZ(58,"ul",30),a.YNc(59,ue,2,1,"ng-container",31),a.qZA()()(),a.TgZ(60,"li",34),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(61,"a",35),a._uU(62),a.ALo(63,"translate"),a.qZA()(),a.TgZ(64,"li",34),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(65,"a",36),a._uU(66),a.ALo(67,"translate"),a.qZA()(),a.TgZ(68,"li",34),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(69,"a",37),a._uU(70),a.ALo(71,"translate"),a.qZA()(),a.TgZ(72,"li",34),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(73,"a",38),a._uU(74),a.ALo(75,"translate"),a.qZA()(),a.TgZ(76,"li",34),a.NdJ("mouseenter",function(h){return Y.setActiveHover(h.target)})("mouseleave",function(){return Y.setActiveHover({})}),a.TgZ(77,"a",39),a._uU(78),a.ALo(79,"translate"),a.qZA()()(),a.TgZ(80,"div",40)(81,"a",41),a._UZ(82,"i",42),a.qZA(),a.TgZ(83,"span",43),a._UZ(84,"i",44),a.qZA(),a.TgZ(85,"a",45),a._uU(86),a.ALo(87,"translate"),a.qZA(),a.TgZ(88,"button",46),a._uU(89),a.ALo(90,"translate"),a.qZA()()()(),a._UZ(91,"hr",47),a.TgZ(92,"div",48),a.NdJ("click",function(h){return h.stopPropagation()}),a._UZ(93,"div",49),a.TgZ(94,"div",16)(95,"div",50)(96,"div",51)(97,"div",52,53)(99,"ul",54),a.YNc(100,z2,2,1,"ng-container",31),a.qZA()()(),a.TgZ(101,"div",55)(102,"div",56),a.YNc(103,Ze,11,12,"ng-container",31),a.qZA()()()()()(),a._UZ(104,"div",57),a.YNc(105,E2,2,0,"ng-container",58),a._UZ(106,"app-translate-language")(107,"app-video-popup")}if(2&_){const p=a.MAs(33);a.xp6(16),a.Q6J("ngClass",Y.isScrolled?"":"hidebanner"),a.xp6(9),a.ekj("open",Y.isNavbarOpen),a.Q6J("ngClass",Y.isDarkMode&&!Y.isScrolled&&Y.isHomePage?"navbar-dark":"navbar-light"),a.xp6(2),a.Q6J("ngStyle",a.WLB(56,U2,Y.navbarGradient.top,"inset(0px "+Y.navbarGradient.right+" 0px "+Y.navbarGradient.left+")")),a.xp6(4),a.Q6J("ngIf",Y.isDarkMode&&!Y.isScrolled&&Y.isHomePage)("ngIfElse",p),a.xp6(5),a.hij(" ",a.lcZ(37,32,"header.login")," "),a.xp6(4),a.ekj("show",Y.isDropdownOpen),a.xp6(2),a.ekj("widescreen-open",Y.isDropdownOpen&&"About"==Y.activeDropdownItem.category),a.xp6(2),a.hij("",a.lcZ(45,34,a.lcZ(46,36,"header.about"))," "),a.xp6(6),a.Q6J("ngForOf",Y.dropdownItems),a.xp6(1),a.ekj("widescreen-open",Y.isDropdownOpen&&"Our analysis"==Y.activeDropdownItem.category),a.xp6(2),a.hij(" ",a.lcZ(54,38,a.lcZ(55,40,"header.our analysis"))," "),a.xp6(6),a.Q6J("ngForOf",Y.dropdownItems),a.xp6(3),a.hij(" ",a.lcZ(63,42,"header.events")," "),a.xp6(4),a.hij("",a.lcZ(67,44,"header.newsroom")," "),a.xp6(4),a.hij("",a.lcZ(71,46,"header.resources")," "),a.xp6(4),a.hij("",a.lcZ(75,48,"header.blogs")," "),a.xp6(4),a.hij(" ",a.lcZ(79,50,"header.ai insights")," "),a.xp6(8),a.hij(" ",a.lcZ(87,52,"header.login")," "),a.xp6(2),a.Q6J("routerLink",a.DdM(59,I2)),a.xp6(1),a.hij(" ",a.lcZ(90,54,"header.contact")," "),a.xp6(2),a.Q6J("ngClass",Y.isDropdownOpen?"show":"hidden")("ngStyle",a.WLB(60,dt,Y.headerNavbarIndicator.height,"inset(0px "+Y.headerNavbarIndicator.right+" 0px "+Y.headerNavbarIndicator.left+")")),a.xp6(1),a.Q6J("ngClass",Y.isDropdownOpen?"open":"closed"),a.xp6(8),a.Q6J("ngForOf",Y.dropdownItems),a.xp6(3),a.Q6J("ngForOf",Y.dropdownItems),a.xp6(2),a.Q6J("ngIf",!Y.isHomePage)}},directives:[Je.mk,Je.PC,I.yS,Je.O5,Je.sg,I.rH,H1.p,d1,h1],pipes:[X.X$,Je.i8],styles:['.navbar[_ngcontent-%COMP%]{padding:0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;box-shadow:0 2px 15px #0000001a}.navbar.collapsed[_ngcontent-%COMP%]{top:0px}.navbar[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{font-size:.85rem}.navbar[_ngcontent-%COMP%] .navbar-toggler[_ngcontent-%COMP%]{position:relative}.navbar[_ngcontent-%COMP%] .navbar-toggler[_ngcontent-%COMP%]:focus{box-shadow:none!important}.navbar[_ngcontent-%COMP%] .navbar-toggler[_ngcontent-%COMP%] .navbar-toggler-icon{background-image:none}.navbar[_ngcontent-%COMP%] .navbar-toggler[_ngcontent-%COMP%] .navbar-toggler-icon:after{font-family:
1FontAwesome;content:"\\f0c9";top:50%;left:50%;position:absolute;transform:translate(-50%,-50%)}.navbar[_ngcontent-%COMP%] button[data-bs-toggle=collapse][_ngcontent-%COMP%]{border:0;box-shadow:none!important}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%]{display:flex;margin-top:28px;align-items:flex-end;position:relative}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;position:absolute;right:0;top:0;bottom:0;padding:4px 10px;border-radius:0 4px 4px 0;display:none;transition:all .4s;z-index:2}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{outline:none;width:15px;color:transparent;cursor:pointer;background:transparent url(search_icon.png) no-repeat 9px center;border:none;padding:5px 10px 5px 32px;width:55px;border-radius:4px;transition:all .5s}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] input.darkMode[_ngcontent-%COMP%]{background:transparent url(search_icon_white.png) no-repeat 9px center}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] input.active[_ngcontent-%COMP%]{border:1px solid #ccc;
1background:#ffffff url(search_icon.png) no-repeat 9px center;width:150px;padding-right:50px;padding-left:32px;color:#000;background-color:#fff;cursor:auto}.navbar[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] input.active[_ngcontent-%COMP%] + button[_ngcontent-%COMP%]{display:inline-block}.navbar[_ngcontent-%COMP%] .dropdown-toggle:after{display:none!important}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%]{margin-left:30px;margin-top:35px;transition:unset}@media only screen and (max-width: 1188px){.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%]{text-align:center;margin:auto;max-height:90vh;padding:16px 24px 8px!important;flex-direction:column;background-color:#fff;margin:.5rem .5rem 0!important;box-shadow:0 5px 18px 3px #0000000f;border-top-left-radius:8px;border-top-right-radius:8px;border:1px solid rgba(150,150,150,.3)}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{padding:10px 0}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] .caret-dropdown.show[_ngcontent-%COMP%]:before, .navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] .caret-dropdown.show[_ngcontent-%COMP%]:after{border-color:#0a2335}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%]:not(:last-child) .dropdown-menu-list[_ngcontent-%COMP%]{text-align:center;transition:all .4s;line-height:1.5rem}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%]:not(:last-child) .dropdown-menu-list[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{text-decoration:none}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] > .nav-item[_ngcontent-%COMP%]:not(:last-child) .dropdown-menu-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{text-align:center;border-top:2px dotted #dddddd;border-bottom:2px dotted #dddddd}.navbar[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{color:#0a2335!important}}.navbar[_ngcontent-%COMP%] .navbar-gradient-bg[_ngcontent-%COMP%]{height:0px;transition:background-position 1s}.navbar.open[_ngcontent-%COMP%]{background:#ffffff}.navbar.open[_ngcontent-%COMP%] .navbar-gradient-bg[_ngcontent-%COMP%]{background-position:-100% 0;width:100%;position:absolute;height:40px;z-index:-1}@media only screen and (max-width: 1188px){.navbar.open[_ngcontent-%COMP%] .navbar-gradient-bg[_ngcontent-%COMP%]{display:none}}.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%]{overflow:hidden}@media only screen and (max-width: 1188px){.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%]{overflow:auto}}.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%]{box-shadow:0 -10px #fff;background-color:#fff;border-top-right-radius:4px;border-top-left-radius:4px}.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%]{transition:all .4s;background:#177499}.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{font-weight:600;color:#fff}@media only screen and (max-width: 1188px){.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#0a2335;font-weight:inherit}}.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%] > .caret-dropdown[_ngcontent-%COMP%]:before, .navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%] > .caret-dropdown[_ngcontent-%COMP%]:after{border-color:#fff}@media only all and (max-width: 1188px){.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%] > .caret-dropdown[_ngcontent-%COMP%]:before, .navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%] a[_ngcontent-%COMP%] > .caret-dropdown[_ngcontent-%COMP%]:after{color:#0a2335;border-color:#0a2335}}@media all and (max-width: 1188px){.navbar.open[_ngcontent-%COMP%] .navbar-nav[_ngcontent-%COMP%] .nav-item.widescreen-open[_ngcontent-%COMP%]{background:transparent}}.navbar[_ngcontent-%COMP%] .navbar-wrapper[_ngcontent-%COMP%]{position:relative}.navbar[_ngcontent-%COMP%] .navbar-brand-wrapper[_ngcontent-%COMP%]{margin-top:35px;margin-bottom:0}.navbar[_ngcontent-%COMP%] .navbar-brand-wrapper[_ngcontent-%COMP%] .navbar-brand[_ngcontent-%COMP%]{margin:0}.navbar[_ngcontent-%COMP%] .navbar-brand-wrapper[_ngcontent-%COMP%] .navbar-brand[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{background-image:url(https://www.canalys.com/v2/images/canalys_logo_150x34.png);display:inline-block;min-height:2rem;min-width:9rem;background-repeat:no-repeat;background-size:auto 100%}.navbar[_ngcontent-%COMP%] li.dropdown.widescreen-open[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]{transform:rotate(0)}@media screen and (min-width: 1200px){.navbar[_ngcontent-%COMP%] li.dropdown.widescreen-open[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]{transform:translateY(-6px)}.navbar[_ngcontent-%COMP%] li.dropdown.widescreen-open[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:before{transform:rotate(-45deg)}.navbar[_ngcontent-%COMP%] li.dropdown.widescreen-open[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:after{transform:rotate(45deg)}}.navbar[_ngcontent-%COMP%] .btn-main-nav[_ngcontent-%COMP%]{margin-top:35px;margin-bottom:2px;font-weight:500;cursor:pointer;padding:8px 16px}.navbar[_ngcontent-%COMP%] #contact-btn[_ngcontent-%COMP%]{display:inline-block;background:#006690!important;padding:8px 19px;border:2px solid #006690!important;border-radius:4px;transition:all .3s ease;line-height:1em;font-weight:600;text-align:center;background:none}.navbar[_ngcontent-%COMP%] #contact-btn[_ngcontent-%COMP%]:hover{border-color:#168aad!important;background-color:#168aad!important;color:#fff}.navbar[_ngcontent-%COMP%] #login-btn[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] #login-btn-mobile[_ngcontent-%COMP%]{margin-right:20px;font-weight:600}.navbar[_ngcontent-%COMP%] #login-btn-custom[_ngcontent-%COMP%]{background:#006690!important;color:#fff;text-decoration:none;min-width:100px;margin-right:15px;line-height:1;padding:8px 12px;font-size:14px;margin-bottom:0;align-items:center;vertical-align:middle}@media screen and (min-width: 1200px){.navbar[_ngcontent-%COMP%] #login-btn-custom[_ngcontent-%COMP%]{display:none}}.navbar.navbar-dark[_ngcontent-%COMP%]{background-color:transparent!important}.navbar.navbar-dark[_ngcontent-%COMP%] *[_ngcontent-%COMP%], .navbar.navbar-dark[_ngcontent-%COMP%] .btn.btn-outline[_ngcontent-%COMP%]{color:#fff}.navbar.navbar-dark[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:after, .navbar.navbar-dark[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:before{border-color:#fff}@media only screen and (max-width: 991px){.navbar.navbar-dark[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:after, .navbar.navbar-dark[_ngcontent-%COMP%] .caret-dropdown[_ngcontent-%COMP%]:before{border-color:#0a2335}}.navbar.navbar-dark[_ngcontent-%COMP%] #contact-btn[_ngcontent-%COMP%]{border:2px solid #a3d869;background:#a3d869;color:#fff!important;font-weight:600}.navbar.navbar-dark[_ngcontent-%COMP%] #header-action[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{color:#fff}@media only screen and (max-width: 991px){.navbar.navbar-dark[_ngcontent-%COMP%] #header-action[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{color:#0a2335}}.navbar.navbar-light[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{color:#0a2335}.navbar.navbar-light[_ngcontent-%COMP%] #contact-btn[_ngcontent-%COMP%]{border:2px solid #80b918;background:#80b918;color:#fff}.navbar.navbar-light[_ngcontent-%COMP%] .search-wrapper[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] button[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{background:transparent url(search_icon.png) no-repeat 9px center!important}.navbar[_ngcontent-%COMP%] #header-nav-indicator[_ngcontent-%COMP%]{position:absolute;top:71px;right:0;width:100vw;margin:-1px 0 0;border:0;background-image:linear-gradient(90deg,#184e77,#168aad,#76c893,#d9ed92);z-index:1000;opacity:1;transition:all .3s}.navbar[_ngcontent-%COMP%] #header-nav-indicator.active[_ngcontent-%COMP%]{height:6px}.navbar[_ngcontent-%COMP%] .dropdown-menu-widescreen[_ngcontent-%COMP%]{box-shadow:0 2px 16px #0000001a;background:#f7f8fa;margin-top:-1px;padding:0;width:100%;border:none;border-radius:0}.navbar[_ngcontent-%COMP%] .dropdown-menu-widescreen[_ngcontent-%COMP%] .wistia_embed[_ngcontent-%COMP%]{display:inline-block;position:relative;width:100%}.navbar[_ngcontent-%COMP%] .dropdown-menu-widescreen[_ngcontent-%COMP%] .excess-bg[_ngcontent-%COMP%]{background:#f7f8fa;position:absolute;top:0;right:0;bottom:0;left:50%}.navbar[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] .dropend[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] .dropstart[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] .dropup[_ngcontent-%COMP%]{position:unset!important}.navbar[_ngcontent-%COMP%] .nav-item.dropdown[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%]{padding:0;width:100%;border:none;border-radius:0}.navbar[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .nav-link[_ngcontent-%COMP%]{z-index:10;margin-right:16px;margin-bottom:0;margin-left:16px;padding:0;line-height:1.8em;text-decoration:none;white-space:nowrap;cursor:pointer;font-weight:500}.navbar[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .nav-link[_ngcontent-%COMP%]:not(.btn){cursor:pointer;position:relative;margin:0;padding:10px 18px}.navbar[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .nav-link[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{position:absolute;
1left:0;right:0;top:52px;height:3px;z-index:6;transition:all .4s ease;background:#80b918;opacity:0}.navbar[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .nav-link.direct[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{background-image:linear-gradient(90deg,#184e77,#168aad,#76c893,#d9ed92);background-repeat:no-repeat;background-size:0 2px;background-position:100% 100%;transition:background-size .2s ease;padding-bottom:.35em}.navbar[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .nav-link.direct[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:hover{background-position:0 100%;background-size:100% 2px}.navbar-underlay-spacing[_ngcontent-%COMP%]{margin-bottom:71px}.navbar-underlay-spacing.inactive[_ngcontent-%COMP%]{margin-bottom:0}@media all and (max-width: 1199px){.navbar-underlay-spacing[_ngcontent-%COMP%]{margin-bottom:45px}}@media only screen and (min-width: 992px){.nav-item.dropdown[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] .dropdown-menu-list[_ngcontent-%COMP%]{display:none}.dropdown-menu-widescreen[_ngcontent-%COMP%]{position:absolute;top:71px;left:0;background:#ffffff!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;overflow:hidden;z-index:999;transition:all .4s ease-in-out,opacity .2s ease-in-out,z-index 0s 1s}.dropdown-menu-widescreen[_ngcontent-%COMP%] .nav-pills[_ngcontent-%COMP%]{margin-top:40px}.dropdown-menu-widescreen[_ngcontent-%COMP%] .nav-pills[_ngcontent-%COMP%] li.nav-item[_ngcontent-%COMP%] a.nav-link[_ngcontent-%COMP%]{padding:10px 25px}.dropdown-menu-widescreen[_ngcontent-%COMP%] .nav-pills[_ngcontent-%COMP%] li.nav-item[_ngcontent-%COMP%] a.nav-link.active[_ngcontent-%COMP%]{font-weight:600;background:#f7f8fa}.dropdown-menu-widescreen[_ngcontent-%COMP%] .nav-pills[_ngcontent-%COMP%] li.nav-item[_ngcontent-%COMP%] a.nav-link.active[_ngcontent-%COMP%]:after{font-family:
1FontAwesome;content:"\\f105";display:inline-block;padding-right:3px;vertical-align:middle;position:absolute;right:15px}.dropdown-menu-widescreen[_ngcontent-%COMP%] .navbar-subdrpodown-background[_ngcontent-%COMP%]{background:#fff}.dropdown-menu-widescreen[_ngcontent-%COMP%] h5.label[_ngcontent-%COMP%]{color:#0a2335;font-weight:600}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] > [class^=col][_ngcontent-%COMP%]:not(:first-child){padding:45px}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] > [class^=col][_ngcontent-%COMP%]{height:100%}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .border-right[_ngcontent-%COMP%]{border-right:1px solid #e5e5e5}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-sm-10[_ngcontent-%COMP%]{height:500px}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-intro[_ngcontent-%COMP%]{position:relative}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-intro[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{font-size:1rem;font-weight:400;line-height:1.6}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-intro[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-intro[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{background:#006690!important;color:#fff;font-weight:600}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-intro[_ngcontent-%COMP%] .video-wrapper[_ngcontent-%COMP%]{padding-right:25px;max-height:250px;position:relative;overflow:hidden}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-subcategories[_ngcontent-%COMP%]{padding-left:45px}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-subcategories[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%]{max-width:280px;transition:all .2s}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-subcategories[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{transition:all .2s}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .col-dropdown-subcategories[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%]:hover{background-color:#00000006}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .subnav-link-wrap[_ngcontent-%COMP%]{cursor:pointer;overflow:hidden;margin-left:-12px}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .subnav-link-wrap[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%]{text-decoration:none;display:flex;width:100%;margin-top:12px;padding:5px 0 5px 12px;align-items:flex-start;border-radius:4px;background-color:transparent;color:#757a8a;font-size:12px;line-height:1.5}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .subnav-link-wrap[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%]:after{font-family:
1FontAwesome;content:"\\f105";display:inline-block;padding-left:10px;margin-top:2px;color:#0a2335;font-weight:600}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .subnav-link-wrap[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%] .nav-icon-new[_ngcontent-%COMP%]{width:24px;margin-right:12px;flex:0 0 auto}.dropdown-menu-widescreen[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%] > .row[_ngcontent-%COMP%] .subnav-link-wrap[_ngcontent-%COMP%] .subnav-link-new[_ngcontent-%COMP%] .subnav-link-title[_ngcontent-%COMP%]{font-size:15px;font-weight:500}.dropdown-menu-widescreen[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%]{position:relative}.dropdown-menu-widescreen[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .tab-pane[_ngcontent-%COMP%]{position:absolute}.dropdown-menu-widescreen[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .tab-pane.active[_ngcontent-%COMP%]{animation:slide-left .4s}@keyframes slide-left{0%{opacity:0;transform:translate(-100%)}50%{opacity:0}to{opacity:1;transform:translate(0)}}@keyframes slide-right{0%{opacity:1;transform:translate(0)}70%{opacity:.75}to{opacity:0;transform:translate(-100%)}}.dropdown-menu-widescreen.open[_ngcontent-%COMP%]{height:500px;overflow:hidden;transition:height .5s;animation:fadein .4s}.dropdown-menu-widescreen.closed[_ngcontent-%COMP%]{height:0;transition:height .7s;overflow:hidden;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}}@media only screen and (max-width: 1200px){.navbar[_ngcontent-%COMP%]{padding-top:29px!important}.navbar-brand-wrapper[_ngcontent-%COMP%]{margin:10px!important}}@media only screen and (max-width: 768px){.navbar[_ngcontent-%COMP%]{margin-top:15px}}@media only screen and (min-width: 1189px){.btn-mobile[_ngcontent-%COMP%]{display:none}}@media only screen and (max-width: 1188px){.search-wrapper[_ngcontent-%COMP%]{display:none}.nav-item.dropdown[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] .dropdown-menu-list[_ngcontent-%COMP%]{border-bottom:1px solid #e5e5e5;padding-bottom:15px;margin-bottom:5px;display:block}.dropdown-menu-widescreen[_ngcontent-%COMP%]{display:none!important;opacity:0}#header-nav-indicator[_ngcontent-%COMP%]{display:none!important}#header-action[_ngcontent-%COMP%]{justify-content:center;background:#ffffff;margin:0rem .5rem 1rem!important;padding:.5rem 0;box-shadow:0 17px 18px 3px #0000000f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border:1px solid rgba(150,150,150,.3)}#navbarSupportedContent[_ngcontent-%COMP%]{transition:all .4s ease;opacity:0;display:block;height:0px;transform:translateY(-50%)!important}#navbarSupportedContent[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{pointer-events:none}#navbarSupportedContent.collapse.show[_ngcontent-%COMP%]{opacity:1}#navbarSupportedContent.collapse.show[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{pointer-events:inherit}#navbarSupportedContent[_ngcontent-%COMP%] .btn-main-nav[_ngcontent-%COMP%]{margin:.2rem!important;flex-wrap:wrap}.btn-mobile[_ngcontent-%COMP%]{display:none}}#wistia_embed_hidden[_ngcontent-%COMP%]{opacity:0;height:0;z-index:-1}#navbar-banner[_ngcontent-%COMP%]{z-index:1031;position:fixed;top:0;left:0;right:0;height:35px;background:#6fd1f8}
1@media screen and (max-width: 768px){#navbar-banner[_ngcontent-%COMP%]{height:35px}}#navbar-banner[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{font-size:1rem}@media screen and (max-width: 768px){#navbar-banner[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{font-size:12px;line-height:.85}}#navbar-banner[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:#0a2335;padding:0;margin:0}#navbar-banner[_ngcontent-%COMP%] .link[_ngcontent-%COMP%], #navbar-banner[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{font-weight:600;color:#fff}#navbar-banner[_ngcontent-%COMP%] .hidebanner[_ngcontent-%COMP%]{display:none}.informa-ribbon[_ngcontent-%COMP%]{width:100%;color:#fff;height:35px;font-size:13px;font-size:.8125rem;line-height:18px;line-height:1.125rem;position:absolute;z-index:1032;top:0;left:0;background:#000}.informa-ribbon[_ngcontent-%COMP%] .pop-out__reset-password[_ngcontent-%COMP%], .informa-ribbon[_ngcontent-%COMP%] .sortable-table__list-toggler[_ngcontent-%COMP%], .informa-ribbon[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#fff!important}.informa-ribbon__title[_ngcontent-%COMP%]{box-shadow:0;border:0;height:16px;width:92px;background:url(iribbon-logo.png) top center no-repeat;font-size:0;color:#525a5c;clear:both;cursor:pointer;margin-right:20px}.informa-ribbon__wrapper[_ngcontent-%COMP%]{background:#525a5c;border-bottom:1px solid #a5acaf;width:100%;padding:0 2rem;z-index:9089}.informa-ribbon__detail[_ngcontent-%COMP%]{overflow:hidden;max-height:0;max-width:800px;width:100%;margin:0 auto;transition:max-height ease-in-out .5s,padding ease-in-out .5s}.informa-ribbon__line[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:8px 0}.informa-ribbon__line[_ngcontent-%COMP%] .line-info[_ngcontent-%COMP%] .info-icon[_ngcontent-%COMP%]{width:15px;margin-right:6px}.informa-ribbon__line[_ngcontent-%COMP%] .line-info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px}.informa-ribbon__line[_ngcontent-%COMP%] .informa-ribbon__detail[_ngcontent-%COMP%]{display:flex;justify-content:center}.informa-ribbon__detail[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700}@media (max-width: 480px){.informa-ribbon__wrapper[_ngcontent-%COMP%]{padding:0 1rem}.informa-ribbon__line[_ngcontent-%COMP%]{flex-direction:column}.informa-ribbon__line[_ngcontent-%COMP%] .line-info[_ngcontent-%COMP%]{margin-top:5px}}.informa-ribbon__detail[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.show[_ngcontent-%COMP%] .informa-ribbon__detail[_ngcontent-%COMP%]{max-height:334px;padding:24px 0}.show[_ngcontent-%COMP%] .informa-ribbon__title[_ngcontent-%COMP%]{background-position:bottom center}']}),S})();function l2(S,a1){if(1&S&&(a.TgZ(0,"li")(1,"a",26),a._uU(2),a.ALo(3,"translate"),a.qZA()()),2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.path)("fragment",null==_?null:_.fragment),a.xp6(1),a.hij(" ",a.lcZ(3,3,"footer."+(null==_?null:_.text))," ")}}function k1(S,a1){if(1&S&&(a.TgZ(0,"a",29),a._uU(1),a.ALo(2,"translate"),a.qZA()),2&S){const _=a.oxw().$implicit;a.Q6J("routerLink",null==_?null:_.path),a.xp6(1),a.hij(" ",a.lcZ(2,2,"footer."+(null==_?null:_.text))," ")}}function b1(S,a1){if(1&S&&(a.TgZ(0,"span"),a._uU(1),a.ALo(2,"translate"),a.qZA()),2&S){const _=a.oxw().$implicit;a.xp6(1),a.hij(" ",a.lcZ(2,1,"footer."+(null==_?null:_.text))," ")}}function q(S,a1){if(1&S&&(a.TgZ(0,"li"),a.YNc(1,k1,3,4,"a",27),a.YNc(2,b1,3,3,"ng-template",null,28,a.W1O),a.qZA()),2&S){const _=a1.$implicit,Y=a.MAs(3);a.xp6(1),a.Q6J("ngIf","none"!=(null==_?null:_.path))("ngIfElse",Y)}}function A1(S,a1){if(1&S){const _=a.EpF();a.TgZ(0,"li",30)(1,"a",31),a.NdJ("click",function(){return a.CHM(_),a.oxw().closeDropdown()}),a._uU(2),a.ALo(3,"translate"),a.qZA()()}if(2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.path),a.xp6(1),a.hij(" ",a.lcZ(3,2,"footer."+(null==_?null:_.text))," ")}}function ee(S,a1){if(1&S&&(a.TgZ(0,"a",29),a._uU(1),a.ALo(2,"translate"),a.qZA()),2&S){const _=a.oxw().$implicit;a.Q6J("routerLink",null==_?null:_.path),a.xp6(1),a.hij(" ",a.lcZ(2,2,"footer."+(null==_?null:_.text))," ")}}function M(S,a1){if(1&S&&(a.TgZ(0,"a",33),a._uU(1),a.ALo(2,"translate"),a.qZA()),2&S){const _=a.oxw().$implicit,Y=a.oxw();a.Q6J("href","/events"==(null==_?null:_.path)?Y.eventExteneralLink:null==_?null:_.path,a.LSH),a.xp6(1),a.hij(" ",a.lcZ(2,2,"footer."+(null==_?null:_.text))," ")}}function w(S,a1){if(1&S&&(a.TgZ(0,"li"),a.YNc(1,ee,3,4,"a",27),a.YNc(2,M,3,4,"ng-template",null,32,a.W1O),a.qZA()),2&S){const _=a1.$implicit,Y=a.MAs(3);a.xp6(1),a.Q6J("ngIf",!(null!=_&&_.path.includes("http"))&&"/events"!=(null==_?null:_.path))("ngIfElse",Y)}}function x(S,a1){if(1&S&&(a.TgZ(0,"li")(1,"a",29),a._uU(2),a.ALo(3,"translate"),a.qZA()()),2&S){const _=a1.$implicit;a.xp6(1),a.Q6J("routerLink",null==_?null:_.path),a.xp6(1),a.hij(" ",a.lcZ(3,2,"footer."+(null==_?null:_.text))," ")}}const C=function(){return{display:"block"}},Z=function(){return{display:"none"}};let G=(()=>{class S{constructor(){this.eventExteneralLink=Ke.N.origin+"/events",this.alysDropdown=!1,this.currentYear=(new Date).getFullYear(),this.header1info=[{path:"/about/our-offices",text:"singapore",fragment:"singapore"},{path:"/about/our-offices",text:"india",fragment:"india"},{path:"/about/our-offices",text:"us",fragment:"usa"},{path:"/about/our-offices",text:"uk",fragment:"uk"},{path:"/about/our-offices",text:"china",fragment:"china"}],this.header2info=[{path:"/about/our-story",text:"ourstory"},{path:"/about/meet-us",text:"meetus"},{path:"/about/careers",text:"careers"},{path:"/about/our-offices",text:"ouroffices"}],this.header3info=[{path:"/analysis/custom-solutions",text:"customsolutions"},{path:"/analysis/alys-partner-assessment",text:"partnerassessment"},{path:"https://www.candefero.com/",text:"partnercommunity"},{path:"/events",text:"events"}],this.analysisdropdownitems=[{path:"analysis/channels",text:"channelstrategy"},{path:"analysis/intelligent-vehicle",text:"emergingtechnology"},{path:"analysis/cloud-channels",text:"enterprisetechnology"},{path:"analysis/smartphone",text:"mobilitytechnology"}],this.footerterms=[{path:"terms-of-use",text:"termsofuse"},{path:"subscribe",text:"subscribe"},{path:"unsubscribe",text:"unsubscribe"}],this.can_wechat=Ke.N.origin+"/assets/images/wechat-qr-code.jpg"}ngOnInit(){}closeDropdown(){this.alysDropdown=!1}}return S.\u0275fac=function(_){return new(_||S)},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-footer"]],decls:78,vars:48,consts:[[1,"mt-0"],[1,"container"],[1,"foot-contain"],[1,"foot-contain-item"],[1,"media-icons"],["href","https://twitter.com/Omdiahq","target","_blank","rel","noopener","aria-label","Canalys Twitter"],[1,"fa","fa-twitter"],["href","https://www.linkedin.com/company/omdia/","target","_blank","rel","noopener","aria-label","Canalys Linkedin"],[1,"fa","fa-linkedin"],["target","_blank","aria-label","Canalys Wechat",3,"href"],[1,"fa","fa-wechat"],["href","https://www.youtube.com/channel/UCtCb-gFkW_Qc1St8R6WLB1A","target","_blank","rel","noopener","aria-label","Canalys Youtube"],[1,"fa","fa-youtube-play"],[4,"ngFor","ngForOf"],["href","https://www.canalys.com/client/","target","_blank","rel","noopener"],[1,"analysis-dropdown",3,"click"],[1,"caret"],[1,"analysis-list",3,"ngStyle"],["class","analysis-dropdown-item",4,"ngFor","ngForOf"],[1,"canalys-logo"],["src","../../../assets/images/omdia-white.png","alt","",1,"logo"],[1,"footer-info"],[1,"section-a"],[1,"section-b"],[1,"terms"],["target","_blank","href","https://www.informa.com/privacy-policy/"],[3,"routerLink","fragment"],[3,"routerLink",4,"ngIf","ngIfElse"],["nonLink",""],[3,"routerLink"],[1,"analysis-dropdown-item"],[3,"routerLink","click"],["outLink",""],["target","_blank","rel","noopener",3,"href"]],template:function(_,Y){1&_&&(a.TgZ(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"a",5),a._UZ(6,"i",6),a.qZA(),a.TgZ(7,"a",7),a._UZ(8,"i",8),a.qZA(),a.TgZ(9,"a",9),a._UZ(10,"i",10),a.qZA(),a.TgZ(11,"a",11),a._UZ(12,"i",12),a.qZA()(),a.TgZ(13,"div")(14,"small"),a._uU(15),a.ALo(16,"translate"),a.qZA(),a._UZ(17,"br"),a.TgZ(18,"small"),a._uU(19),a.ALo(20,"translate"),a.qZA(),a._UZ(21,"br"),a.TgZ(22,"small"),a._uU(23),a.ALo(24,"translate"),a.qZA(),a._UZ(25,"br"),a.TgZ(26,"small"),a._uU(27),a.ALo(28,"translate"),a.ALo(29,"translate"),a.qZA(),a._UZ(30,"br"),a.qZA()(),a.TgZ(31,"div",3)(32,"p"),a._uU(33),a.ALo(34,"translate"),a.qZA(),a.TgZ(35,"ul"),a.YNc(36,l2,4,5,"li",13),a.qZA()(),a.TgZ(37,"div",3)(38,"p"),a._uU(39),a.ALo(40,"translate"),a.qZA(),a.TgZ(41,"ul"),a.YNc(42,q,4,2,"li",13),a.TgZ(43,"li")(44,"a",14),a._uU(45),a.ALo(46,"translate"),a.qZA()()()(),a.TgZ(47,"div",3)(48,"p"),a._uU(49),a.ALo(50,"translate"),a.qZA(),a.TgZ(51,"ul")(52,"li",15),a.NdJ("click",function(){return Y.alysDropdown=!Y.alysDropdown}),a.TgZ(53,"span"),a._uU(54),a.ALo(55,"translate"),a.qZA(),a._UZ(56,"span",16),a.qZA(),a.TgZ(57,"ul",17),a.YNc(58,A1,4,4,"li",18),a.qZA(),a.YNc(59,w,4,2,"li",13),a.qZA()()(),a._UZ(60,"hr"),a.TgZ(61,"div",19),a._UZ(62,"img",20),a.TgZ(63,"p"),a._uU(64,"This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world\u2019s technology buyers and sellers. All copyright resides with them. Informa PLC\u2019s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.\u2019s registered office is 275 Grove St. Newton, MA 02466."),a.qZA()(),a.TgZ(65,"div",21)(66,"div",22)(67,"p"),a._uU(68),a.ALo(69,"translate"),a.ALo(70,"translate"),a.qZA()(),a.TgZ(71,"div",23)(72,"ul",24)(73,"li")(74,"a",25),a._uU(75),a.ALo(76,"translate"),a.qZA()(),a.YNc(77,x,4,4,"li",13),a.qZA()()()()()),2&_&&(a.xp6(9),a.Q6J("href",Y.can_wechat,a.LSH),a.xp6(6),a.Oqu(a.lcZ(16,20,"footer.address1")),a.xp6(4),a.Oqu(a.lcZ(20,22,"footer.address2")),a.xp6(4),a.Oqu(a.lcZ(24,24,"footer.address3")),a.xp6(4),a.AsE("",a.lcZ(28,26,"footer.state")," ",a.lcZ(29,28,"footer.pin"),""),a.xp6(6),a.Oqu(a.lcZ(34,30,"footer.header1")),a.xp6(3),a.Q6J("ngForOf",Y.header1info),a.xp6(3),a.Oqu(a.lcZ(40,32,"footer.header2")),a.xp6(3),a.Q6J("ngForOf",Y.header2info),a.xp6(3),a.hij(" ",a.lcZ(46,34,"footer.login"),""),a.xp6(4),a.Oqu(a.lcZ(50,36,"footer.header3")),a.xp6(5),a.Oqu(a.lcZ(55,38,"footer.analysis-dropdown")),a.xp6(3),a.Q6J("ngStyle",Y.alysDropdown?a.DdM(46,C):a.DdM(47,Z)),a.xp6(1),a.Q6J("ngForOf",Y.analysisdropdownitems),a.xp6(1),a.Q6J("ngForOf",Y.header3info),a.xp6(9),a.AsE(" ",a.lcZ(69,40,"footer.footer-copyright")," ",a.lcZ(70,42,"footer.footer-rights")," "),a.xp6(7),a.Oqu(a.lcZ(76,44,"footer.privacypolicy")),a.xp6(2),a.Q6J("ngForOf",Y.footerterms))},directives:[Je.sg,I.yS,Je.O5,Je.PC],pipes:[X.X$],styles:["footer[_ngcontent-%COMP%]{background:#454955}footer[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{color:#fff;font-size:.85rem}footer[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], footer[_ngcontent-%COMP%] li[_ngcontent-%COMP%], footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{list-style:none;padding:0!important;margin:0!important}footer[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none;color:#fff}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);padding:2rem 0 0;grid-gap:2rem}footer[_ngcontent-%COMP%] .foot-contain-item[_ngcontent-%COMP%]{margin-bottom:1rem;display:flex;flex-direction:column;flex-wrap:wrap}footer[_ngcontent-%COMP%] .foot-contain-item[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-weight:500}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{font-weight:600}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{padding-bottom:1rem!important}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{list-style:none}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-left:8px!important}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{line-height:1.4rem;cursor:pointer;transition:all .2s ease-in-out}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] .analysis-dropdown[_ngcontent-%COMP%]{cursor:pointer}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%] .analysis-list[_ngcontent-%COMP%]{transition:display .2s ease-in-out}footer[_ngcontent-%COMP%] .canalys-logo[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:flex-start}footer[_ngcontent-%COMP%] .canalys-logo[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:200
1px;margin-right:2rem;padding-bottom:10px}footer[_ngcontent-%COMP%] .caret[_ngcontent-%COMP%]{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}footer[_ngcontent-%COMP%] .media-icons[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;flex-wrap:wrap;padding:0 1rem 1rem 0}footer[_ngcontent-%COMP%] .media-icons[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{padding:.4rem;margin:.3rem;background:#fff;border-radius:50%;color:#454955}footer[_ngcontent-%COMP%] .footer-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:.5rem 0 1rem}footer[_ngcontent-%COMP%] .footer-info[_ngcontent-%COMP%] .section-a[_ngcontent-%COMP%]{padding-bottom:.5rem!important}footer[_ngcontent-%COMP%] .footer-info[_ngcontent-%COMP%] .section-b[_ngcontent-%COMP%] .terms[_ngcontent-%COMP%]{padding-bottom:.5rem!important;display:flex;flex-wrap:wrap}footer[_ngcontent-%COMP%] .footer-info[_ngcontent-%COMP%] .section-b[_ngcontent-%COMP%] .terms[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{cursor:pointer;padding-right:1rem!important}@media all and (max-width: 767px){footer[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{font-size:.8rem}footer[_ngcontent-%COMP%] .foot-contain[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);padding:1rem;grid-gap:1rem}footer[_ngcontent-%COMP%] .canalys-logo[_ngcontent-%COMP%]{flex-wrap:wrap;justify-content:center}footer[_ngcontent-%COMP%] .canalys-logo[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{padding:20px 0!important}footer[_ngcontent-%COMP%] .footer-info[_ngcontent-%COMP%] .section-b[_ngcontent-%COMP%] .terms[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding-bottom:.5rem!important}}"],changeDetection:0}),S})(),C1=(()=>{class S{constructor(_,Y,p,d){this.translate=_,this.generalService=Y,this.storageSerive=p,this.router=d,this.browserLang="en",this.subs=new de.Y,_.addLangs(["de","en","es","fr","id","ja","ko","pt","th","zh-Hans"]);let h=Object.assign(Object.assign({},Ae),ke);_.setTranslation("en",h),_.setDefaultLang("en"),this.generalService.analyticTracker()}ngOnInit(){Ee().init({once:!0}),this.subs.sink=this.generalService.changedLanguage.pipe((0,Me.x)()).subscribe(p=>{this.browserLang=p,this.useLanguage(),this.generalService.currentLang=this.browserLang});const _=this.storageSerive.getFromLocalStorage("canalysLang");_&&"string"==typeof _&&this.generalService.changedLanguage.next(_),-1!=window.navigator.userAgent.toLowerCase().indexOf("firefox")&&this.router.events.subscribe(p=>{var d;null===(d=document.getElementById("main-app"))||void 0===d||d.scrollTo(0,0)})}useLanguage(){this.translate.use(this.browserLang)}ngOnDestroy(){this.subs.unsubscribe()}}return S.\u0275fac=function(_){return new(_||S)(a.Y36(X.sK),a.Y36(te.m),a.Y36(ie.V),a.Y36(I.F0))},S.\u0275cmp=a.Xpm({type:S,selectors:[["app-root"]],decls:6,vars:3,consts:[[3,"height","color","includeSpinner"],["id","main-app",1,"main-app"]],template:function(_,Y){1&_&&(a._UZ(0,"ngx-loading-bar",0),a.TgZ(1,"div",1),a._UZ(2,"app-header"),a.TgZ(3,"main"),a._UZ(4,"router-outlet"),a.qZA(),a._UZ(5,"app-footer"),a.qZA()),2&_&&a.Q6J("height","5px")("color","#006690")("includeSpinner",!1)},directives:[G1.Nv,J2,I.lC,G],styles:[""]}),S})();var v1=m(520);let o1=(()=>{class S{constructor(_){this.generalService=_}intercept(_,Y){const p=_.clone({headers:_.headers.set("Accept-Language",this.generalService.currentLang)});return Y.handle(p)}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(te.m))},S.\u0275prov=a.Yz7({token:S,factory:S.\u0275fac,providedIn:"root"}),S})();var Y1=m(877);function J1(S){return new Y1.z(S,[{prefix:"./assets/translate/general/",suffix:".json"},{prefix:"./assets/translate/our-analysis/",suffix:".json"}])}let le=(()=>{class S{}return S.\u0275fac=function(_){return new(_||S)},S.\u0275mod=a.oAB({type:S}),S.\u0275inj=a.cJS({imports:[[Je.ez,v1.JF,X.aw.forRoot({loader:{provide:X.Zw,useFactory:J1,deps:[v1.eN]}})],v1.JF,X.aw]}),S})();function E1(S,a1){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(S,a1)}let N2=(()=>{let S=class{constructor(_,Y){const p=Y.useRef("router");_.events.subscribe(d=>{const h=this.getCurrentNavigationState(_);h&&h.ignoreLoadingBar||(d instanceof I.OD&&p.start(),(d instanceof I.Q3||d instanceof I.m2||d instanceof I.gk)&&p.complete())})}getCurrentNavigationState(_){const Y=_.getCurrentNavigation&&_.getCurrentNavigation();return Y&&Y.extras?Y.extras.state:{}}};return S.\u0275fac=function(_){return new(_||S)(a.LFG(I.F0),a.LFG(G1.dL))},S.\u0275mod=a.oAB({type:S}),S.\u0275inj=a.cJS({imports:[[I.Bz,G1.sS],I.Bz,G1.sS]}),S=function K(S,a1,_,Y){var h,p=arguments.length,d=p<3?a1:null===Y?Y=Object.getOwnPropertyDescriptor(a1,_):Y;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)d=Reflect.decorate(S,a1,_,Y);else for(var T=S.length-1;T>=0;T--)(h=S[T])&&(d=(p<3?h(d):p>3?h(a1,_,d):h(a1,_))||d);return p>3&&d&&Object.defineProperty(a1,_,d),d}([E1("design:paramtypes",[I.F0,G1.dL])],S),S})();var k2=m(1267),p2=m(7582),c2=m(591),st=m(2916),ct=m(7876);const tt=new st.y(ct.Z);var gt=m(1086),Qt=(m(6831),m(6787),m(7545)),X2=m(2994),pn=m(7224),nt=m(4850),yt=m(5154);function Mt(...S){const a1=S.length;if(0===a1)throw new Error("list of properties cannot be empty.");return _=>(0,nt.U)(function zt(S,a1){return Y=>{let p=Y;for(let d=0;d<a1;d++){const h=null!=p?p[S[d]]:void 0;if(void 0===h)return;p=h}return p}}(S,a1))(_)}var Ot=m(2986),It=m(3489);class Gt{constructor(a1,_){this.predicate=a1,this.inclusive=_}call(a1,_){return _.subscribe(new mn(a1,this.predicate,this.inclusive))}}class mn extends It.L{constructor(a1,_,Y){super(a1),this.predicate=_,this.inclusive=Y,this.index=0}_next(a1){const _=this.destination;let Y;try{Y=this.predicate(a1,this.index++)}catch(p){return void _.error(p)}this.nextOrComplete(a1,Y)}nextOrComplete(a1,_){const Y=this.destination;Boolean(_)?Y.next(a1):(this.inclusive&&Y.next(a1),Y.complete())}}var Xt=m(7221);const et={useTransferState:!0,alwaysMonitor:!1,manualIdle:!1,baseURIForScullyContent:"http://localhost:1668"},_t=new a.OlP("scullyLibConfig",{factory:()=>et}),Ht=S=>(S.includes("#")&&(S=S.split("#")[0]),S.includes("?")&&(S=S.split("?")[0]),S.endsWith("/")?S.slice(0,-1):S);function xt(S,a1="json"){return new Promise((_,Y)=>{const p=new XMLHttpRequest;p.responseType=a1,p.addEventListener("load",d=>
1{if(200!==p.status)return Y(p);_(p.response)}),p.addEventListener("error",(...d)=>Y(d)),p.open("get",S,!0),p.send()})}const Zt=()=>window&&"running"===window.ScullyIO,vn=()=>window&&"generated"===window.ScullyIO;function Rt(S,a1){return S.endsWith("/")&&a1.startsWith("/")?`${S}${a1.substr(1)}`:S.endsWith("/")||a1.startsWith("/")?`${S}${a1}`:`${S}/${a1}`}const $t="ScullyIO-transfer-state",Wt="/** ___SCULLY_STATE_START___ */",qt="/** ___SCULLY_STATE_END___ */";let yn=(()=>{class S{constructor(_,Y){this.document=_,this.router=Y,this.inlineOnly=!1,this.currentBaseUrl="//",this.stateBS=new c2.X({}),this.state$=this.stateBS.pipe((0,ne.h)(p=>void 0!==p)),this.nextUrl=this.router.events.pipe((0,ne.h)(p=>p instanceof I.OD),(0,Qt.w)(p=>Ht(this.initialUrl)===Ht(p.url)?(this.initialUrl="__done__with__Initial__navigation__",tt):(0,gt.of)(p)),(0,X2.b)(()=>this.stateBS.next(void 0)),(0,Qt.w)(p=>this.router.events.pipe((0,ne.h)(d=>d instanceof I.m2&&d.url===p.url),(0,pn.P)())),(0,nt.U)(p=>Ht(p.urlAfterRedirects||p.url)),(0,yt.d)(1))}startMonitoring(){window&&window["ScullyIO-injected"]&&window["ScullyIO-injected"].inlineStateOnly&&(this.inlineOnly=!0),this.setupEnvForTransferState(),this.setupStartNavMonitoring()}setupEnvForTransferState(){if(Zt()){this.injectScript();const _=window["ScullyIO-exposed"]||{};_.transferState&&(this.stateBS.next(_.transferState),this.saveState(_.transferState))}else vn()&&(this.initialUrl=window.location.pathname||"__no_NO_no__",this.initialUrl="/"!==this.initialUrl&&this.initialUrl.endsWith("/")?this.initialUrl.slice(0,-1):this.initialUrl,this.stateBS.next(window&&window[$t]||{}))}injectScript(){this.script=this.document.createElement("script"),this.script.setAttribute("id",$t);let _=document.body.lastChild;for(;"SCRIPT"===_.previousSibling.nodeName;)_=_.previousSibling;document.body.insertBefore(this.script,_)}getState(_){return this.fetchTransferState(),this.state$.pipe(Mt(_))}stateHasKey(_){return this.stateBS.value&&this.stateBS.value.hasOwnProperty(_)}stateKeyHasValue(_){return this.stateBS.value&&this.stateBS.value.hasOwnProperty(_)&&null!=this.stateBS.value[_]}setState(_,Y){const p=Object.assign(Object.assign({},this.stateBS.value),{[_]:Y});this.stateBS.next(p),this.saveState(p)}saveState(_){Zt()&&(this.script.textContent=`{window['${$t}']=_u(\`${Wt}${function bn(S){const a1={"'":"_~q~",$:"_~o~","`":"_~b~","/":"_~s~","<":"_~l~",">":"_~g~"};return S.replace(/[\$`'<>\/]/g,_=>a1[_]).replace(/\\\"/g,"_~d~")}(JSON.stringify(_))}${qt}\`);function _u(t){t=t.split('${Wt}')[1].split('${qt}')[0];const u={'_~b~': "\`",'_~q~': "'",'_~o~': '$','_~s~': '/','_~l~': '<','_~g~': '>'};return JSON.parse(t.replace(/_~d~/g,'\\\\"').replace(/_~[^]~/g, (s) =>
1 u[s]).replace(/\\n/g,'\\\\n').replace(/\\t/g,'\\\\t').replace(/\\r/g,'\\\\r'));}}`)}setupStartNavMonitoring(){!vn()||this.nextUrl.subscribe()}useScullyTransferState(_,Y){return vn()?this.getState(_):Y.pipe((0,X2.b)(p=>this.setState(_,p)))}fetchTransferState(){return(0,p2.mG)(this,void 0,void 0,function*(){const _=d=>d.split("/").filter(h=>""!==h.trim())[0];yield new Promise(d=>setTimeout(d,0));const Y=yield this.nextUrl.pipe((0,Ot.q)(1)).toPromise(),p=_(Y);this.currentBaseUrl!==p&&(this.currentBaseUrl=p,this.nextUrl.pipe(function cn(S,a1=!1){return _=>_.lift(new Gt(S,a1))}(d=>_(d)===this.currentBaseUrl),(0,Qt.w)(d=>this.inlineOnly?this.readFromIndex(d):this.readFromJson(d)),(0,Xt.K)(d=>(console.warn("Error while loading of parsing Scully state:",d),(0,gt.of)({}))),(0,X2.b)(d=>{this.stateBS.next(d)})).subscribe({complete:()=>{this.currentBaseUrl="//"}}))})}readFromJson(_){return xt(An(Rt(_,"/data.json")))}readFromIndex(_){return xt(An(Rt(_,"/index.html")),"text").then(Y=>{const p=Y.split(Wt)[1].split(qt)[0];return JSON.parse(function at(S){const a1={"_~q~":"'","_~b~":"`","_~o~":"$","_~s~":"/","_~l~":"<","_~g~":">"};return S.replace(/_~d~/g,'\\"').replace(/_~[^]~/g,_=>a1[_]).replace(/\n/g,"\\n").replace(/\r/g,"\\r")}(p))})}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(Je.K0),a.LFG(I.F0))},S.\u0275prov=(0,a.Yz7)({factory:function(){return new S((0,a.LFG)(Je.K0),(0,a.LFG)(I.F0))},token:S,providedIn:"root"}),S})();function An(S){return S.startsWith("/")?S.slice(1):S}let Ft=(()=>{class S{constructor(_,Y,p,d){this.zone=_,this.router=Y,this.initialUrl=function At(S){return S.endsWith("/")?S.slice(0,-1):S}(window&&window.location&&window.location.pathname)||"",this.imState=new c2.X({idle:!1,timeOut:5e3}),this.idle$=this.imState.pipe(Mt("idle")),this.initApp=new Event("AngularInitialized",{bubbles:!0,cancelable:!1}),this.appReady=new Event("AngularReady",{bubbles:!0,cancelable:!1}),this.appTimeout=new Event("AngularTimeout",{bubbles:!0,cancelable:!1}),this.scullyLibConfig=Object.assign({},et,p);const T=!!(window["ScullyIO-exposed"]||{}).manualIdle;!this.scullyLibConfig.manualIdle&&window&&(this.scullyLibConfig.alwaysMonitor||Zt())&&(window.dispatchEvent(this.initApp),this.router.events.pipe((0,ne.h)(V1=>V1 instanceof I.m2&&void 0!==V1.urlAfterRedirects),(0,ne.h)(V1=>!T||V1.urlAfterRedirects!==this.initialUrl),(0,X2.b)(()=>this.zoneIdleCheck())).subscribe()),this.scullyLibConfig.manualIdle&&window.dispatchEvent(this.initApp),this.scullyLibConfig.useTransferState&&d.startMonitoring()}fireManualMyAppReadyEvent(){return(0,p2.mG)(this,void 0,void 0,function*(){return window.dispatchEvent(this.appReady)})}init(){return(0,p2.mG)(this,void 0,void 0,function*(){return this.idle$.pipe((0,Ot.q)(1)).toPromise()})}zoneIdleCheck(){return(0,p2.mG)(this,void 0,void 0,function*(){if(void 0===Zone)return this.simpleTimeout();const _=Zone.current.get("TaskTrackingZone");if(void 0===_)return this.simpleTimeout();this.imState.value.idle&&(yield this.setState("idle",!1)),this.zone.runOutsideAngular(()=>{let Y,p=0;const d=Date.now(),h=()=>{clearTimeout(Y),Date.now()-d>3e4?window.dispatchEvent(this.appTimeout):_.macroTasks.length>0&&void 0!==_.macroTasks.find(T=>T.source.includes("XMLHttpRequest"))||p<1?Y=setTimeout(()=>{p+=1,h()},50):this.zone.run(()=>{setTimeout(()=>{window.dispatchEvent(this.appReady),this.setState("idle",!0)},250)})};h()})})}simpleTimeout(){return(0,p2.mG)(this,void 0,void 0,function*(){console.warn("Scully is using timeouts, add the needed polyfills instead!"),yield new Promise(_=>setTimeout(_,this.imState.value.timeOut)),window.dispatchEvent(this.appReady)})}setPupeteerTimeoutValue(_){this.imState.next(Object.assign(Object.assign({},this.imState.value),{timeOut:_}))}setState(_,Y){this.imState.next(Object.assign(Object.assign({},this.imState.value),{[_]:Y}))}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(a.R0b),a.LFG(I.F0),a.LFG(_t),a.LFG(yn))},S.\u0275prov=(0,a.Yz7)({factory:function(){return new S((0,a.LFG)(a.R0b),(0,a.LFG)(I.F0),(0,a.LFG)(_t),(0,a.LFG)(yn))},token:S,providedIn:"root"}),S})(),G2=(()=>{class S{}return S.\u0275fac=function(_){return new(_||S)},S.\u0275mod=a.oAB({type:S}),S.\u0275inj=a.cJS({}),S})(),Nn=(()=>{class S{constructor(_){this.idle=_}static forRoot(_=et){return _=Object.assign({},et,_),{ngModule:S,providers:[{provide:_t,useValue:_}]}}}return S.\u0275fac=function(_){return new(_||S)(a.LFG(Ft))},S.\u0275mod=a.oAB({type:S}),S.\u0275inj=a.cJS({imports:[[G2],G2]}),S})();var Rn=m(1717);let Dt=(()=>{class S{}return S.\u0275fac=function(_){return new(_||S)},S.\u0275mod=a.oAB({type:S,bootstrap:[C1]}),S.\u0275inj=a.cJS({providers:[{provide:v1.TP,useClass:o1,multi:!0},{provide:a.ip1,useFactory:a1=>()=>a1.loadMappings(),deps:[Rn.U],multi:!0}],imports:[[r1.u5,o.b2,v1.JF,Se,le,G1.sS,N2,k2.m,Nn.forRoot({useTransferState:!0,alwaysMonitor:!1,manualIdle:!0})]]}),S})();Ke.N.production&&(0,a.G48)(),o.q6().bootstrapModule(Dt).catch(S=>console.error(S))},9329:(xe,S1,m)=>{"use strict";m.d(S1,{Nv:()=>Ae,sS:()=>ke,dL:()=>ae});var o=m(7582),a=m(6435),I=m(9808),r1=m(8929),X=m(1086),U=m(2916),N=m(353),F=m(6688);function j(te){return!(0,F.k)(te)&&te-parseFloat(te)+1>=0}var W=m(2866);function J(te=0,ie,G1){let ne=-1;return j(ie)?ne=Number(ie)<1?1:Number(ie):(0,W.K)(ie)&&(G1=ie),(0,W.K)(G1)||(G1=N.P),new U.y(Ke=>{const t2=j(te)?te:+te-G1.now();return G1.schedule(l1,t2,{index:0,period:ne,subscriber:Ke})})}function l1(te){const{index:ie,period:G1,subscriber:ne}=te;if(ne.next(ie),!ne.closed){if(-1===G1)return ne.complete();te.index=ie+1,this.schedule(te,G1)}}var s1=m(3426),n1=m(4850),y1=m(2986),M1=m(2994),u1=m(1059),de=m(7545),R1=m(5154);function D1(te,ie){if(1&te&&(a.TgZ(0,"div",3),a._UZ(1,"div",4),a.qZA()),2&te){const G1=a.oxw(2);a.xp6(1),a.Udp("width",G1.diameter)("height",G1.diameter)}}function K1(te,ie){if(1&te&&a._UZ(0,"div",5),2&te){const G1=a.oxw().ngIf,ne=a.oxw();a.Udp("background",ne.color)("height",ne.height)("width",G1+"%")}}function X1(te,ie){if(1&te&&(a.ynx(0),a.YNc(1,D1,2,4,"div",1),a.YNc(2,K1,1,6,"div",2),a.BQk()),2&te){const G1=a.oxw();a.xp6(1),a.Q6J("ngIf",G1.includeSpinner),a.xp6(1),a.Q6J("ngIf",G1.includeBar)}}class Se{constructor(ie={}){this.config=ie,this.state={action:null,value:0,initialValue:0},this.requests=null,this.disabled=!1,this.stream$=new r1.xQ,this._value$=null,this.timer$=G1=>{let ne=(0,X.of)(G1);switch(G1.action){case"start":case"increment":case"set":"start"===G1.action&&0===this.config.latencyThreshold&&0===G1.value&&(G1.value=G1.initialValue),this.requests>0&&(ne=J(this.config.latencyThreshold,250).pipe((0,n1.U)(Ke=>Object.assign(Object.assign({},G1),{value:0===Ke?this.state.value||G1.initialValue:this._increment()}))));break;case"complete":case"stop":ne=0===G1.value?(0,X.of)(Object.assign({},G1)):J(0,500).pipe((0,y1.q)(2),(0,n1.U)(Ke=>({value:0===Ke?100:0})))}return ne.pipe((0,n1.U)(Ke=>Object.assign(Object.assign({},Ke),{action:"set"})),(0,M1.b)(Ke=>this.next(Ke,!1)))},this.config=Object.assign({latencyThreshold:0},ie)}get value$(){return this._value$?this._value$:this._value$=this.stream$.asObservable().pipe((0,u1.O)(this.state),(0,de.w)(ie=>this.timer$(ie)),(0,R1.d)(),(0,n1.U)(ie=>ie.value))}start(ie=2){this.disabled||this.next({action:"start",initialValue:ie})}stop(){this.next({action:"stop"})}complete(){this.next({action:"complete"})}disable(){this.disabled=!0}set(ie){this.next({action:"set",value:ie})}increment(ie=0){this.next({action:"increment",value:ie})}next(ie,G1=!0){switch(ie.action){case"start":this.requests=(this.requests||0)+1;break;case"complete":if(this.requests=(this.requests||1)-1,this.requests>0)return;break;case"stop":this.requests=0;break;case"increment":ie.value=this._increment(ie.value)}this.state=Object.assign(Object.assign(Object.assign({},this.state),{action:null}),ie),G1&&this.stream$.next(this.state)}_increment(ie=0){const G1=this.state.value;return G1>=99&&(ie=0),0===ie&&(ie=G1>=0&&G1<25?3*Math.random()+3:G1>=25&&G1<65?3*Math.random():G1>=65&&G1<90?2*Math.random():G1>=90&&G1<99?.5:0),ie+G1}}const Me=new a.OlP("LOADING_BAR_CONFIG");let ae=(()=>{let te=class{constructor(G1,ne={},Ke){this.platformId=G1,this.config=ne,this.zone=Ke,this.refs={},this.streams$=new r1.xQ,this.value$=this.streams$.asObservable().pipe((0,u1.O)(null),(0,de.w)(()=>(0,s1.aj)(...Object.keys(this.refs).map(t2=>this.refs[t2].value$))),function Ee(te){return te?ie=>new U.y(G1=>ie.subscribe(ne=>te.run(()=>G1.next(ne)),ne=>te.run(()=>G1.error(ne)),()=>te.run(()=>G1.complete()))):ie=>ie}(this.zone),(0,n1.U)(t2=>Math.max(0,...t2)))}get progress$(){return this.value$}start(G1=2){this.useRef().start(G1)}set(G1){this.useRef().set(G1)}increment(G1){this.useRef().increment(G1)}complete(){this.useRef().complete()}stop(){this.useRef().stop()}useRef(G1="default"){return this.refs[G1]||(this.refs[G1]=new Se(this.config),this.streams$.next(),(0,I.NF)(this.platformId)||this.refs[G1].disable()),this.refs[G1]}};return te.\u0275fac=function(G1){return new(G1||te)(a.LFG(a.Lbi),a.LFG(Me,8),a.LFG(a.R0b,8))},te.\u0275prov=(0,a.Yz7)({factory:function(){return new te((0,a.LFG)(a.Lbi),(0,a.LFG)(Me,8),(0,a.LFG)(a.R0b,8))},token:te,providedIn:"root"}),te=(0,o.gn)([(0,o.fM)(0,(0,a.tBr)(a.Lbi)),(0,o.fM)(1,(0,a.FiY)()),(0,o.fM)(1,(0,a.tBr)(Me)),(0,o.fM)(2,(0,a.FiY)()),(0,o.w6)("design:paramtypes",[Object,Object,a.R0b])],te),te})(),Ae=(()=>{let te=class{constructor(G1){this.loader=G1,this.includeSpinner=!0,this.includeBar=!0,this.fixed=!0,this.color="#29d"}get value$(){return this.ref?this.loader.useRef(this.ref).value$:this.loader.value$}};return te.\u0275fac=function(G1){return new(G1||te)(a.Y36(ae))},te.\u0275cmp=a.Xpm({type:te,selectors:[["ngx-loading-bar"]],hostVars:3,hostBindings:function(G1,ne){2&G1&&(a.uIk("fixed",ne.fixed),a.Udp("color",ne.color))},inputs:{includeSpinner:"includeSpinner",includeBar:"includeBar",fixed:"fixed",color:"color",value:"value",ref:"ref",height:"height",diameter:"diameter"},decls:2,vars:3,consts:[[4,"ngIf"],["class","ngx-spinner",4,"ngIf"],["class","ngx-bar",3,"background","height","width",4,"ngIf"],[1,"ngx-spinner"],[1,"ngx-spinner-icon"],[1,"ngx-bar"]],template:function(G1,ne){1&G1&&(a.YNc(0,X1,3,2,"ng-container",0),a.ALo(1,"async")),2&G1&&a.Q6J("ngIf",null!=ne.value?ne.value:a.lcZ(1,1,ne.value$))},directives:[I.O5],pipes:[I.Ov],styles:["[_nghost-%COMP%]{position:relative;display:block;pointer-events:none}[_nghost-%COMP%] .ngx-spinner[_ngcontent-%COMP%]{transition:350ms linear;display:block;position:absolute;top:5px;left:0}[_nghost-%COMP%] .ngx-spinner[_ngcontent-%COMP%] .ngx-spinner-icon[_ngcontent-%COMP%]{width:14px;
1height:14px;border:2px solid transparent;border-top-color:inherit;border-left-color:inherit;border-radius:50%;-webkit-animation:.4s linear infinite loading-bar-spinner;animation:.4s linear infinite loading-bar-spinner}[_nghost-%COMP%] .ngx-bar[_ngcontent-%COMP%]{transition:width 350ms;position:absolute;top:0;left:0;width:100%;height:2px;border-bottom-right-radius:1px;border-top-right-radius:1px}[dir=rtl] [_nghost-%COMP%] .ngx-bar[_ngcontent-%COMP%]{right:0;left:unset}[fixed=true][_nghost-%COMP%]{z-index:10002}[fixed=true][_nghost-%COMP%] .ngx-bar[_ngcontent-%COMP%]{position:fixed}[fixed=true][_nghost-%COMP%] .ngx-spinner[_ngcontent-%COMP%]{position:fixed;top:10px;left:10px}[dir=rtl] [fixed=true][_nghost-%COMP%] .ngx-spinner[_ngcontent-%COMP%]{right:10px;left:unset}@-webkit-keyframes loading-bar-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}"],changeDetection:0}),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",Object)],te.prototype,"includeSpinner",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",Object)],te.prototype,"includeBar",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",Object)],te.prototype,"fixed",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",Object)],te.prototype,"color",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",Number)],te.prototype,"value",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",String)],te.prototype,"ref",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",String)],te.prototype,"height",void 0),(0,o.gn)([(0,a.IIB)(),(0,o.w6)("design:type",String)],te.prototype,"diameter",void 0),te=(0,o.gn)([(0,o.w6)("design:paramtypes",[ae])],te),te})(),ke=(()=>{let te=class{};return te.\u0275fac=function(G1){return new(G1||te)},te.\u0275mod=a.oAB({type:te}),te.\u0275inj=a.cJS({imports:[[I.ez]]}),te})()},9854:(xe,S1,m)=>{"use strict";m.d(S1,{Zw:()=>s1,aw:()=>Z1,X$:()=>H1,sK:()=>t2});var o=m(6435),a=m(1086),I=m(2916);function r1(d1){return!!d1&&(d1 instanceof I.y||"function"==typeof d1.lift&&"function"==typeof d1.subscribe)}var X=m(567),U=m(1221),N=m(8514),F=m(2986),j=m(5154),W=m(4850),J=m(1406),l1=m(7545);class s1{}let n1=(()=>{class d1 extends s1{getTranslation(O){return(0,a.of)({})}}return d1.\u0275fac=function(){let I1;return function(h1){return(I1||(I1=o.n5z(d1)))(h1||d1)}}(),d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})();class M1{}let u1=(()=>{class d1{handle(O){return O.key}}return d1.\u0275fac=function(O){return new(O||d1)},d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})();function de(d1,I1){if(d1===I1)return!0;if(null===d1||null===I1)return!1;if(d1!=d1&&I1!=I1)return!0;let q1,_1,T1,O=typeof d1;if(O==typeof I1&&"object"==O){if(!Array.isArray(d1)){if(Array.isArray(I1))return!1;for(_1 in T1=Object.create(null),d1){if(!de(d1[_1],I1[_1]))return!1;T1[_1]=!0}for(_1 in I1)if(!(_1 in T1)&&void 0!==I1[_1])return!1;return!0}if(!Array.isArray(I1))return!1;if((q1=d1.length)==I1.length){for(_1=0;_1<q1;_1++)if(!de(d1[_1],I1[_1]))return!1;return!0}}return!1}function R1(d1){return null!=d1}function D1(d1){return d1&&"object"==typeof d1&&!Array.isArray(d1)}function K1(d1,I1){let O=Object.assign({},d1);return D1(d1)&&D1(I1)&&Object.keys(I1).forEach(h1=>{D1(I1[h1])?h1 in d1?O[h1]=K1(d1[h1],I1[h1]):Object.assign(O,{[h1]:I1[h1]}):Object.assign(O,{[h1]:I1[h1]})}),O}class X1{}let Se=(()=>{class d1 extends X1{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(O,h1){let q1;return q1="string"==typeof O?this.interpolateString(O,h1):"function"==typeof O?this.interpolateFunction(O,h1):O,q1}getValue(O,h1){let q1="string"==typeof h1?h1.split("."):[h1];h1="";do{h1+=q1.shift(),!R1(O)||!R1(O[h1])||"object"!=typeof O[h1]&&q1.length?q1.length?h1+=".":O=void 0:(O=O[h1],h1="")}while(q1.length);return O}interpolateFunction(O,h1){return O(h1)}interpolateString(O,h1){return h1?O.replace(this.templateMatcher,(q1,_1)=>{let T1=this.getValue(h1,_1);return R1(T1)?T1:q1}):O}}return d1.\u0275fac=function(){let I1;
1return function(h1){return(I1||(I1=o.n5z(d1)))(h1||d1)}}(),d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})();class Me{}let ae=(()=>{class d1 extends Me{compile(O,h1){return O}compileTranslations(O,h1){return O}}return d1.\u0275fac=function(){let I1;return function(h1){return(I1||(I1=o.n5z(d1)))(h1||d1)}}(),d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})();class Ee{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new o.vpe,this.onLangChange=new o.vpe,this.onDefaultLangChange=new o.vpe}}const Ae=new o.OlP("USE_STORE"),ke=new o.OlP("USE_DEFAULT_LANG"),te=new o.OlP("DEFAULT_LANGUAGE"),ie=new o.OlP("USE_EXTEND");let t2=(()=>{class d1{constructor(O,h1,q1,_1,T1,p1=!0,P1=!1,B1=!1,me){this.store=O,this.currentLoader=h1,this.compiler=q1,this.parser=_1,this.missingTranslationHandler=T1,this.useDefaultLang=p1,this.isolate=P1,this.extend=B1,this.pending=!1,this._onTranslationChange=new o.vpe,this._onLangChange=new o.vpe,this._onDefaultLangChange=new o.vpe,this._langs=[],this._translations={},this._translationRequests={},me&&this.setDefaultLang(me)}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(O){this.isolate?this._defaultLang=O:this.store.defaultLang=O}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(O){this.isolate?this._currentLang=O:this.store.currentLang=O}get langs(){return this.isolate?this._langs:this.store.langs}set langs(O){this.isolate?this._langs=O:this.store.langs=O}get translations(){return this.isolate?this._translations:this.store.translations}set translations(O){this.isolate?this._translations=O:this.store.translations=O}setDefaultLang(O){if(O===this.defaultLang)return;let h1=this.retrieveTranslations(O);void 0!==h1?(null==this.defaultLang&&(this.defaultLang=O),h1.pipe((0,F.q)(1)).subscribe(q1=>{this.changeDefaultLang(O)})):this.changeDefaultLang(O)}getDefaultLang(){return this.defaultLang}use(O){if(O===this.currentLang)return(0,a.of)(this.translations[O]);let h1=this.retrieveTranslations(O);return void 0!==h1?(this.currentLang||(this.currentLang=O),h1.pipe((0,F.q)(1)).subscribe(q1=>{this.changeLang(O)}),h1):(this.changeLang(O),(0,a.of)(this.translations[O]))}retrieveTranslations(O){let h1;return(void 0===this.translations[O]||this.extend)&&(this._translationRequests[O]=this._translationRequests[O]||this.getTranslation(O),h1=this._translationRequests[O]),h1}getTranslation(O){this.pending=!0;const h1=this.currentLoader.getTranslation(O).pipe((0,j.d)(1),(0,F.q)(1));return this.loadingTranslations=h1.pipe((0,W.U)(q1=>this.compiler.compileTranslations(q1,O)),(0,j.d)(1),(0,F.q)(1)),this.loadingTranslations.subscribe({next:q1=>{this.translations[O]=this.extend&&this.translations[O]?Object.assign(Object.assign({},q1),this.translations[O]):q1,this.updateLangs(),this.pending=!1},error:q1=>{this.pending=!1}}),h1}setTranslation(O,h1,q1=!1){h1=this.compiler.compileTranslations(h1,O),this.translations[O]=(q1||this.extend)&&this.translations[O]?K1(this.translations[O],h1):h1,this.updateLangs(),this.onTranslationChange.emit({lang:O,translations:this.translations[O]})}getLangs(){return this.langs}addLangs(O){O.forEach(h1=>{-1===this.langs.indexOf(h1)&&this.langs.push(h1)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(O,h1,q1){let _1;if(h1 instanceof Array){let T1={},p1=!1;for(let P1 of h1)T1[P1]=this.getParsedResult(O,P1,q1),r1(T1[P1])&&(p1=!0);if(p1){const P1=h1.map(B1=>r1(T1[B1])?T1[B1]:(0,a.of)(T1[B1]));return(0,X.D)(P1).pipe((0,W.U)(B1=>{let me={};return B1.forEach((Oe,h2)=>{me[h1[h2]]=Oe}),me}))}return T1}if(O&&(_1=this.parser.interpolate(this.parser.getValue(O,h1),q1)),void 0===_1&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(_1=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],h1),q1)),void 0===_1){let T1={key:h1,translateService:this};void 0!==q1&&(T1.interpolateParams=q1),_1=this.missingTranslationHandler.handle(T1)}return void 0!==_1?_1:h1}get(O,h1){if(!R1(O)||!O.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,J.b)(q1=>r1(q1=this.getParsedResult(q1,O,h1))?q1:(0,a.of)(q1)));{let q1=this.getParsedResult(this.translations[this.currentLang],O,h1);return r1(q1)?q1:(0,a.of)(q1)}}getStreamOnTranslationChange(O,h1){if(!R1(O)||!O.length)throw new Error('Parameter "key" required');return(0,U.z)((0,N.P)(()=>this.get(O,h1)),this.onTranslationChange.pipe((0,l1.w)(q1=>{const _1=this.getParsedResult(q1.translations,O,h1);return"function"==typeof _1.subscribe?_1:(0,a.of)(_1)})))}stream(O,h1){if(!R1(O)||!O.length)throw new Error('Parameter "key" required');return(0,U.z)((0,N.P)(()=>this.get(O,h1)),this.onLangChange.pipe((0,l1.w)(q1=>{const _1=this.getParsedResult(q1.translations,O,h1);return r1(_1)?_1:(0,a.of)(_1)})))}instant(O,h1){if(!R1(O)||!O.length)throw new Error('Parameter "key" required');let q1=this.getParsedResult(this.translations[this.currentLang],O,h1);if(r1(q1)){if(O instanceof Array){let _1={};return O.forEach((T1,p1)=>{_1[O[p1]]=O[p1]}),_1}return O}return q1}set(O,h1,q1=this.currentLang){this.translations[q1][O]=this.compiler.compile(h1,q1),this.updateLangs(),this.onTranslationChange.emit({lang:q1,translations:this.translations[q1]})}changeLang(O){this.currentLang=O,this.onLangChange.emit({lang:O,translations:this.translations[O]}),null==this.defaultLang&&this.changeDefaultLang(O)}changeDefaultLang(O){this.defaultLang=O,this.onDefaultLangChange.emit({lang:O,translations:this.translations[O]})}reloadLang(O){return this.resetLang(O),this.getTranslation(O)}resetLang(O){this._translationRequests[O]=void 0,this.translations[O]=void 0}getBrowserLang(){if("undefined"==typeof window||void 0===window.navigator)return;let O=window.navigator.languages?window.navigator.languages[0]:null;return O=O||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,void 0!==O?(-1!==O.indexOf("-")&&(O=O.split("-")[0]),-1!==O.indexOf("_")&&(O=O.split("_")[0]),O):void 0}getBrowserCultureLang(){if("undefined"==typeof window||void 0===window.navigator)return;let O=window.navigator.languages?window.navigator.languages[0]:null;return O=O||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,O}}return d1.\u0275fac=function(O){return new(O||d1)(o.LFG(Ee),o.LFG(s1),o.LFG(Me),o.LFG(X1),o.LFG(M1),o.LFG(ke),o.LFG(Ae),o.LFG(ie),o.LFG(te))},d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})(),H1=(()=>{class d1{constructor(O,h1){this.translate=O,this._ref=h1,this.value=""}updateValue(O,h1,q1){let _1=T1=>{this.value=void 0!==T1?T1:O,this.lastKey=O,this._ref.markForCheck()};if(q1){let T1=this.translate.getParsedResult(q1,O,h1);r1(T1.subscribe)?T1.subscribe(_1):_1(T1)}this.translate.get(O,h1).subscribe(_1)}transform(O,...h1){if(!O||!O.length)return O;if(de(O,this.lastKey)&&de(h1,this.lastParams))return this.value;let q1;if(R1(h1[0])&&h1.length)if("string"==typeof h1[0]&&h1[0].length){let _1=h1[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{q1=JSON.parse(_1)}catch(T1){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${h1[0]}`)}}else"object"==typeof h1[0]&&!Array.isArray(h1[0])&&(q1=h1[0]);
1return this.lastKey=O,this.lastParams=h1,this.updateValue(O,q1),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(_1=>{this.lastKey&&_1.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(O,q1,_1.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(_1=>{this.lastKey&&(this.lastKey=null,this.updateValue(O,q1,_1.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(O,q1))})),this.value}_dispose(){void 0!==this.onTranslationChange&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),void 0!==this.onLangChange&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),void 0!==this.onDefaultLangChange&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return d1.\u0275fac=function(O){return new(O||d1)(o.Y36(t2,16),o.Y36(o.sBO,16))},d1.\u0275pipe=o.Yjl({name:"translate",type:d1,pure:!1}),d1.\u0275prov=o.Yz7({token:d1,factory:d1.\u0275fac}),d1})(),Z1=(()=>{class d1{static forRoot(O={}){return{ngModule:d1,providers:[O.loader||{provide:s1,useClass:n1},O.compiler||{provide:Me,useClass:ae},O.parser||{provide:X1,useClass:Se},O.missingTranslationHandler||{provide:M1,useClass:u1},Ee,{provide:Ae,useValue:O.isolate},{provide:ke,useValue:O.useDefaultLang},{provide:ie,useValue:O.extend},{provide:te,useValue:O.defaultLanguage},t2]}}static forChild(O={}){return{ngModule:d1,providers:[O.loader||{provide:s1,useClass:n1},O.compiler||{provide:Me,useClass:ae},O.parser||{provide:X1,useClass:Se},O.missingTranslationHandler||{provide:M1,useClass:u1},{provide:Ae,useValue:O.isolate},{provide:ke,useValue:O.useDefaultLang},{provide:ie,useValue:O.extend},{provide:te,useValue:O.defaultLanguage},t2]}}}return d1.\u0275fac=function(O){return new(O||d1)},d1.\u0275mod=o.oAB({type:d1}),d1.\u0275inj=o.cJS({}),d1})()},7123:function(xe){xe.exports=function(S1){function m(a){if(o[a])return o[a].exports;var I=o[a]={exports:{},id:a,loaded:!1};return S1[a].call(I.exports,I,I.exports,m),I.loaded=!0,I.exports}var o={};return m.m=S1,m.c=o,m.p="dist/",m(0)}([function(S1,m,o){"use strict";function a(Ae){return Ae&&Ae.__esModule?Ae:{default:Ae}}var I=Object.assign||function(Ae){for(var ke=1;ke<arguments.length;ke++){var te=arguments[ke];for(var ie in te)Object.prototype.hasOwnProperty.call(te,ie)&&(Ae[ie]=te[ie])}return Ae},X=(a(o(1)),o(6)),U=a(X),F=a(o(7)),W=a(o(8)),l1=a(o(9)),n1=a(o(10)),M1=a(o(11)),de=a(o(14)),R1=[],D1=!1,K1={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded",throttleDelay:99,debounceDelay:50,disableMutationObserver:!1},X1=function(){if(arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(D1=!0),D1)return R1=(0,M1.default)(R1,K1),(0,n1.default)(R1,K1.once),R1},Se=function(){R1=(0,de.default)(),X1()};S1.exports={init:function(Ae){K1=I(K1,Ae),R1=(0,de.default)();var ke=document.all&&!window.atob;return function(Ae){return!0===Ae||"mobile"===Ae&&l1.default.mobile()||"phone"===Ae&&l1.default.phone()||"tablet"===Ae&&l1.default.tablet()||"function"==typeof Ae&&!0===Ae()}(K1.disable)||ke?void R1.forEach(function(Ae,ke){Ae.node.removeAttribute("data-aos"),Ae.node.removeAttribute("data-aos-easing"),Ae.node.removeAttribute("data-aos-duration"),Ae.node.removeAttribute("data-aos-delay")}):(K1.disableMutationObserver||W.default.isSupported()||(console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '),K1.disableMutationObserver=!0),document.querySelector("body").setAttribute("data-aos-easing",K1.easing),document.querySelector("body").setAttribute("data-aos-duration",K1.duration),document.querySelector("body").setAttribute("data-aos-delay",K1.delay),"DOMContentLoaded"===K1.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?X1(!0):"load"===K1.startEvent?window.addEventListener(K1.startEvent,function(){X1(!0)}):document.addEventListener(K1.startEvent,function(){X1(!0)}),window.addEventListener("resize",(0,F.default)(X1,K1.debounceDelay,!0)),window.addEventListener("orientationchange",(0,F.default)(X1,K1.debounceDelay,!0)),window.addEventListener("scroll",(0,U.default)(function(){(0,n1.default)(R1,K1.once)},K1.throttleDelay)),K1.disableMutationObserver||W.default.ready("[data-aos]",Se),R1)},refresh:X1,refreshHard:Se}},function(S1,m){},,,,,function(S1,m){(function(o){"use strict";function a(ae,Ee,Ae){function ke(P1){var B1=O1,me=Z1;return O1=Z1=void 0,q1=P1,I1=ae.apply(me,B1)}function te(P1){return q1=P1,O=setTimeout(ne,Ee),_1?ke(P1):I1}function G1(P1){var B1=P1-h1;return void 0===h1||B1>=Ee||B1<0||T1&&P1-q1>=d1}function ne(){var P1=Me();return G1(P1)?Ke(P1):void(O=setTimeout(ne,function ie(P1){var Oe=Ee-(P1-h1);return T1?Se(Oe,d1-(P1-q1)):Oe}(P1)))}function Ke(P1){return O=void 0,p1&&O1?ke(P1):(O1=Z1=void 0,I1)}function H1(){var P1=Me(),B1=G1(P1);if(O1=arguments,Z1=this,h1=P1,B1){if(void 0===O)return te(h1);if(T1)return O=setTimeout(ne,Ee),ke(h1)}return void 0===O&&(O=setTimeout(ne,Ee)),I1}var O1,Z1,d1,I1,O,h1,q1=0,_1=!1,T1=!1,p1=!0;if("function"!=typeof ae)throw new TypeError(j);return Ee=N(Ee)||0,r1(Ae)&&(_1=!!Ae.leading,d1=(T1="maxWait"in Ae)?X1(N(Ae.maxWait)||0,Ee):d1,p1="trailing"in Ae?!!Ae.trailing:p1),H1.cancel=function t2(){void 0!==O&&clearTimeout(O),q1=0,O1=h1=Z1=O=void 0},H1.flush=function Je(){return void 0===O?I1:Ke(Me())},H1}function r1(ae){var Ee=void 0===ae?"undefined":F(ae);return!!ae&&("object"==Ee||"function"==Ee)}function U(ae){return"symbol"==(void 0===ae?"undefined":F(ae))||function X(ae){return!!ae&&"object"==(void 0===ae?"undefined":F(ae))}(ae)&&K1.call(ae)==J}function N(ae){if("number"==typeof ae)return ae;if(U(ae))return W;if(r1(ae)){var Ee="function"==typeof ae.valueOf?ae.valueOf():ae;ae=r1(Ee)?Ee+"":Ee}if("string"!=typeof ae)return 0===ae?ae:+ae;ae=ae.replace(l1,"");var Ae=n1.test(ae);return Ae||y1.test(ae)?M1(ae.slice(2),Ae?2:8):s1.test(ae)?W:+ae}var F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(ae){return typeof ae}:function(ae){return ae&&"function"==typeof Symbol&&ae.constructor===Symbol&&ae!==Symbol.prototype?"symbol":typeof ae},j="Expected a function",W=NaN,J="[object Symbol]",l1=/^\s+|\s+$/g,s1=/^[-+]0x[0-9a-f]+$/i,n1=/^0b[01]+$/i,y1=/^0o[0-7]+$/i,M1=parseInt,u1="object"==(void 0===o?"undefined":F(o))&&o&&o.Object===Object&&o,de="object"==("undefined"==typeof self?"undefined":F(self))&&self&&self.Object===Object&&self,R1=u1||de||Function("return this")(),K1=Object.prototype.toString,X1=Math.max,Se=Math.min,Me=function(){return R1.Date.now()};S1.exports=function I(ae,Ee,Ae){var ke=!0,te=!0;if("function"!=typeof ae)throw new TypeError(j);return r1(Ae)&&(ke="leading"in Ae?!!Ae.leading:ke,te="trailing"in Ae?!!Ae.trailing:te),a(ae,Ee,{leading:ke,maxWait:Ee,trailing:te})}}).call(m,function(){return this}())},function(S1,m){(function(o){"use strict";function I(Me){var ae=void 0===Me?"undefined":N(Me);return!!Me&&("object"==ae||"function"==ae)}function X(Me){return"symbol"==(void 0===Me?"undefined":N(Me))||function r1(Me){return!!Me&&"object"==(void 0===Me?"undefined":N(Me))}(Me)&&D1.call(Me)==W}function U(Me){if("number"==typeof Me)return Me;if(X(Me))return j;if(I(Me)){var ae="function"==typeof Me.valueOf?Me.valueOf():Me;Me=I(ae)?ae+"":ae}if("string"!=typeof Me)return 0===Me?Me:+Me;Me=Me.replace(J,"");var Ee=s1.test(Me);return Ee||n1.test(Me)?y1(Me.slice(2),Ee?2:8):l1.test(Me)?j:+Me}var N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(Me){return typeof Me}:function(Me){return Me&&"function"==typeof Symbol&&Me.constructor===Symbol&&Me!==Symbol.prototype?"symbol":typeof Me},F="Expected a function",j=NaN,W="[object Symbol]",J=/^\s+|\s+$/g,l1=/^[-+]0x[0-9a-f]+$/i,s1=/^0b[01]+$/i,n1=/^0o[0-7]+$/i,y1=parseInt,M1="object"==(void 0===o?"undefined":N(o))&&o&&o.Object===Object&&o,u1="object"==("undefined"==typeof self?"undefined":N(self))&&self&&self.Object===Object&&self,de=M1||u1||Function("return this")(),D1=Object.prototype.toString,K1=Math.max,X1=Math.min,Se=function(){return de.Date.now()};S1.exports=function a(Me,ae,Ee){function Ae(p1){var P1=H1,B1=O1;return H1=O1=void 0,h1=p1,d1=Me.apply(B1,P1)}function ke(p1){return h1=p1,I1=setTimeout(G1,ae),q1?Ae(p1):d1}function ie(p1){var P1=p1-O;return void 0===O||P1>=ae||P1<0||_1&&p1-h1>=Z1}function G1(){var p1=Se();return ie(p1)?ne(p1):void(I1=setTimeout(G1,function te(p1){var me=ae-(p1-O);return _1?X1(me,Z1-(p1-h1)):me}(p1)))}function ne(p1){return I1=void 0,T1&&H1?Ae(p1):(H1=O1=void 0,d1)}function Je(){var p1=Se(),P1=ie(p1);if(H1=arguments,O1=this,O=p1,P1){if(void 0===I1)return ke(O);if(_1)return I1=setTimeout(G1,ae),Ae(O)}return void 0===I1&&(I1=setTimeout(G1,ae)),d1}var H1,O1,Z1,d1,I1,O,h1=0,q1=!1,_1=!1,T1=!0;if("function"!=typeof Me)throw new TypeError(F);return ae=U(ae)||0,I(Ee)&&(q1=!!Ee.leading,Z1=(_1="maxWait"in Ee)?K1(U(Ee.maxWait)||0,ae):Z1,T1="trailing"in Ee?!!Ee.trailing:T1),Je.cancel=function Ke(){void 0!==I1&&clearTimeout(I1),h1=0,H1=O=O1=I1=void 0},Je.flush=function t2(){return void 0===I1?d1:ne(Se())},Je}}
1).call(m,function(){return this}())},function(S1,m){"use strict";function o(N){var F=void 0,j=void 0;for(F=0;F<N.length;F+=1)if((j=N[F]).dataset&&j.dataset.aos||j.children&&o(j.children))return!0;return!1}function a(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function X(N){N&&N.forEach(function(F){var j=Array.prototype.slice.call(F.addedNodes),W=Array.prototype.slice.call(F.removedNodes);if(o(j.concat(W)))return U()})}Object.defineProperty(m,"__esModule",{value:!0});var U=function(){};m.default={isSupported:function I(){return!!a()},ready:function r1(N,F){var j=window.document,J=new(a())(X);U=F,J.observe(j.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}}},function(S1,m){"use strict";function a(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(m,"__esModule",{value:!0});var I=function(){function j(W,J){for(var l1=0;l1<J.length;l1++){var s1=J[l1];s1.enumerable=s1.enumerable||!1,s1.configurable=!0,"value"in s1&&(s1.writable=!0),Object.defineProperty(W,s1.key,s1)}}return function(W,J,l1){return J&&j(W.prototype,J),l1&&j(W,l1),W}}(),r1=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,X=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,U=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,N=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,F=function(){function j(){!function o(j,W){if(!(j instanceof W))throw new TypeError("Cannot call a class as a function")}(this,j)}return I(j,[{key:"phone",value:function(){var W=a();return!(!r1.test(W)&&!X.test(W.substr(0,4)))}},{key:"mobile",value:function(){var W=a();return!(!U.test(W)&&!N.test(W.substr(0,4)))}},{key:"tablet",value:function(){return this.mobile()&&!this.phone()}}]),j}();m.default=new F},function(S1,m){"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.default=function(I,r1){var X=window.pageYOffset,U=window.innerHeight;I.forEach(function(N,F){!function(I,r1,X){var U=I.node.getAttribute("data-aos-once");r1>I.position?I.node.classList.add("aos-animate"):void 0!==U&&("false"===U||!X&&"true"!==U)&&I.node.classList.remove("aos-animate")}(N,U+X,r1)})}},function(S1,m,o){"use strict";Object.defineProperty(m,"__esModule",{value:!0});var r1=function a(U){return U&&U.__esModule?U:{default:U}}(o(12));m.default=function(U,N){return U.forEach(function(F,j){F.node.classList.add("aos-init"),F.position=(0,r1.default)(F.node,N.offset)}),U}},function(S1,m,o){"use strict";Object.defineProperty(m,"__esModule",{value:!0});var r1=function a(U){return U&&U.__esModule?U:{default:U}}(o(13));m.default=function(U,N){var F=0,j=0,W=window.innerHeight,J={offset:U.getAttribute("data-aos-offset"),anchor:U.getAttribute("data-aos-anchor"),anchorPlacement:U.getAttribute("data-aos-anchor-placement")};switch(J.offset&&!isNaN(J.offset)&&(j=parseInt(J.offset)),J.anchor&&document.querySelectorAll(J.anchor)&&(U=document.querySelectorAll(J.anchor)[0]),F=(0,r1.default)(U).top,J.anchorPlacement){case"top-bottom":break;case"center-bottom":F+=U.offsetHeight/2;break;case"bottom-bottom":F+=U.offsetHeight;break;case"top-center":F+=W/2;break;case"bottom-center":F+=W/2+U.offsetHeight;break;case"center-center":F+=W/2+U.offsetHeight/2;break;case"top-top":F+=W;break;case"bottom-top":F+=U.offsetHeight+W;break;case"center-top":F+=U.offsetHeight/2+W}return J.anchorPlacement||J.offset||isNaN(N)||(j=N),F+j}},function(S1,m){"use strict";Object.defineProperty(m,"__esModule",{value:!0}),m.default=function(a){for(var I=0,r1=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)I+=a.offsetLeft-("BODY"!=a.tagName?a.scrollLeft:0),r1+=a.offsetTop-("BODY"!=a.tagName?a.scrollTop:0),a=a.offsetParent;return{top:r1,left:I}}},function(S1,m){"use strict";Object.defineProperty(m,"__esModule",{value:!0}),m.default=function(a){return a=a||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(a,function(I){return{node:I}})}}])},1405:(xe,S1,m)=>{"use strict";m.d(S1,{e7:()=>J,to:()=>j});var o=m(6435),a=m(3075),I=m(9808);const r1=["captchaWrapperElem"];let X=(()=>{class l1{constructor(n1){this.zone=n1,this.windowGrecaptcha="grecaptcha",this.windowOnLoadCallbackProperty="ngx_captcha_onload_callback",this.globalDomain="recaptcha.net",this.defaultDomain="google.com"}registerCaptchaScript(n1,y1,M1,u1){if(this.grecaptchaScriptLoaded())return void this.zone.run(()=>{M1(window[this.windowGrecaptcha])});window[this.windowOnLoadCallbackProperty]=()=>this.zone.run(M1.bind(this,window[this.windowGrecaptcha]));const de=document.createElement("script");de.innerHTML="",de.src=this.getCaptchaScriptUrl(n1,y1,u1),de.async=!0,de.defer=!0,document.getElementsByTagName("head")[0].appendChild(de)}cleanup(){window[this.windowOnLoadCallbackProperty]=void 0,window[this.windowGrecaptcha]=void 0}grecaptchaScriptLoaded(){return!(!window[this.windowOnLoadCallbackProperty]||!window[this.windowGrecaptcha])}getLanguageParam(n1){return n1?`&hl=${n1}`:""}getCaptchaScriptUrl(n1,y1,M1){return`https://www.${n1?this.globalDomain:this.defaultDomain}/recaptcha/api.js?onload=${this.windowOnLoadCallbackProperty}&render=${y1}${this.getLanguageParam(M1)}`}}return l1.\u0275fac=function(n1){return new(n1||l1)(o.LFG(o.R0b))},l1.\u0275prov=o.Yz7({token:l1,factory:l1.\u0275fac}),l1})(),U=(()=>{class l1{constructor(n1,y1,M1,u1){this.renderer=n1,this.zone=y1,this.injector=M1,this.scriptService=u1,this.captchaElemPrefix="ngx_captcha_id_",this.setupCaptcha=!0,this.useGlobalDomain=!1,this.type="image",this.tabIndex=0,this.success=new o.vpe,this.load=new o.vpe,this.reset=new o.vpe,this.ready=new o.vpe,this.error=new o.vpe,this.expire=new o.vpe,this.setupAfterLoad=!1,this.resetCaptchaAfterSuccess=!1,this.isLoaded=!1}ngAfterViewInit(){this.control=this.injector.get(a.a5).control}ngAfterViewChecked(){this.setupCaptcha&&(this.setupCaptcha=!1,this.setupComponent())}ngOnChanges(n1){n1&&n1.hl&&!n1.hl.firstChange&&n1.hl.currentValue!==n1.hl.previousValue&&this.scriptService.cleanup(),n1&&n1.useGlobalDomain&&!n1.useGlobalDomain.firstChange&&n1.useGlobalDomain.currentValue!==n1.useGlobalDomain.previousValue&&this.scriptService.cleanup(),this.setupCaptcha=!0}getResponse(){return this.reCaptchaApi.getResponse(this.captchaId)}getCaptchaId(){return this.captchaId}resetCaptcha(){this.zone.run(()=>{this.reCaptchaApi.reset(),this.onChange(void 0),this.onTouched(void 0),this.reset.next()})}getCurrentResponse(){return this.currentResponse}reloadCaptcha(){this.setupComponent()}
1ensureCaptchaElem(n1){const y1=document.getElementById(n1);if(!y1)throw Error(`Captcha element with id '${n1}' was not found`);this.captchaElem=y1}renderReCaptcha(){this.zone.runOutsideAngular(()=>{this.captchaId=this.reCaptchaApi.render(this.captchaElemId,this.getCaptchaProperties()),this.ready.next()})}handleCallback(n1){this.currentResponse=n1,this.success.next(n1),this.zone.run(()=>{this.onChange(n1),this.onTouched(n1)}),this.resetCaptchaAfterSuccess&&this.resetCaptcha()}getPseudoUniqueNumber(){return(new Date).getUTCMilliseconds()+Math.floor(9999*Math.random())}setupComponent(){this.captchaSpecificSetup(),this.createAndSetCaptchaElem(),this.scriptService.registerCaptchaScript(this.useGlobalDomain,"explicit",n1=>{this.onloadCallback(n1)},this.hl)}onloadCallback(n1){if(this.reCaptchaApi=n1,!this.reCaptchaApi)throw Error("ReCaptcha Api was not initialized correctly");this.isLoaded=!0,this.load.next(),this.renderReCaptcha(),this.setupAfterLoad&&(this.setupAfterLoad=!1,this.setupComponent())}generateNewElemId(){return this.captchaElemPrefix+this.getPseudoUniqueNumber()}createAndSetCaptchaElem(){if(this.captchaElemId=this.generateNewElemId(),!this.captchaElemId)throw Error("Captcha elem Id is not set");if(!this.captchaWrapperElem)throw Error("Captcha DOM element is not initialized");this.captchaWrapperElem.nativeElement.innerHTML="";const n1=this.renderer.createElement("div");n1.id=this.captchaElemId,this.renderer.appendChild(this.captchaWrapperElem.nativeElement,n1),setTimeout(()=>{this.captchaElemId&&this.ensureCaptchaElem(this.captchaElemId)},0)}writeValue(n1){}registerOnChange(n1){this.onChange=n1}registerOnTouched(n1){this.onTouched=n1}handleErrorCallback(){this.zone.run(()=>{this.onChange(void 0),this.onTouched(void 0)}),this.error.next()}handleExpireCallback(){this.expire.next(),this.resetCaptcha()}}return l1.\u0275fac=function(n1){return new(n1||l1)(o.Y36(o.Qsj),o.Y36(o.R0b),o.Y36(o.zs3),o.Y36(X))},l1.\u0275dir=o.lG2({type:l1,inputs:{useGlobalDomain:"useGlobalDomain",type:"type",tabIndex:"tabIndex",siteKey:"siteKey",hl:"hl"},outputs:{success:"success",load:"load",reset:"reset",ready:"ready",error:"error",expire:"expire"},features:[o.TTD]}),l1})();const N={InvisibleReCaptcha:0,ReCaptcha2:1};N[N.InvisibleReCaptcha]="InvisibleReCaptcha",N[N.ReCaptcha2]="ReCaptcha2";let j=(()=>{class l1 extends U{constructor(n1,y1,M1,u1){super(n1,y1,M1,u1),this.renderer=n1,this.zone=y1,this.injector=M1,this.scriptService=u1,this.windowOnErrorCallbackProperty="ngx_captcha_error_callback",this.windowOnExpire
1CallbackProperty="ngx_captcha_expire_callback",this.theme="light",this.size="normal",this.recaptchaType=N.ReCaptcha2}ngOnChanges(n1){super.ngOnChanges(n1)}ngOnDestroy(){window[this.windowOnErrorCallbackProperty]={},window[this.windowOnExpireCallbackProperty]={}}captchaSpecificSetup(){this.registerCallbacks()}getCaptchaProperties(){return{sitekey:this.siteKey,callback:n1=>this.zone.run(()=>this.handleCallback(n1)),"expired-callback":()=>this.zone.run(()=>this.handleExpireCallback()),"error-callback":()=>this.zone.run(()=>this.handleErrorCallback()),theme:this.theme,type:this.type,size:this.size,tabindex:this.tabIndex}}registerCallbacks(){window[this.windowOnErrorCallbackProperty]=super.handleErrorCallback.bind(this),window[this.windowOnExpireCallbackProperty]=super.handleExpireCallback.bind(this)}}return l1.\u0275fac=function(n1){return new(n1||l1)(o.Y36(o.Qsj),o.Y36(o.R0b),o.Y36(o.zs3),o.Y36(X))},l1.\u0275cmp=o.Xpm({type:l1,selectors:[["ngx-recaptcha2"]],viewQuery:function(n1,y1){if(1&n1&&o.Gf(r1,5),2&n1){let M1;o.iGM(M1=o.CRH())&&(y1.captchaWrapperElem=M1.first)}},inputs:{theme:"theme",size:"size",hl:"hl"},features:[o._Bn([{provide:a.JU,useExisting:(0,o.Gpc)(()=>l1),multi:!0}]),o.qOj,o.TTD],decls:2,vars:0,consts:[["captchaWrapperElem",""]],template:function(n1,y1){1&n1&&o._UZ(0,"div",null,0)},encapsulation:2}),l1})(),W=(()=>{class l1{constructor(n1,y1){this.scriptService=n1,this.zone=y1}execute(n1,y1,M1,u1,de){this.executeAsPromise(n1,y1,u1).then(M1).catch(R1=>de?de(R1):console.error(R1))}executeAsPromise(n1,y1,M1){return new Promise((u1,de)=>{this.scriptService.registerCaptchaScript(!(!M1||!M1.useGlobalDomain),n1,K1=>{this.zone.runOutsideAngular(()=>{try{K1.execute(n1,{action:y1}).then(X1=>this.zone.run(()=>u1(X1)))}catch(X1){de(X1)}})})})}}return l1.\u0275fac=function(n1){return new(n1||l1)(o.LFG(X),o.LFG(o.R0b))},l1.\u0275prov=o.Yz7({token:l1,factory:l1.\u0275fac}),l1})(),J=(()=>{class l1{}return l1.\u0275fac=function(n1){return new(n1||l1)},l1.\u0275mod=o.oAB({type:l1}),l1.\u0275inj=o.cJS({providers:[X,W],imports:[[I.ez]]}),l1})()},1679:(xe,S1,m)=>{"use strict";m.d(S1,{n:()=>Pe,K:()=>Ye});var o=m(6435),a=m(9808);let I;try{I="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(x1){I=!1}let r1=(()=>{class x1{constructor(c1){this._platformId=c1,this.isBrowser=this._platformId?(0,a.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!I)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return x1.\u0275fac=function(c1){return new(c1||x1)(o.LFG(o.Lbi))},x1.\u0275prov=o.Yz7({factory:function(){return new x1(o.LFG(o.Lbi))},token:x1,providedIn:"root"}),x1})(),X=(()=>{class x1{}return x1.\u0275fac=function(c1){return new(c1||x1)},x1.\u0275mod=o.oAB({type:x1}),x1.\u0275inj=o.cJS({}),x1})();class X1{constructor(j1,c1){this._document=c1;const F1=this._textarea=this._document.createElement("textarea"),Re=F1.style;Re.position="fixed",Re.top=Re.opacity="0",Re.left="-999em",F1.setAttribute("aria-hidden","true"),F1.value=j1,this._document.body.appendChild(F1)}copy(){const j1=this._textarea;let c1=!1;try{if(j1){const F1=this._document.activeElement;j1.select(),j1.setSelectionRange(0,j1.value.length),c1=this._document.execCommand("copy"),F1&&F1.focus()}}catch(F1){}return c1}destroy(){const j1=this._textarea;j1&&(j1.parentNode&&j1.parentNode.removeChild(j1),this._textarea=void 0)}}let Se=(()=>{class x1{constructor(c1){this._document=c1}copy(c1){const F1=this.beginCopy(c1),Re=F1.copy();return F1.destroy(),Re}beginCopy(c1){return new X1(c1,this._document)}}
1return x1.\u0275fac=function(c1){return new(c1||x1)(o.LFG(a.K0))},x1.\u0275prov=o.Yz7({factory:function(){return new x1(o.LFG(a.K0))},token:x1,providedIn:"root"}),x1})(),Ae=(()=>{class x1{}return x1.\u0275fac=function(c1){return new(c1||x1)},x1.\u0275mod=o.oAB({type:x1}),x1.\u0275inj=o.cJS({}),x1})();var ke=m(2916),te=m(1086),ie=m(591),G1=m(8929),ne=m(8896),Ke=m(2994),t2=m(353),H1=m(3489),O1=m(9312);class d1{constructor(j1,c1){this.delay=j1,this.scheduler=c1}call(j1,c1){return c1.subscribe(new I1(j1,this.delay,this.scheduler))}}class I1 extends H1.L{constructor(j1,c1,F1){super(j1),this.delay=c1,this.scheduler=F1,this.queue=[],this.active=!1,this.errored=!1}static dispatch(j1){const c1=j1.source,F1=c1.queue,Re=j1.scheduler,Ze=j1.destination;for(;F1.length>0&&F1[0].time-Re.now()<=0;)F1.shift().notification.observe(Ze);if(F1.length>0){const E2=Math.max(0,F1[0].time-Re.now());this.schedule(j1,E2)}else this.unsubscribe(),c1.active=!1}_schedule(j1){this.active=!0,this.destination.add(j1.schedule(I1.dispatch,this.delay,{source:this,destination:this.destination,scheduler:j1}))}scheduleNotification(j1){if(!0===this.errored)return;const c1=this.scheduler,F1=new O(c1.now()+this.delay,j1);this.queue.push(F1),!1===this.active&&this._schedule(c1)}_next(j1){this.scheduleNotification(O1.P.createNext(j1))}_error(j1){this.errored=!0,this.queue=[],this.destination.error(j1),this.unsubscribe()}_complete(){this.scheduleNotification(O1.P.createComplete()),this.unsubscribe()}}class O{constructor(j1,c1){this.time=j1,this.notification=c1}}var h1=m(2986),q1=m(1177);function _1(x1){return j1=>j1.lift(new T1(x1))}class T1{constructor(j1){this.notifier=j1}call(j1,c1){const F1=new p1(j1),Re=(0,q1.ft)(this.notifier,new q1.IY(F1));return Re&&!F1.seenValue?(F1.add(Re),c1.subscribe(F1)):F1}}class p1 extends q1.Ds{constructor(j1){super(j1),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}var P1=m(2313);const B1=new o.OlP("shareButtonsConfig");var Oe=(()=>{return(x1=Oe||(Oe={})).Anchor="anchor",x1.Window="window",Oe;var x1})();function h2(x1){return x1&&"object"==typeof x1&&!Array.isArray(x1)}function y2(x1,...j1){if(!j1.length)return x1;const c1=j1.shift();if(h2(x1)&&h2(c1))for(const F1 in c1)h2(c1[F1])?(x1[F1]||Object.assign(x1,{[F1]:{}}),y2(x1[F1],c1[F1])):Object.assign(x1,{[F1]:c1[F1]});return y2(x1,...j1)}const V2={description:x1=>x1.description?`${x1.description}\r\n${x1.url}`:x1.url},mt={facebook:{type:"facebook",text:"Facebook",ariaLabel:"Share on Facebook",icon:["fab","facebook-f"],color:"#4267B2",share:{desktop:"https://www.facebook.com/sharer/sharer.php?"},params:{url:"u"}},twitter:{type:"twitter",text:"Twitter",ariaLabel:"Share on Twitter",icon:["fab","twitter"],color:"#00acee",share:{desktop:"https://twitter.com/intent/tweet?"},params:{url:"url",description:"text",tags:"hashtags",via:"via"}},linkedin:{type:"linkedin",text:"LinkedIn",ariaLabel:"Share on LinkedIn",icon:["fab","linkedin-in"],color:"#006fa6",share:{desktop:"https://www.linkedin.com/shareArticle?"},params:{url:"url",title:"title",description:"summary"}},pinterest:{type:"pinterest",text:"Pinterest",ariaLabel:"Share on Pinterest",icon:["fab","pinterest-p"],color:"#BD091D",share:{desktop:"https://pinterest.com/pin/create/button/?"},params:{url:"url",description:"description",image:"media"}},reddit:{type:"reddit",text:"Reddit",ariaLabel:"Share on Reddit",icon:["fab","reddit-alien"],color:"#FF4006",share:{desktop:"https://www.reddit.com/submit?"},params:{url:"url",title:"title"}},tumblr:{type:"tumblr",text:"Tumblr",ariaLabel:"Share on Tumblr",icon:["fab","tumblr"],color:"#36465D",share:{desktop:"https://tumblr.com/widgets/share/tool?"},params:{url:"canonicalUrl",description:"caption",tags:"tags"}},mix:{type:"mix",text:"Mix",ariaLabel:"Share on Mix",icon:["fab","mix"],color:"#eb4924",share:{desktop:"https://mix.com/add?"},params:{url:"url"}},viber:{type:"viber",text:"Viber",ariaLabel:"Share on Viber",icon:["fab","viber"],color:"#665ca7",share:{android:"viber://forward?",ios:"viber://forward?"},params:{description:"text"},paramsFunc:V2},vk:{type:"vk",text:"VKontakte",ariaLabel:"Share on VKontakte",icon:["fab","vk"],color:"#4C75A3",share:{desktop:"https://vk.com/share.php?"},params:{url:"url"}},telegram:{type:"telegram",text:"Telegram",ariaLabel:"Share on Telegram",icon:["fab","telegram-plane"],color:"#0088cc",share:{desktop:"https://t.me/share/url?"},params:{url:"url",description:"text"}},messenger:{type:"messenger",text:"Messenger",ariaLabel:"Share on Messenger",icon:["fab","facebook-messenger"],color:"#0080FF",share:{android:"fb-messenger://share/?",i
1os:"fb-messenger://share/?"},params:{url:"link"}},whatsapp:{type:"whatsapp",text:"WhatsApp",ariaLabel:"Share on WhatsApp",icon:["fab","whatsapp"],color:"#25D366",share:{desktop:"https://web.whatsapp.com/send?",android:"whatsapp://send?",ios:"https://api.whatsapp.com/send?"},params:{description:"text"},paramsFunc:V2},xing:{type:"xing",text:"Xing",ariaLabel:"Share on Xing",icon:["fab","xing"],color:"#006567",share:{desktop:"https://www.xing.com/spi/shares/new?"},params:{url:"url"}},line:{type:"line",text:"Line",ariaLabel:"Share on Line",icon:["fab","line"],color:"#00b900",share:{desktop:"https://social-plugins.line.me/lineit/share?"},params:{url:"url"}},sms:{type:"sms",text:"SMS",ariaLabel:"Share link via SMS",icon:["fas","sms"],color:"#20c16c",share:{desktop:"sms:?",ios:"sms:&"},params:{description:"body"},paramsFunc:V2},email:{type:"email",text:"Email",ariaLabel:"Share link via email",icon:["fas","envelope"],color:"#FF961C",share:{desktop:"mailto:?"},params:{title:"subject",description:"body"},paramsFunc:V2},print:{type:"print",text:"Print",ariaLabel:"Print page",icon:["fas","print"],color:"#765AA2",func:function K2(){return new ke.y(x1=>document.defaultView.print())}},copy:{type:"copy",text:"Copy link",ariaLabel:"Copy link",icon:["fas","link"],color:"#607D8B",data:{text:"Copy link",icon:["fas","link"],successText:"Copied",successIcon:["fas","check"],delay:2e3},func:function A2({params:x1,data:j1,clipboard:c1,updater:F1}){return(0,te.of)(null).pipe((0,Ke.b)(()=>{c1.copy(x1.url),F1.next({icon:j1.successIcon,text:j1.successText,disabled:!0})}),function Z1(x1,j1=t2.P){const F1=function Je(x1){return x1 instanceof Date&&!isNaN(+x1)}(x1)?+x1-j1.now():Math.abs(x1);return Re=>Re.lift(new d1(F1,j1))}(j1.delay),(0,Ke.b)(()=>F1.next({icon:j1.icon,text:j1.text,disabled:!1})),(0,h1.q)(1))}}};let We=(()=>{class x1{constructor(c1,F1){this._document=F1,this.config={sharerMethod:Oe.Anchor,sharerTarget:"_blank",windowObj:this._document.defaultView,windowFuncName:"open",prop:mt,theme:"default",include:[],exclude:[],size:0,autoSetMeta:!0,windowWidth:800,windowHeight:500,moreButtonIcon:"ellipsis-h",lessButtonIcon:"minus",moreButtonAriaLabel:"Show more share buttons",lessButtonAriaLabel:"Show less share buttons"},this.config$=new ie.X(this.config),c1&&this.setConfig(c1)}get prop(){return this.config.prop}get windowSize(){return`width=${this.config.windowWidth}, height=${this.config.windowHeight}`}setConfig(c1){this.config=y2(this.config,c1),this.config$.next(this.config)}addButton(c1,F1){this.setConfig({prop:{[c1]:F1}})}}return x1.\u0275fac=function(c1){return new(c1||x1)(o.LFG(B1,8),o.LFG(a.K0))},x1.\u0275prov=o.Yz7({token:x1,factory:x1.\u0275fac,providedIn:"root"}),x1})(),ue=(()=>{class x1{constructor(c1,F1,Re,Ze,E2,U2,I2){this._meta=F1,this._platform=Re,this._clipboard=Ze,this._share=E2,this._cd=U2,this._document=I2,this._destroyed=new G1.xQ,this._updater=new G1.xQ,this.autoSetMeta=this._share.config.autoSetMeta,this.url=this._share.config.url,this.title=this._share.config.title,this.description=this._share.config.description,this.image=this._share.config.image,this.tags=this._share.config.tags,this.opened=new o.vpe,this.closed=new o.vpe,this._el=c1.nativeElement}share(){if(this._platform.isBrowser&&this.shareButton){const c1=this.autoSetMeta?this.getParamsFromMetaTags():this.getParamsFromInputs();(this.shareButton.share?this.open(c1):this.shareButton.func({params:c1,data:this.shareButton.data,clipboard:this._clipboard,updater:this._updater})).pipe(_1(this._destroyed)).subscribe()}else console.warn(`${this.text} button is not compatible on this Platform`)}ngOnInit(){this._updater.pipe((0,Ke.b)(c1=>{this.icon=c1.icon,this.text=c1.text,this._el.style.pointerEvents=c1.disabled?"none":"auto",this._cd.markForCheck()}),_1(this._destroyed)).subscribe()}ngOnChanges(c1){this._platform.isBrowser&&(this._shareButtonChanged(c1.shareButtonName)&&this._createShareButton(),this._urlChanged(c1.url)&&(this.url=function P2(x1,j1){if(x1){if(/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(x1))return x1;console.warn(`[ShareButtons]: Sharing link '${x1}
1' is invalid!`)}return j1}(this.autoSetMeta?this.url||this._getMetaTagContent("og:url"):this.url,this._document.defaultView.location.href)))}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createShareButton(){const c1=this._share.config.prop[this.shareButtonName];c1?(this.shareButton=c1,this._el.classList.remove(`sb-${this._buttonClass}`),this._el.classList.add(`sb-${this.shareButtonName}`),this._el.style.setProperty("--button-color",this.shareButton.color),this._buttonClass=this.shareButtonName,this.color=this.shareButton.color,this.text=this.shareButton.text,this.icon=this.shareButton.icon,this._el.setAttribute("aria-label",c1.ariaLabel)):console.error(`[ShareButtons]: The share button '${this.shareButtonName}' does not exist!`)}_getMetaTagContent(c1){const F1=this._meta.getTag(`property="${c1}"`);if(F1)return F1.getAttribute("content");const Re=this._meta.getTag(`name="${c1}"`);return Re?Re.getAttribute("content"):void 0}_shareButtonChanged(c1){return c1&&(c1.firstChange||c1.previousValue!==c1.currentValue)}_urlChanged(c1){return!this.url||c1&&c1.previousValue!==c1.currentValue}getParamsFromMetaTags(){return{url:this.url,title:this.title||this._getMetaTagContent("og:title"),description:this.description||this._getMetaTagContent("og:description"),image:this.image||this._getMetaTagContent("og:image"),via:this._share.config.twitterAccount,tags:this.tags}}getParamsFromInputs(){return{url:this.url,title:this.title,description:this.description,image:this.image,tags:this.tags,via:this._share.config.twitterAccount}}open(c1){let F1;if(F1=this._platform.IOS&&this.shareButton.share.ios?this.shareButton.share.ios:this._platform.ANDROID&&this.shareButton.share.android?this.shareButton.share.android:this.shareButton.share.desktop,F1){this._finalUrl=F1+this._serializeParams(c1),this._share.config.debug&&console.log("[DEBUG SHARE BUTTON]: ",this._finalUrl);const Ze=this.shareButton.target||this._share.config.sharerTarget;switch(this.shareButton.method||this._share.config.sharerMethod){case Oe.Anchor:const E2=this._document.createElement("a");E2.setAttribute("target",Ze),E2.setAttribute("rel","noopener noreferrer"),E2.href=this._finalUrl,E2.click(),E2.remove();break;case Oe.Window:const I2=this._share.config.windowObj[this._share.config.windowFuncName](this._finalUrl,Ze,this._share.windowSize);if(this._share.config.windowObj.opener=null,I2)return new ke.y(dt=>{const J2=this._document.defaultView.setInterval(()=>{I2.closed&&(this._document.defaultView.clearInterval(J2),this.closed.emit(this.shareButtonName),dt.next(),dt.complete())},200)})}this.opened.emit(this.shareButtonName)}return ne.E}_serializeParams(c1){return Object.entries(this.shareButton.params).map(([F1,Re])=>{const Ze=this.shareButton.paramsFunc?this.shareButton.paramsFunc[F1]:null;if(c1[F1]||Ze){const E2=Ze?Ze(c1):c1[F1];return`${Re}=${encodeURIComponent(E2)}`}return""}).filter(F1=>""!==F1).join("&")}}return x1.\u0275fac=function(c1){return new(c1||x1)(o.Y36(o.SBq),o.Y36(P1.h_),o.Y36(r1),o.Y36(Se),o.Y36(We),o.Y36(o.sBO),o.Y36(a.K0))},x1.\u0275dir=o.lG2({type:x1,selectors:[["","shareButton",""]],hostBindings:function(c1,F1){1&c1&&o.NdJ("click",function(){return F1.share()})},inputs:{shareButtonName:["shareButton","shareButtonName"],autoSetMeta:"autoSetMeta",url:"url",title:"title",description:"description",image:"image",tags:"tags"},outputs:{opened:"opened",closed:"closed"},exportAs:["shareButton"],features:[o.TTD]}),x1})(),Q=(()=>{class x1{static withConfig(c1){return{ngModule:x1,providers:[{provide:B1,useValue:c1}]}}}return x1.\u0275fac=function(c1){return new(c1||x1)},x1.\u0275mod=o.oAB({type:x1}),x1.\u0275inj=o.cJS({imports:[[X,Ae]]}),x1})();var g1=m(3561);function se(x1,j1){if(1&x1&&(o.TgZ(0,"div",6),o._UZ(1,"fa-icon",7),o.qZA()),2&x1){const c1=o.oxw(2),F1=o.MAs(1);o.xp6(1),o.Q6J("icon",c1.icon||F1.icon)("fixedWidth",!0)}}function ce(x1,j1){if(1&x1&&(o.TgZ(0,"div",8),o._uU(1),o.qZA()),2&x1){const c1=o.oxw(2),F1=o.MAs(1);o.xp6(1),o.hij(" ",c1.text||F1.text," ")}}function ye(x1,j1){if(1&x1&&(o.TgZ(0,"div",3),o.YNc(1,se,2,2,"div",4),o.YNc(2,ce,2,1,"div",5),o.qZA()),2&x1){const c1=o.oxw(),F1=o.MAs(1);o.xp6(1),o.Q6J("ngIf",c1.showIcon&&F1.icon),o.xp6(1),o.Q6J("ngIf",c1.showText)}}let ze=(()=>{class x1{constructor(c1){this._share=c1,this.showIcon=!0,this.showText=!1,this.size=this._share.config.size,this.theme=this._share.config.theme,this.opened=new o.vpe,this.closed=new o.vpe}get buttonClass(){return`sb-button sb-${this.theme}`}}
1return x1.\u0275fac=function(c1){return new(c1||x1)(o.Y36(We))},x1.\u0275cmp=o.Xpm({type:x1,selectors:[["share-button"]],hostVars:2,hostBindings:function(c1,F1){2&c1&&o.Tol(F1.buttonClass)},inputs:{button:"button",url:"url",title:"title",description:"description",image:"image",tags:"tags",autoSetMeta:"autoSetMeta",showIcon:"showIcon",showText:"showText",text:"text",icon:"icon",size:"size",theme:"theme",disabled:"disabled"},outputs:{opened:"opened",closed:"closed"},decls:3,vars:15,consts:[["type","button",1,"sb-wrapper",3,"shareButton","url","image","title","description","tags","autoSetMeta","disabled","opened","closed"],["btn","shareButton"],["class","sb-content",4,"ngIf"],[1,"sb-content"],["class","sb-icon",4,"ngIf"],["class","sb-text",4,"ngIf"],[1,"sb-icon"],[3,"icon","fixedWidth"],[1,"sb-text"]],template:function(c1,F1){if(1&c1&&(o.TgZ(0,"button",0,1),o.NdJ("opened",function(Ze){return F1.opened.emit(Ze)})("closed",function(Ze){return F1.closed.emit(Ze)}),o.YNc(2,ye,3,2,"div",2),o.qZA()),2&c1){const Re=o.MAs(1);o.Udp("font-size",14*(1+F1.size/20),"px"),o.ekj("sb-show-icon",F1.showIcon)("sb-show-text",F1.showText),o.Q6J("shareButton",F1.button)("url",F1.url)("image",F1.image)("title",F1.title)("description",F1.description)("tags",F1.tags)("autoSetMeta",F1.autoSetMeta)("disabled",F1.disabled),o.xp6(2),o.Q6J("ngIf",Re)}},directives:[g1.BN,ue,a.O5],styles:["[_nghost-%COMP%]{--sb-margin: .3125em}"],changeDetection:0}),x1})(),z2=(()=>{class x1{static withConfig(c1){return{ngModule:x1,providers:[{provide:B1,useValue:c1}]}}}return x1.\u0275fac=function(c1){return new(c1||x1)},x1.\u0275mod=o.oAB({type:x1}),x1.\u0275inj=o.cJS({imports:[[Q,g1.uH,a.ez],Q,g1.uH]}),x1})();var i2=m(2654),Qe=m(4850);function O2(x1,j1){if(1&x1){const c1=o.EpF();o.TgZ(0,"share-button",3),o.NdJ("opened",function(Re){return o.CHM(c1),o.oxw(2).opened.emit(Re)})("closed",function(Re){return o.CHM(c1),o.oxw(2).closed.emit(Re)}),o.qZA()}if(2&x1){const c1=j1.$implicit,F1=o.oxw(2);o.Q6J("button",c1)("theme",F1.theme)("url",F1.url)("title",F1.title)("description",F1.description)("image",F1.image)("tags",F1.tags)("autoSetMeta",F1.autoSetMeta)("showIcon",F1.showIcon)("showText",F1.showText)("size",F1.size)("disabled",F1.disabled)}}function x2(x1,j1){if(1&x1){const c1=o.EpF();o.TgZ(0,"expand-button",4),o.NdJ("toggle",function(Re){return o.CHM(c1),o.oxw(2).updateState({expanded:Re})}),o.qZA()}if(2&x1){const c1=o.oxw().$implicit,F1=o.oxw();o.Gre("sb-button sb-",F1.theme,""),o.Q6J("expanded",c1.expanded)("moreIcon",c1.moreIcon)("lessIcon",c1.lessIcon)("size",14*(1+F1.size/20))("moreAriaLabel",c1.moreAriaLabel)("lessAriaLabel",c1.lessAriaLabel)}}function W2(x1,j1){if(1&x1&&(o.TgZ(0,"div"),o.YNc(1,O2,1,12,"share-button",1),o.YNc(2,x2,1,9,"expand-button",2),o.qZA()),2&x1){const c1=j1.$implicit,F1=o.oxw();o.Gre("sb-group sb-",F1.theme,""),o.xp6(1),o.Q6J("ngForOf",c1.selectedButtons),o.xp6(1),o.Q6J("ngIf",c1.shownCount<c1.userButtons.length)}}let je=(()=>{class x1{constructor(c1){this.toggle=new o.vpe,c1.nativeElement.style.setProperty("--button-color","#FF6651")}}return x1.\u0275fac=function(c1){return new(c1||x1)(o.Y36(o.SBq))},x1.\u0275cmp=o.Xpm({type:x1,selectors:[["expand-button"]],inputs:{moreIcon:"moreIcon",lessIcon:"lessIcon",expanded:"expanded",size:"size",moreAriaLabel:"moreAriaLabel",lessAriaLabel:"lessAriaLabel"},outputs:{toggle:"toggle"},decls:4,vars:4,consts:[[1,"sb-wrapper","sb-expand","sb-show-icon",3,"click"],[1,"sb-content"],[1,"sb-icon"],[3,"icon"]],template:function(c1,F1){1&c1&&(o.TgZ(0,"button",0),o.NdJ("click",function(){return F1.toggle.emit(!F1.expanded)}),o.TgZ(1,"div",1)(2,"div",2),o._UZ(3,"fa-icon",3),o.qZA()()()),2&c1&&(o.Udp("font-size",F1.size,"px"),o.uIk("aria-label",F1.expanded?F1.lessAriaLabel:F1.moreAriaLabel),o.xp6(3),o.Q6J("icon",F1.expanded?F1.lessIcon:F1.moreIcon))},directives:[g1.BN],encapsulation:2,changeDetection:0}),x1})(),Pe=(()=>{class x1{constructor(c1){this._share=c1,this._state$=new ie.X({includedButtons:[],excludedButtons:[],userButtons:[],selectedButtons:[],expanded:!0,shownCount:Object.keys(mt).length}
1),this._configSub$=i2.w.EMPTY,this.theme=this._share.config.theme,this.showIcon=!0,this.showText=!1,this.size=0,this.opened=new o.vpe,this.closed=new o.vpe}ngOnInit(){this.state$=this._state$.pipe((0,Qe.U)(c1=>{const F1=c1.includedButtons&&c1.includedButtons.length?c1.includedButtons:c1.userButtons,Re=c1.excludedButtons?F1.filter(E2=>c1.excludedButtons.indexOf(E2)<0):F1,Ze=Re.slice(0,c1.expanded?Re.length:c1.shownCount);return{userButtons:Re,selectedButtons:Ze,expanded:c1.expanded,shownCount:c1.shownCount,moreIcon:c1.moreIcon,lessIcon:c1.lessIcon,moreAriaLabel:c1.moreAriaLabel,lessAriaLabel:c1.lessAriaLabel}})),this._configSub$=this._share.config$.subscribe(c1=>{const Re=(c1.include.length?c1.include:Object.keys(mt)).filter(Ze=>c1.exclude.indexOf(Ze)<0);this.updateState({userButtons:Re,expanded:!1,moreIcon:c1.moreButtonIcon,lessIcon:c1.lessButtonIcon,moreAriaLabel:c1.moreButtonAriaLabel,lessAriaLabel:c1.lessButtonAriaLabel})})}ngOnChanges(c1){(c1.include&&c1.include.currentValue!==c1.include.previousValue||c1.exclude&&c1.exclude.currentValue!==c1.exclude.previousValue||c1.show&&c1.show.currentValue!==c1.show.previousValue)&&this.updateState({includedButtons:this.include,excludedButtons:this.exclude,shownCount:this.show})}ngOnDestroy(){this._configSub$.unsubscribe(),this._state$.complete()}updateState(c1){this._state$.next(Object.assign(Object.assign({},this._state$.value),c1))}}return x1.\u0275fac=function(c1){return new(c1||x1)(o.Y36(We))},x1.\u0275cmp=o.Xpm({type:x1,selectors:[["share-buttons"]],inputs:{theme:"theme",include:"include",exclude:"exclude",show:"show",url:"url",title:"title",description:"description",image:"image",tags:"tags",autoSetMeta:"autoSetMeta",showIcon:"showIcon",showText:"showText",size:"size",disabled:"disabled"},outputs:{opened:"opened",closed:"closed"},features:[o.TTD],decls:2,vars:3,consts:[[3,"class",4,"ngIf"],[3,"button","theme","url","title","description","image","tags","autoSetMeta","showIcon","showText","size","disabled","opened","closed",4,"ngFor","ngForOf"],[3,"class","expanded","moreIcon","lessIcon","size","moreAriaLabel","lessAriaLabel","toggle",4,"ngIf"],[3,"button","theme","url","title","description","image","tags","autoSetMeta","showIcon","showText","size","disabled","opened","closed"],[3,"expanded","moreIcon","lessIcon","size","moreAriaLabel","lessAriaLabel","toggle"]],template:function(c1,F1){1&c1&&(o.YNc(0,W2,3,5,"div",0),o.ALo(1,"async")),2&c1&&o.Q6J("ngIf",o.lcZ(1,1,F1.state$))},directives:[ze,je,a.O5,a.sg],pipes:[a.Ov],styles:["[_nghost-%COMP%]{display:inherit;--sb-margin: .3125em}"],changeDetection:0}),x1})(),Ye=(()=>{class x1{static withConfig(c1){return{ngModule:x1,providers:[{provide:B1,useValue:c1}]}}}return x1.\u0275fac=function(c1){return new(c1||x1)},x1.\u0275mod=o.oAB({type:x1}),x1.\u0275inj=o.cJS({imports:[[z2,a.ez],z2]}),x1})()},877:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>de});var o=m(1086),a=m(567),I=m(7221),r1=m(4850),X=function(D1){return function U(R1){return!!R1&&"object"==typeof R1}(D1)&&!function N(R1){var D1=Object.prototype.toString.call(R1);return"[object RegExp]"===D1||"[object Date]"===D1||function W(R1){return R1.$$typeof===j}(R1)}(D1)},j="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function l1(R1,D1){return!1!==D1.clone&&D1.isMergeableObject(R1)?y1(function J(R1){return Array.isArray(R1)?[]:{}}(R1),R1,D1):R1}function s1(R1,D1,K1){return R1.concat(D1).map(function(X1){return l1(X1,K1)})}function y1(R1,D1,K1){(K1=K1||{}).arrayMerge=K1.arrayMerge||s1,K1.isMergeableObject=K1.isMergeableObject||X;var X1=Array.isArray(D1);return X1===Array.isArray(R1)?X1?K1.arrayMerge(R1,D1,K1):function n1(R1,D1,K1){var X1={};
1return K1.isMergeableObject(R1)&&Object.keys(R1).forEach(function(Se){X1[Se]=l1(R1[Se],K1)}),Object.keys(D1).forEach(function(Se){X1[Se]=K1.isMergeableObject(D1[Se])&&R1[Se]?y1(R1[Se],D1[Se],K1):l1(D1[Se],K1)}),X1}(R1,D1,K1):l1(D1,K1)}y1.all=function(D1,K1){if(!Array.isArray(D1))throw new Error("first argument should be an array");return D1.reduce(function(X1,Se){return y1(X1,Se,K1)},{})};const u1=y1;class de{constructor(D1,K1){this.http=D1,this.resources=K1}getTranslation(D1){const K1=this.resources.map(X1=>{const Se=X1.prefix+D1+X1.suffix;return this.http.get(Se).pipe((0,I.K)(Me=>(console.error("Could not find translation file:",Se),(0,o.of)({}))))});return(0,a.D)(K1).pipe((0,r1.U)(X1=>u1.all(X1)))}}},591:(xe,S1,m)=>{"use strict";m.d(S1,{X:()=>I});var o=m(8929),a=m(5279);class I extends o.xQ{constructor(X){super(),this._value=X}get value(){return this.getValue()}_subscribe(X){const U=super._subscribe(X);return U&&!U.closed&&X.next(this._value),U}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new a.N;return this._value}next(X){super.next(this._value=X)}}},9312:(xe,S1,m)=>{"use strict";m.d(S1,{P:()=>X});var o=m(8896),a=m(1086),I=m(1737);class X{constructor(N,F,j){this.kind=N,this.value=F,this.error=j,this.hasValue="N"===N}observe(N){switch(this.kind){case"N":return N.next&&N.next(this.value);case"E":return N.error&&N.error(this.error);case"C":return N.complete&&N.complete()}}do(N,F,j){switch(this.kind){case"N":return N&&N(this.value);case"E":return F&&F(this.error);case"C":return j&&j()}}accept(N,F,j){return N&&"function"==typeof N.next?this.observe(N):this.do(N,F,j)}toObservable(){switch(this.kind){case"N":return(0,a.of)(this.value);case"E":return(0,I._)(this.error);case"C":return(0,o.c)()}throw new Error("unexpected notification kind value")}static createNext(N){return void 0!==N?new X("N",N):X.undefinedValueNotification}static createError(N){return new X("E",void 0,N)}static createComplete(){return X.completeNotification}}X.completeNotification=new X("C"),X.undefinedValueNotification=new X("N",void 0)},2916:(xe,S1,m)=>{"use strict";m.d(S1,{y:()=>J});var o=m(3489),I=m(7668),r1=m(3292),U=m(3821),N=m(5379);var W=m(2830);let J=(()=>{class s1{constructor(y1){this._isScalar=!1,y1&&(this._subscribe=y1)}lift(y1){const M1=new s1;return M1.source=this,M1.operator=y1,M1}subscribe(y1,M1,u1){const{operator:de}=this,R1=function X(s1,n1,y1){if(s1){if(s1 instanceof o.L)return s1;if(s1[I.b])return s1[I.b]()}return s1||n1||y1?new o.L(s1,n1,y1):new o.L(r1.c)}(y1,M1,u1);if(R1.add(de?de.call(R1,this.source):this.source||W.v.useDeprecatedSynchronousErrorHandling&&!R1.syncErrorThrowable?this._subscribe(R1):this._trySubscribe(R1)),W.v.useDeprecatedSynchronousErrorHandling&&R1.syncErrorThrowable&&(R1.syncErrorThrowable=!1,R1.syncErrorThrown))throw R1.syncErrorValue;return R1}_trySubscribe(y1){try{return this._subscribe(y1)}catch(M1){W.v.useDeprecatedSynchronousErrorHandling&&(y1.syncErrorThrown=!0,y1.syncErrorValue=M1),function a(s1){for(;s1;){const{closed:n1,destination:y1,isStopped:M1}=s1;if(n1||M1)return!1;s1=y1&&y1 instanceof o.L?y1:null}return!0}(y1)?y1.error(M1):console.warn(M1)}}forEach(y1,M1){return new(M1=l1(M1))((u1,de)=>{let R1;R1=this.subscribe(D1=>{try{y1(D1)}catch(K1){de(K1),R1&&R1.unsubscribe()}},de,u1)})}_subscribe(y1){const{source:M1}=this;return M1&&M1.subscribe(y1)}[U.L](){return this}pipe(...y1){return 0===y1.length?this:function j(s1){return 0===s1.length?N.y:1===s1.length?s1[0]:function(y1){return s1.reduce((M1,u1)=>u1(M1),y1)}}(y1)(this)}toPromise(y1){return new(y1=l1(y1))((M1,u1)=>{let de;this.subscribe(R1=>de=R1,R1=>u1(R1),()=>M1(de))})}}return s1.create=n1=>new s1(n1),s1})();function l1(s1){if(s1||(s1=W.v.Promise||Promise),!s1)throw new Error("no Promise impl found");return s1}},3292:(xe,S1,m)=>{"use strict";m.d(S1,{c:()=>I});var o=m(2830),a=m(2782);const I={closed:!0,next(r1){},error(r1){if(o.v.useDeprecatedSynchronousErrorHandling)throw r1;(0,a.z)(r1)},complete(){}}},6831:(xe,S1,m)=>{"use strict";m.d(S1,{t:()=>u1});var o=m(8929),a=m(6686),r1=m(2268);const N=new class X extends r1.v{}(class I extends a.o{constructor(D1,K1){super(D1,K1),this.scheduler
1=D1,this.work=K1}schedule(D1,K1=0){return K1>0?super.schedule(D1,K1):(this.delay=K1,this.state=D1,this.scheduler.flush(this),this)}execute(D1,K1){return K1>0||this.closed?super.execute(D1,K1):this._execute(D1,K1)}requestAsyncId(D1,K1,X1=0){return null!==X1&&X1>0||null===X1&&this.delay>0?super.requestAsyncId(D1,K1,X1):D1.flush(this)}});var F=m(2654),j=m(3489),W=m(9312);class s1 extends j.L{constructor(D1,K1,X1=0){super(D1),this.scheduler=K1,this.delay=X1}static dispatch(D1){const{notification:K1,destination:X1}=D1;K1.observe(X1),this.unsubscribe()}scheduleMessage(D1){this.destination.add(this.scheduler.schedule(s1.dispatch,this.delay,new n1(D1,this.destination)))}_next(D1){this.scheduleMessage(W.P.createNext(D1))}_error(D1){this.scheduleMessage(W.P.createError(D1)),this.unsubscribe()}_complete(){this.scheduleMessage(W.P.createComplete()),this.unsubscribe()}}class n1{constructor(D1,K1){this.notification=D1,this.destination=K1}}var y1=m(5279),M1=m(5283);class u1 extends o.xQ{constructor(D1=Number.POSITIVE_INFINITY,K1=Number.POSITIVE_INFINITY,X1){super(),this.scheduler=X1,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=D1<1?1:D1,this._windowTime=K1<1?1:K1,K1===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(D1){if(!this.isStopped){const K1=this._events;K1.push(D1),K1.length>this._bufferSize&&K1.shift()}super.next(D1)}nextTimeWindow(D1){this.isStopped||(this._events.push(new de(this._getNow(),D1)),this._trimBufferThenGetEvents()),super.next(D1)}_subscribe(D1){const K1=this._infiniteTimeWindow,X1=K1?this._events:this._trimBufferThenGetEvents(),Se=this.scheduler,Me=X1.length;let ae;if(this.closed)throw new y1.N;if(this.isStopped||this.hasError?ae=F.w.EMPTY:(this.observers.push(D1),ae=new M1.W(this,D1)),Se&&D1.add(D1=new s1(D1,Se)),K1)for(let Ee=0;Ee<Me&&!D1.closed;Ee++)D1.next(X1[Ee]);else for(let Ee=0;Ee<Me&&!D1.closed;Ee++)D1.next(X1[Ee].value);return this.hasError?D1.error(this.thrownError):this.isStopped&&D1.complete(),ae}_getNow(){return(this.scheduler||N).now()}_trimBufferThenGetEvents(){const D1=this._getNow(),K1=this._bufferSize,X1=this._windowTime,Se=this._events,Me=Se.length;let ae=0;for(;ae<Me&&!(D1-Se[ae].time<X1);)ae++;return Me>K1&&(ae=Math.max(ae,Me-K1)),ae>0&&Se.splice(0,ae),Se}}class de{constructor(D1,K1){this.time=D1,this.value=K1}}},8929:(xe,S1,m)=>{"use strict";m.d(S1,{Yc:()=>N,xQ:()=>F});var o=m(2916),a=m(3489),I=m(2654),r1=m(5279),X=m(5283),U=m(7668);class N extends a.L{constructor(J){super(J),this.destination=J}}let F=(()=>{class W extends o.y{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[U.b](){return new N(this)}lift(l1){const s1=new j(this,this);return s1.operator=l1,s1}next(l1){if(this.closed)throw new r1.N;if(!this.isStopped){const{observers:s1}=this,n1=s1.length,y1=s1.slice();for(let M1=0;M1<n1;M1++)y1[M1].next(l1)}}error(l1){if(this.closed)throw new r1.N;this.hasError=!0,this.thrownError=l1,this.isStopped=!0;const{observers:s1}=this,n1=s1.length,y1=s1.slice();for(let M1=0;M1<n1;M1++)y1[M1].error(l1);this.observers.length=0}complete(){if(this.closed)throw new r1.N;this.isStopped=!0;const{observers:l1}=this,s1=l1.length,n1=l1.slice();for(let y1=0;y1<s1;y1++)n1[y1].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(l1){if(this.closed)throw new r1.N;return super._trySubscribe(l1)}_subscribe(l1){if(this.closed)throw new r1.N;return this.hasError?(l1.error(this.thrownError),I.w.EMPTY):this.isStopped?(l1.complete(),I.w.EMPTY):(this.observers.push(l1),new X.W(this,l1))}asObservable(){const l1=new o.y;return l1.source=this,l1}}return W.create=(J,l1)=>new j(J,l1),W})();class j extends F{constructor(J,l1){super(),this.destination=J,this.source=l1}next(J){const{destination:l1}=this;l1&&l1.next&&l1.next(J)}error(J){const{destination:l1}=this;l1&&l1.error&&this.destination.error(J)}complete(){const{destination:J}=this;J&&J.complete&&this.destination.complete()}_subscribe(J){const{source:l1}=this;return l1?this.source.subscribe(J):I.w.EMPTY}}},5283:(xe,S1,m)=>{"use strict";m.d(S1,{W:()=>a});var o=m(2654);class a extends o.w{constructor(r1,X){super(),this.subject=r1,this.subscriber=X,this.closed=!1}
1unsubscribe(){if(this.closed)return;this.closed=!0;const r1=this.subject,X=r1.observers;if(this.subject=null,!X||0===X.length||r1.isStopped||r1.closed)return;const U=X.indexOf(this.subscriber);-1!==U&&X.splice(U,1)}}},3489:(xe,S1,m)=>{"use strict";m.d(S1,{L:()=>N});var o=m(7043),a=m(3292),I=m(2654),r1=m(7668),X=m(2830),U=m(2782);class N extends I.w{constructor(W,J,l1){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=a.c;break;case 1:if(!W){this.destination=a.c;break}if("object"==typeof W){W instanceof N?(this.syncErrorThrowable=W.syncErrorThrowable,this.destination=W,W.add(this)):(this.syncErrorThrowable=!0,this.destination=new F(this,W));break}default:this.syncErrorThrowable=!0,this.destination=new F(this,W,J,l1)}}[r1.b](){return this}static create(W,J,l1){const s1=new N(W,J,l1);return s1.syncErrorThrowable=!1,s1}next(W){this.isStopped||this._next(W)}error(W){this.isStopped||(this.isStopped=!0,this._error(W))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(W){this.destination.next(W)}_error(W){this.destination.error(W),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:W}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=W,this}}class F extends N{constructor(W,J,l1,s1){super(),this._parentSubscriber=W;let n1,y1=this;(0,o.m)(J)?n1=J:J&&(n1=J.next,l1=J.error,s1=J.complete,J!==a.c&&(y1=Object.create(J),(0,o.m)(y1.unsubscribe)&&this.add(y1.unsubscribe.bind(y1)),y1.unsubscribe=this.unsubscribe.bind(this))),this._context=y1,this._next=n1,this._error=l1,this._complete=s1}next(W){if(!this.isStopped&&this._next){const{_parentSubscriber:J}=this;X.v.useDeprecatedSynchronousErrorHandling&&J.syncErrorThrowable?this.__tryOrSetError(J,this._next,W)&&this.unsubscribe():this.__tryOrUnsub(this._next,W)}}error(W){if(!this.isStopped){const{_parentSubscriber:J}=this,{useDeprecatedSynchronousErrorHandling:l1}=X.v;if(this._error)l1&&J.syncErrorThrowable?(this.__tryOrSetError(J,this._error,W),this.unsubscribe()):(this.__tryOrUnsub(this._error,W),this.unsubscribe());else if(J.syncErrorThrowable)l1?(J.syncErrorValue=W,J.syncErrorThrown=!0):(0,U.z)(W),this.unsubscribe();else{if(this.unsubscribe(),l1)throw W;(0,U.z)(W)}}}complete(){if(!this.isStopped){const{_parentSubscriber:W}=this;if(this._complete){const J=()=>this._complete.call(this._context);X.v.useDeprecatedSynchronousErrorHandling&&W.syncErrorThrowable?(this.__tryOrSetError(W,J),this.unsubscribe()):(this.__tryOrUnsub(J),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(W,J){try{W.call(this._context,J)}catch(l1){if(this.unsubscribe(),X.v.useDeprecatedSynchronousErrorHandling)throw l1;(0,U.z)(l1)}}__tryOrSetError(W,J,l1){if(!X.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{J.call(this._context,l1)}catch(s1){return X.v.useDeprecatedSynchronousErrorHandling?(W.syncErrorValue=s1,W.syncErrorThrown=!0,!0):((0,U.z)(s1),!0)}return!1}_unsubscribe(){const{_parentSubscriber:W}=this;this._context=null,this._parentSubscriber=null,W.unsubscribe()}}},2654:(xe,S1,m)=>{"use strict";m.d(S1,{w:()=>U});var o=m(6688),a=m(7830),I=m(7043);const X=(()=>{function F(j){return Error.call(this),this.message=j?`${j.length} errors occurred during unsubscription:\n${j.map((W,J)=>`${J+1}) ${W.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=j,this}return F.prototype=Object.create(Error.prototype),F})();class U{constructor(j){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,j&&(this._ctorUnsubscribe=!0,this._unsubscribe=j)}unsubscribe(){let j;if(this.closed)return;let{_parentOrParents:W,_ctorUnsubscribe:J,_unsubscribe:l1,_subscriptions:s1}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,W instanceof U)W.remove(this);else if(null!==W)for(let n1=0;n1<W.length;++n1)W[n1].remove(this);if((0,I.m)(l1)){J&&(this._unsubscribe=void 0);try{l1.call(this)}catch(n1){j=n1 instanceof X?N(n1.errors):[n1]}}if((0,o.k)(s1)){let n1=-1,y1=s1.length;for(;++n1<y1;){const M1=s1[n1];if((0,a.K)(M1))try{M1.unsubscribe()}catch(u1){j=j||[],u1 instanceof X?j=j.concat(N(u1.errors)):j.push(u1)}}}if(j)throw new X(j)}add(j){let W=j;if(!j)return U.EMPTY;switch(typeof j){case"function":W=new U(j);case"object":if(W===this||W.closed||"function"!=typeof W.unsubscribe)return W;if(this.closed)return W.unsubscribe(),W;if(!(W instanceof U)){const s1=W;W=new U,W._subscriptions=[s1]}break;default:throw new Error("unrecognized teardown "+j+" added to Subscription.")}let{_parentOrParents:J}=W;if(null===J)W._parentOrParents=this;
1else if(J instanceof U){if(J===this)return W;W._parentOrParents=[J,this]}else{if(-1!==J.indexOf(this))return W;J.push(this)}const l1=this._subscriptions;return null===l1?this._subscriptions=[W]:l1.push(W),W}remove(j){const W=this._subscriptions;if(W){const J=W.indexOf(j);-1!==J&&W.splice(J,1)}}}var F;function N(F){return F.reduce((j,W)=>j.concat(W instanceof X?W.errors:W),[])}U.EMPTY=((F=new U).closed=!0,F)},2830:(xe,S1,m)=>{"use strict";m.d(S1,{v:()=>a});let o=!1;const a={Promise:void 0,set useDeprecatedSynchronousErrorHandling(I){if(I){const r1=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+r1.stack)}else o&&console.log("RxJS: Back to a better error behavior. Thank you. <3");o=I},get useDeprecatedSynchronousErrorHandling(){return o}}},1177:(xe,S1,m)=>{"use strict";m.d(S1,{Ds:()=>U,IY:()=>r1,ft:()=>F});var o=m(3489),a=m(2916),I=m(9249);class r1 extends o.L{constructor(W){super(),this.parent=W}_next(W){this.parent.notifyNext(W)}_error(W){this.parent.notifyError(W),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class U extends o.L{notifyNext(W){this.destination.next(W)}notifyError(W){this.destination.error(W)}notifyComplete(){this.destination.complete()}}function F(j,W){if(W.closed)return;if(j instanceof a.y)return j.subscribe(W);let J;try{J=(0,I.s)(j)(W)}catch(l1){W.error(l1)}return J}},1762:(xe,S1,m)=>{"use strict";m.d(S1,{N:()=>U,c:()=>X});var o=m(8929),a=m(2916),I=m(2654),r1=m(4327);class X extends a.y{constructor(J,l1){super(),this.source=J,this.subjectFactory=l1,this._refCount=0,this._isComplete=!1}_subscribe(J){return this.getSubject().subscribe(J)}getSubject(){const J=this._subject;return(!J||J.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let J=this._connection;return J||(this._isComplete=!1,J=this._connection=new I.w,J.add(this.source.subscribe(new N(this.getSubject(),this))),J.closed&&(this._connection=null,J=I.w.EMPTY)),J}refCount(){return(0,r1.x)()(this)}}const U=(()=>{const W=X.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:W._subscribe},_isComplete:{value:W._isComplete,writable:!0},getSubject:{value:W.getSubject},connect:{value:W.connect},refCount:{value:W.refCount}}})();class N extends o.Yc{constructor(J,l1){super(J),this.connectable=l1}_error(J){this._unsubscribe(),super._error(J)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const J=this.connectable;if(J){this.connectable=null;const l1=J._connection;J._refCount=0,J._subject=null,J._connection=null,l1&&l1.unsubscribe()}}}},3426:(xe,S1,m)=>{"use strict";m.d(S1,{aj:()=>J});var o=m(2866),a=m(6688),I=m(3489);class r1 extends I.L{notifyNext(y1,M1,u1,de,R1){this.destination.next(M1)}notifyError(y1,M1){this.destination.error(y1)}notifyComplete(y1){this.destination.complete()}}class X extends I.L{constructor(y1,M1,u1){super(),this.parent=y1,this.outerValue=M1,this.outerIndex=u1,this.index=0}_next(y1){this.parent.notifyNext(this.outerValue,y1,this.outerIndex,this.index++,this)}_error(y1){this.parent.notifyError(y1,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}var U=m(9249),N=m(2916);function F(n1,y1,M1,u1,de=new X(n1,M1,u1)){if(!de.closed)return y1 instanceof N.y?y1.subscribe(de):(0,U.s)(y1)(de)}var j=m(3009);const W={};function J(...n1){let y1,M1;return(0,o.K)(n1[n1.length-1])&&(M1=n1.pop()),"function"==typeof n1[n1.length-1]&&(y1=n1.pop()),1===n1.length&&(0,a.k)(n1[0])&&(n1=n1[0]),(0,j.n)(n1,M1).lift(new l1(y1))}class l1{constructor(y1){this.resultSelector=y1}call(y1,M1){return M1.subscribe(new s1(y1,this.resultSelector))}}class s1 extends r1{constructor(y1,M1){super(y1),this.resultSelector=M1,this.active=0,this.values=[],this.observables=[]}_next(y1){this.values.push(W),this.observables.push(y1)}_complete(){const y1=this.observables,M1=y1.length;if(0===M1)this.destination.complete();else{this.active=M1,this.toRespond=M1;for(let u1=0;u1<M1;u1++)this.add(F(this,y1[u1],void 0,u1))}}notifyComplete(y1){0==(this.active-=1)&&this.destination.complete()}notifyNext(y1,M1,u1){const de=this.values,D1=this.toRespond?de[u1]===W?--this.toRespond:this.toRespond:0;de[u1]=M1,0===D1&&(this.resultSelector?this._tryResultSelector(de):this.destination.next(de.slice()))}_tryResultSelector(y1){let M1;try{M1=this.resultSelector.apply(this,y1)}catch(u1){return void this.destination.error(u1)}this.destination.next(M1)}}},1221:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>r1});var o=m(1086),a=m(9146);function r1(...X){return function I(){return(0,a.J)(1)}()((0,o.of)(...X))}},8514:(xe,S1,m)=>{"use strict";m.d(S1,{P:()=>r1});var o=m(2916),a=m(5254),I=m(8896);function r1(X){return new o.y(U=>{let N;try{N=X()}catch(j){return void U.error(j)}return(N?(0,a.D)(N):(0,I.c)()).subscribe(U)})}},8896:(xe,S1,m)=>{"use strict";m.d(S1,{E:()=>a,c:()=>I});var o=m(2916);const a=new o.y(X=>X.complete());function I(X){return X?function r1(X){return new o.y(U=>X.schedule(()=>U.complete()))}(X):a}},567:(xe,S1,m)=>{"use strict";m.d(S1,{D:()=>U});var o=m(2916),a=m(6688),I=m(4850),r1=m(7830),X=m(5254);function U(...F){if(1===F.length){const j=F[0];if((0,a.k)(j))return N(j,null);if((0,r1.K)(j)&&Object.getPrototypeOf(j)===Object.prototype){const W=Object.keys(j);return N(W.map(J=>j[J]),W)}}if("function"==typeof F[F.length-1]){const j=F.pop();return N(F=1===F.length&&(0,a.k)(F[0])?F[0]:F,null).pipe((0,I.U)(W=>j(...W)))}return N(F,null)}function N(F,j){return new o.y(W=>{const J=F.length;if(0===J)return void W.complete();const l1=new Array(J);let s1=0,n1=0;for(let y1=0;y1<J;y1++){const M1=(0,X.D)(F[y1]);let u1=!1;W.add(M1.subscribe({next:de=>{u1||(u1=!0,n1++),l1[y1]=de},error:de=>W.error(de),complete:()=>{s1++,(s1===J||!u1)&&(n1===J&&W.next(j?j.reduce((de,R1,D1)=>(de[R1]=l1[D1],de),{}):l1),W.complete())}}))}})}},5254:(xe,S1,m)=>{"use strict";m.d(S1,{D:()=>y1});var o=m(2916),a=m(9249),I=m(2654),r1=m(3821),N=m(6454),F=m(5430),J=m(8955),l1=m(8515);function y1(M1,u1){return u1?function n1(M1,u1){if(null!=M1){if(function W(M1){return M1&&"function"==typeof M1[r1.L]}(M1))return function X(M1,u1){return new o.y(de=>{const R1=new I.w;return R1.add(u1.schedule(()=>{const D1=M1[r1.L]();R1.add(D1.subscribe({next(K1){R1.add(u1.schedule(()=>de.next(K1)))},error(K1){R1.add(u1.schedule(()=>de.error(K1)))},complete(){R1.add(u1.schedule(()=>de.complete()))}}))})),R1})}(M1,u1);if((0,J.t)(M1))return function U(M1,u1){return new o.y(de=>{const R1=new I.w;return R1.add(u1.schedule(()=>M1.then(D1=>{R1.add(u1.schedule(()=>{de.next(D1),R1.add(u1.schedule(()=>de.complete()))}))},D1=>{R1.add(u1.schedule(()=>de.error(D1)))}))),R1})}(M1,u1);if((0,l1.z)(M1))return(0,N.r)(M1,u1);if(function s1(M1){return M1&&"function"==typeof M1[F.hZ]}(M1)||"string"==typeof M1)return function j(M1,u1){if(!M1)throw new Error("Iterable cannot be null");return new o.y(de=>{const R1=new I.w;let D1;return R1.add(()=>{D1&&"function"==typeof D1.return&&D1.return()}),R1.add(u1.schedule(()=>{D1=M1[F.hZ](),R1.add(u1.schedule(function(){if(de.closed)return;let K1,X1;try{const Se=D1.next();K1=Se.value,X1=Se.done}catch(Se){return void de.error(Se)}X1?de.complete():(de.next(K1),this.schedule())}))})),R1})}(M1,u1)}throw new TypeError((null!==M1&&typeof M1||M1)+" is not observable")}(M1,u1):M1 instanceof o.y?M1:new o.y((0,a.s)(M1))}},3009:(xe,S1,m)=>{"use strict";m.d(S1,{n:()=>r1});var o=m(2916),a=m(3650),I=m(6454);function r1(X,U){return U?(0,I.r)(X,U):new o.y((0,a.V)(X))}},6787:(xe,S1,m)=>{"use strict";m.d(S1,{T:()=>X});var o=m(2916),a=m(2866),I=m(9146),r1=m(3009);function X(...U){let N=Number.POSITIVE_INFINITY,F=null,j=U[U.length-1];return(0,a.K)(j)?(F=U.pop(),U.length>1&&"number"==typeof U[U.length-1]&&(N=U.pop())):"number"==typeof j&&(N=U.pop()),null===F&&1===U.length&&U[0]instanceof o.y?U[0]:(0,I.J)(N)((0,r1.n)(U,F))}},1086:(xe,S1,m)=>{"use strict";m.d(S1,{of:()=>r1});var o=m(2866),a=m(3009),I=m(6454);function r1(...X){let U=X[X.length-1];return(0,o.K)(U)?(X.pop(),(0,I.r)(X,U)):(0,a.n)(X)}},1737:(xe,S1,m)=>{"use strict";m.d(S1,{_:()=>a});var o=m(2916);function a(r1,X){return new o.y(X?U=>X.schedule(I,0,{error:r1,subscriber:U}):U=>U.error(r1))}function I({error:r1,subscriber:X}){X.error(r1)}},7221:(xe,S1,m)=>{"use strict";m.d(S1,{K:()=>a});var o=m(1177);function a(X){return function(N){const F=new I(X),j=N.lift(F);return F.caught=j}}class I{constructor(U){this.selector=U}call(U,N){return N.subscribe(new r1(U,this.selector,this.caught))}}class r1 extends o.Ds{constructor(U,N,F){super(U),this.selector=N,this.caught=F}error(U){if(!this.isStopped){let N;try{N=this.selector(U,this.caught)}catch(W){return void super.error(W)}this._unsubscribeAndRecycle();const F=new o.IY(this);this.add(F);const j=(0,o.ft)(N,F);j!==F&&this.add(j)}}}},1406:(xe,S1,m)=>{"use strict";m.d(S1,{b:()=>a});var o=m(1709);function a(I,r1){return(0,o.zg)(I,r1,1)}},7314:(xe,S1,m)=>{"use strict";m.d(S1,{d:()=>a});var o=m(3489);function a(X=null){return U=>U.lift(new I(X))}class I{constructor(U){this.defaultValue=U}call(U,N){return N.subscribe(new r1(U,this.defaultValue))}}class r1 extends o.L{constructor(U,N){super(U),this.defaultValue=N,this.isEmpty=!0}_next(U){this.isEmpty=!1,this.destination.next(U)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}},5778:(xe,S1,m)=>{"use strict";m.d(S1,{x:()=>a});var o=m(3489);function a(X,U){return N=>N.lift(new I(X,U))}class I{constructor(U,N){this.compare=U,this.keySelector=N}call(U,N){return N.subscribe(new r1(U,this.compare,this.keySelector))}}class r1 extends o.L{constructor(U,N,F){super(U),this.keySelector=F,this.hasKey=!1,"function"==typeof N&&(this.compare=N)}compare(U,N){return U===N}_next(U){let N;try{const{keySelector:j}=this;N=j?j(U):U}catch(j){return this.destination.error(j)}let F=!1;if(this.hasKey)try{const{compare:j}=this;F=j(this.key,N)}catch(j){return this.destination.error(j)}else this.hasKey=!0;F||(this.key=N,this.destination.next(U))}}},2198:(xe,S1,m)=>{"use strict";m.d(S1,{h:()=>a});var o=m(3489);function a(X,U){return function(F){return F.lift(new I(X,U))}}class I{constructor(U,N){this.predicate=U,this.thisArg=N}call(U,N){return N.subscribe(new r1(U,this.predicate,this.thisArg))}}class r1 extends o.L{constructor(U,N,F){super(U),this.predicate=N,this.thisArg=F,this.count=0}_next(U){let N;try{N=this.predicate.call(this.thisArg,U,this.count++)}catch(F){return void this.destination.error(F)}N&&this.destination.next(U)}}},7224:(xe,S1,m)=>{"use strict";m.d(S1,{P:()=>N});var o=m(4450),a=m(2198),I=m(2986),r1=m(7314),X=m(4907),U=m(5379);function N(F,j){const W=arguments.length>=2;return J=>J.pipe(F?(0,a.h)((l1,s1)=>F(l1,s1,J)):U.y,(0,I.q)(1),W?(0,r1.d)(j):(0,X.T)(()=>new o.K))}},4850:(xe,S1,m)=>{"use strict";m.d(S1,{U:()=>a});var o=m(3489);function a(X,U){return function(F){if("function"!=typeof X)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return F.lift(new I(X,U))}}class I{constructor(U,N){this.project=U,this.thisArg=N}call(U,N){return N.subscribe(new r1(U,this.project,this.thisArg))}}class r1 extends o.L{constructor(U,N,F){super(U),this.project=N,this.count=0,this.thisArg=F||this}_next(U){let N;try{N=this.project.call(this.thisArg,U,this.count++)}catch(F){return void this.destination.error(F)}this.destination.next(N)}}},9146:(xe,S1,m)=>{"use strict";m.d(S1,{J:()=>I});var o=m(1709),a=m(5379);function I(r1=Number.POSITIVE_INFINITY){return(0,o.zg)(a.y,r1)}},1709:(xe,S1,m)=>{"use strict";m.d(S1,{zg:()=>r1});var o=m(4850),a=m(5254),I=m(1177);function r1(F,j,W=Number.POSITIVE_INFINITY){return"function"==typeof j?J=>J.pipe(r1((l1,s1)=>(0,a.D)(F(l1,s1)).pipe((0,o.U)((n1,y1)=>j(l1,n1,s1,y1))),W)):("number"==typeof j&&(W=j),J=>J.lift(new X(F,W)))}class X{constructor(j,W=Number.POSITIVE_INFINITY){this.project=j,this.concurrent=W}call(j,W){return W.subscribe(new U(j,this.project,this.concurrent))}}class U extends I.Ds{constructor(j,W,J=Number.POSITIVE_INFINITY){super(j),this.project=W,this.concurrent=J,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(j){this.active<this.concurrent?this._tryNext(j):this.buffer.push(j)}_tryNext(j){let W;const J=this.index++;try{W=this.project(j,J)}catch(l1){return void this.destination.error(l1)}this.active++,this._innerSub(W)}_innerSub(j){const W=new I.IY(this),J=this.destination;J.add(W);const l1=(0,I.ft)(j,W);l1!==W&&J.add(l1)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(j){this.destination.next(j)}notifyComplete(){const j=this.buffer;this.active--,j.length>0?this._next(j.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},4327:(xe,S1,m)=>{"use strict";m.d(S1,{x:()=>a});var o=m(3489);function a(){return function(U){return U.lift(new I(U))}}class I{constructor(U){this.connectable=U}call(U,N){const{connectable:F}=this;F._refCount++;const j=new r1(U,F),W=N.subscribe(j);return j.closed||(j.connection=F.connect()),W}}class r1 extends o.L{constructor(U,N){super(U),this.connectable=N}_unsubscribe(){const{connectable:U}=this;if(!U)return void(this.connection=null);this.connectable=null;const N=U._refCount;if(N<=0)return void(this.connection=null);if(U._refCount=N-1,N>1)return void(this.connection=null);const{connection:F}=this,j=U._connection;this.connection=null,j&&(!F||j===F)&&j.unsubscribe()}}}
1,5154:(xe,S1,m)=>{"use strict";m.d(S1,{d:()=>a});var o=m(6831);function a(r1,X,U){let N;return N=r1&&"object"==typeof r1?r1:{bufferSize:r1,windowTime:X,refCount:!1,scheduler:U},F=>F.lift(function I({bufferSize:r1=Number.POSITIVE_INFINITY,windowTime:X=Number.POSITIVE_INFINITY,refCount:U,scheduler:N}){let F,W,j=0,J=!1,l1=!1;return function(n1){let y1;j++,!F||J?(J=!1,F=new o.t(r1,X,N),y1=F.subscribe(this),W=n1.subscribe({next(M1){F.next(M1)},error(M1){J=!0,F.error(M1)},complete(){l1=!0,W=void 0,F.complete()}}),l1&&(W=void 0)):y1=F.subscribe(this),this.add(()=>{j--,y1.unsubscribe(),y1=void 0,W&&!l1&&U&&0===j&&(W.unsubscribe(),W=void 0,F=void 0)})}}(N))}},1059:(xe,S1,m)=>{"use strict";m.d(S1,{O:()=>I});var o=m(1221),a=m(2866);function I(...r1){const X=r1[r1.length-1];return(0,a.K)(X)?(r1.pop(),U=>(0,o.z)(r1,U,X)):U=>(0,o.z)(r1,U)}},7545:(xe,S1,m)=>{"use strict";m.d(S1,{w:()=>r1});var o=m(4850),a=m(5254),I=m(1177);function r1(N,F){return"function"==typeof F?j=>j.pipe(r1((W,J)=>(0,a.D)(N(W,J)).pipe((0,o.U)((l1,s1)=>F(W,l1,J,s1))))):j=>j.lift(new X(N))}class X{constructor(F){this.project=F}call(F,j){return j.subscribe(new U(F,this.project))}}class U extends I.Ds{constructor(F,j){super(F),this.project=j,this.index=0}_next(F){let j;const W=this.index++;try{j=this.project(F,W)}catch(J){return void this.destination.error(J)}this._innerSub(j)}_innerSub(F){const j=this.innerSubscription;j&&j.unsubscribe();const W=new I.IY(this),J=this.destination;J.add(W),this.innerSubscription=(0,I.ft)(F,W),this.innerSubscription!==W&&J.add(this.innerSubscription)}_complete(){const{innerSubscription:F}=this;(!F||F.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(F){this.destination.next(F)}}},2986:(xe,S1,m)=>{"use strict";m.d(S1,{q:()=>r1});var o=m(3489),a=m(4231),I=m(8896);function r1(N){return F=>0===N?(0,I.c)():F.lift(new X(N))}class X{constructor(F){if(this.total=F,this.total<0)throw new a.W}call(F,j){return j.subscribe(new U(F,this.total))}}class U extends o.L{constructor(F,j){super(F),this.total=j,this.count=0}_next(F){const j=this.total,W=++this.count;W<=j&&(this.destination.next(F),W===j&&(this.destination.complete(),this.unsubscribe()))}}},2994:(xe,S1,m)=>{"use strict";m.d(S1,{b:()=>r1});var o=m(3489),a=m(7876),I=m(7043);function r1(N,F,j){return function(J){return J.lift(new X(N,F,j))}}class X{constructor(F,j,W){this.nextOrObserver=F,this.error=j,this.complete=W}call(F,j){return j.subscribe(new U(F,this.nextOrObserver,this.error,this.complete))}}class U extends o.L{constructor(F,j,W,J){super(F),this._tapNext=a.Z,this._tapError=a.Z,this._tapComplete=a.Z,this._tapError=W||a.Z,this._tapComplete=J||a.Z,(0,I.m)(j)?(this._context=this,this._tapNext=j):j&&(this._context=j,this._tapNext=j.next||a.Z,this._tapError=j.error||a.Z,this._tapComplete=j.complete||a.Z)}_next(F){try{this._tapNext.call(this._context,F)}catch(j){return void this.destination.error(j)}this.destination.next(F)}_error(F){try{this._tapError.call(this._context,F)}catch(j){return void this.destination.error(j)}this.destination.error(F)}_complete(){try{this._tapComplete.call(this._context)}catch(F){return void this.destination.error(F)}return this.destination.complete()}}},4907:(xe,S1,m)=>{"use strict";m.d(S1,{T:()=>I});var o=m(4450),a=m(3489);function I(N=U){return F=>F.lift(new r1(N))}class r1{constructor(F){this.errorFactory=F}call(F,j){return j.subscribe(new X(F,this.errorFactory))}}class X extends a.L{constructor(F,j){super(F),this.errorFactory=j,this.hasValue=!1}_next(F){this.hasValue=!0,this.destination.next(F)}_complete(){if(this.hasValue)return this.destination.complete();{let F;try{F=this.errorFactory()}catch(j){F=j}this.destination.error(F)}}}function U(){return new o.K}},6454:(xe,S1,m)=>{"use strict";m.d(S1,{r:()=>I});var o=m(2916),a=m(2654);function I(r1,X){return new o.y(U=>{const N=new a.w;let F=0;return N.add(X.schedule(function(){F!==r1.length?(U.next(r1[F++]),U.closed||N.add(this.schedule())):U.complete()})),N})}},6686:(xe,S1,m)=>{"use strict";m.d(S1,{o:()=>I});var o=m(2654);class a extends o.w{constructor(X,U){super()}schedule(X,U=0){return this}}
1class I extends a{constructor(X,U){super(X,U),this.scheduler=X,this.work=U,this.pending=!1}schedule(X,U=0){if(this.closed)return this;this.state=X;const N=this.id,F=this.scheduler;return null!=N&&(this.id=this.recycleAsyncId(F,N,U)),this.pending=!0,this.delay=U,this.id=this.id||this.requestAsyncId(F,this.id,U),this}requestAsyncId(X,U,N=0){return setInterval(X.flush.bind(X,this),N)}recycleAsyncId(X,U,N=0){if(null!==N&&this.delay===N&&!1===this.pending)return U;clearInterval(U)}execute(X,U){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const N=this._execute(X,U);if(N)return N;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(X,U){let F,N=!1;try{this.work(X)}catch(j){N=!0,F=!!j&&j||new Error(j)}if(N)return this.unsubscribe(),F}_unsubscribe(){const X=this.id,U=this.scheduler,N=U.actions,F=N.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==F&&N.splice(F,1),null!=X&&(this.id=this.recycleAsyncId(U,X,null)),this.delay=null}}},2268:(xe,S1,m)=>{"use strict";m.d(S1,{v:()=>a});let o=(()=>{class I{constructor(X,U=I.now){this.SchedulerAction=X,this.now=U}schedule(X,U=0,N){return new this.SchedulerAction(this,X).schedule(N,U)}}return I.now=()=>Date.now(),I})();class a extends o{constructor(r1,X=o.now){super(r1,()=>a.delegate&&a.delegate!==this?a.delegate.now():X()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(r1,X=0,U){return a.delegate&&a.delegate!==this?a.delegate.schedule(r1,X,U):super.schedule(r1,X,U)}flush(r1){const{actions:X}=this;if(this.active)return void X.push(r1);let U;this.active=!0;do{if(U=r1.execute(r1.state,r1.delay))break}while(r1=X.shift());if(this.active=!1,U){for(;r1=X.shift();)r1.unsubscribe();throw U}}}},353:(xe,S1,m)=>{"use strict";m.d(S1,{P:()=>r1});var o=m(6686);const r1=new(m(2268).v)(o.o)},5430:(xe,S1,m)=>{"use strict";m.d(S1,{hZ:()=>a});const a=function o(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3821:(xe,S1,m)=>{"use strict";m.d(S1,{L:()=>o});const o="function"==typeof Symbol&&Symbol.observable||"@@observable"},7668:(xe,S1,m)=>{"use strict";m.d(S1,{b:()=>o});const o="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()},4231:(xe,S1,m)=>{"use strict";m.d(S1,{W:()=>a});const a=(()=>{function I(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return I.prototype=Object.create(Error.prototype),I})()},4450:(xe,S1,m)=>{"use strict";m.d(S1,{K:()=>a});const a=(()=>{function I(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return I.prototype=Object.create(Error.prototype),I})()},5279:(xe,S1,m)=>{"use strict";m.d(S1,{N:()=>a});const a=(()=>{function I(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return I.prototype=Object.create(Error.prototype),I})()},2782:(xe,S1,m)=>{"use strict";function o(a){setTimeout(()=>{throw a},0)}m.d(S1,{z:()=>o})},5379:(xe,S1,m)=>{"use strict";function o(a){return a}m.d(S1,{y:()=>o})},6688:(xe,S1,m)=>{"use strict";m.d(S1,{k:()=>o});const o=Array.isArray||(a=>a&&"number"==typeof a.length)},8515:(xe,S1,m)=>{"use strict";m.d(S1,{z:()=>o});const o=a=>a&&"number"==typeof a.length&&"function"!=typeof a},7043:(xe,S1,m)=>{"use strict";function o(a){return"function"==typeof a}m.d(S1,{m:()=>o})},7830:(xe,S1,m)=>{"use strict";function o(a){return null!==a&&"object"==typeof a}m.d(S1,{K:()=>o})},8955:(xe,S1,m)=>{"use strict";function o(a){return!!a&&"function"!=typeof a.subscribe&&"function"==typeof a.then}m.d(S1,{t:()=>o})},2866:(xe,S1,m)=>{"use strict";function o(a){return a&&"function"==typeof a.schedule}m.d(S1,{K:()=>o})},7876:(xe,S1,m)=>{"use strict";function o(){}m.d(S1,{Z:()=>o})},9249:(xe,S1,m)=>{"use strict";m.d(S1,{s:()=>J});var o=m(3650),a=m(2782),r1=m(5430),U=m(3821),F=m(8515),j=m(8955),W=m(7830);const J=l1=>{if(l1&&"function"==typeof l1[U.L])return(l1=>s1=>{const n1=l1[U.L]();if("function"!=typeof n1.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n1.subscribe(s1)})(l1);
1if((0,F.z)(l1))return(0,o.V)(l1);if((0,j.t)(l1))return(l1=>s1=>(l1.then(n1=>{s1.closed||(s1.next(n1),s1.complete())},n1=>s1.error(n1)).then(null,a.z),s1))(l1);if(l1&&"function"==typeof l1[r1.hZ])return(l1=>s1=>{const n1=l1[r1.hZ]();for(;;){let y1;try{y1=n1.next()}catch(M1){return s1.error(M1),s1}if(y1.done){s1.complete();break}if(s1.next(y1.value),s1.closed)break}return"function"==typeof n1.return&&s1.add(()=>{n1.return&&n1.return()}),s1})(l1);{const n1=`You provided ${(0,W.K)(l1)?"an invalid object":`'${l1}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(n1)}}},3650:(xe,S1,m)=>{"use strict";m.d(S1,{V:()=>o});const o=a=>I=>{for(let r1=0,X=a.length;r1<X&&!I.closed;r1++)I.next(a[r1]);I.complete()}},1937:(xe,S1,m)=>{"use strict";function o(N){return null!==N&&"object"==typeof N&&"constructor"in N&&N.constructor===Object}function a(N,F){void 0===N&&(N={}),void 0===F&&(F={}),Object.keys(F).forEach(function(j){void 0===N[j]?N[j]=F[j]:o(F[j])&&o(N[j])&&Object.keys(F[j]).length>0&&a(N[j],F[j])})}m.d(S1,{Jj:()=>U,Me:()=>r1});var I={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function r1(){var N="undefined"!=typeof document?document:{};return a(N,I),N}var X={document:I,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(N){return"undefined"==typeof setTimeout?(N(),null):setTimeout(N,0)},cancelAnimationFrame:function(N){"undefined"!=typeof setTimeout&&clearTimeout(N)}};function U(){var N="undefined"!=typeof window?window:{};return a(N,X),N}},8745:(xe,S1,m)=>{"use strict";m.d(S1,{Y:()=>a});var a=function(){function I(){this._subs=[]}return I.prototype.add=function(){for(var r1=[],X=0;X<arguments.length;X++)r1[X]=arguments[X];this._subs=this._subs.concat(r1)},Object.defineProperty(I.prototype,"sink",{set:function(r1){this._subs.push(r1)},enumerable:!0,configurable:!0}),I.prototype.unsubscribe=function(){this._subs.forEach(function(r1){return r1&&function(I){return"function"==typeof I}(r1.unsubscribe)&&r1.unsubscribe()}),this._subs=[]},I}()},59:(xe,S1,m)=>{"use strict";m.d(S1,{YC:()=>O,kz:()=>q1,nF:()=>h1});var o=m(6435),a=m(9808),I=m(2592),r1=m(8929),X=m(1086);const U=["prevElRef"],N=["nextElRef"],F=["scrollbarElRef"],j=["paginationElRef"];function W(_1,T1){1&_1&&(o.ynx(0),o._UZ(1,"div",6,7)(3,"div",8,9),o.BQk())}function J(_1,T1){1&_1&&o._UZ(0,"div",10,11)}function l1(_1,T1){1&_1&&o._UZ(0,"div",12,13)}function s1(_1,T1){}function n1(_1,T1){1&_1&&o.YNc(0,s1,0,0,"ng-template")}function y1(_1,T1){}function M1(_1,T1){1&_1&&o.YNc(0,y1,0,0,"ng-template")}function u1(_1,T1){}function de(_1,T1){1&_1&&o.YNc(0,u1,0,0,"ng-template")}function R1(_1,T1){}const D1=function(_1){return{$implicit:_1}};function K1(_1,T1){if(1&_1&&(o.TgZ(0,"div",3),o.YNc(1,R1,0,0,"ng-template",18),o.qZA()),2&_1){const p1=o.oxw().$implicit,P1=o.oxw(2);o.Q6J("ngClass",P1.zoomContainerClass),o.xp6(1),o.Q6J("ngTemplateOutlet",p1.template)("ngTemplateOutletContext",o.VKq(3,D1,p1.slideData))}}function X1(_1,T1){}function Se(_1,T1){if(1&_1&&(o.ynx(0),o.YNc(1,X1,0,0,"ng-template",18),o.BQk()),2&_1){const p1=o.oxw().$implicit;o.xp6(1),o.Q6J("ngTemplateOutlet",p1.template)("ngTemplateOutletContext",o.VKq(2,D1,p1.slideData))}}function Me(_1,T1){if(1&_1&&(o.TgZ(0,"div",15),o.YNc(1,K1,2,5,"div",16),o.YNc(2,Se,2,4,"ng-container",17),o.qZA()),2&_1){const p1=T1.$implicit,P1=o.oxw().key,B1=o.oxw();o.Akn(B1.style),o.Q6J("ngClass",(p1.class?p1.class+" ":"")+B1.slideClass+(""!==P1?" "+B1.slideDuplicateClass:""))("ngSwitch",p1.zoom),o.uIk("data-swiper-slide-index",p1.virtualIndex?p1.virtualIndex:p1.slideIndex),o.xp6(1),o.Q6J("ngSwitchCase",!0)}}function ae(_1,T1){1&_1&&(o.YNc(0,Me,3,6,"div",14),o.ALo(1,"async")),2&_1&&o.Q6J("ngForOf",o.lcZ(1,1,T1.loopSlides))}const Ee=[[["","slot","container-start"]],[["","slot","wrapper-start"]],[["","slot","wrapper-end"]],[["","slot","container-end"]]],Ae=function(_1){return{loopSlides:_1,key:"prepend"}},ke=function(_1){return{loopSlides:_1,key:""}},te=function(_1){return{loopSlides:_1,key:"append"}},ie=["[slot=container-start]","[slot=wrapper-start]","[slot=wrapper-end]","[slot=container-end]"];function G1(_1){return"object"==typeof _1&&null!==_1&&_1.constructor&&"Object"===Object.prototype.toString.call(_1).slice(8,-1)}function ne(_1,T1,p1){return!0===t2(_1)&&T1&&!T1.el||!("boolean"!=typeof T1&&T1.el!==(null==p1?void 0:p1.nativeElement)&&("string"==typeof T1.el||"object"==typeof T1.el))}function Ke(_1,T1){const p1=["__proto__","constructor","prototype"];Object.keys(T1).filter(P1=>
1p1.indexOf(P1)<0).forEach(P1=>{void 0!==_1[P1]?_1[P1]&&!T1[P1]||(G1(T1[P1])&&G1(_1[P1])&&Object.keys(T1[P1]).length>0?T1[P1].__swiper__?_1[P1]=T1[P1]:Ke(_1[P1],T1[P1]):_1[P1]=T1[P1]):_1[P1]=T1[P1]})}function t2(_1){return null!=_1&&"false"!=`${_1}`}const Je=["pagination","navigation","scrollbar","virtual"];function H1(_1,T1={}){return G1(_1)?_1:!0===t2(_1)&&T1}const d1=["init","_direction","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_freeModeMomentum","_freeModeMomentumRatio","_freeModeMomentumBounce","_freeModeMomentumBounceRatio","_freeModeMomentumVelocityRatio","_freeModeSticky","_freeModeMinimumVelocity","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","_spaceBetween","_slidesPerView","_slidesPerColumn","_slidesPerColumnFill","_slidesPerGroup","_slidesPerGroupSkip","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_watchSlidesVisibility","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_preloadImages","updateOnImagesReady","_loop","_loopAdditionalSlides","_loopedSlides","_loopFillGroupWithBlank","loopPreventsSlide","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","hashNavigation","history","keyboard","lazy","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom"].map(_1=>_1.replace(/_/,""));function I1(_1={}){const T1={on:{}},p1={};Ke(T1,I.Z.defaults),Ke(T1,I.Z.extendedDefaults),T1._emitClasses=!0;const P1={};return Object.keys(_1).forEach(B1=>{const me=B1.replace(/^_/,"");void 0!==_1[me]&&(d1.indexOf(me)>=0?G1(_1[me])?(T1[me]={},p1[me]={},Ke(T1[me],_1[me]),Ke(p1[me],_1[me])):(T1[me]=_1[me],p1[me]=_1[me]):P1[me]=_1[me])}),{params:T1,passedParams:p1,rest:P1}}let O=(()=>{class _1{constructor(p1){this.template=p1,this.class="",this.slideData={isActive:!1,isPrev:!1,isNext:!1,isVisible:!1,isDuplicate:!1}}set zoom(p1){this._zoom=t2(p1)}get zoom(){return this._zoom}get classNames(){return this._classNames}set classNames(p1){this._classNames!==p1&&(this._classNames=p1,this.slideData={isActive:this._hasClass(["swiper-slide-active","swiper-slide-duplicate-active"]),isVisible:this._hasClass(["swiper-slide-visible"]),isDuplicate:this._hasClass(["swiper-slide-duplicate"]),isPrev:this._hasClass(["swiper-slide-prev","swiper-slide-duplicate-prev"]),isNext:this._hasClass(["swiper-slide-next","swiper-slide-duplicate-next"])})}_hasClass(p1){return p1.some(P1=>this._classNames.indexOf(P1)>=0)}}return _1.\u0275fac=function(p1){return new(p1||_1)(o.Y36(o.Rgc))},_1.\u0275dir=o.lG2({type:_1,selectors:[["ng-template","swiperSlide",""]],inputs:{class:"class",zoom:"zoom",virtualIndex:"virtualIndex"}}),_1})(),h1=(()=>{class _1{constructor(p1,P1,B1,me){this._ngZone=p1,this.elementRef=P1,this._changeDetectorRef=B1,this._platformId=me,this.slideClass="swiper-slide",this.wrapperClass="swiper-wrapper",this.showNavigation=!0,this.showPagination=!0,this.showScrollbar=!0,this.s__beforeBreakpoint=new o.vpe,this.s__containerClasses=new o.vpe,this.s__slideClass=new o.vpe,this.s__swiper=new o.vpe,this.s_activeIndexChange=new o.vpe,this.s_afterInit=new o.vpe,this.s_autoplay=new o.vpe,this.s_autoplayStart=new o.vpe,this.s_autoplayStop=new o.vpe,this.s_beforeDestroy=new o.vpe,this.s_beforeInit=new o.vpe,this.s_beforeLoopFix=new o.vpe,this.s_beforeResize=new o.vpe,this.s_beforeSlideChangeStart=new o.vpe,this.s_beforeTransitionStart=new o.vpe,this.s_breakpoint=new o.vpe,this.s_changeDirection=new o.vpe,this.s_click=new o.vpe,this.s_doubleTap=new o.vpe,this.s_doubleClick=new o.vpe,this.s_destroy=new o.vpe,this.s_fromEdge=new o.vpe,this.s_hashChange=new o.vpe,this.s_hashSet=new o.vpe,this.s_imagesReady=new o.vpe,this.s_init=new o.vpe,this.s_keyPress=new o.vpe,this.s_lazyImageLoad=new o.vpe,this.s_lazyImageReady=new o.vpe,this.s_loopFix=new o.vpe,this.s_momentumBounce
1=new o.vpe,this.s_navigationHide=new o.vpe,this.s_navigationShow=new o.vpe,this.s_observerUpdate=new o.vpe,this.s_orientationchange=new o.vpe,this.s_paginationHide=new o.vpe,this.s_paginationRender=new o.vpe,this.s_paginationShow=new o.vpe,this.s_paginationUpdate=new o.vpe,this.s_progress=new o.vpe,this.s_reachBeginning=new o.vpe,this.s_reachEnd=new o.vpe,this.s_realIndexChange=new o.vpe,this.s_resize=new o.vpe,this.s_scroll=new o.vpe,this.s_scrollbarDragEnd=new o.vpe,this.s_scrollbarDragMove=new o.vpe,this.s_scrollbarDragStart=new o.vpe,this.s_setTransition=new o.vpe,this.s_setTranslate=new o.vpe,this.s_slideChange=new o.vpe,this.s_slideChangeTransitionEnd=new o.vpe,this.s_slideChangeTransitionStart=new o.vpe,this.s_slideNextTransitionEnd=new o.vpe,this.s_slideNextTransitionStart=new o.vpe,this.s_slidePrevTransitionEnd=new o.vpe,this.s_slidePrevTransitionStart=new o.vpe,this.s_slideResetTransitionStart=new o.vpe,this.s_slideResetTransitionEnd=new o.vpe,this.s_sliderMove=new o.vpe,this.s_sliderFirstMove=new o.vpe,this.s_slidesLengthChange=new o.vpe,this.s_slidesGridLengthChange=new o.vpe,this.s_snapGridLengthChange=new o.vpe,this.s_snapIndexChange=new o.vpe,this.s_tap=new o.vpe,this.s_toEdge=new o.vpe,this.s_touchEnd=new o.vpe,this.s_touchMove=new o.vpe,this.s_touchMoveOpposite=new o.vpe,this.s_touchStart=new o.vpe,this.s_transitionEnd=new o.vpe,this.s_transitionStart=new o.vpe,this.s_update=new o.vpe,this.s_zoomChange=new o.vpe,this.s_swiper=new o.vpe,this.indexChange=new o.vpe,this._activeSlides=new r1.xQ,this.containerClasses="swiper-container",this.slidesChanges=Oe=>{this.slides=Oe.map((h2,y2)=>(h2.slideIndex=y2,h2.classNames=this.slideClass,h2)),this.loop&&!this.loopedSlides&&this.calcLoopedSlides(),this.virtual?this.swiperRef&&this.swiperRef.virtual&&this._ngZone.runOutsideAngular(()=>{this.swiperRef.virtual.slides=this.slides,this.swiperRef.virtual.update(!0)}):(this.prependSlides=(0,X.of)(this.slides.slice(this.slides.length-this.loopedSlides)),this.appendSlides=(0,X.of)(this.slides.slice(0,this.loopedSlides))),this._changeDetectorRef.detectChanges()},this.style=null,this.updateVirtualSlides=Oe=>{!this.swiperRef||this.currentVirtualData&&this.currentVirtualData.from===Oe.from&&this.currentVirtualData.to===Oe.to&&this.currentVirtualData.offset===Oe.offset||(this.style=this.swiperRef.isHorizontal()?{[this.swiperRef.rtlTranslate?"right":"left"]:`${Oe.offset}px`}:{top:`${Oe.offset}px`},this.currentVirtualData=Oe,this._activeSlides.next(Oe.slides),this._ngZone.run(()=>{this._changeDetectorRef.detectChanges()}),this._ngZone.runOutsideAngular(()=>{this.swiperRef.updateSlides(),this.swiperRef.updateProgress(),this.swiperRef.updateSlidesClasses(),this.swiperRef.lazy&&this.swiperRef.params.lazy.enabled&&this.swiperRef.lazy.load(),this.swiperRef.virtual.update(!0)}))}}set navigation(p1){var P1,B1,me;const Oe="boolean"!=typeof this._navigation?null===(P1=this._navigation)||void 0===P1?void 0:P1.nextEl:null,h2="boolean"!=typeof this._navigation?null===(B1=this._navigation)||void 0===B1?void 0:B1.prevEl:null;this._navigation=H1(p1,{nextEl:Oe||null,prevEl:h2||null}),this.showNavigation=!(!0!==t2(p1)||this._navigation&&"boolean"!=typeof this._navigation&&this._navigation.prevEl!==(null===(me=this._prevElRef)||void 0===me?void 0:me.nativeElement)&&(null!==this._navigation.prevEl||null!==this._navigation.nextEl)&&("string"==typeof this._navigation.nextEl||"string"==typeof this._navigation.prevEl||"object"==typeof this._navigation.nextEl||"object"==typeof this._navigation.prevEl))}get navigation(){return this._navigation}set pagination(p1){var P1;const B1="boolean"!=typeof this._pagination?null===(P1=this._pagination)||void 0===P1?void 0:P1.el:null;this._pagination=H1(p1,{el:B1||null}),this.showPagination=ne(p1,this._pagination,this._paginationElRef)}get pagination(){return this._pagination}set scrollbar(p1){var P1;const B1="boolean"!=typeof this._scrollbar?null===(P1=this._scrollbar)||void 0===P1?void 0:P1.el:null;this._scrollbar=H1(p1,{el:B1||null}),this.showScrollbar=ne(p1,this._scrollbar,this._scrollbarElRef)}get scrollbar(){return this._scrollbar}set virtual(p1){this._virtual=H1(p1)}get virtual(){return this._virtual}set index(p1){this.setIndex(p1)}set config(p1){this.updateSwiper(p1);const{params:P1}=I1(p1);Object.assign(this,P1)}set prevElRef(p1){this._prevElRef=p1,this._setElement(p1,this.navigation,"navigation","prevEl")}set nextElRef(p1){this._nextElRef=p1,this._setElement(p1,this.navigation,"navigation","nextEl")}set scrollbarElRef(p1){this._scrollbarElRef=p1,this._setElement(p1,this.scrollbar,"scrollbar")}set paginationElRef(p1){this._paginationElRef=p1,this._setElement(p1,this.pagination,"pagination")}get activeSlides(){return this.virtual?this._activeSlides:(0,X.of)(this.slides)}get zoomContainerClass(){return"boolean"!=typeof this.zoom?this.zoom.containerClass:"swiper-zoom-container"}_setElement(p1,P1,B1,me="el"){if(!p1||!P1)return;if(P1&&p1.nativeElement){if(P1[me]===p1.nativeElement)return;P1[me]=p1.nativeElement}const Oe={};Oe[B1]=!0,this.updateInitSwiper(Oe)}ngOnInit(){const{params:p1}=I1(this);Object.assign(this,p1)}ngAfterViewInit(){this.childrenSlidesInit(),this.initSwiper(),this._changeDetectorRef.detectChanges(),setTimeout(()=>{this.s_swiper.emit(this.swiperRef)})}childrenSlidesInit(){this.slidesChanges(this.slidesEl),this.slidesEl.changes.subscribe(this.slidesChanges)}get isSwiperActive(){return this.swiperRef&&!this.swiperRef.destroyed}initSwiper(){const{params:p1}=I1(this);Object.assign(this,p1),this._ngZone.runOutsideAngular(()=>{p1.init=!1,p1.virtual||(p1.observer=!0),p1.onAny=(me,...Oe)=>{const h2=this[`s_${me}`];h2&&h2.emit(...Oe)},Object.assign(p1.on,{_containerClasses(me,Oe){this.containerClasses=Oe},_slideClasses:(me,Oe)=>{Oe.forEach(({slideEl:h2,classNames:y2},P2)=>{const K2=parseInt(h2.getAttribute("data-swiper-slide-index"))||P2;if(this.virtual){const A2=this.slides.find(V2=>V2.virtualIndex&&V2.virtualIndex===K2);if(A2)return void(A2.classNames=y2)}this.slides[K2]&&(this.slides[K2].classNames=y2)}),this._changeDetectorRef.detectChanges()}});const B1=new I.Z(p1);if(B1.loopCreate=()=>{},B1.loopDestroy=()=>{},p1.loop&&(B1.loopedSlides=this.loopedSlides),B1.virtual&&B1.params.virtual.enabled){B1.virtual.slides=this.slides;const me={cache:!1,renderExternal:this.updateVirtualSlides,renderExternalUpdate:!1};Ke(B1.params.virtual,me),Ke(B1.originalParams.virtual,me)}(0,a.NF)(this._platformId)&&(this.swiperRef=B1.init(this.elementRef.nativeElement),this.swiperRef.virtual&&this.swiperRef.params.virtual.enabled&&this.swiperRef.virtual.update(!0),this._changeDetectorRef.detectChanges(),B1.on("slideChange",()=>{this.indexChange.emit(this.swiperRef.realIndex)}))})}ngOnChanges(p1){this.updateSwiper(p1),this._changeDetectorRef.detectChanges()}updateInitSwiper(p1){!p1||!this.swiperRef||this.swiperRef.destroyed||this._ngZone.runOutsideAngular(()=>{const{pagination:B1,navigation:me,scrollbar:Oe,thumbs:y2}=this.swiperRef;p1.pagination&&(this.pagination&&"boolean"!=typeof this.pagination&&this.pagination.el&&B1&&!B1.el?(this.updateParameter("pagination",this.pagination),B1.init(),B1.render(),B1.update()):(B1.destroy(),B1.el=null)),p1.scrollbar&&(this.scrollbar&&"boolean"!=typeof this.scrollbar&&this.scrollbar.el&&Oe&&!Oe.el?(this.updateParameter("scrollbar",this.scrollbar),Oe.init(),Oe.updateSize(),Oe.setTranslate()):(Oe.destroy(),Oe.el=null)),p1.navigation&&(this.navigation&&"boolean"!=typeof this.navigation&&this.navigation.prevEl&&this.navigation.nextEl&&me&&!me.prevEl&&!me.nextEl?(this.updateParameter("navigation",this.navigation),me.init(
1),me.update()):me.prevEl&&me.nextEl&&(me.destroy(),me.nextEl=null,me.prevEl=null)),p1.thumbs&&this.thumbs&&this.thumbs.swiper&&(this.updateParameter("thumbs",this.thumbs),y2.init()&&y2.update(!0)),p1.controller&&this.controller&&this.controller.control&&(this.swiperRef.controller.control=this.controller.control),this.swiperRef.update()})}updateSwiper(p1){this._ngZone.runOutsideAngular(()=>{var P1,B1;if(!p1.config&&p1&&this.swiperRef&&!this.swiperRef.destroyed){for(const me in p1){if(Je.indexOf(me)>=0)continue;const Oe=null!==(B1=null===(P1=p1[me])||void 0===P1?void 0:P1.currentValue)&&void 0!==B1?B1:p1[me];this.updateParameter(me,Oe)}p1.allowSlideNext&&(this.swiperRef.allowSlideNext=this.allowSlideNext),p1.allowSlidePrev&&(this.swiperRef.allowSlidePrev=this.allowSlidePrev),p1.direction&&this.swiperRef.changeDirection(this.direction,!1),p1.breakpoints&&(this.loop&&!this.loopedSlides&&this.calcLoopedSlides(),this.swiperRef.currentBreakpoint=null,this.swiperRef.setBreakpoint()),(p1.thumbs||p1.controller)&&this.updateInitSwiper(p1),this.swiperRef.update()}})}calcLoopedSlides(){if(!this.loop)return;let p1=this.slidesPerView;if(this.breakpoints){const B1=I.Z.prototype.getBreakpoint(this.breakpoints),me=B1 in this.breakpoints?this.breakpoints[B1]:void 0;me&&me.slidesPerView&&(p1=me.slidesPerView)}if("auto"===p1)return this.loopedSlides=this.slides.length,this.slides.length;let P1=this.loopedSlides||p1;return P1+=this.loopAdditionalSlides,P1>this.slides.length&&(P1=this.slides.length),this.loopedSlides=P1,P1}updateParameter(p1,P1){if(!this.swiperRef||this.swiperRef.destroyed)return;const B1=p1.replace(/^_/,""),me=G1(this.swiperRef.params[B1]);if(Object.keys(this.swiperRef.modules).indexOf(B1)>=0){const Oe=this.swiperRef.modules[B1].params[B1];me?Ke(this.swiperRef.params[B1],Oe):this.swiperRef.params[B1]=Oe}me&&G1(P1)?Ke(this.swiperRef.params[B1],P1):this.swiperRef.params[B1]=P1}setIndex(p1,P1,B1){this.isSwiperActive?p1!==this.swiperRef.activeIndex&&this._ngZone.runOutsideAngular(()=>{this.loop?this.swiperRef.slideToLoop(p1,P1,!B1):this.swiperRef.slideTo(p1,P1,!B1)}):this.initialSlide=p1}ngOnDestroy(){this._ngZone.runOutsideAngular(()=>{var p1;null===(p1=this.swiperRef)||void 0===p1||p1.destroy(!0,!1)})}}return _1.\u0275fac=function(p1){return new(p1||_1)(o.Y36(o.R0b),o.Y36(o.SBq),o.Y36(o.sBO),o.Y36(o.Lbi))},_1.\u0275cmp=o.Xpm({type:_1,selectors:[["swiper"],["","swiper",""]],contentQueries:function(p1,P1,B1){if(1&p1&&o.Suo(B1,O,4),2&p1){let me;o.iGM(me=o.CRH())&&(P1.slidesEl=me)}},viewQuery:function(p1,P1){if(1&p1&&(o.Gf(U,5),o.Gf(N,5),o.Gf(F,5),o.Gf(j,5)),2&p1){let B1;o.iGM(B1=o.CRH())&&(P1.prevElRef=B1.first),o.iGM(B1=o.CRH())&&(P1.nextElRef=B1.first),o.iGM(B1=o.CRH())&&(P1.scrollbarElRef=B1.first),o.iGM(B1=o.CRH())&&(P1.paginationElRef=B1.first)}},hostVars:2,hostBindings:function(p1,P1){2&p1&&o.Tol(P1.containerClasses)},inputs:{slideClass:"slideClass",wrapperClass:"wrapperClass",navigation:"navigation",pagination:"pagination",scrollbar:"scrollbar",virtual:"virtual",index:"index",config:"config",loopedSlides:"loopedSlides",initialSlide:"initialSlide",direction:"direction",touchEventsTarget:"touchEventsTarget",speed:"speed",cssMode:"cssMode",updateOnWindowResize:"updateOnWindowResize",resizeObserver:"resizeObserver",nested:"nested",focusableElements:"focusableElements",width:"width",height:"height",preventInteractionOnTransition:"preventInteractionOnTransition",userAgent:"userAgent",url:"url",edgeSwipeDetection:"edgeSwipeDetection",edgeSwipeThreshold:"edgeSwipeThreshold",freeMode:"freeMode",freeModeMomentum:"freeModeMomentum",freeModeMomentumRatio:"freeModeMomentumRatio",freeModeMomentumBounce:"freeModeMomentumBounce",freeModeMomentumBounceRatio:"freeModeMomentumBounceRatio",freeModeMomentumVelocityRatio:"freeModeMomentumVelocityRatio",freeModeSticky:"freeModeSticky",freeModeMinimumVelocity:"freeModeMinimumVelocity",autoHeight:"autoHeight",setWrapperSize:"setWrapperSize",virtualTranslate:"virtualTranslate",effect:"effect",breakpoints:"breakpoints",spaceBetween:"spaceBetween",slidesPerView:"slidesPerView",slidesPerColumn:"slidesPerColumn",slidesPerColumnFill:"slidesPerColumnFill",slidesPerGroup:"slidesPerGroup",slidesPerGroupSkip:"slidesPerGroupSkip",centeredSlides:"centeredSlides",centeredSlidesB
1ounds:"centeredSlidesBounds",slidesOffsetBefore:"slidesOffsetBefore",slidesOffsetAfter:"slidesOffsetAfter",normalizeSlideIndex:"normalizeSlideIndex",centerInsufficientSlides:"centerInsufficientSlides",watchOverflow:"watchOverflow",roundLengths:"roundLengths",touchRatio:"touchRatio",touchAngle:"touchAngle",simulateTouch:"simulateTouch",shortSwipes:"shortSwipes",longSwipes:"longSwipes",longSwipesRatio:"longSwipesRatio",longSwipesMs:"longSwipesMs",followFinger:"followFinger",allowTouchMove:"allowTouchMove",threshold:"threshold",touchMoveStopPropagation:"touchMoveStopPropagation",touchStartPreventDefault:"touchStartPreventDefault",touchStartForcePreventDefault:"touchStartForcePreventDefault",touchReleaseOnEdges:"touchReleaseOnEdges",uniqueNavElements:"uniqueNavElements",resistance:"resistance",resistanceRatio:"resistanceRatio",watchSlidesProgress:"watchSlidesProgress",watchSlidesVisibility:"watchSlidesVisibility",grabCursor:"grabCursor",preventClicks:"preventClicks",preventClicksPropagation:"preventClicksPropagation",slideToClickedSlide:"slideToClickedSlide",preloadImages:"preloadImages",updateOnImagesReady:"updateOnImagesReady",loop:"loop",loopAdditionalSlides:"loopAdditionalSlides",loopFillGroupWithBlank:"loopFillGroupWithBlank",loopPreventsSlide:"loopPreventsSlide",allowSlidePrev:"allowSlidePrev",allowSlideNext:"allowSlideNext",swipeHandler:"swipeHandler",noSwiping:"noSwiping",noSwipingClass:"noSwipingClass",noSwipingSelector:"noSwipingSelector",passiveListeners:"passiveListeners",containerModifierClass:"containerModifierClass",slideBlankClass:"slideBlankClass",slideActiveClass:"slideActiveClass",slideDuplicateActiveClass:"slideDuplicateActiveClass",slideVisibleClass:"slideVisibleClass",slideDuplicateClass:"slideDuplicateClass",slideNextClass:"slideNextClass",slideDuplicateNextClass:"slideDuplicateNextClass",slidePrevClass:"slidePrevClass",slideDuplicatePrevClass:"slideDuplicatePrevClass",runCallbacksOnInit:"runCallbacksOnInit",observeParents:"observeParents",observeSlideChildren:"observeSlideChildren",a11y:"a11y",autoplay:"autoplay",controller:"controller",coverflowEffect:"coverflowEffect",cubeEffect:"cubeEffect",fadeEffect:"fadeEffect",flipEffect:"flipEffect",hashNavigation:"hashNavigation",history:"history",keyboard:"keyboard",lazy:"lazy",mousewheel:"mousewheel",parallax:"parallax",thumbs:"thumbs",zoom:"zoom",class:"class",id:"id"},outputs:{s__beforeBreakpoint:"_beforeBreakpoint",s__containerClasses:"_containerClasses",s__slideClass:"_slideClass",s__swiper:"_swiper",s_activeIndexChange:"activeIndexChange",s_afterInit:"afterInit",s_autoplay:"autoplay",s_autoplayStart:"autoplayStart",s_autoplayStop:"autoplayStop",s_beforeDestroy:"beforeDestroy",s_beforeInit:"beforeInit",s_beforeLoopFix:"beforeLoopFix",s_beforeResize:"beforeResize",s_beforeSlideChangeStart:"beforeSlideChangeStart",s_beforeTransitionStart:"beforeTransitionStart",s_breakpoint:"breakpoint",s_changeDirection:"changeDirection",s_click:"click",s_doubleTap:"doubleTap",s_doubleClick:"doubleClick",s_destroy:"destroy",s_fromEdge:"fromEdge",s_hashChange:"hashChange",s_hashSet:"hashSet",s_imagesReady:"imagesReady",s_init:"init",s_keyPress:"keyPress",s_lazyImageLoad:"lazyImageLoad",s_lazyImageReady:"lazyImageReady",s_loopFix:"loopFix",s_momentumBounce:"momentumBounce",s_navigationHide:"navigationHide",s_navigationShow:"navigationShow",s_observerUpdate:"observerUpdate",s_orientationchange:"orientationchange",s_paginationHide:"paginationHide",s_paginationRender:"paginationRender",s_paginationShow:"paginationShow",s_paginationUpdate:"paginationUpdate",s_progress:"progress",s_reachBeginning:"reachBeginning",s_reachEnd:"reachEnd",s_realIndexChange:"realIndexChange",s_resize:"resize",s_scroll:"scroll",s_scrollbarDragEnd:"scrollbarDragEnd",s_scrollbarDragMove:"scrollbarDragMove",s_scrollbarDragStart:"scrollbarDragStart",s_setTransition:"setTransition",s_setTranslate:"setTranslate",s_slideChange:"slideChange",s_slideChangeTransitionEnd:"slideChangeTransitionEnd",s_slideChangeTransitionStart:"slideChangeTransitionStart",s_slideNextTransitionEnd:"slideNextTransitionEnd",s_slideNextTransitionStart:"slideNextTransitionStart",s_slidePrevTransitionEnd:"slidePrevTransitionEnd",s_slidePrevTransitionStart:"slidePrevTransitionStart",s_slideResetTransitionStart:"slideResetTransitionStart",s_slideResetTransitionEnd:"slideResetTransitionEnd",s_sliderMove:"sliderMove",s_sliderFirstMove:"sliderFirstMove",s_slidesLengthChange:"slidesLengthChange",s_slidesGridLengthChange:"slidesGridLengthChange",s_snapGridLengthChange:"snapGridLengthChange",s_snapIndexChange:"snapIndexChange",s_tap:"tap",s_toEdge:"toEdge",s_touchEnd:"touchEnd",s_touchMove:"touchMove",s_touchMoveOpposite:"touchMoveOpposite",s_touchStart:"touchStart",s_transitionEnd:"transitionEnd",s_transitionStart:"transitionStart",s_update:"update",s_zoomChange:"zoomChange",s_swiper:"swiper",indexChange:"indexChange"},features:[o.TTD],ngContentSelectors:ie,decls:13,vars:17,consts:[[4,"ngIf"],["class","swiper-scrollbar",4,"ngIf"],["class","swiper-pagination",4,"ngIf"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["slidesTemplate",""],[1,"swiper-button-prev"],["prevElRef",""],[1,"swiper-button-next"],["nextElRef",""],[1,"swiper-scrollbar"],["scrollbarElRef",""],[1,"swiper-pagination"],["paginationElRef",""],[3,"ngClass","style","ngSwitch",4,"ngFor","ngForOf"],[3,"ngClass","ngSwitch"],[3,"ngClass",4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(p1,P1){if(1&p1&&(o.F$t(Ee),o.Hsn(0),o.YNc(1,W,5,0,"ng-container",0),o.YNc(2,J,2,0,"div",1),o.YNc(3,l1,2,0,"div",2),o.TgZ(4,"div",3),o.Hsn(5,1),o.YNc(6,n1,1,0,null,4),o.YNc(7,M1,1,0,null,4),o.YNc(8,de,1,0,null,4),o.Hsn(9,2),o.qZA(),o.Hsn(10,3),o.YNc(11,ae,2,3,"ng-template",null,5,o.W1O)),2&p1){const B1=o.MAs(12);o.xp6(1),o.Q6J("ngIf",P1.navigation&&P1.showNavigation),o.xp6(1),o.Q6J("ngIf",P1.scrollbar&&P1.showScrollbar),o.xp6(1),o.Q6J("ngIf",P1.pagination&&P1.showPagination),o.xp6(1),o.Q6J("ngClass",P1.wrapperClass),o.uIk("id",P1.id),o.xp6(2),o.Q6J("ngTemplateOutlet",B1)("ngTemplateOutletContext",o.VKq(11,Ae,P1.prependSlides)),o.xp6(1),o.Q6J("ngTemplateOutlet",B1)("ngTemplateOutletContext",o.VKq(13,ke,P1.activeSlides)),o.xp6(1),o.Q6J("ngTemplateOutlet",B1)("ngTemplateOutletContext",o.VKq(15,te,P1.appendSlides))}},directives:[a.O5,a.mk,a.tP,a.sg,a.RF,a.n9,a.ED],pipes:[a.Ov],styles:["\n swiper {\n display: block;\n }\n "],encapsulation:2,changeDetection:0}),_1})(),q1=(()=>{class _1{}return _1.\u0275fac=function(p1){return new(p1||_1)},_1.\u0275mod=o.oAB({type:_1}),_1.\u0275inj=o.cJS({imports:[[a.ez]]}),_1})()},2592:(xe,S1,m)=>{"use strict";m.d(S1,{Z:()=>ee});var r1,N,W,o=m(1937),a=m(6793),I=m(3603);function U(){return r1||(r1=function X(){var M=(0,o.Jj)(),w=(0,o.Me)();return{touch:!!("ontouchstart"in M||M.DocumentTouch&&w instanceof M.DocumentTouch),pointerEvents:!!M.PointerEvent&&"maxTouchPoints"in M.navigator&&M.navigator.maxTouchPoints>=0,observer:"MutationObserver"in M||"WebkitMutationObserver"in M,passiveListener:function(){var C=!1;try{var Z=Object.defineProperty({},"passive",{get:function(){C=!0}});M.addEventListener("testPassiveListener",null,Z)}catch(G){}return C}(),gestures:"ongesturestart"in M}}()),r1}function j(M){return void 0===M&&(M={}),N||(N=function F(M){var x=(void 0===M?{}:M).userAgent,C=U(),Z=(0,o.Jj)(),G=Z.navigator.platform,C1=x||Z.navigator.userAgent,v1={ios:!1,android:!1},o1=Z.screen.width,Y1=Z.screen.height,J1=C1.match(/(Android);?[\s\/]+([\d.]+)?/),le=C1.match(/(iPad).*OS\s([\d_]+)/),re=C1.match(/(iPod)(.*OS\s([\d_]+))?/),He=!le&&C1.match(/(iPhone\sOS|iOS)\s([\d_]+)/),B="Win32"===G,V="MacIntel"===G;return!le&&V&&C.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(o1+"x"+Y1)>=0&&((le=C1.match(/(Version)\/([\d.]+)/))||(le=[0,1,"13_0_0"]),V=!1),J1&&!B&&(v1.os="android",v1.android=!0),(le||He||re)&&(v1.os="ios",v1.ios=!0),v1}(M)),N}function l1(){return W||(W=function J(){var M=(0,o.Jj)();return{isEdge:!!M.navigator.userAgent.match(/Edge/g),isSafari:function w(){var x=M.navigator.userAgent.toLowerCase();return x.indexOf("safari")>=0&&x.indexOf("chrome")<0&&x.indexOf("android")<0}
1(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(M.navigator.userAgent)}}()),W}const n1={name:"resize",create:function(){var w=this;(0,I.l7)(w,{resize:{observer:null,createObserver:function(){!w||w.destroyed||!w.initialized||(w.resize.observer=new ResizeObserver(function(C){var Z=w.width,G=w.height,C1=Z,v1=G;C.forEach(function(o1){var Y1=o1.contentBoxSize,J1=o1.contentRect,le=o1.target;le&&le!==w.el||(C1=J1?J1.width:(Y1[0]||Y1).inlineSize,v1=J1?J1.height:(Y1[0]||Y1).blockSize)}),(C1!==Z||v1!==G)&&w.resize.resizeHandler()}),w.resize.observer.observe(w.el))},removeObserver:function(){w.resize.observer&&w.resize.observer.unobserve&&w.el&&(w.resize.observer.unobserve(w.el),w.resize.observer=null)},resizeHandler:function(){!w||w.destroyed||!w.initialized||(w.emit("beforeResize"),w.emit("resize"))},orientationChangeHandler:function(){!w||w.destroyed||!w.initialized||w.emit("orientationchange")}}})},on:{init:function(w){var x=(0,o.Jj)();w.params.resizeObserver&&void 0!==(0,o.Jj)().ResizeObserver?w.resize.createObserver():(x.addEventListener("resize",w.resize.resizeHandler),x.addEventListener("orientationchange",w.resize.orientationChangeHandler))},destroy:function(w){var x=(0,o.Jj)();w.resize.removeObserver(),x.removeEventListener("resize",w.resize.resizeHandler),x.removeEventListener("orientationchange",w.resize.orientationChangeHandler)}}};function y1(){return y1=Object.assign||function(M){for(var w=1;w<arguments.length;w++){var x=arguments[w];for(var C in x)Object.prototype.hasOwnProperty.call(x,C)&&(M[C]=x[C])}return M},y1.apply(this,arguments)}var M1={attach:function(w,x){void 0===x&&(x={});var C=(0,o.Jj)(),Z=this,C1=new(C.MutationObserver||C.WebkitMutationObserver)(function(v1){if(1!==v1.length){var o1=function(){Z.emit("observerUpdate",v1[0])};C.requestAnimationFrame?C.requestAnimationFrame(o1):C.setTimeout(o1,0)}else Z.emit("observerUpdate",v1[0])});C1.observe(w,{attributes:void 0===x.attributes||x.attributes,childList:void 0===x.childList||x.childList,characterData:void 0===x.characterData||x.characterData}),Z.observer.observers.push(C1)},init:function(){var w=this;if(w.support.observer&&w.params.observer){if(w.params.observeParents)for(var x=w.$el.parents(),C=0;C<x.length;C+=1)w.observer.attach(x[C]);w.observer.attach(w.$el[0],{childList:w.params.observeSlideChildren}),w.observer.attach(w.$wrapperEl[0],{attributes:!1})}},destroy:function(){this.observer.observers.forEach(function(x){x.disconnect()}),this.observer.observers=[]}};const u1={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create:function(){(0,I.cR)(this,{observer:y1({},M1,{observers:[]})})},on:{init:function(w){w.observer.init()},destroy:function(w){w.observer.destroy()}}};function se(M){var w=this,x=(0,o.Me)(),C=(0,o.Jj)(),Z=w.touchEventsData,G=w.params,C1=w.touches;if(w.enabled&&(!w.animating||!G.preventInteractionOnTransition)){var o1=M;o1.originalEvent&&(o1=o1.originalEvent);var Y1=(0,a.Z)(o1.target);if(("wrapper"!==G.touchEventsTarget||Y1.closest(w.wrapperEl).length)&&(Z.isTouchEvent="touchstart"===o1.type,(Z.isTouchEvent||!("which"in o1)||3!==o1.which)&&!(!Z.isTouchEvent&&"button"in o1&&o1.button>0)&&(!Z.isTouched||!Z.isMoved))){G.noSwipingClass&&""!==G.noSwipingClass&&o1.target&&o1.target.shadowRoot&&M.path&&M.path[0]&&(Y1=(0,a.Z)(M.path[0]));var le=G.noSwipingSelector?G.noSwipingSelector:"."+G.noSwipingClass;if(G.noSwiping&&(o1.target&&o1.target.shadowRoot?function g1(M,w){return void 0===w&&(w=this),function x(C){return C&&C!==(0,o.Me)()&&C!==(0,o.Jj)()?(C.assignedSlot&&(C=C.assignedSlot),C.closest(M)||x(C.getRootNode().host)):null}(w)}(le,o1.target):Y1.closest(le)[0]))return void(w.allowClick=!0);if(!G.swipeHandler||Y1.closest(G.swipeHandler)[0]){C1.currentX="touchstart"===o1.type?o1.targetTouches[0].pageX:o1.pageX,C1.currentY="touchstart"===o1.type?o1.targetTouches[0].pageY:o1.pageY;var He=C1.currentX,B=C1.currentY,V=G.edgeSwipeDetection||G.iOSEdgeSwipeDetection,K=G.edgeSwipeThreshold||G.iOSEdgeSwipeThreshold;if(V&&(He<=K||He>=C.innerWidth-K)){if("prevent"!==V)return;M.preventDefault()}if((0,I.l7)(Z,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),C1.startX=He,C1.startY=B,Z.touchStartTime=(0,I.zO)(),w.allowClick=!0,w.updateSize(),w.swipeDirection=void 0,G.threshold>0&&(Z.allowThresholdMove=!1),"touchstart"!==o1.type){var m1=!0;Y1.is(Z.focusableElements)&&(m1=!1),x.activeElement&&(0,a.Z)(x.activeElement).is(Z.focusableElements)&&x.activeElement!==Y1[0]&&x.activeElement.blur(),(G.touchStartForcePreventDefault||m1&&w.allowTouchMove&&G.touchStartPreventDefault)&&!Y1[0].isContentEditable&&o1.preventDefault()}w.emit("touchStart",o1)}}}}function ce(M){var w=(0,o.Me)(),x=this,C=x.touchEventsData,Z=x.params,G=x.touches,C1=x.rtlTranslate;if(x.enabled){var o1=M;if(o1.originalEvent&&(o1=o1.originalEvent),!C.isTouched)return void(C.startMoving&&C.isScrolling&&x.emit("touchMoveOpposite",o1));if(!C.isTouchEvent||"touchmove"===o1.type){var Y1="touchmove"===o1.type&&o1.targetTouches&&(o1.targetTouches[0]||o1.changedTouches[0]),J1="touchmove"===o1.type?Y1.pageX:o1.pageX,le="touchmove"===o1.type?Y1.pageY:o1.pageY;if(o1.preventedByNestedSwiper)return G.startX=J1,void(G.startY=le);if(!x.allowTouchMove)return x.allowClick=!1,void(C.isTouched&&((0,I.l7)(G,{startX:J1,startY:le,currentX:J1,currentY:le}),C.touchStartTime=(0,I.zO)()));if(C.isTouchEvent&&Z.touchReleaseOnEdges&&!Z.loop)if(x.isVertical()){if(le<G.startY&&x.translate<=x.maxTranslate()||le>G.startY&&x.translate>=x.minTranslate())return C.isTouched=!1,void(C.isMoved=!1)}else if(J1<G.startX&&x.translate<=x.maxTranslate()||J1>
1G.startX&&x.translate>=x.minTranslate())return;if(C.isTouchEvent&&w.activeElement&&o1.target===w.activeElement&&(0,a.Z)(o1.target).is(C.focusableElements))return C.isMoved=!0,void(x.allowClick=!1);if(C.allowTouchCallbacks&&x.emit("touchMove",o1),!(o1.targetTouches&&o1.targetTouches.length>1)){G.currentX=J1,G.currentY=le;var re=G.currentX-G.startX,He=G.currentY-G.startY;if(!(x.params.threshold&&Math.sqrt(Math.pow(re,2)+Math.pow(He,2))<x.params.threshold)){var B;if(void 0===C.isScrolling&&(x.isHorizontal()&&G.currentY===G.startY||x.isVertical()&&G.currentX===G.startX?C.isScrolling=!1:re*re+He*He>=25&&(B=180*Math.atan2(Math.abs(He),Math.abs(re))/Math.PI,C.isScrolling=x.isHorizontal()?B>Z.touchAngle:90-B>Z.touchAngle)),C.isScrolling&&x.emit("touchMoveOpposite",o1),void 0===C.startMoving&&(G.currentX!==G.startX||G.currentY!==G.startY)&&(C.startMoving=!0),C.isScrolling)return void(C.isTouched=!1);if(C.startMoving){x.allowClick=!1,!Z.cssMode&&o1.cancelable&&o1.preventDefault(),Z.touchMoveStopPropagation&&!Z.nested&&o1.stopPropagation(),C.isMoved||(Z.loop&&x.loopFix(),C.startTranslate=x.getTranslate(),x.setTransition(0),x.animating&&x.$wrapperEl.trigger("webkitTransitionEnd transitionend"),C.allowMomentumBounce=!1,Z.grabCursor&&(!0===x.allowSlideNext||!0===x.allowSlidePrev)&&x.setGrabCursor(!0),x.emit("sliderFirstMove",o1)),x.emit("sliderMove",o1),C.isMoved=!0;var V=x.isHorizontal()?re:He;G.diff=V,V*=Z.touchRatio,C1&&(V=-V),x.swipeDirection=V>0?"prev":"next",C.currentTranslate=V+C.startTranslate;var K=!0,m1=Z.resistanceRatio;if(Z.touchReleaseOnEdges&&(m1=0),V>0&&C.currentTranslate>x.minTranslate()?(K=!1,Z.resistance&&(C.currentTranslate=x.minTranslate()-1+Math.pow(-x.minTranslate()+C.startTranslate+V,m1))):V<0&&C.currentTranslate<x.maxTranslate()&&(K=!1,Z.resistance&&(C.currentTranslate=x.maxTranslate()+1-Math.pow(x.maxTranslate()-C.startTranslate-V,m1))),K&&(o1.preventedByNestedSwiper=!0),!x.allowSlideNext&&"next"===x.swipeDirection&&C.currentTranslate<C.startTranslate&&(C.currentTranslate=C.startTranslate),!x.allowSlidePrev&&"prev"===x.swipeDirection&&C.currentTranslate>C.startTranslate&&(C.currentTranslate=C.startTranslate),!x.allowSlidePrev&&!x.allowSlideNext&&(C.currentTranslate=C.startTranslate),Z.threshold>0){if(!(Math.abs(V)>Z.threshold||C.allowThresholdMove))return void(C.currentTranslate=C.startTranslate);
1if(!C.allowThresholdMove)return C.allowThresholdMove=!0,G.startX=G.currentX,G.startY=G.currentY,C.currentTranslate=C.startTranslate,void(G.diff=x.isHorizontal()?G.currentX-G.startX:G.currentY-G.startY)}!Z.followFinger||Z.cssMode||((Z.freeMode||Z.watchSlidesProgress||Z.watchSlidesVisibility)&&(x.updateActiveIndex(),x.updateSlidesClasses()),Z.freeMode&&(0===C.velocities.length&&C.velocities.push({position:G[x.isHorizontal()?"startX":"startY"],time:C.touchStartTime}),C.velocities.push({position:G[x.isHorizontal()?"currentX":"currentY"],time:(0,I.zO)()})),x.updateProgress(C.currentTranslate),x.setTranslate(C.currentTranslate))}}}}}}function ye(M){var w=this,x=w.touchEventsData,C=w.params,Z=w.touches,G=w.rtlTranslate,C1=w.$wrapperEl,v1=w.slidesGrid,o1=w.snapGrid;if(w.enabled){var J1=M;if(J1.originalEvent&&(J1=J1.originalEvent),x.allowTouchCallbacks&&w.emit("touchEnd",J1),x.allowTouchCallbacks=!1,!x.isTouched)return x.isMoved&&C.grabCursor&&w.setGrabCursor(!1),x.isMoved=!1,void(x.startMoving=!1);C.grabCursor&&x.isMoved&&x.isTouched&&(!0===w.allowSlideNext||!0===w.allowSlidePrev)&&w.setGrabCursor(!1);var He,le=(0,I.zO)(),re=le-x.touchStartTime;if(w.allowClick&&(w.updateClickedSlide(J1),w.emit("tap click",J1),re<300&&le-x.lastClickTime<300&&w.emit("doubleTap doubleClick",J1)),x.lastClickTime=(0,I.zO)(),(0,I.Y3)(function(){w.destroyed||(w.allowClick=!0)}),!x.isTouched||!x.isMoved||!w.swipeDirection||0===Z.diff||x.currentTranslate===x.startTranslate)return x.isTouched=!1,x.isMoved=!1,void(x.startMoving=!1);if(x.isTouched=!1,x.isMoved=!1,x.startMoving=!1,He=C.followFinger?G?w.translate:-w.translate:-x.currentTranslate,!C.cssMode){if(C.freeMode){if(He<-w.minTranslate())return void w.slideTo(w.activeIndex);if(He>-w.maxTranslate())return void w.slideTo(w.slides.length<o1.length?o1.length-1:w.slides.length-1);if(C.freeModeMomentum){if(x.velocities.length>1){var B=x.velocities.pop(),V=x.velocities.pop(),m1=B.time-V.time;w.velocity=(B.position-V.position)/m1,w.velocity/=2,Math.abs(w.velocity)<C.freeModeMinimumVelocity&&(w.velocity=0),(m1>150||(0,I.zO)()-B.time>300)&&(w.velocity=0)}else w.velocity=0;w.velocity*=C.freeModeMomentumVelocityRatio,x.velocities.length=0;var E1=1e3*C.freeModeMomentumRatio,Q1=w.translate+w.velocity*E1;G&&(Q1=-Q1);var Le,_e,Ne=!1,Te=20*Math.abs(w.velocity)*C.freeModeMomentumBounceRatio;if(Q1<w.maxTranslate())C.freeModeMomentumBounce?(Q1+w.maxTranslate()<-Te&&(Q1=w.maxTranslate()-Te),Le=w.maxTranslate(),Ne=!0,x.allowMomentumBounce=!0):Q1=w.maxTranslate(),C.loop&&C.centeredSlides&&(_e=!0);else if(Q1>w.minTranslate())C.freeModeMomentumBounce?(Q1-w.minTranslate()>Te&&(Q1=w.minTranslate()+Te),Le=w.minTranslate(),Ne=!0,x.allowMomentumBounce=!0):Q1=w.minTranslate(),C.loop&&C.centeredSlides&&(_e=!0);else if(C.freeModeSticky){for(var Ce,Ge=0;Ge<o1.length;Ge+=1)if(o1[Ge]>-Q1){Ce=Ge;break}Q1=-(Q1=Math.abs(o1[Ce]-Q1)<Math.abs(o1[Ce-1]-Q1)||"next"===w.swipeDirection?o1[Ce]:o1[Ce-1])}if(_e&&w.once("transitionEnd",function(){w.loopFix()}),0!==w.velocity){if(E1=G?Math.abs((-Q1-w.translate)/w.velocity):Math.abs((Q1-w.translate)/w.velocity),C.freeModeSticky){var v2=Math.abs((G?-Q1:Q1)-w.translate),n2=w.slidesSizesGrid[w.activeIndex];E1=v2<n2?C.speed:v2<2*n2?1.5*C.speed:2.5*C.speed}}else if(C.freeModeSticky)return void w.slideToClosest();C.freeModeMomentumBounce&&Ne?(w.updateProgress(Le),w.setTransition(E1),w.setTranslate(Q1),w.transitionStart(!0,w.swipeDirection),w.animating=!0,C1.transitionEnd(function(){!w||w.destroyed||!x.allowMomentumBounce||(w.emit("momentumBounce"),w.setTransition(C.speed),setTimeout(function(){w.setTranslate(Le),C1.transitionEnd(function(){!w||w.destroyed||w.transitionEnd()})},0))})):w.velocity?(w.updateProgress(Q1),w.setTransition(E1),w.setTranslate(Q1),w.transitionStart(!0,w.swipeDirection),w.animating||(w.animating=!0,C1.transitionEnd(function(){!w||w.destroyed||w.transitionEnd()}))):(w.emit("_freeModeNoMomentumRelease"),w.updateProgress(Q1)),w.updateActiveIndex(),w.updateSlidesClasses()}else{if(C.freeModeSticky)return void w.slideToClosest();C.freeMode&&w.emit("_freeModeNoMomentumRelease")}return void((!C.freeModeMomentum||re>=C.longSwipesMs)&&(w.updateProgress(),w.updateActiveIndex(),w.updateSlidesClasses()))}for(var Fe=0,r2=w.slidesSizesGrid[0],s2=0;s2<v1.length;s2+=s2<C.slidesPerGroupSkip?1:C.slidesPerGroup){var f2=s2<C.slidesPerGroupSkip-1?1:C.slidesPerGroup;void 0!==v1[s2+f2]?He>=v1[s2]&&He<v1[s2+f2]&&(Fe=s2,r2=v1[s2+f2]-v1[s2]):He>=v1[s2]&&(Fe=s2,r2=v1[v1.length-1]-v1[v1.length-2])}var u2=(He-v1[Fe])/r2,Xe=Fe<C.slidesPerGroupSkip-1?1:C.slidesPerGroup;if(re>C.longSwipesMs){if(!C.longSwipes)return void w.slideTo(w.activeIndex);"next"===w.swipeDirection&&w.slideTo(u2>=C.longSwipesRatio?Fe+Xe:Fe),"prev"===w.swipeDirection&&w.slideTo(u2>1-C.longSwipesRatio?Fe+Xe:Fe)}else{if(!C.shortSwipes)return void w.slideTo(w.activeIndex);!w.navigation||J1.target!==w.navigation.nextEl&&J1.target!==w.navigation.prevEl?("next"===w.swipeDirection&&w.slideTo(Fe+Xe),"prev"===w.swipeDirection&&w.slideTo(Fe)):w.slideTo(J1.target===w.navigation.nextEl?Fe+Xe:Fe)}}}}function ze(){var M=this,w=M.params,x=M.el;if(!x||0!==x.offsetWidth){w.breakpoints&&M.setBreakpoint();var C=M.allowSlideNext,Z=M.allowSlidePrev,G=M.snapGrid;M.allowSlideNext=!0,M.allowSlidePrev=!0,M.updateSize(),M.updateSlides(),M.updateSlidesClasses(),M.slideTo(("auto"===w.slidesPerView||w.slidesPerView>1)&&M.isEnd&&!M.isBeginning&&!M.params.centeredSlides?M.slides.length-1:M.activeIndex,0,!1,!0),M.autoplay&&M.autoplay.running&&M.autoplay.paused&&M.autoplay.run(),M.allowSlidePrev=Z,M.allowSlideNext=C,M.params.watchOverflow&&G!==M.snapGrid&&M.checkOverflow()}}function z2(M){var w=this;!w.enabled||w.allowClick||(w.params.preventClicks&&M.preventDefault(),w.params.preventClicksPropagation&&w.animating&&(M.stopPropagation(),M.stopImmediatePropagation()))}function i2(){var M=this,w=M.wrapperEl,x=M.rtlTranslate;if(M.enabled){M.previousTranslate=M.translate,M.translate=M.isHorizontal()?x?w.scrollWidth-w.offsetWidth-w.scrollLeft:-w.scrollLeft:-w.scrollTop,-0===M.translate&&(M.translate=0),M.updateActiveIndex(),M.updateSlidesClasses();var G=M.maxTranslate()-M.minTranslate();(0===G?0:(M.translate-M.minTranslate())/G)!==M.progress&&M.updateProgress(x?-M.translate:M.translate),M.emit("setTranslate",M.translate,!1)}}var Qe=!1;function O2(){}const J2={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!1,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",
1spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function l2(M,w){for(var x=0;x<w.length;x++){var C=w[x];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(M,C.key,C)}}var b1={modular:{useParams:function(w){var x=this;!x.modules||Object.keys(x.modules).forEach(function(C){var Z=x.modules[C];Z.params&&(0,I.l7)(w,Z.params)})},useModules:function(w){void 0===w&&(w={});var x=this;!x.modules||Object.keys(x.modules).forEach(function(C){var Z=x.modules[C],G=w[C]||{};
1Z.on&&x.on&&Object.keys(Z.on).forEach(function(C1){x.on(C1,Z.on[C1])}),Z.create&&Z.create.bind(x)(G)})}},eventsEmitter:{on:function(w,x,C){var Z=this;if("function"!=typeof x)return Z;var G=C?"unshift":"push";return w.split(" ").forEach(function(C1){Z.eventsListeners[C1]||(Z.eventsListeners[C1]=[]),Z.eventsListeners[C1][G](x)}),Z},once:function(w,x,C){var Z=this;if("function"!=typeof x)return Z;function G(){Z.off(w,G),G.__emitterProxy&&delete G.__emitterProxy;for(var C1=arguments.length,v1=new Array(C1),o1=0;o1<C1;o1++)v1[o1]=arguments[o1];x.apply(Z,v1)}return G.__emitterProxy=x,Z.on(w,G,C)},onAny:function(w,x){var C=this;if("function"!=typeof w)return C;var Z=x?"unshift":"push";return C.eventsAnyListeners.indexOf(w)<0&&C.eventsAnyListeners[Z](w),C},offAny:function(w){var x=this;if(!x.eventsAnyListeners)return x;var C=x.eventsAnyListeners.indexOf(w);return C>=0&&x.eventsAnyListeners.splice(C,1),x},off:function(w,x){var C=this;return C.eventsListeners&&w.split(" ").forEach(function(Z){void 0===x?C.eventsListeners[Z]=[]:C.eventsListeners[Z]&&C.eventsListeners[Z].forEach(function(G,C1){(G===x||G.__emitterProxy&&G.__emitterProxy===x)&&C.eventsListeners[Z].splice(C1,1)})}),C},emit:function(){var w=this;if(!w.eventsListeners)return w;for(var x,C,Z,G=arguments.length,C1=new Array(G),v1=0;v1<G;v1++)C1[v1]=arguments[v1];"string"==typeof C1[0]||Array.isArray(C1[0])?(x=C1[0],C=C1.slice(1,C1.length),Z=w):(x=C1[0].events,C=C1[0].data,Z=C1[0].context||w),C.unshift(Z);var o1=Array.isArray(x)?x:x.split(" ");return o1.forEach(function(Y1){w.eventsAnyListeners&&w.eventsAnyListeners.length&&w.eventsAnyListeners.forEach(function(J1){J1.apply(Z,[Y1].concat(C))}),w.eventsListeners&&w.eventsListeners[Y1]&&w.eventsListeners[Y1].forEach(function(J1){J1.apply(Z,C)})}),w}},update:{updateSize:function D1(){var w,x,M=this,C=M.$el;x=null!=M.params.height?M.params.height:C[0].clientHeight,!(0===(w=null!=M.params.width?M.params.width:C[0].clientWidth)&&M.isHorizontal()||0===x&&M.isVertical())&&(w=w-parseInt(C.css("padding-left")||0,10)-parseInt(C.css("padding-right")||0,10),x=x-parseInt(C.css("padding-top")||0,10)-parseInt(C.css("padding-bottom")||0,10),Number.isNaN(w)&&(w=0),Number.isNaN(x)&&(x=0),(0,I.l7)(M,{width:w,height:x,size:M.isHorizontal()?w:x}))},updateSlides:function K1(){var M=this;function w(R2){return M.isHorizontal()?R2:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[R2]}function x(R2,et){return parseFloat(R2.getPropertyValue(w(et))||0)}var C=M.params,Z=M.$wrapperEl,G=M.size,C1=M.rtlTranslate,v1=M.wrongRTL,o1=M.virtual&&C.virtual.enabled,Y1=o1?M.virtual.slides.length:M.slides.length,J1=Z.children("."+M.params.slideClass),le=o1?M.virtual.slides.length:J1.length,re=[],He=[],B=[],V=C.slidesOffsetBefore;"function"==typeof V&&(V=C.slidesOffsetBefore.call(M));var K=C.slidesOffsetAfter;"function"==typeof K&&(K=C.slidesOffsetAfter.call(M));var m1=M.snapGrid.length,E1=M.slidesGrid.length,$1=C.spaceBetween,Q1=-V,Ne=0,Le=0;if(void 0!==G){var Te,X2,pn,nt;"string"==typeof $1&&$1.indexOf("%")>=0&&($1=parseFloat($1.replace("%",""))/100*G),M.virtualSize=-$1,J1.css(C1?{marginLeft:"",marginBottom:"",marginTop:""}:{marginRight:"",marginBottom:"",marginTop:""}),C.slidesPerColumn>1&&(Te=Math.floor(le/C.slidesPerColumn)===le/M.params.slidesPerColumn?le:Math.ceil(le/C.slidesPerColumn)*C.slidesPerColumn,"auto"!==C.slidesPerView&&"row"===C.slidesPerColumnFill&&(Te=Math.max(Te,C.slidesPerView*C.slidesPerColumn)));for(var _e,Ce=C.slidesPerColumn,Ge=Te/Ce,v2=Math.floor(le/C.slidesPerColumn),n2=0;n2<le;n2+=1){_e=0;var Fe=J1.eq(n2);if(C.slidesPerColumn>1){var r2=void 0,s2=void 0,f2=void 0;if("row"===C.slidesPerColumnFill&&C.slidesPerGroup>1){var u2=Math.floor(n2/(C.slidesPerGroup*C.slidesPerColumn)),Xe=n2-C.slidesPerColumn*C.slidesPerGroup*u2,L2=0===u2?C.slidesPerGroup:Math.min(Math.ceil((le-u2*Ce*C.slidesPerGroup)/Ce),C.slidesPerGroup);f2=Math.floor(Xe/L2),Fe.css({"-webkit-box-ordinal-group":r2=(s2=Xe-f2*L2+u2*C.slidesPerGroup)+f2*Te/Ce,"-moz-box-ordinal-group":r2,"-ms-flex-order":r2,"-webkit-order":r2,order:r2})}else"column"===C.slidesPerColumnFill?(f2=n2-(s2=Math.floor(n2/Ce))*Ce,(s2>v2||s2===v2&&f2===Ce-1)&&(f2+=1)>=Ce&&(f2=0,s2+=1)):s2=n2-(f2=Math.floor(n2/Ge))*Ge;Fe.css(w("margin-top"),0!==f2?C.spaceBetween&&C.spaceBetween+"px":"")}if("none"!==Fe.css("display")){if("auto"===C.slidesPerView){var N2=getComputedStyle(Fe[0]),k2=Fe[0].style.transform,p2=Fe[0].style.webkitTransform;if(k2&&(Fe[0].style.transform="none"),p2&&(Fe[0].style.webkitTransform="none"),C.roundLengths)_e=M.isHorizontal()?Fe.outerWidth(!0):Fe.outerHeight(!0);else{var c2=x(N2,"width"),st=x(N2,"padding-left"),ct=x(N2,"padding-right"),tt=x(N2,"margin-left"),vt=x(N2,"margin-right"),gt=N2.getPropertyValue("box-sizing");if(gt&&"border-box"===gt)_e=c2+tt+vt;else{var jt=Fe[0];_e=c2+st+ct+tt+vt+(jt.offsetWidth-jt.clientWidth)}}k2&&(Fe[0].style.transform=k2),p2&&(Fe[0].style.webkitTransform=p2),C.roundLengths&&(_e=Math.floor(_e))}else _e=(G-(C.slidesPerView-1)*$1)/C.slidesPerView,C.roundLengths&&(_e=Math.floor(_e)),J1[n2]&&(J1[n2].style[w("width")]=_e+"px");J1[n2]&&(J1[n2].swiperSlideSize=_e),B.push(_e),C.centeredSlides?(Q1=Q1+_e/2+Ne/2+$1,0===Ne&&0!==n2&&(Q1=Q1-G/2-$1),0===n2&&(Q1=Q1-G/2-$1),Math.abs(Q1)<.001&&(Q1=0),C.roundLengths&&(Q1=Math.floor(Q1)),Le%C.slidesPerGroup==0&&re.push(Q1),He.push(Q1)):(C.roundLengths&&(Q1=Math.floor(Q1)),(Le-Math.min(M.params.slidesPerGroupSkip,Le))%M.params.slidesPerGroup==0&&re.push(Q1),He.push(Q1),Q1=Q1+_e+$1),M.virtualSize+=_e+$1,Ne=_e,Le+=1}}if(M.virtualSize=Math.max(M.virtualSize,G)+K,C1&&v1&&("slide"===C.effect||"coverflow"===C.effect)&&Z.css({width:M.virtualSize+C.spaceBetween+"px"}),C.setWrapperSize&&Z.css(((pn={})[w("width")]=M.virtualSize+C.spaceBetween+"px",pn)),C.slidesPerColumn>1&&(M.virtualSize=(_e+C.spaceBetween)*Te,M.virtualSize=Math.ceil(M.virtualSize/C.slidesPerColumn)-C.spaceBetween,Z.css(((nt={})[w("width")]=M.virtualSize+C.spaceBetween+"px",nt)),C.centeredSlides)){X2=[];for(var yt=0;yt<re.length;yt+=1){var Mt=re[yt];
1C.roundLengths&&(Mt=Math.floor(Mt)),re[yt]<M.virtualSize+re[0]&&X2.push(Mt)}re=X2}if(!C.centeredSlides){X2=[];for(var zt=0;zt<re.length;zt+=1){var Ot=re[zt];C.roundLengths&&(Ot=Math.floor(Ot)),re[zt]<=M.virtualSize-G&&X2.push(Ot)}re=X2,Math.floor(M.virtualSize-G)-Math.floor(re[re.length-1])>1&&re.push(M.virtualSize-G)}if(0===re.length&&(re=[0]),0!==C.spaceBetween){var It,cn=M.isHorizontal()&&C1?"marginLeft":w("marginRight");J1.filter(function(R2,et){return!C.cssMode||et!==J1.length-1}).css(((It={})[cn]=$1+"px",It))}if(C.centeredSlides&&C.centeredSlidesBounds){var Gt=0;B.forEach(function(R2){Gt+=R2+(C.spaceBetween?C.spaceBetween:0)});var mn=(Gt-=C.spaceBetween)-G;re=re.map(function(R2){return R2<0?-V:R2>mn?mn+K:R2})}if(C.centerInsufficientSlides){var Xt=0;if(B.forEach(function(R2){Xt+=R2+(C.spaceBetween?C.spaceBetween:0)}),(Xt-=C.spaceBetween)<G){var Sn=(G-Xt)/2;re.forEach(function(R2,et){re[et]=R2-Sn}),He.forEach(function(R2,et){He[et]=R2+Sn})}}(0,I.l7)(M,{slides:J1,snapGrid:re,slidesGrid:He,slidesSizesGrid:B}),le!==Y1&&M.emit("slidesLengthChange"),re.length!==m1&&(M.params.watchOverflow&&M.checkOverflow(),M.emit("snapGridLengthChange")),He.length!==E1&&M.emit("slidesGridLengthChange"),(C.watchSlidesProgress||C.watchSlidesVisibility)&&M.updateSlidesOffset()}},updateAutoHeight:function X1(M){var G,w=this,x=[],C=w.virtual&&w.params.virtual.enabled,Z=0;"number"==typeof M?w.setTransition(M):!0===M&&w.setTransition(w.params.speed);var C1=function(J1){return C?w.slides.filter(function(le){return parseInt(le.getAttribute("data-swiper-slide-index"),10)===J1})[0]:w.slides.eq(J1)[0]};if("auto"!==w.params.slidesPerView&&w.params.slidesPerView>1)if(w.params.centeredSlides)w.visibleSlides.each(function(Y1){x.push(Y1)});else for(G=0;G<Math.ceil(w.params.slidesPerView);G+=1){var v1=w.activeIndex+G;if(v1>w.slides.length&&!C)break;x.push(C1(v1))}else x.push(C1(w.activeIndex));for(G=0;G<x.length;G+=1)if(void 0!==x[G]){var o1=x[G].offsetHeight;Z=o1>Z?o1:Z}Z&&w.$wrapperEl.css("height",Z+"px")},updateSlidesOffset:function Se(){for(var w=this.slides,x=0;x<w.length;x+=1)w[x].swiperSlideOffset=this.isHorizontal()?w[x].offsetLeft:w[x].offsetTop},updateSlidesProgress:function Me(M){void 0===M&&(M=this&&this.translate||0);var w=this,x=w.params,C=w.slides,Z=w.rtlTranslate;if(0!==C.length){void 0===C[0].swiperSlideOffset&&w.updateSlidesOffset();var G=-M;Z&&(G=M),C.removeClass(x.slideVisibleClass),w.visibleSlidesIndexes=[],w.visibleSlides=[];for(var C1=0;C1<C.length;C1+=1){var v1=C[C1],o1=(G+(x.centeredSlides?w.minTranslate():0)-v1.swiperSlideOffset)/(v1.swiperSlideSize+x.spaceBetween);if(x.watchSlidesVisibility||x.centeredSlides&&x.autoHeight){var Y1=-(G-v1.swiperSlideOffset),J1=Y1+w.slidesSizesGrid[C1];(Y1>=0&&Y1<w.size-1||J1>1&&J1<=w.size||Y1<=0&&J1>=w.size)&&(w.visibleSlides.push(v1),w.visibleSlidesIndexes.push(C1),C.eq(C1).addClass(x.slideVisibleClass))}v1.progress=Z?-o1:o1}w.visibleSlides=(0,a.Z)(w.visibleSlides)}},updateProgress:function ae(M){var w=this;void 0===M&&(M=w&&w.translate&&w.translate*(w.rtlTranslate?-1:1)||0);var C=w.params,Z=w.maxTranslate()-w.minTranslate(),G=w.progress,C1=w.isBeginning,v1=w.isEnd,o1=C1,Y1=v1;0===Z?(G=0,C1=!0,v1=!0):(C1=(G=(M-w.minTranslate())/Z)<=0,v1=G>=1),(0,I.l7)(w,{progress:G,isBeginning:C1,isEnd:v1}),(C.watchSlidesProgress||C.watchSlidesVisibility||C.centeredSlides&&C.autoHeight)&&w.updateSlidesProgress(M),C1&&!o1&&w.emit("reachBeginning toEdge"),v1&&!Y1&&w.emit("reachEnd toEdge"),(o1&&!C1||Y1&&!v1)&&w.emit("fromEdge"),w.emit("progress",G)},updateSlidesClasses:function Ee(){var v1,M=this,w=M.slides,x=M.params,C=M.$wrapperEl,Z=M.activeIndex,G=M.realIndex,C1=M.virtual&&x.virtual.enabled;w.removeClass(x.slideActiveClass+" "+x.slideNextClass+" "+x.slidePrevClass+" "+x.slideDuplicateActiveClass+" "+x.slideDuplicateNextClass+" "+x.slideDuplicatePrevClass),(v1=C1?M.$wrapperEl.find("."+x.slideClass+'[data-swiper-slide-index="'+Z+'"]'):w.eq(Z)).addClass(x.slideActiveClass),x.loop&&(v1.hasClass(x.slideDuplicateClass)?C.children("."+x.slideClass+":not(."+x.slideDuplicateClass+')[data-swiper-slide-index="'+G+'"]').addClass(x.slideDuplicateActiveClass):C.children("."+x.slideClass+"."+x.slideDuplicateClass+'[data-swiper-slide-index="'+G+'"]').addClass(x.slideDuplicateActiveClass));var o1=v1.nextAll("."+x.slideClass).eq(0).addClass(x.slideNextClass);x.loop&&0===o1.length&&(o1=w.eq(0)).addClass(x.slideNextClass);var Y1=v1.prevAll("."+x.slideClass).eq(0).addClass(x.slidePrevClass);x.loop&&0===Y1.length&&(Y1=w.eq(-1)).addClass(x.slidePrevClass),x.loop&&(o1.hasClass(x.slideDuplicateClass)?C.children("."+x.slideClass+":not(."+x.slideDuplicateClass+')[data-swiper-slide-index="'+o1.attr("data-swiper-slide-index")+'"]').addClass(x.slideDuplicateNextClass):C.children("."+x.slideClass+"."+x.slideDuplicateClass+'[data-swiper-slide-index="'+o1.attr("data-swiper-slide-index")+'"]').addClass(x.slideDuplicateNextClass),Y1.hasClass(x.slideDuplicateClass)?C.children("."+x.slideClass+":not(."+x.slideDuplicateClass+')[data-swiper-slide-index="'+Y1.attr("data-swiper-slide-index")+'"]').addClass(x.slideDuplicatePrevClass):C.children("."+x.slideClass+"."+x.slideDuplicateClass+'[data-swiper-slide-index="'+Y1.attr("data-swiper-slide-index")+'"]').addClass(x.slideDuplicatePrevClass)),M.emitSlidesClasses()},updateActiveIndex:function Ae(M){var J1,w=this,x=w.rtlTranslate?w.translate:-w.translate,C=w.slidesGrid,Z=w.snapGrid,G=w.params,C1=w.activeIndex,v1=w.realIndex,o1=w.snapIndex,Y1=M;if(void 0===Y1){for(var le=0;le<C.length;le+=1)void 0!==C[le+1]?x>=C[le]&&x<C[le+1]-(C[le+1]-C[le])/2?Y1=le:x>=C[le]&&x<C[le+1]&&(Y1=le+1):x>=C[le]&&(Y1=le);G.normalizeSlideIndex&&(Y1<0||void 0===Y1)&&(Y1=0)}if(Z.indexOf(x)>=0)J1=Z.indexOf(x);else{var re=Math.min(G.slidesPerGroupSkip,Y1);J1=re+Math.floor((Y1-re)/G.slidesPerGroup)}if(J1>=Z.length&&(J1=Z.length-1),Y1!==C1){var He=parseInt(w.slides.eq(Y1).attr("data-swiper-slide-index")||Y1,10);(0,I.l7)(w,{snapIndex:J1,realIndex:He,previousIndex:C1,activeIndex:Y1}),w.emit("activeIndexChange"),w.emit("snapIndexChange"),v1!==He&&w.emit("realIndexChange"),(w.initialized||w.params.runCallbacksOnInit)&&w.emit("slideChange")}else J1!==o1&&(w.snapIndex=J1,w.emit("snapIndexChange"))},updateClickedSlide:function ke(M){var G,w=this,x=w.params,C=(0,a.Z)(M.target).closest("."+x.slideClass)[0],Z=!1;if(C)for(var C1=0;C1<w.slides.length;C1+=1)if(w.slides[C1]===C){Z=!0,G=C1;break}if(!C||!Z)return w.clickedSlide=void 0,void(w.clickedIndex=void 0);w.clickedSlide=C,w.clickedIndex=w.virtual&&w.params.virtual.enabled?parseInt((0,a.Z)(C).attr("data-swiper-slide-index"),10):G,x.slideToClickedSlide&&void 0!==w.clickedIndex&&w.clickedIndex!==w.activeIndex&&w.slideToClickedSlide()}},translate:{getTranslate:function ie(M){void 0===M&&(M=this.isHorizontal()?"x":"y");var w=this,x=w.params,C=w.rtlTranslate,Z=w.translate;if(x.virtualTranslate)return C?-Z:Z;if(x.cssMode)return Z;var C1=(0,I.R6)(w.$wrapperEl[0],M);return C&&(C1=-C1),C1||0},setTranslate:function G1(M,w){var x=this,C=x.rtlTranslate,Z=x.params,G=x.$wrapperEl,C1=x.wrapperEl,v1=x.progress,o1=0,Y1=0;x.isHorizontal()?o1=C?-M:M:Y1=M,Z.roundLengths&&(o1=Math.floor(o1),Y1=Math.floor(Y1)),Z.cssMode?C1[x.isHorizontal()?"scrollLeft":"scrollTop"]=x.isHorizontal()?-o1:-Y1:Z.virtualTranslate||G.transform("translate3d("+o1+"px, "+Y1+"px, 0px)"),x.previousTranslate=x.translate,x.translate=x.isHorizontal()?o1:Y1;var re=x.maxTranslate()-x.minTranslate();(0===re?0:(M-x.minTranslate())/re)!==v1&&x.updateProgress(M),x.emit("setTranslate",x.translate,w)},minTranslate:function ne(){return-this.snapGrid[0]},maxTranslate:function Ke(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function t2(M,w,x,C,Z){void 0===M&&(M=0),void 0===w&&(w=this.params.speed),void 0===x&&(x=!0),void 0===C&&(C=!0);var G=this,C1=G.params,v1=G.wrapperEl;if(G.animating&&C1.preventInteractionOnTransition)return!1;var J1,o1=G.minTranslate(),Y1=G.maxTranslate();if(G.updateProgress(J1=C&&M>
1o1?o1:C&&M<Y1?Y1:M),C1.cssMode){var le=G.isHorizontal();if(0===w)v1[le?"scrollLeft":"scrollTop"]=-J1;else if(v1.scrollTo){var re;v1.scrollTo(((re={})[le?"left":"top"]=-J1,re.behavior="smooth",re))}else v1[le?"scrollLeft":"scrollTop"]=-J1;return!0}return 0===w?(G.setTransition(0),G.setTranslate(J1),x&&(G.emit("beforeTransitionStart",w,Z),G.emit("transitionEnd"))):(G.setTransition(w),G.setTranslate(J1),x&&(G.emit("beforeTransitionStart",w,Z),G.emit("transitionStart")),G.animating||(G.animating=!0,G.onTranslateToWrapperTransitionEnd||(G.onTranslateToWrapperTransitionEnd=function(B){!G||G.destroyed||B.target===this&&(G.$wrapperEl[0].removeEventListener("transitionend",G.onTranslateToWrapperTransitionEnd),G.$wrapperEl[0].removeEventListener("webkitTransitionEnd",G.onTranslateToWrapperTransitionEnd),G.onTranslateToWrapperTransitionEnd=null,delete G.onTranslateToWrapperTransitionEnd,x&&G.emit("transitionEnd"))}),G.$wrapperEl[0].addEventListener("transitionend",G.onTranslateToWrapperTransitionEnd),G.$wrapperEl[0].addEventListener("webkitTransitionEnd",G.onTranslateToWrapperTransitionEnd))),!0}},transition:{setTransition:function H1(M,w){var x=this;x.params.cssMode||x.$wrapperEl.transition(M),x.emit("setTransition",M,w)},transitionStart:function O1(M,w){void 0===M&&(M=!0);var x=this,C=x.activeIndex,Z=x.params,G=x.previousIndex;if(!Z.cssMode){Z.autoHeight&&x.updateAutoHeight();var C1=w;if(C1||(C1=C>G?"next":C<G?"prev":"reset"),x.emit("transitionStart"),M&&C!==G){if("reset"===C1)return void x.emit("slideResetTransitionStart");x.emit("slideChangeTransitionStart"),x.emit("next"===C1?"slideNextTransitionStart":"slidePrevTransitionStart")}}},transitionEnd:function Z1(M,w){void 0===M&&(M=!0);var x=this,C=x.activeIndex,Z=x.previousIndex,G=x.params;if(x.animating=!1,!G.cssMode){x.setTransition(0);var C1=w;if(C1||(C1=C>Z?"next":C<Z?"prev":"reset"),x.emit("transitionEnd"),M&&C!==Z){if("reset"===C1)return void x.emit("slideResetTransitionEnd");x.emit("slideChangeTransitionEnd"),x.emit("next"===C1?"slideNextTransitionEnd":"slidePrevTransitionEnd")}}}},slide:{slideTo:function I1(M,w,x,C,Z){if(void 0===M&&(M=0),void 0===w&&(w=this.params.speed),void 0===x&&(x=!0),"number"!=typeof M&&"string"!=typeof M)throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. ["+typeof M+"] given.");if("string"==typeof M){var G=parseInt(M,10);if(!isFinite(G))throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. ["+M+"] given.");M=G}var v1=this,o1=M;o1<0&&(o1=0);var Y1=v1.params,J1=v1.snapGrid,le=v1.slidesGrid,re=v1.previousIndex,He=v1.activeIndex,B=v1.rtlTranslate,V=v1.wrapperEl;if(v1.animating&&Y1.preventInteractionOnTransition||!v1.enabled&&!C&&!Z)return!1;var m1=Math.min(v1.params.slidesPerGroupSkip,o1),E1=m1+Math.floor((o1-m1)/v1.params.slidesPerGroup);E1>=J1.length&&(E1=J1.length-1),(He||Y1.initialSlide||0)===(re||0)&&x&&v1.emit("beforeSlideChangeStart");var _e,$1=-J1[E1];if(v1.updateProgress($1),Y1.normalizeSlideIndex)for(var Q1=0;Q1<le.length;Q1+=1){var Ne=-Math.floor(100*$1),Le=Math.floor(100*le[Q1]),Te=Math.floor(100*le[Q1+1]);void 0!==le[Q1+1]?Ne>=Le&&Ne<Te-(Te-Le)/2?o1=Q1:Ne>=Le&&Ne<Te&&(o1=Q1+1):Ne>=Le&&(o1=Q1)}if(v1.initialized&&o1!==He&&(!v1.allowSlideNext&&$1<v1.translate&&$1<v1.minTranslate()||!v1.allowSlidePrev&&$1>v1.translate&&$1>v1.maxTranslate()&&(He||0)!==o1))return!1;if(_e=o1>He?"next":o1<He?"prev":"reset",B&&-$1===v1.translate||!B&&$1===v1.translate)return v1.updateActiveIndex(o1),Y1.autoHeight&&v1.updateAutoHeight(),v1.updateSlidesClasses(),"slide"!==Y1.effect&&v1.setTranslate($1),"reset"!==_e&&(v1.transitionStart(x,_e),v1.transitionEnd(x,_e)),!1;if(Y1.cssMode){var Ce=v1.isHorizontal(),Ge=-$1;if(B&&(Ge=V.scrollWidth-V.offsetWidth-Ge),0===w)V[Ce?"scrollLeft":"scrollTop"]=Ge;else if(V.scrollTo){var v2;V.scrollTo(((v2={})[Ce?"left":"top"]=Ge,v2.behavior="smooth",v2))}else V[Ce?"scrollLeft":"scrollTop"]=Ge;return!0}return 0===w?(v1.setTransition(0),v1.setTranslate($1),v1.updateActiveIndex(o1),v1.updateSlidesClasses(),v1.emit("beforeTransitionStart",w,C),v1.transitionStart(x,_e),v1.transitionEnd(x,_e)):(v1.setTransition(w),v1.setTranslate($1),v1.updateActiveIndex(o1),v1.updateSlidesClasses(),v1.emit("beforeTransitionStart",w,C),v1.transitionStart(x,_e),v1.animating||(v1.animating=!0,v1.onSlideToWrapperTransitionEnd||(v1.onSlideToWrapperTransitionEnd=function(Fe){!v1||v1.destroyed||Fe.target===this&&(v1.$wrapperEl[0].removeEventListener("transitionend",v1.onSlideToWrapperTransitionEnd),v1.$wrapperEl[0].removeEventListener("webkitTransitionEnd",v1.onSlideToWrapperTransitionEnd),v1.onSlideToWrapperTransitionEnd=null,delete v1.onSlideToWrapperTransitionEnd,v1.transitionEnd(x,_e))}),v1.$wrapperEl[0].addEventListener("transitionend",v1.onSlideToWrapperTransitionEnd),v1.$wrapperEl[0].addEventListener("webkitTransitionEnd",v1.onSlideToWrapperTransitionEnd))),!0},slideToLoop:function O(M,w,x,C){void 0===M&&(M=0),void 0===w&&(w=this.params.speed),void 0===x&&(x=!0);var Z=this,G=M;return Z.params.loop&&(G+=Z.loopedSlides),Z.slideTo(G,w,x,C)},slideNext:function h1(M,w,x){void 0===M&&(M=this.params.speed),void 0===w&&(w=!0);var C=this,Z=C.params;if(!C.enabled)return C;var v1=C.activeIndex<Z.slidesPerGroupSkip?1:Z.slidesPerGroup;if(Z.loop){if(C.animating&&Z.loopPreventsSlide)return!1;C.loopFix(),C._clientLeft=C.$wrapperEl[0].clientLeft}return C.slideTo(C.activeIndex+v1,M,w,x)},slidePrev:function q1(M,w,x){void 0===M&&(M=this.params.speed),void 0===w&&(w=!0);var C=this,Z=C.params,C1=C.snapGrid,v1=C.slidesGrid,o1=C.rtlTranslate;if(!C.enabled)return C;if(Z.loop){if(C.animating&&Z.loopPreventsSlide)return!1;C.loopFix(),C._clientLeft=C.$wrapperEl[0].clientLeft}function le(K){return K<0?-Math.floor(Math.abs(K)):Math.floor(K)}var V,re=le(o1?C.translate:-C.translate),He=C1.map(function(K){return le(K)}),B=C1[He.indexOf(re)-1];return void 0===B&&Z.cssMode&&C1.forEach(function(K){!B&&re>=K&&(B=K)}),void 0!==B&&(V=v1.indexOf(B))<0&&(V=C.activeIndex-1),C.slideTo(V,M,w,x)},slideReset:function _1(M,w,x){return void 0===M&&(M=this.params.speed),void 0===w&&(w=!0),this.slideTo(this.activeIndex,M,w,x)},slideToClosest:function T1(M,w,x,C){void 0===M&&(M=this.params.speed),void 0===w&&(w=!0),void 0===C&&(C=.5);var Z=this,G=Z.activeIndex,C1=Math.min(Z.params.slidesPerGroupSkip,G),v1=C1+Math.floor((G-C1)/Z.params.slidesPerGroup),o1=Z.rtlTranslate?Z.translate:-Z.translate;if(o1>=Z.snapGrid[v1]){var Y1=Z.snapGrid[v1];o1-Y1>(Z.snapGrid[v1+1]-Y1)*C&&(G+=Z.params.slidesPerGroup)}else{var le=Z.snapGrid[v1-1];o1-le<=(Z.snapGrid[v1]-le)*C&&(G-=Z.params.slidesPerGroup)}return G=Math.max(G,0),G=Math.min(G,Z.slidesGrid.length-1),Z.slideTo(G,M,w,x)},slideToClickedSlide:function p1(){var G,M=this,w=M.params,x=M.$wrapperEl,C="auto"===w.slidesPerView?M.slidesPerViewDynamic():w.slidesPerView,Z=M.clickedIndex;if(w.loop){if(M.animating)return;G=parseInt((0,a.Z)(M.clickedSlide).attr("data-swiper-slide-index"),10),w.centeredSlides?Z<M.loopedSlides-C/2||Z>M.slides.length-M.loopedSlides+C/2?(M.loopFix(),Z=x.children("."+w.slideClass+'[data-swiper-slide-index="'+G+'"]:not(.'+w.slideDuplicateClass+")").eq(0).index(),(0,I.Y3)(function(){M.slideTo(Z)})):M.slideTo(Z):Z>M.slides.length-C?(M.loopFix(),Z=x.children("."+w.slideClass+'[data-swiper-slide-index="'+G+'"]:not(.'+w.slideDuplicateClass+")").eq(0).index(),(0,I.Y3)(function(){M.slideTo(Z)})):M.slideTo(Z)}else M.slideTo(Z)}},loop:{loopCreate:function B1(){var M=this,w=(0,o.Me)(),x=M.params,C=M.$wrapperEl;C.children("."+x.slideClass+"."+x.slideDuplicateClass).remove();var Z=C.children("."+x.slideClass);if(x.loopFillGroupWithBlank){var G=x.slidesPerGroup-Z.length%x.slidesPerGroup;if(G!==x.slidesPerGroup){for(var C1=0;C1<G;C1+=1){var v1=(0,a.Z)(w.createElement("div")).addClass(x.slideClass+" "+x.slideBlankClass);C.append(v1)}Z=C.children("."+x.slideClass)}}"auto"===x.slidesPerView&&!x.loopedSlides&&(x.loopedSlides=Z.length),M.loopedSlides=Math.ceil(parseFloat(x.loopedSlides||x.slidesPerView,10)),M.loopedSlides+=x.loopAdditionalSlides,M.loopedSlides>Z.length&&(M.loopedSlides=Z.length);var o1=[],Y1=[];Z.each(function(re,He){var B=(0,a.Z)(re);He<M.loopedSlides&&Y1.push(re),He<Z.length&&He>=Z.length-M.loopedSlides&&o1.push(re),B.attr("data-swiper-slide-index",He)});for(var J1=0;J1<Y1.length;J1+=1)C.append((0,a.Z)(Y1[J1].cloneNode(!0)).addClass(x.slideDuplicateClass));for(var le=o1.length-1;le>=0;le-=1)C.prepend((0,a.Z)(o1[le].cloneNode(!0)).addClass(x.slideDuplicateClass))},loopFix:function me(){var M=this;M.emit("beforeLoopFix");var o1,w=M.activeIndex,x=M.slides,C=M.loopedSlides,Z=M.allowSlidePrev,G=M.allowSlideNext,C1=M.snapGrid,v1=M.rtlTranslate;M.allowSlidePrev=!0,M.allowSlideNext=!0;var J1=-C1[w]-M.getTranslate();w<C?(o1=x.length-3*C+w,M.slideTo(o1+=C,0,!1,!0)&&0!==J1&&M.setTranslate((v1?-M.translate:M.translate)-J1)
1):w>=x.length-C&&(o1=-x.length+w+C,M.slideTo(o1+=C,0,!1,!0)&&0!==J1&&M.setTranslate((v1?-M.translate:M.translate)-J1)),M.allowSlidePrev=Z,M.allowSlideNext=G,M.emit("loopFix")},loopDestroy:function Oe(){var M=this,x=M.params,C=M.slides;M.$wrapperEl.children("."+x.slideClass+"."+x.slideDuplicateClass+",."+x.slideClass+"."+x.slideBlankClass).remove(),C.removeAttr("data-swiper-slide-index")}},grabCursor:{setGrabCursor:function y2(M){var w=this;if(!(w.support.touch||!w.params.simulateTouch||w.params.watchOverflow&&w.isLocked||w.params.cssMode)){var x=w.el;x.style.cursor="move",x.style.cursor=M?"-webkit-grabbing":"-webkit-grab",x.style.cursor=M?"-moz-grabbin":"-moz-grab",x.style.cursor=M?"grabbing":"grab"}},unsetGrabCursor:function P2(){var M=this;M.support.touch||M.params.watchOverflow&&M.isLocked||M.params.cssMode||(M.el.style.cursor="")}},manipulation:{appendSlide:function A2(M){var w=this,x=w.$wrapperEl,C=w.params;if(C.loop&&w.loopDestroy(),"object"==typeof M&&"length"in M)for(var Z=0;Z<M.length;Z+=1)M[Z]&&x.append(M[Z]);else x.append(M);C.loop&&w.loopCreate(),C.observer&&w.support.observer||w.update()},prependSlide:function V2(M){var w=this,x=w.params,C=w.$wrapperEl,Z=w.activeIndex;x.loop&&w.loopDestroy();var G=Z+1;if("object"==typeof M&&"length"in M){for(var C1=0;C1<M.length;C1+=1)M[C1]&&C.prepend(M[C1]);G=Z+M.length}else C.prepend(M);x.loop&&w.loopCreate(),x.observer&&w.support.observer||w.update(),w.slideTo(G,0,!1)},addSlide:function mt(M,w){var x=this,C=x.$wrapperEl,Z=x.params,C1=x.activeIndex;Z.loop&&(C1-=x.loopedSlides,x.loopDestroy(),x.slides=C.children("."+Z.slideClass));var v1=x.slides.length;if(M<=0)x.prependSlide(w);else if(M>=v1)x.appendSlide(w);else{for(var o1=C1>M?C1+1:C1,Y1=[],J1=v1-1;J1>=M;J1-=1){var le=x.slides.eq(J1);le.remove(),Y1.unshift(le)}if("object"==typeof w&&"length"in w){for(var re=0;re<w.length;re+=1)w[re]&&C.append(w[re]);o1=C1>M?C1+w.length:C1}else C.append(w);for(var He=0;He<Y1.length;He+=1)C.append(Y1[He]);Z.loop&&x.loopCreate(),Z.observer&&x.support.observer||x.update(),x.slideTo(Z.loop?o1+x.loopedSlides:o1,0,!1)}},removeSlide:function We(M){var w=this,x=w.params,C=w.$wrapperEl,G=w.activeIndex;x.loop&&(G-=w.loopedSlides,w.loopDestroy(),w.slides=C.children("."+x.slideClass));var v1,C1=G;if("object"==typeof M&&"length"in M){for(var o1=0;o1<M.length;o1+=1)w.slides[v1=M[o1]]&&w.slides.eq(v1).remove(),v1<C1&&(C1-=1);C1=Math.max(C1,0)}else w.slides[v1=M]&&w.slides.eq(v1).remove(),v1<C1&&(C1-=1),C1=Math.max(C1,0);x.loop&&w.loopCreate(),x.observer&&w.support.observer||w.update(),w.slideTo(x.loop?C1+w.loopedSlides:C1,0,!1)},removeAllSlides:function ue(){for(var w=[],x=0;x<this.slides.length;x+=1)w.push(x);this.removeSlide(w)}},events:{attachEvents:function x2(){var M=this,w=(0,o.Me)(),x=M.params,C=M.touchEvents,Z=M.el,G=M.wrapperEl,C1=M.device,v1=M.support;M.onTouchStart=se.bind(M),M.onTouchMove=ce.bind(M),M.onTouchEnd=ye.bind(M),x.cssMode&&(M.onScroll=i2.bind(M)),M.onClick=z2.bind(M);var o1=!!x.nested;if(!v1.touch&&v1.pointerEvents)Z.addEventListener(C.start,M.onTouchStart,!1),w.addEventListener(C.move,M.onTouchMove,o1),w.addEventListener(C.end,M.onTouchEnd,!1);else{if(v1.touch){var Y1=!("touchstart"!==C.start||!v1.passiveListener||!x.passiveListeners)&&{passive:!0,capture:!1};Z.addEventListener(C.start,M.onTouchStart,Y1),Z.addEventListener(C.move,M.onTouchMove,v1.passiveListener?{passive:!1,capture:o1}:o1),Z.addEventListener(C.end,M.onTouchEnd,Y1),C.cancel&&Z.addEventListener(C.cancel,M.onTouchEnd,Y1),Qe||(w.addEventListener("touchstart",O2),Qe=!0)}(x.simulateTouch&&!C1.ios&&!C1.android||x.simulateTouch&&!v1.touch&&C1.ios)&&(Z.addEventListener("mousedown",M.onTouchStart,!1),w.addEventListener("mousemove",M.onTouchMove,o1),w.addEventListener("mouseup",M.onTouchEnd,!1))}(x.preventClicks||x.preventClicksPropagation)&&Z.addEventListener("click",M.onClick,!0),x.cssMode&&G.addEventListener("scroll",M.onScroll),M.on(x.updateOnWindowResize?C1.ios||C1.android?"resize orientationchange observerUpdate":"resize observerUpdate":"observerUpdate",ze,!0)},detachEvents:function W2(){var M=this,w=(0,o.Me)(),x=M.params,C=M.touchEvents,Z=M.el,G=M.wrapperEl,C1=M.device,v1=M.support,o1=!!x.nested;if(!v1.touch&&v1.pointerEvents)Z.removeEventListener(C.start,M.onTouchStart,!1),w.removeEventListener(C.move,M.onTouchMove,o1),w.removeEventListener(C.end,M.onTouchEnd,!1);else{if(v1.touch){var Y1=!("onTouchStart"!==C.start||!v1.passiveListener||!x.passiveListeners)&&{passive:!0,capture:!1};Z.removeEventListener(C.start,M.onTouchStart,Y1),Z.removeEventListener(C.move,M.onTouchMove,o1),Z.removeEventListener(C.end,M.onTouchEnd,Y1),C.cancel&&Z.removeEventListener(C.cancel,M.onTouchEnd,Y1)}(x.simulateTouch&&!C1.ios&&!C1.android||x.simulateTouch&&!v1.touch&&C1.ios)&&(Z.removeEventListener("mousedown",M.onTouchStart,!1),w.removeEventListener("mousemove",M.onTouchMove,o1),w.removeEventListener("mouseup",M.onTouchEnd,!1))}(x.preventClicks||x.preventClicksPropagation)&&Z.removeEventListener("click",M.onClick,!0),x.cssMode&&G.removeEventListener("scroll",M.onScroll),M.off(C1.ios||C1.android?"resize orientationchange observerUpdate":"resize observerUpdate",ze)}},breakpoints:{setBreakpoint:function Pe(){var M=this,w=M.activeIndex,x=M.initialized,C=M.loopedSlides,Z=void 0===C?0:C,G=M.params,C1=M.$el,v1=G.breakpoints;
1if(v1&&(!v1||0!==Object.keys(v1).length)){var o1=M.getBreakpoint(v1,M.params.breakpointsBase,M.el);if(o1&&M.currentBreakpoint!==o1){var Y1=o1 in v1?v1[o1]:void 0;Y1&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach(function(m1){var E1=Y1[m1];void 0!==E1&&(Y1[m1]="slidesPerView"!==m1||"AUTO"!==E1&&"auto"!==E1?"slidesPerView"===m1?parseFloat(E1):parseInt(E1,10):"auto")});var J1=Y1||M.originalParams,le=G.slidesPerColumn>1,re=J1.slidesPerColumn>1,He=G.enabled;le&&!re?(C1.removeClass(G.containerModifierClass+"multirow "+G.containerModifierClass+"multirow-column"),M.emitContainerClasses()):!le&&re&&(C1.addClass(G.containerModifierClass+"multirow"),(J1.slidesPerColumnFill&&"column"===J1.slidesPerColumnFill||!J1.slidesPerColumnFill&&"column"===G.slidesPerColumnFill)&&C1.addClass(G.containerModifierClass+"multirow-column"),M.emitContainerClasses());var B=J1.direction&&J1.direction!==G.direction,V=G.loop&&(J1.slidesPerView!==G.slidesPerView||B);B&&x&&M.changeDirection(),(0,I.l7)(M.params,J1);var K=M.params.enabled;(0,I.l7)(M,{allowTouchMove:M.params.allowTouchMove,allowSlideNext:M.params.allowSlideNext,allowSlidePrev:M.params.allowSlidePrev}),He&&!K?M.disable():!He&&K&&M.enable(),M.currentBreakpoint=o1,M.emit("_beforeBreakpoint",J1),V&&x&&(M.loopDestroy(),M.loopCreate(),M.updateSlides(),M.slideTo(w-Z+M.loopedSlides,0,!1)),M.emit("breakpoint",J1)}}},getBreakpoint:function Ye(M,w,x){if(void 0===w&&(w="window"),M&&("container"!==w||x)){var C=!1,Z=(0,o.Jj)(),G="window"===w?Z.innerHeight:x.clientHeight,C1=Object.keys(M).map(function(le){if("string"==typeof le&&0===le.indexOf("@")){var re=parseFloat(le.substr(1));return{value:G*re,point:le}}return{value:le,point:le}});C1.sort(function(le,re){return parseInt(le.value,10)-parseInt(re.value,10)});for(var v1=0;v1<C1.length;v1+=1){var o1=C1[v1],Y1=o1.point,J1=o1.value;"window"===w?Z.matchMedia("(min-width: "+J1+"px)").matches&&(C=Y1):J1<=x.clientWidth&&(C=Y1)}return C||"max"}}},checkOverflow:{checkOverflow:function I2(){var M=this,w=M.params,x=M.isLocked,C=M.slides.length>0&&w.slidesOffsetBefore+w.spaceBetween*(M.slides.length-1)+M.slides[0].offsetWidth*M.slides.length;M.isLocked=w.slidesOffsetBefore&&w.slidesOffsetAfter&&C?C<=M.size:1===M.snapGrid.length,M.allowSlideNext=!M.isLocked,M.allowSlidePrev=!M.isLocked,x!==M.isLocked&&M.emit(M.isLocked?"lock":"unlock"),x&&x!==M.isLocked&&(M.isEnd=!1,M.navigation&&M.navigation.update())}},classes:{addClasses:function c1(){var M=this,w=M.classNames,x=M.params,Z=M.$el,G=M.device,C1=M.support,v1=function j1(M,w){var x=[];return M.forEach(function(C){"object"==typeof C?Object.keys(C).forEach(function(Z){C[Z]&&x.push(w+Z)}):"string"==typeof C&&x.push(w+C)}),x}(["initialized",x.direction,{"pointer-events":C1.pointerEvents&&!C1.touch},{"free-mode":x.freeMode},{autoheight:x.autoHeight},{rtl:M.rtl},{multirow:x.slidesPerColumn>1},{"multirow-column":x.slidesPerColumn>1&&"column"===x.slidesPerColumnFill},{android:G.android},{ios:G.ios},{"css-mode":x.cssMode}],x.containerModifierClass);w.push.apply(w,v1),Z.addClass([].concat(w).join(" ")),M.emitContainerClasses()},removeClasses:function F1(){var M=this;M.$el.removeClass(M.classNames.join(" ")),M.emitContainerClasses()}},images:{loadImage:function Ze(M,w,x,C,Z,G){var v1,C1=(0,o.Jj)();function o1(){G&&G()}(0,a.Z)(M).parent("picture")[0]||M.complete&&Z||!w?o1():((v1=new C1.Image).onload=o1,v1.onerror=o1,C&&(v1.sizes=C),x&&(v1.srcset=x),w&&(v1.src=w))},preloadImages:function E2(){var M=this;function w(){null==M||!M||M.destroyed||(void 0!==M.imagesLoaded&&(M.imagesLoaded+=1),M.imagesLoaded===M.imagesToLoad.length&&(M.params.updateOnImagesReady&&M.update(),M.emit("imagesReady")))}M.imagesToLoad=M.$el.find("img");for(var x=0;x<M.imagesToLoad.length;x+=1){var C=M.imagesToLoad[x];M.loadImage(C,C.currentSrc||C.getAttribute("src"),C.srcset||C.getAttribute("srcset"),C.sizes||C.getAttribute("sizes"),!0,w)}}}},q={},A1=function(){function M(){for(var x,C,Z=arguments.length,G=new Array(Z),C1=0;C1<Z;C1++)G[C1]=arguments[C1];if(1===G.length&&G[0].constructor&&"Object"===Object.prototype.toString.call(G[0]).slice(8,-1)?C=G[0]:(x=G[0],C=G[1]),C||(C={}),C=(0,I.l7)({},C),x&&!C.el&&(C.el=x),C.el&&(0,a.Z)(C.el).length>1){var v1=[];return(0,a.Z)(C.el).each(function(J1){var le=(0,I.l7)({},C,{el:J1});v1.push(new M(le))}),v1}var o1=this;o1.__swiper__=!0,o1.support=U(),o1.device=j({userAgent:C.userAgent}),o1.browser=l1(),o1.eventsListeners={},o1.eventsAnyListeners=[],void 0===o1.modules&&(o1.modules={}
1),Object.keys(o1.modules).forEach(function(J1){var le=o1.modules[J1];if(le.params){var re=Object.keys(le.params)[0],He=le.params[re];if("object"!=typeof He||null===He||(["navigation","pagination","scrollbar"].indexOf(re)>=0&&!0===C[re]&&(C[re]={auto:!0}),!(re in C)||!("enabled"in He)))return;!0===C[re]&&(C[re]={enabled:!0}),"object"==typeof C[re]&&!("enabled"in C[re])&&(C[re].enabled=!0),C[re]||(C[re]={enabled:!1})}});var le,re,Y1=(0,I.l7)({},J2);return o1.useParams(Y1),o1.params=(0,I.l7)({},Y1,q,C),o1.originalParams=(0,I.l7)({},o1.params),o1.passedParams=(0,I.l7)({},C),o1.params&&o1.params.on&&Object.keys(o1.params.on).forEach(function(J1){o1.on(J1,o1.params.on[J1])}),o1.params&&o1.params.onAny&&o1.onAny(o1.params.onAny),o1.$=a.Z,(0,I.l7)(o1,{enabled:o1.params.enabled,el:x,classNames:[],slides:(0,a.Z)(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===o1.params.direction},isVertical:function(){return"vertical"===o1.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:o1.params.allowSlideNext,allowSlidePrev:o1.params.allowSlidePrev,touchEvents:(le=["touchstart","touchmove","touchend","touchcancel"],re=["mousedown","mousemove","mouseup"],o1.support.pointerEvents&&(re=["pointerdown","pointermove","pointerup"]),o1.touchEventsTouch={start:le[0],move:le[1],end:le[2],cancel:le[3]},o1.touchEventsDesktop={start:re[0],move:re[1],end:re[2]},o1.support.touch||!o1.params.simulateTouch?o1.touchEventsTouch:o1.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o1.params.focusableElements,lastClickTime:(0,I.zO)(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:o1.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o1.useModules(),o1.emit("_swiper"),o1.params.init&&o1.init(),o1}var w=M.prototype;return w.enable=function(){var C=this;C.enabled||(C.enabled=!0,C.params.grabCursor&&C.setGrabCursor(),C.emit("enable"))},w.disable=function(){var C=this;!C.enabled||(C.enabled=!1,C.params.grabCursor&&C.unsetGrabCursor(),C.emit("disable"))},w.setProgress=function(C,Z){var G=this;C=Math.min(Math.max(C,0),1);var C1=G.minTranslate(),v1=G.maxTranslate();
1G.translateTo((v1-C1)*C+C1,void 0===Z?0:Z),G.updateActiveIndex(),G.updateSlidesClasses()},w.emitContainerClasses=function(){var C=this;if(C.params._emitClasses&&C.el){var Z=C.el.className.split(" ").filter(function(G){return 0===G.indexOf("swiper-container")||0===G.indexOf(C.params.containerModifierClass)});C.emit("_containerClasses",Z.join(" "))}},w.getSlideClasses=function(C){var Z=this;return C.className.split(" ").filter(function(G){return 0===G.indexOf("swiper-slide")||0===G.indexOf(Z.params.slideClass)}).join(" ")},w.emitSlidesClasses=function(){var C=this;if(C.params._emitClasses&&C.el){var Z=[];C.slides.each(function(G){var C1=C.getSlideClasses(G);Z.push({slideEl:G,classNames:C1}),C.emit("_slideClass",G,C1)}),C.emit("_slideClasses",Z)}},w.slidesPerViewDynamic=function(){var C=this,G=C.slides,C1=C.slidesGrid,v1=C.size,o1=C.activeIndex,Y1=1;if(C.params.centeredSlides){for(var le,J1=G[o1].swiperSlideSize,re=o1+1;re<G.length;re+=1)G[re]&&!le&&(Y1+=1,(J1+=G[re].swiperSlideSize)>v1&&(le=!0));for(var He=o1-1;He>=0;He-=1)G[He]&&!le&&(Y1+=1,(J1+=G[He].swiperSlideSize)>v1&&(le=!0))}else for(var B=o1+1;B<G.length;B+=1)C1[B]-C1[o1]<v1&&(Y1+=1);return Y1},w.update=function(){var C=this;if(C&&!C.destroyed){var Z=C.snapGrid,G=C.params;G.breakpoints&&C.setBreakpoint(),C.updateSize(),C.updateSlides(),C.updateProgress(),C.updateSlidesClasses(),C.params.freeMode?(C1(),C.params.autoHeight&&C.updateAutoHeight()):C.slideTo(("auto"===C.params.slidesPerView||C.params.slidesPerView>1)&&C.isEnd&&!C.params.centeredSlides?C.slides.length-1:C.activeIndex,0,!1,!0)||C1(),G.watchOverflow&&Z!==C.snapGrid&&C.checkOverflow(),C.emit("update")}function C1(){var Y1=Math.min(Math.max(C.rtlTranslate?-1*C.translate:C.translate,C.maxTranslate()),C.minTranslate());C.setTranslate(Y1),C.updateActiveIndex(),C.updateSlidesClasses()}},w.changeDirection=function(C,Z){void 0===Z&&(Z=!0);var G=this,C1=G.params.direction;return C||(C="horizontal"===C1?"vertical":"horizontal"),C===C1||"horizontal"!==C&&"vertical"!==C||(G.$el.removeClass(""+G.params.containerModifierClass+C1).addClass(""+G.params.containerModifierClass+C),G.emitContainerClasses(),G.params.direction=C,G.slides.each(function(v1){"vertical"===C?v1.style.width="":v1.style.height=""}),G.emit("changeDirection"),Z&&G.update()),G},w.mount=function(C){var Z=this;if(Z.mounted)return!0;var G=(0,a.Z)(C||Z.params.el);if(!(C=G[0]))return!1;C.swiper=Z;var C1=function(){return"."+(Z.params.wrapperClass||"").trim().split(" ").join(".")},o1=function(){if(C&&C.shadowRoot&&C.shadowRoot.querySelector){var re=(0,a.Z)(C.shadowRoot.querySelector(C1()));return re.children=function(He){return G.children(He)},re}return G.children(C1())}();if(0===o1.length&&Z.params.createElements){var J1=(0,o.Me)().createElement("div");o1=(0,a.Z)(J1),J1.className=Z.params.wrapperClass,G.append(J1),G.children("."+Z.params.slideClass).each(function(le){o1.append(le)})}return(0,I.l7)(Z,{$el:G,el:C,$wrapperEl:o1,wrapperEl:o1[0],mounted:!0,rtl:"rtl"===C.dir.toLowerCase()||"rtl"===G.css("direction"),rtlTranslate:"horizontal"===Z.params.direction&&("rtl"===C.dir.toLowerCase()||"rtl"===G.css("direction")),wrongRTL:"-webkit-box"===o1.css("display")}),!0},w.init=function(C){var Z=this;return Z.initialized||!1===Z.mount(C)||(Z.emit("beforeInit"),Z.params.breakpoints&&Z.setBreakpoint(),Z.addClasses(),Z.params.loop&&Z.loopCreate(),Z.updateSize(),Z.updateSlides(),Z.params.watchOverflow&&Z.checkOverflow(),Z.params.grabCursor&&Z.enabled&&Z.setGrabCursor(),Z.params.preloadImages&&Z.preloadImages(),Z.slideTo(Z.params.loop?Z.params.initialSlide+Z.loopedSlides:Z.params.initialSlide,0,Z.params.runCallbacksOnInit,!1,!0),Z.attachEvents(),Z.initialized=!0,Z.emit("init"),Z.emit("afterInit")),Z},w.destroy=function(C,Z){void 0===C&&(C=!0),void 0===Z&&(Z=!0);var G=this,C1=G.params,v1=G.$el,o1=G.$wrapperEl,Y1=G.slides;return void 0===G.params||G.destroyed||(G.emit("beforeDestroy"),G.initialized=!1,G.detachEvents(),C1.loop&&G.loopDestroy(),Z&&(G.removeClasses(),v1.removeAttr("style"),o1.removeAttr("style"),Y1&&Y1.length&&Y1.removeClass([C1.slideVisibleClass,C1.slideActiveClass,C1.slideNextClass,C1.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),G.emit("destroy"),Object.keys(G.eventsListeners).forEac
1h(function(J1){G.off(J1)}),!1!==C&&(G.$el[0].swiper=null,(0,I.cP)(G)),G.destroyed=!0),null},M.extendDefaults=function(C){(0,I.l7)(q,C)},M.installModule=function(C){M.prototype.modules||(M.prototype.modules={});var Z=C.name||Object.keys(M.prototype.modules).length+"_"+(0,I.zO)();M.prototype.modules[Z]=C},M.use=function(C){return Array.isArray(C)?(C.forEach(function(Z){return M.installModule(Z)}),M):(M.installModule(C),M)},function k1(M,w,x){w&&l2(M.prototype,w),x&&l2(M,x)}(M,null,[{key:"extendedDefaults",get:function(){return q}},{key:"defaults",get:function(){return J2}}]),M}();Object.keys(b1).forEach(function(M){Object.keys(b1[M]).forEach(function(w){A1.prototype[w]=b1[M][w]})}),A1.use([n1,u1]);const ee=A1},6793:(xe,S1,m)=>{"use strict";m.d(S1,{Z:()=>He});var o=m(1937);function I(B){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(K){return K.__proto__||Object.getPrototypeOf(K)})(B)}function r1(B,V){return(r1=Object.setPrototypeOf||function(m1,E1){return m1.__proto__=E1,m1})(B,V)}function X(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(B){return!1}}function U(B,V,K){return(U=X()?Reflect.construct:function(E1,$1,Q1){var Ne=[null];Ne.push.apply(Ne,$1);var Te=new(Function.bind.apply(E1,Ne));return Q1&&r1(Te,Q1.prototype),Te}).apply(null,arguments)}function F(B){var V="function"==typeof Map?new Map:void 0;return F=function(m1){if(null===m1||!function N(B){return-1!==Function.toString.call(B).indexOf("[native code]")}(m1))return m1;if("function"!=typeof m1)throw new TypeError("Super expression must either be null or a function");if(void 0!==V){if(V.has(m1))return V.get(m1);V.set(m1,E1)}function E1(){return U(m1,arguments,I(this).constructor)}return E1.prototype=Object.create(m1.prototype,{constructor:{value:E1,enumerable:!1,writable:!0,configurable:!0}}),r1(E1,m1)},F(B)}var J=function(B){function V(K){var m1;return function W(B){var V=B.__proto__;Object.defineProperty(B,"__proto__",{get:function(){return V},set:function(m1){V.__proto__=m1}})}(function j(B){if(void 0===B)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}(m1=B.call.apply(B,[this].concat(K))||this)),m1}return function a(B,V){B.prototype=Object.create(V.prototype),B.prototype.constructor=B,B.__proto__=V}(V,B),V}(F(Array));function l1(B){void 0===B&&(B=[]);var V=[];return B.forEach(function(K){Array.isArray(K)?V.push.apply(V,l1(K)):V.push(K)}),V}function s1(B,V){return Array.prototype.filter.call(B,V)}function u1(B,V){var K=(0,o.Jj)(),m1=(0,o.Me)(),E1=[];if(!V&&B instanceof J)return B;if(!B)return new J(E1);if("string"==typeof B){var $1=B.trim();if($1.indexOf("<")>=0&&$1.indexOf(">")>=0){var Q1="div";0===$1.indexOf("<li")&&(Q1="ul"),0===$1.indexOf("<tr")&&(Q1="tbody"),(0===$1.indexOf("<td")||0===$1.indexOf("<th"))&&(Q1="tr"),0===$1.indexOf("<tbody")&&(Q1="table"),0===$1.indexOf("<option")&&(Q1="select");var Ne=m1.createElement(Q1);Ne.innerHTML=$1;for(var Le=0;Le<Ne.childNodes.length;Le+=1)E1.push(Ne.childNodes[Le])}else E1=function M1(B,V){if("string"!=typeof B)return[B];for(var K=[],m1=V.querySelectorAll(B),E1=0;E1<m1.length;E1+=1)K.push(m1[E1]);return K}(B.trim(),V||m1)}else if(B.nodeType||B===K||B===m1)E1.push(B);else if(Array.isArray(B)){if(B instanceof J)return B;E1=B}return new J(function n1(B){for(var V=[],K=0;K<B.length;K+=1)-1===V.indexOf(B[K])&&V.push(B[K]);return V}(E1))}u1.fn=J.prototype;var Re="resize scroll".split(" ");function Ze(B){return function V(){for(var K=arguments.length,m1=new Array(K),E1=0;E1<K;E1++)m1[E1]=arguments[E1];if(void 0===m1[0]){for(var $1=0;$1<this.length;$1+=1)Re.indexOf(B)<0&&(B in this[$1]?this[$1][B]():u1(this[$1]).trigger(B));return this}return this.on.apply(this,[B].concat(m1))}}Ze("click"),Ze("blur"),Ze("focus"),Ze("focusin"),Ze("focusout"),Ze("keyup"),Ze("keydown"),Ze("keypress"),Ze("submit"),Ze("change"),Ze("mousedown"),Ze("mousemove"),Ze("mouseup"),Ze("mouseenter"),Ze("mouseleave"),Ze("mouseout"),Ze("mouseover"),Ze("touchstart"),Ze("touchend"),Ze("touchmove"),Ze("resize"),Ze("scroll");var re={addClass:function de(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=l1(V.map(function(E1){return E1.split(" ")}));return this.forEach(function(E1){var $1;($1=E1.classList).add.apply($1,m1)}),this},removeClass:function R1(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=l1(V.map(function(E1){return E1.split(" ")}));return this.forEach(function(E1){var $1;($1=E1.classList).remove.apply($1,m1)}),this},hasClass:function K1(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=l1(V.map(function(E1){return E1.split(" ")}));return s1(this,function(E1){return m1.filter(function($1){return E1.classList.contains($1)}).length>0}).length>0},toggleClass:function D1(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=l1(V.map(function(E1){return E1.split(" ")}));
1this.forEach(function(E1){m1.forEach(function($1){E1.classList.toggle($1)})})},attr:function X1(B,V){if(1===arguments.length&&"string"==typeof B)return this[0]?this[0].getAttribute(B):void 0;for(var K=0;K<this.length;K+=1)if(2===arguments.length)this[K].setAttribute(B,V);else for(var m1 in B)this[K][m1]=B[m1],this[K].setAttribute(m1,B[m1]);return this},removeAttr:function Se(B){for(var V=0;V<this.length;V+=1)this[V].removeAttribute(B);return this},transform:function ie(B){for(var V=0;V<this.length;V+=1)this[V].style.transform=B;return this},transition:function G1(B){for(var V=0;V<this.length;V+=1)this[V].style.transitionDuration="string"!=typeof B?B+"ms":B;return this},on:function ne(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=V[0],E1=V[1],$1=V[2],Q1=V[3];function Ne(Fe){var r2=Fe.target;if(r2){var s2=Fe.target.dom7EventData||[];if(s2.indexOf(Fe)<0&&s2.unshift(Fe),u1(r2).is(E1))$1.apply(r2,s2);else for(var f2=u1(r2).parents(),u2=0;u2<f2.length;u2+=1)u1(f2[u2]).is(E1)&&$1.apply(f2[u2],s2)}}function Le(Fe){var r2=Fe&&Fe.target&&Fe.target.dom7EventData||[];r2.indexOf(Fe)<0&&r2.unshift(Fe),$1.apply(this,r2)}"function"==typeof V[1]&&(m1=V[0],$1=V[1],Q1=V[2],E1=void 0),Q1||(Q1=!1);for(var _e,Te=m1.split(" "),Ce=0;Ce<this.length;Ce+=1){var Ge=this[Ce];if(E1)for(_e=0;_e<Te.length;_e+=1){var n2=Te[_e];Ge.dom7LiveListeners||(Ge.dom7LiveListeners={}),Ge.dom7LiveListeners[n2]||(Ge.dom7LiveListeners[n2]=[]),Ge.dom7LiveListeners[n2].push({listener:$1,proxyListener:Ne}),Ge.addEventListener(n2,Ne,Q1)}else for(_e=0;_e<Te.length;_e+=1){var v2=Te[_e];Ge.dom7Listeners||(Ge.dom7Listeners={}),Ge.dom7Listeners[v2]||(Ge.dom7Listeners[v2]=[]),Ge.dom7Listeners[v2].push({listener:$1,proxyListener:Le}),Ge.addEventListener(v2,Le,Q1)}}return this},off:function Ke(){for(var B=arguments.length,V=new Array(B),K=0;K<B;K++)V[K]=arguments[K];var m1=V[0],E1=V[1],$1=V[2],Q1=V[3];"function"==typeof V[1]&&(m1=V[0],$1=V[1],Q1=V[2],E1=void 0),Q1||(Q1=!1);for(var Ne=m1.split(" "),Le=0;Le<Ne.length;Le+=1)for(var Te=Ne[Le],_e=0;_e<this.length;_e+=1){var Ce=this[_e],Ge=void 0;if(!E1&&Ce.dom7Listeners?Ge=Ce.dom7Listeners[Te]:E1&&Ce.dom7LiveListeners&&(Ge=Ce.dom7LiveListeners[Te]),Ge&&Ge.length)for(var v2=Ge.length-1;v2>=0;v2-=1){var n2=Ge[v2];$1&&n2.listener===$1||$1&&n2.listener&&n2.listener.dom7proxy&&n2.listener.dom7proxy===$1?(Ce.removeEventListener(Te,n2.proxyListener,Q1),Ge.splice(v2,1)):$1||(Ce.removeEventListener(Te,n2.proxyListener,Q1),Ge.splice(v2,1))}}return this},trigger:function Je(){for(var B=(0,o.Jj)(),V=arguments.length,K=new Array(V),m1=0;m1<V;m1++)K[m1]=arguments[m1];for(var E1=K[0].split(" "),$1=K[1],Q1=0;Q1<E1.length;Q1+=1)for(var Ne=E1[Q1],Le=0;Le<this.length;Le+=1){var Te=this[Le];if(B.CustomEvent){var _e=new B.CustomEvent(Ne,{detail:$1,bubbles:!0,cancelable:!0});Te.dom7EventData=K.filter(function(Ce,Ge){return Ge>0}),Te.dispatchEvent(_e),Te.dom7EventData=[],delete Te.dom7EventData}}return this},transitionEnd:function H1(B){var V=this;return B&&V.on("transitionend",function K(m1){m1.target===this&&(B.call(this,m1),V.off("transitionend",K))}),this},outerWidth:function d1(B){if(this.length>0){if(B){var V=this.styles();return this[0].offsetWidth+parseFloat(V.getPropertyValue("margin-right"))+parseFloat(V.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function O(B){if(this.length>0){if(B){var V=this.styles();return this[0].offsetHeight+parseFloat(V.getPropertyValue("margin-top"))+parseFloat(V.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function T1(){var B=(0,o.Jj)();return this[0]?B.getComputedStyle(this[0],null):{}},offset:function h1(){if(this.length>0){var B=(0,o.Jj)(),V=(0,o.Me)(),K=this[0],m1=K.getBoundingClientRect(),E1=V.body;return{top:m1.top+(K===B?B.scrollY:K.scrollTop)-(K.clientTop||E1.clientTop||0),left:m1.left+(K===B?B.scrollX:K.scrollLeft)-(K.clientLeft||E1.clientLeft||0)}}return null},css:function p1(B,V){var m1,K=(0,o.Jj)();if(1===arguments.length){if("string"!=typeof B){for(m1=0;m1<this.length;m1+=1)for(var E1 in B)this[m1].style[E1]=B[E1];return this}if(this[0])return K.getComputedStyle(this[0],null).getPropertyValue(B)}if(2===arguments.length&&"string"==typeof B){for(m1=0;m1<this.length;m1+=1)this[m1].style[B]=V;return this}return this},each:function P1(B){return B?(this.forEach(function(V,K){B.apply(V,[V,K])}),this):this},html:function me(B){if(void 0===B)return this[0]?this[0].innerHTML:null;for(var V=0;V<this.length;V+=1)this[V].innerHTML=B;return this},text:function Oe(B){if(void 0===B)return this[0]?this[0].textContent.trim():null;for(var V=0;V<this.length;V+=1)this[V].textContent=B;return this},is:function h2(B){var E1,$1,V=(0,o.Jj)(),K=(0,o.Me)(),m1=this[0];if(!m1||void 0===B)return!1;if("string"==typeof B){if(m1.matches)return m1.matches(B);if(m1.webkitMatchesSelector)return m1.webkitMatchesSelector(B);if(m1.msMatchesSelector)return m1.msMatchesSelector(B);for(E1=u1(B),$1=0;$1<E1.length;$1+=1)if(E1[$1]===m1)return!0;return!1}if(B===K)return m1===K;
1if(B===V)return m1===V;if(B.nodeType||B instanceof J){for(E1=B.nodeType?[B]:B,$1=0;$1<E1.length;$1+=1)if(E1[$1]===m1)return!0;return!1}return!1},index:function y2(){var V,B=this[0];if(B){for(V=0;null!==(B=B.previousSibling);)1===B.nodeType&&(V+=1);return V}},eq:function P2(B){if(void 0===B)return this;var V=this.length;if(B>V-1)return u1([]);if(B<0){var K=V+B;return u1(K<0?[]:[this[K]])}return u1([this[B]])},append:function K2(){for(var B,V=(0,o.Me)(),K=0;K<arguments.length;K+=1){B=K<0||arguments.length<=K?void 0:arguments[K];for(var m1=0;m1<this.length;m1+=1)if("string"==typeof B){var E1=V.createElement("div");for(E1.innerHTML=B;E1.firstChild;)this[m1].appendChild(E1.firstChild)}else if(B instanceof J)for(var $1=0;$1<B.length;$1+=1)this[m1].appendChild(B[$1]);else this[m1].appendChild(B)}return this},prepend:function V2(B){var K,m1,V=(0,o.Me)();for(K=0;K<this.length;K+=1)if("string"==typeof B){var E1=V.createElement("div");for(E1.innerHTML=B,m1=E1.childNodes.length-1;m1>=0;m1-=1)this[K].insertBefore(E1.childNodes[m1],this[K].childNodes[0])}else if(B instanceof J)for(m1=0;m1<B.length;m1+=1)this[K].insertBefore(B[m1],this[K].childNodes[0]);else this[K].insertBefore(B,this[K].childNodes[0]);return this},next:function Q(B){return this.length>0?B?this[0].nextElementSibling&&u1(this[0].nextElementSibling).is(B)?u1([this[0].nextElementSibling]):u1([]):u1(this[0].nextElementSibling?[this[0].nextElementSibling]:[]):u1([])},nextAll:function g1(B){var V=[],K=this[0];if(!K)return u1([]);for(;K.nextElementSibling;){var m1=K.nextElementSibling;B?u1(m1).is(B)&&V.push(m1):V.push(m1),K=m1}return u1(V)},prev:function se(B){if(this.length>0){var V=this[0];return B?V.previousElementSibling&&u1(V.previousElementSibling).is(B)?u1([V.previousElementSibling]):u1([]):u1(V.previousElementSibling?[V.previousElementSibling]:[])}return u1([])},prevAll:function ce(B){var V=[],K=this[0];if(!K)return u1([]);for(;K.previousElementSibling;){var m1=K.previousElementSibling;B?u1(m1).is(B)&&V.push(m1):V.push(m1),K=m1}return u1(V)},parent:function ze(B){for(var V=[],K=0;K<this.length;K+=1)null!==this[K].parentNode&&(B?u1(this[K].parentNode).is(B)&&V.push(this[K].parentNode):V.push(this[K].parentNode));return u1(V)},parents:function z2(B){for(var V=[],K=0;K<this.length;K+=1)for(var m1=this[K].parentNode;m1;)B?u1(m1).is(B)&&V.push(m1):V.push(m1),m1=m1.parentNode;return u1(V)},closest:function i2(B){var V=this;return void 0===B?u1([]):(V.is(B)||(V=V.parents(B).eq(0)),V)},find:function Qe(B){for(var V=[],K=0;K<this.length;K+=1)for(var m1=this[K].querySelectorAll(B),E1=0;E1<m1.length;E1+=1)V.push(m1[E1]);return u1(V)},children:function O2(B){for(var V=[],K=0;K<this.length;K+=1)for(var m1=this[K].children,E1=0;E1<m1.length;E1+=1)(!B||u1(m1[E1]).is(B))&&V.push(m1[E1]);return u1(V)},filter:function B1(B){return u1(s1(this,B))},remove:function x2(){for(var B=0;B<this.length;B+=1)this[B].parentNode&&this[B].parentNode.removeChild(this[B]);return this}};Object.keys(re).forEach(function(B){Object.defineProperty(u1.fn,B,{value:re[B],writable:!0})});const He=u1},3603:(xe,S1,m)=>{"use strict";m.d(S1,{R6:()=>U,Up:()=>l1,Wc:()=>J,Y3:()=>I,cP:()=>a,cR:()=>W,l7:()=>j,zO:()=>r1});var o=m(1937);function a(s1){var n1=s1;Object.keys(n1).forEach(function(y1){try{n1[y1]=null}catch(M1){}try{delete n1[y1]}catch(M1){}})}function I(s1,n1){return void 0===n1&&(n1=0),setTimeout(s1,n1)}function r1(){return Date.now()}function U(s1,n1){void 0===n1&&(n1="x");var M1,u1,de,y1=(0,o.Jj)(),R1=function X(s1){var y1,n1=(0,o.Jj)();return n1.getComputedStyle&&(y1=n1.getComputedStyle(s1,null)),!y1&&s1.currentStyle&&(y1=s1.currentStyle),y1||(y1=s1.style),y1}(s1);return y1.WebKitCSSMatrix?((u1=R1.transform||R1.webkitTransform).split(",").length>6&&(u1=u1.split(", ").map(function(D1){return D1.replace(",",".")}).join(", ")),de=new y1.WebKitCSSMatrix("none"===u1?"":u1)):M1=(de=R1.MozTransform||R1.OTransform||R1.MsTransform||R1.msTransform||R1.transform||R1.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===n1&&(u1=y1.WebKitCSSMatrix?de.m41:16===M1.length?parseFloat(M1[12]):parseFloat(M1[4])),"y"===n1&&(u1=y1.WebKitCSSMatrix?de.m42:16===M1.length?parseFloat(M1[13]):parseFloat(M1[5])),u1||0}function N(s1){return"object"==typeof s1&&null!==s1&&s1.constructor&&"Object"===Object.prototype.toString.call(s1).slice(8,-1)}function F(s1){return"undefined"!=typeof window&&void 0!==window.HTMLElement?s1 instanceof HTMLElement:s1&&(1===s1.nodeType||11===s1.nodeType)}function j(){for(var s1=Object(arguments.length<=0?void 0:arguments[0]),n1=["__proto__","constructor","prototype"],y1=1;y1<arguments.length;y1+=1){var M1=y1<0||arguments.length<=y1?void 0:arguments[y1];if(null!=M1&&!F(M1))for(var u1=Object.keys(Object(M1)).filter(function(X1){return n1.indexOf(X1)<0}),de=0,R1=u1.length;de<R1;de+=1){var D1=u1[de],K1=Object.getOwnPropertyDescriptor(M1,D1);void 0!==K1&&K1.enumerable&&(N(s1[D1])&&N(M1[D1])?M1[D1].__swiper__?s1[D1]=M1[D1]:j(s1[D1],M1[D1]):!N(s1[D1])&&N(M1[D1])?(s1[D1]={},M1[D1].__swiper__?s1[D1]=M1[D1]:j(s1[D1],M1[D1])):s1[D1]=M1[D1])}}return s1}
1function W(s1,n1){Object.keys(n1).forEach(function(y1){N(n1[y1])&&Object.keys(n1[y1]).forEach(function(M1){"function"==typeof n1[y1][M1]&&(n1[y1][M1]=n1[y1][M1].bind(s1))}),s1[y1]=n1[y1]})}function J(s1){return void 0===s1&&(s1=""),"."+s1.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}function l1(s1,n1,y1,M1){var u1=(0,o.Me)();return y1&&Object.keys(M1).forEach(function(de){if(!n1[de]&&!0===n1.auto){var R1=u1.createElement("div");R1.className=M1[de],s1.append(R1),n1[de]=R1}}),n1}},9808:(xe,S1,m)=>{"use strict";m.d(S1,{Do:()=>K1,ED:()=>rt,EM:()=>Z2,HT:()=>X,JF:()=>p4,JJ:()=>bt,K0:()=>N,Mx:()=>Ne,NF:()=>L2,Nd:()=>lt,O5:()=>n2,Ov:()=>t1,PC:()=>Bn,RF:()=>C2,S$:()=>u1,V_:()=>W,Ye:()=>X1,b0:()=>D1,bD:()=>s2,ez:()=>Ct,gd:()=>he,i8:()=>L1,lw:()=>F,mk:()=>Le,mr:()=>R1,n9:()=>h4,q:()=>I,sg:()=>Ce,tP:()=>Un,uU:()=>m2,w_:()=>U});var o=m(6435);let a=null;function I(){return a}function X(v){a||(a=v)}class U{}const N=new o.OlP("DocumentToken");let F=(()=>{class v{historyGo(b){throw new Error("Not implemented")}}return v.\u0275fac=function(b){return new(b||v)},v.\u0275prov=o.Yz7({token:v,factory:function(){return function j(){return(0,o.LFG)(J)}()},providedIn:"platform"}),v})();const W=new o.OlP("Location Initialized");let J=(()=>{class v extends F{constructor(b){super(),this._doc=b,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return I().getBaseHref(this._doc)}onPopState(b){const H=I().getGlobalEventTarget(this._doc,"window");return H.addEventListener("popstate",b,!1),()=>H.removeEventListener("popstate",b)}onHashChange(b){const H=I().getGlobalEventTarget(this._doc,"window");return H.addEventListener("hashchange",b,!1),()=>H.removeEventListener("hashchange",b)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(b){this.location.pathname=b}pushState(b,H,f1){l1()?this._history.pushState(b,H,f1):this.location.hash=f1}replaceState(b,H,f1){l1()?this._history.replaceState(b,H,f1):this.location.hash=f1}forward(){this._history.forward()}back(){this._history.back()}historyGo(b=0){this._history.go(b)}getState(){return this._history.state}}return v.\u0275fac=function(b){return new(b||v)(o.LFG(N))},v.\u0275prov=o.Yz7({token:v,factory:function(){return function s1(){return new J((0,o.LFG)(N))}()},providedIn:"platform"}),v})();function l1(){return!!window.history.pushState}function n1(v,L){if(0==v.length)return L;if(0==L.length)return v;let b=0;return v.endsWith("/")&&b++,L.startsWith("/")&&b++,2==b?v+L.substring(1):1==b?v+L:v+"/"+L}function y1(v){const L=v.match(/#|\?|$/),b=L&&L.index||v.length;return v.slice(0,b-("/"===v[b-1]?1:0))+v.slice(b)}function M1(v){return v&&"?"!==v[0]?"?"+v:v}let u1=(()=>{class v{historyGo(b){throw new Error("Not implemented")}}return v.\u0275fac=function(b){return new(b||v)},v.\u0275prov=o.Yz7({token:v,factory:function(){return function de(v){const L=(0,o.LFG)(N).location;return new D1((0,o.LFG)(F),L&&L.origin||"")}()},providedIn:"root"}),v})();const R1=new o.OlP("appBaseHref");let D1=(()=>{class v extends u1{constructor(b,H){if(super(),this._platformLocation=b,this._removeListenerFns=[],null==H&&(H=this._platformLocation.getBaseHrefFromDOM()),null==H)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=H}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(b){this._removeListenerFns.push(this._platformLocation.onPopState(b),this._platformLocation.onHashChange(b))}getBaseHref(){return this._baseHref}prepareExternalUrl(b){return n1(this._baseHref,b)}path(b=!1){const H=this._platformLocation.pathname+M1(this._platformLocation.search),f1=this._platformLocation.hash;return f1&&b?`${H}${f1}`:H}pushState(b,H,f1,U1){const ge=this.prepareExternalUrl(f1+M1(U1));this._platformLocation.pushState(b,H,ge)}replaceState(b,H,f1,U1){const ge=this.prepareExternalUrl(f1+M1(U1));this._platformLocation.replaceState(b,H,ge)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(b=0){var H,f1;null===(f1=(H=this._platformLocation).historyGo)||void 0===f1||f1.call(H,b)}}return v.\u0275fac=function(b){return new(b||v)(o.LFG(F),o.LFG(R1,8))},v.\u0275prov=o.Yz7({token:v,factory:v.\u0275fac}),v})(),K1=(()=>{class v extends u1{constructor(b,H){super(),this._platformLocation=b,this._baseHref="",this._removeListenerFns=[],null!=H&&(this._baseHref=H)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(b){this._removeListenerFns.push(this._platformLocation.onPopState(b),this._platformLocation.on
1HashChange(b))}getBaseHref(){return this._baseHref}path(b=!1){let H=this._platformLocation.hash;return null==H&&(H="#"),H.length>0?H.substring(1):H}prepareExternalUrl(b){const H=n1(this._baseHref,b);return H.length>0?"#"+H:H}pushState(b,H,f1,U1){let ge=this.prepareExternalUrl(f1+M1(U1));0==ge.length&&(ge=this._platformLocation.pathname),this._platformLocation.pushState(b,H,ge)}replaceState(b,H,f1,U1){let ge=this.prepareExternalUrl(f1+M1(U1));0==ge.length&&(ge=this._platformLocation.pathname),this._platformLocation.replaceState(b,H,ge)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(b=0){var H,f1;null===(f1=(H=this._platformLocation).historyGo)||void 0===f1||f1.call(H,b)}}return v.\u0275fac=function(b){return new(b||v)(o.LFG(F),o.LFG(R1,8))},v.\u0275prov=o.Yz7({token:v,factory:v.\u0275fac}),v})(),X1=(()=>{class v{constructor(b,H){this._subject=new o.vpe,this._urlChangeListeners=[],this._platformStrategy=b;const f1=this._platformStrategy.getBaseHref();this._platformLocation=H,this._baseHref=y1(ae(f1)),this._platformStrategy.onPopState(U1=>{this._subject.emit({url:this.path(!0),pop:!0,state:U1.state,type:U1.type})})}path(b=!1){return this.normalize(this._platformStrategy.path(b))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(b,H=""){return this.path()==this.normalize(b+M1(H))}normalize(b){return v.stripTrailingSlash(function Me(v,L){return v&&L.startsWith(v)?L.substring(v.length):L}(this._baseHref,ae(b)))}prepareExternalUrl(b){return b&&"/"!==b[0]&&(b="/"+b),this._platformStrategy.prepareExternalUrl(b)}go(b,H="",f1=null){this._platformStrategy.pushState(f1,"",b,H),this._notifyUrlChangeListeners(this.prepareExternalUrl(b+M1(H)),f1)}replaceState(b,H="",f1=null){this._platformStrategy.replaceState(f1,"",b,H),this._notifyUrlChangeListeners(this.prepareExternalUrl(b+M1(H)),f1)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(b=0){var H,f1;null===(f1=(H=this._platformStrategy).historyGo)||void 0===f1||f1.call(H,b)}onUrlChange(b){this._urlChangeListeners.push(b),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(H=>{this._notifyUrlChangeListeners(H.url,H.state)}))}_notifyUrlChangeListeners(b="",H){this._urlChangeListeners.forEach(f1=>f1(b,H))}subscribe(b,H,f1){return this._subject.subscribe({next:b,error:H,complete:f1})}}return v.normalizeQueryParams=M1,v.joinWithSlash=n1,v.stripTrailingSlash=y1,v.\u0275fac=function(b){return new(b||v)(o.LFG(u1),o.LFG(F))},v.\u0275prov=o.Yz7({token:v,factory:function(){return function Se(){return new X1((0,o.LFG)(u1),(0,o.LFG)(F))}()},providedIn:"root"}),v})();function ae(v){return v.replace(/\/index.html$/,"")}var Ae=(()=>((Ae=Ae||{})[Ae.Decimal=0]="Decimal",Ae[Ae.Percent=1]="Percent",Ae[Ae.Currency=2]="Currency",Ae[Ae.Scientific=3]="Scientific",Ae))(),te=(()=>((te=te||{})[te.Format=0]="Format",te[te.Standalone=1]="Standalone",te))(),ie=(()=>((ie=ie||{})[ie.Narrow=0]="Narrow",ie[ie.Abbreviated=1]="Abbreviated",ie[ie.Wide=2]="Wide",ie[ie.Short=3]="Short",ie))(),G1=(()=>((G1=G1||{})[G1.Short=0]="Short",G1[G1.Medium=1]="Medium",G1[G1.Long=2]="Long",G1[G1.Full=3]="Full",G1))(),ne=(()=>((ne=ne||{})[ne.Decimal=0]="Decimal",ne[ne.Group=1]="Group",ne[ne.List=2]="List",ne[ne.PercentSign=3]="PercentSign",ne[ne.PlusSign=4]="PlusSign",ne[ne.MinusSign=5]="MinusSign",ne[ne.Exponential=6]="Exponential",ne[ne.SuperscriptingExponent=7]="SuperscriptingExponent",ne[ne.PerMille=8]="PerMille",ne[ne.Infinity=9]="Infinity",ne[ne.NaN=10]="NaN",ne[ne.TimeSeparator=11]="TimeSeparator",ne[ne.CurrencyDecimal=12]="CurrencyDecimal",ne[ne.CurrencyGroup=13]="CurrencyGroup",ne))();function O(v,L){return A2((0,o.cg1)(v)[o.wAp.DateFormat],L)}function h1(v,L){return A2((0,o.cg1)(v)[o.wAp.TimeFormat],L)}function q1(v,L){return A2((0,o.cg1)(v)[o.wAp.DateTimeFormat],L)}function _1(v,L){const b=(0,o.cg1)(v),H=b[o.wAp.NumberSymbols][L];if(void 0===H){if(L===ne.CurrencyDecimal)return b[o.wAp.NumberSymbols][ne.Decimal];if(L===ne.CurrencyGroup)return b[o.wAp.NumberSymbols][ne.Group]}return H}function h2(v){if(!v[o.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${v[o.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function A2(v,L){for(let b=L;b>-1;b--)if(void 0!==v[b])return v[b];throw new Error("Locale data API: locale data undefined")}function V2(v){const[L,b]=v.split(":");return{hours:+L,minutes:+b}}const Q=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,g1={},se=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var ce=(()=>((ce=ce||{})[ce.Short=0]="Short",ce[ce.ShortGMT=1]="ShortGMT",ce[ce.Long=2]="Long",ce[ce.Extended=3]="Extended",ce))(),ye=(()=>((ye=ye||{})[ye.FullYear=0]="FullYear",ye[ye.Month=1]="Month",ye[ye.Date=2]="Date",ye[ye.Hours=3]="Hours",ye[ye.Minutes=4]="Minutes",ye[ye.Seconds=5]="Seconds",ye[ye.FractionalSeconds=6]="FractionalSeconds",ye[ye.Day=7]="Day",ye))(),ze=(()=>((ze=ze||{})[ze.DayPeriods=0]="DayPeriods",ze[ze.Days=1]="Days",ze[ze.Months=2]="Months",ze[ze.Eras=3]="Eras",ze))();function z2(v,L,b,H){let f1=function b1(v){if(A1(v))return v;if("number"==typeof v&&!isNaN(v))return new Date(v);if("string"==typeof v){if(v=v.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(v)){const[f1,U1=1,ge=1]=v.split("-").map($e=>+$e);return i2(f1,U1-1,ge)}const b=parseFloat(v);
1if(!isNaN(v-b))return new Date(b);let H;if(H=v.match(Q))return function q(v){const L=new Date(0);let b=0,H=0;const f1=v[8]?L.setUTCFullYear:L.setFullYear,U1=v[8]?L.setUTCHours:L.setHours;v[9]&&(b=Number(v[9]+v[10]),H=Number(v[9]+v[11])),f1.call(L,Number(v[1]),Number(v[2])-1,Number(v[3]));const ge=Number(v[4]||0)-b,$e=Number(v[5]||0)-H,w2=Number(v[6]||0),_2=Math.floor(1e3*parseFloat("0."+(v[7]||0)));return U1.call(L,ge,$e,w2,_2),L}(H)}const L=new Date(v);if(!A1(L))throw new Error(`Unable to convert "${v}" into a date`);return L}(v);L=Qe(b,L)||L;let $e,ge=[];for(;L;){if($e=se.exec(L),!$e){ge.push(L);break}{ge=ge.concat($e.slice(1));const H2=ge.pop();if(!H2)break;L=H2}}let w2=f1.getTimezoneOffset();H&&(w2=J2(H,w2),f1=function k1(v,L,b){const H=b?-1:1,f1=v.getTimezoneOffset();return function l2(v,L){return(v=new Date(v.getTime())).setMinutes(v.getMinutes()+L),v}(v,H*(J2(L,f1)-f1))}(f1,H,!0));let _2="";return ge.forEach(H2=>{const S2=function dt(v){if(I2[v])return I2[v];let L;switch(v){case"G":case"GG":case"GGG":L=Ye(ze.Eras,ie.Abbreviated);break;case"GGGG":L=Ye(ze.Eras,ie.Wide);break;case"GGGGG":L=Ye(ze.Eras,ie.Narrow);break;case"y":L=je(ye.FullYear,1,0,!1,!0);break;case"yy":L=je(ye.FullYear,2,0,!0,!0);break;case"yyy":L=je(ye.FullYear,3,0,!1,!0);break;case"yyyy":L=je(ye.FullYear,4,0,!1,!0);break;case"Y":L=U2(1);break;case"YY":L=U2(2,!0);break;case"YYY":L=U2(3);break;case"YYYY":L=U2(4);break;case"M":case"L":L=je(ye.Month,1,1);break;case"MM":case"LL":L=je(ye.Month,2,1);break;case"MMM":L=Ye(ze.Months,ie.Abbreviated);break;case"MMMM":L=Ye(ze.Months,ie.Wide);break;case"MMMMM":L=Ye(ze.Months,ie.Narrow);break;case"LLL":L=Ye(ze.Months,ie.Abbreviated,te.Standalone);break;case"LLLL":L=Ye(ze.Months,ie.Wide,te.Standalone);break;case"LLLLL":L=Ye(ze.Months,ie.Narrow,te.Standalone);break;case"w":L=E2(1);break;case"ww":L=E2(2);break;case"W":L=E2(1,!0);break;case"d":L=je(ye.Date,1);break;case"dd":L=je(ye.Date,2);break;case"c":case"cc":L=je(ye.Day,1);break;case"ccc":L=Ye(ze.Days,ie.Abbreviated,te.Standalone);break;case"cccc":L=Ye(ze.Days,ie.Wide,te.Standalone);break;case"ccccc":L=Ye(ze.Days,ie.Narrow,te.Standalone);break;case"cccccc":L=Ye(ze.Days,ie.Short,te.Standalone);break;case"E":case"EE":case"EEE":L=Ye(ze.Days,ie.Abbreviated);break;case"EEEE":L=Ye(ze.Days,ie.Wide);break;case"EEEEE":L=Ye(ze.Days,ie.Narrow);break;case"EEEEEE":L=Ye(ze.Days,ie.Short);break;case"a":case"aa":case"aaa":L=Ye(ze.DayPeriods,ie.Abbreviated);break;case"aaaa":L=Ye(ze.DayPeriods,ie.Wide);break;case"aaaaa":L=Ye(ze.DayPeriods,ie.Narrow);break;case"b":case"bb":case"bbb":L=Ye(ze.DayPeriods,ie.Abbreviated,te.Standalone,!0);break;case"bbbb":L=Ye(ze.DayPeriods,ie.Wide,te.Standalone,!0);break;case"bbbbb":L=Ye(ze.DayPeriods,ie.Narrow,te.Standalone,!0);break;case"B":case"BB":case"BBB":L=Ye(ze.DayPeriods,ie.Abbreviated,te.Format,!0);break;case"BBBB":L=Ye(ze.DayPeriods,ie.Wide,te.Format,!0);break;case"BBBBB":L=Ye(ze.DayPeriods,ie.Narrow,te.Format,!0);break;case"h":L=je(ye.Hours,1,-12);break;case"hh":L=je(ye.Hours,2,-12);break;case"H":L=je(ye.Hours,1);break;case"HH":L=je(ye.Hours,2);break;case"m":L=je(ye.Minutes,1);break;case"mm":L=je(ye.Minutes,2);break;case"s":L=je(ye.Seconds,1);break;case"ss":L=je(ye.Seconds,2);break;case"S":L=je(ye.FractionalSeconds,1);break;case"SS":L=je(ye.FractionalSeconds,2);break;case"SSS":L=je(ye.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":L=j1(ce.Short);break;case"ZZZZZ":L=j1(ce.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":L=j1(ce.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":L=j1(ce.Long);break;default:return null}return I2[v]=L,L}(H2);_2+=S2?S2(f1,b,w2):"''"===H2?"'":H2.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),_2}function i2(v,L,b){const H=new Date(0);return H.setFullYear(v,L,b),H.setHours(0,0,0),H}function Qe(v,L){const b=function t2(v){return(0,o.cg1)(v)[o.wAp.LocaleId]}(v);if(g1[b]=g1[b]||{},g1[b][L])return g1[b][L];let H="";switch(L){case"shortDate":H=O(v,G1.Short);break;case"mediumDate":H=O(v,G1.Medium);break;case"longDate":H=O(v,G1.Long);break;case"fullDate":H=O(v,G1.Full);break;case"shortTime":H=h1(v,G1.Short);break;case"mediumTime":H=h1(v,G1.Medium);break;case"longTime":H=h1(v,G1.Long);break;case"fullTime":H=h1(v,G1.Full);break;case"short":const f1=Qe(v,"shortTime"),U1=Qe(v,"shortDate");H=O2(q1(v,G1.Short),[f1,U1]);break;case"medium":const ge=Qe(v,"mediumTime"),$e=Qe(v,"mediumDate");H=O2(q1(v,G1.Medium),[ge,$e]);break;case"long":const w2=Qe(v,"longTime"),_2=Qe(v,"longDate");H=O2(q1(v,G1.Long),[w2,_2]);break;case"full":const H2=Qe(v,"fullTime"),S2=Qe(v,"fullDate");H=O2(q1(v,G1.Full),[H2,S2])}return H&&(g1[b][L]=H),H}function O2(v,L){return L&&(v=v.replace(/\{([^}]+)}/g,function(b,H){return null!=L&&H in L?L[H]:b})),v}function x2(v,L,b="-",H,f1){let U1="";(v<0||f1&&v<=0)&&(f1?v=1-v:(v=-v,U1=b));let ge=String(v);for(;ge.length<L;)ge="0"+ge;return H&&(ge=ge.substr(ge.length-L)),U1+ge}function je(v,L,b=0,H=!1,f1=!1){return function(U1,ge){let $e=function Pe(v,L){switch(v){case ye.FullYear:return L.getFullYear();case ye.Month:return L.getMonth();case ye.Date:return L.getDate();case ye.Hours:return L.getHours();case ye.Minutes:return L.getMinutes();case ye.Seconds:return L.getSeconds();case ye.FractionalSeconds:return L.getMilliseconds();case ye.Day:return L.getDay();default:throw new Error(`Unknown DateType value "${v}".`)}}(v,U1);if((b>0||$e>-b)&&($e+=b),v===ye.Hours)0===$e&&-12===b&&($e=12);else if(v===ye.FractionalSeconds)return function W2(v,L){return x2(v,3).substr(0,L)}($e,L);const w2=_1(ge,ne.MinusSign);return x2($e,L,w2,H,f1)}}function Ye(v,L,b=te.Format,H=!1){return function(f1,U1){return function x1(v,L,b,H,f1,U1){switch(b){case ze.Months:return function O1(v,L,b){const H=(0,o.cg1)(v),U1=A2([H[o.wAp.MonthsFormat],H[o.wAp.MonthsStandalone]],L);return A2(U1,b)}(L,f1,H)[v.getMonth()];case ze.Days:return function H1(v,L,b){const H=(0,o.cg1)(v),U1=A2([H[o.wAp.DaysFormat],H[o.wAp.DaysStandalone]],L);return A2(U1,b)}(L,f1,H)[v.getDay()];case ze.DayPeriods:const ge=v.getHours(),$e=v.getMinutes();if(U1){const _2=function y2(v){const L=(0,o.cg1)(v);return h2(L),(L[o.wAp.ExtraData][2]||[]).map(H=>"string"==typeof H?V2(H):[V2(H[0]),V2(H[1])])}(L),H2=function P2(v,L,b){const H=(0,o.cg1)(v);h2(H);const U1=A2([H[o.wAp.ExtraData][0],H[o.wAp.ExtraData][1]],L)||[];return A2(U1,b)||[]}(L,f1,H),S2=_2.findIndex(ut=>{if(Array.isArray(ut)){const[Q2,kt]=ut,xn=ge>=Q2.hours&&$e>=Q2.minutes,an=ge<kt.hours||ge===kt.hours&&$e<kt.minutes;if(Q2.hours<kt.hours){if(xn&&an)return!0}else if(xn||an)return!0}else if(ut.hours===ge&&ut.minutes===$e)return!0;return!1});if(-1!==S2)return H2[S2]}return function Je(v,L,b){const H=(0,o.cg1)(v),U1=A2([H[o.wAp.DayPeriodsFormat],H[o.wAp.DayPeriodsStandalone]],L);return A2(U1,b)}(L,f1,H)[ge<12?0:1];case ze.Eras:return function Z1(v,L){return A2((0,o.cg1)(v)[o.wAp.Eras],L)}(L,H)[v.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${b}`)}}(f1,U1,v,L,b,H)}}function j1(v){return function(L,b,H){const f1=-1*H,U1=_1(b,ne.MinusSign),ge=f1>0?Math.floor(f1/60):Math.ceil(f1/60);switch(v){case ce.Short:return(f1>=0?"+":"")+x2(ge,2,U1)+x2(Math.abs(f1%60),2,U1);case ce.ShortGMT:return"GMT"+(f1>=0?"+":"")+x2(ge,1,U1);case ce.Long:return"GMT"+(f1>=0?"+":"")+x2(ge,2,U1)+":"+x2(Math.abs(f1%60),2,U1);case ce.Extended:return 0===H?"Z":(f1>=0?"+":"")+x2(ge,2,U1)+":"+x2(Math.abs(f1%60),2,U1);default:throw new Error(`Unknown zone width "${v}"`)}}}function Ze(v){return i2(v.getFullYear(),v.getMonth(),v.getDate()+(4-v.getDay()))}function E2(v,L=!1){return function(b,H){let f1;if(L){const U1=new Date(b.getFullYear(),b.getMonth(),1).getDay()-1,ge=b.getDate();f1=1+Math.floor((ge+U1)/7)}
1else{const U1=Ze(b),ge=function Re(v){const L=i2(v,0,1).getDay();return i2(v,0,1+(L<=4?4:11)-L)}(U1.getFullYear()),$e=U1.getTime()-ge.getTime();f1=1+Math.round($e/6048e5)}return x2(f1,v,_1(H,ne.MinusSign))}}function U2(v,L=!1){return function(b,H){return x2(Ze(b).getFullYear(),v,_1(H,ne.MinusSign),L)}}const I2={};function J2(v,L){v=v.replace(/:/g,"");const b=Date.parse("Jan 01, 1970 00:00:00 "+v)/6e4;return isNaN(b)?L:b}function A1(v){return v instanceof Date&&!isNaN(v.valueOf())}const ee=/^(\d+)?\.((\d+)(-(\d+))?)?$/,w=".",x="0";function K(v){const L=parseInt(v);if(isNaN(L))throw new Error("Invalid integer literal when parsing "+v);return L}function Ne(v,L){L=encodeURIComponent(L);for(const b of v.split(";")){const H=b.indexOf("="),[f1,U1]=-1==H?[b,""]:[b.slice(0,H),b.slice(H+1)];if(f1.trim()===L)return decodeURIComponent(U1)}return null}let Le=(()=>{class v{constructor(b,H,f1,U1){this._iterableDiffers=b,this._keyValueDiffers=H,this._ngEl=f1,this._renderer=U1,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(b){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof b?b.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(b){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof b?b.split(/\s+/):b,this._rawClass&&((0,o.sIi)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const b=this._iterableDiffer.diff(this._rawClass);b&&this._applyIterableChanges(b)}else if(this._keyValueDiffer){const b=this._keyValueDiffer.diff(this._rawClass);b&&this._applyKeyValueChanges(b)}}_applyKeyValueChanges(b){b.forEachAddedItem(H=>this._toggleClass(H.key,H.currentValue)),b.forEachChangedItem(H=>this._toggleClass(H.key,H.currentValue)),b.forEachRemovedItem(H=>{H.previousValue&&this._toggleClass(H.key,!1)})}_applyIterableChanges(b){b.forEachAddedItem(H=>{if("string"!=typeof H.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,o.AaK)(H.item)}`);this._toggleClass(H.item,!0)}),b.forEachRemovedItem(H=>this._toggleClass(H.item,!1))}_applyClasses(b){b&&(Array.isArray(b)||b instanceof Set?b.forEach(H=>this._toggleClass(H,!0)):Object.keys(b).forEach(H=>this._toggleClass(H,!!b[H])))}_removeClasses(b){b&&(Array.isArray(b)||b instanceof Set?b.forEach(H=>this._toggleClass(H,!1)):Object.keys(b).forEach(H=>this._toggleClass(H,!1)))}_toggleClass(b,H){(b=b.trim())&&b.split(/\s+/g).forEach(f1=>{H?this._renderer.addClass(this._ngEl.nativeElement,f1):this._renderer.removeClass(this._ngEl.nativeElement,f1)})}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.ZZ4),o.Y36(o.aQg),o.Y36(o.SBq),o.Y36(o.Qsj))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),v})();class _e{constructor(L,b,H,f1){this.$implicit=L,this.ngForOf=b,this.index=H,this.count=f1}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Ce=(()=>{class v{constructor(b,H,f1){this._viewContainer=b,this._template=H,this._differs=f1,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(b){this._ngForOf=b,this._ngForOfDirty=!0}set ngForTrackBy(b){this._trackByFn=b}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(b){b&&(this._template=b)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const b=this._ngForOf;!this._differ&&b&&(this._differ=this._differs.find(b).create(this.ngForTrackBy))}if(this._differ){const b=this._differ.diff(this._ngForOf);b&&this._applyChanges(b)}}_applyChanges(b){const H=this._viewContainer;b.forEachOperation((f1,U1,ge)=>{if(null==f1.previousIndex)H.createEmbeddedView(this._template,new _e(f1.item,this._ngForOf,-1,-1),null===ge?void 0:ge);else if(null==ge)H.remove(null===U1?void 0:U1);else if(null!==U1){const $e=H.get(U1);H.move($e,ge),Ge($e,f1)}});for(let f1=0,U1=H.length;f1<U1;f1++){const $e=H.get(f1).context;$e.index=f1,$e.count=U1,$e.ngForOf=this._ngForOf}b.forEachIdentityChange(f1=>{Ge(H.get(f1.currentIndex),f1)})}static ngTemplateContextGuard(b,H){return!0}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.s_b),o.Y36(o.Rgc),o.Y36(o.ZZ4))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),v})();function Ge(v,L){v.context.$implicit=L.item}let n2=(()=>{class v{constructor(b,H){this._viewContainer=b,this._context=new Fe,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenView
1Ref=null,this._elseViewRef=null,this._thenTemplateRef=H}set ngIf(b){this._context.$implicit=this._context.ngIf=b,this._updateView()}set ngIfThen(b){r2("ngIfThen",b),this._thenTemplateRef=b,this._thenViewRef=null,this._updateView()}set ngIfElse(b){r2("ngIfElse",b),this._elseTemplateRef=b,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(b,H){return!0}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.s_b),o.Y36(o.Rgc))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),v})();class Fe{constructor(){this.$implicit=null,this.ngIf=null}}function r2(v,L){if(L&&!L.createEmbeddedView)throw new Error(`${v} must be a TemplateRef, but received '${(0,o.AaK)(L)}'.`)}const s2="browser";function L2(v){return v===s2}class be{constructor(L,b){this._viewContainerRef=L,this._templateRef=b,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(L){L&&!this._created?this.create():!L&&this._created&&this.destroy()}}let C2=(()=>{class v{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(b){this._ngSwitch=b,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(b){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(b)}_matchCase(b){const H=b==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||H,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),H}_updateDefaultCases(b){if(this._defaultViews&&b!==this._defaultUsed){this._defaultUsed=b;for(let H=0;H<this._defaultViews.length;H++)this._defaultViews[H].enforceState(b)}}}return v.\u0275fac=function(b){return new(b||v)},v.\u0275dir=o.lG2({type:v,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"}}),v})(),h4=(()=>{class v{constructor(b,H,f1){this.ngSwitch=f1,f1._addCase(),this._view=new be(b,H)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.s_b),o.Y36(o.Rgc),o.Y36(C2,9))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),v})(),rt=(()=>{class v{constructor(b,H,f1){f1._addDefault(new be(b,H))}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.s_b),o.Y36(o.Rgc),o.Y36(C2,9))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngSwitchDefault",""]]}),v})(),Bn=(()=>{class v{constructor(b,H,f1){this._ngEl=b,this._differs=H,this._renderer=f1,this._ngStyle=null,this._differ=null}set ngStyle(b){this._ngStyle=b,!this._differ&&b&&(this._differ=this._differs.find(b).create())}ngDoCheck(){if(this._differ){const b=this._differ.diff(this._ngStyle);b&&this._applyChanges(b)}}_setStyle(b,H){const[f1,U1]=b.split(".");null!=(H=null!=H&&U1?`${H}${U1}`:H)?this._renderer.setStyle(this._ngEl.nativeElement,f1,H):this._renderer.removeStyle(this._ngEl.nativeElement,f1)}_applyChanges(b){b.forEachRemovedItem(H=>this._setStyle(H.key,null)),b.forEachAddedItem(H=>this._setStyle(H.key,H.currentValue)),b.forEachChangedItem(H=>this._setStyle(H.key,H.currentValue))}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.SBq),o.Y36(o.aQg),o.Y36(o.Qsj))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),v})(),Un=(()=>{class v{constructor(b){this._viewContainerRef=b,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(b){if(b.ngTemplateOutlet){const H=this._viewContainerRef;this._viewRef&&H.remove(H.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?H.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&b.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.s_b))},v.\u0275dir=o.lG2({type:v,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[o.TTD]}),v})();function tn(v,L){return new o.vHH(2100,"")}class P4{createSubscription(L,b){return L.subscribe({next:b,error:H=>{throw H}})}dispose(L){L.unsubscribe()}onDestroy(L){L.unsubscribe()}}class A{createSubscription(L,b){return L.then(b,H=>{throw H})}dispose(L){}onDestroy(L){}}const P=new A,$=new P4;let t1=(()=>{class v{constructor(b){this._ref=b,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(b){return this._obj?b!==this._obj?(this._dispose(),this.transform(b)):this._latestValue:(b&&this._subscribe(b),this._latestValue)}_subscribe(b){this._obj=b,this._strategy=this._selectStrategy(b),this._subscription=this._strategy.createSubscription(b,H=>this._updateLatestValue(b,H))}_selectStrategy(b){if((0,o.QGY)(b))return P;if((0,o.F4k)(b))return $;throw tn()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(b,H){b===this._obj&&(this._latestValue=H,this._ref.markForCheck())}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.sBO,16))},v.\u0275pipe=o.Yjl({name:"async",type:v,pure:!1}),v})(),L1=(()=>{class v{transform(b){if(null==b)return null;if("string"!=typeof b)throw tn();return b.toLowerCase()}}return v.\u0275fac=function(b){return new(b||v)},v.\u0275pipe=o.Yjl({name:"lowercase",type:v,pure:!0}),v})(),he=(()=>{class v{transform(b){if(null==b)return null;if("string"!=typeof b)throw tn();return b.toUpperCase()}}return v.\u0275fac=function(b){return new(b||v)},v.\u0275pipe=o.Yjl({name:"uppercase",type:v,pure:!0}),v})();const Ie=new o.OlP("DATE_PIPE_DEFAULT_TIMEZONE");let m2=(()=>{class v{constructor(b,H){this.locale=b,this.defaultTimezone=H}transform(b,H="mediumDate",f1,U1){var ge;if(null==b||""===b||b!=b)return null;try{return z2(b,H,U1||this.locale,null!==(ge=null!=f1?f1:this.defaultTimezone)&&void 0!==ge?ge:void 0)}catch($e){throw tn()}}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.soG,16),o.Y36(Ie,24))},v.\u0275pipe=o.Yjl({name:"date",type:v,pure:!0}),v})(),lt=(()=>{class v{constructor(b){this.differs=b,this.keyValues=[],this.compareFn=it}transform(b,H=it){if(!b||!(b instanceof Map)&&"object"!=typeof b)return null;this.differ||(this.differ=this.differs.find(b).create());const f1=this.differ.diff(b),U1=H!==this.compareFn;
1return f1&&(this.keyValues=[],f1.forEachItem(ge=>{this.keyValues.push(function Et(v,L){return{key:v,value:L}}(ge.key,ge.currentValue))})),(f1||U1)&&(this.keyValues.sort(H),this.compareFn=H),this.keyValues}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.aQg,16))},v.\u0275pipe=o.Yjl({name:"keyvalue",type:v,pure:!1}),v})();function it(v,L){const b=v.key,H=L.key;if(b===H)return 0;if(void 0===b)return 1;if(void 0===H)return-1;if(null===b)return 1;if(null===H)return-1;if("string"==typeof b&&"string"==typeof H)return b<H?-1:1;if("number"==typeof b&&"number"==typeof H)return b-H;if("boolean"==typeof b&&"boolean"==typeof H)return b<H?-1:1;const f1=String(b),U1=String(H);return f1==U1?0:f1<U1?-1:1}let bt=(()=>{class v{constructor(b){this._locale=b}transform(b,H,f1){if(!function Tt(v){return!(null==v||""===v||v!=v)}(b))return null;f1=f1||this._locale;try{return function le(v,L,b){return function o1(v,L,b,H,f1,U1,ge=!1){let $e="",w2=!1;if(isFinite(v)){let _2=function B(v){let H,f1,U1,ge,$e,L=Math.abs(v)+"",b=0;for((f1=L.indexOf(w))>-1&&(L=L.replace(w,"")),(U1=L.search(/e/i))>0?(f1<0&&(f1=U1),f1+=+L.slice(U1+1),L=L.substring(0,U1)):f1<0&&(f1=L.length),U1=0;L.charAt(U1)===x;U1++);if(U1===($e=L.length))H=[0],f1=1;else{for($e--;L.charAt($e)===x;)$e--;for(f1-=U1,H=[],ge=0;U1<=$e;U1++,ge++)H[ge]=Number(L.charAt(U1))}return f1>22&&(H=H.splice(0,21),b=f1-1,f1=1),{digits:H,exponent:b,integerLen:f1}}(v);ge&&(_2=function He(v){if(0===v.digits[0])return v;const L=v.digits.length-v.integerLen;return v.exponent?v.exponent+=2:(0===L?v.digits.push(0,0):1===L&&v.digits.push(0),v.integerLen+=2),v}(_2));let H2=L.minInt,S2=L.minFrac,ut=L.maxFrac;if(U1){const dn=U1.match(ee);if(null===dn)throw new Error(`${U1} is not a valid digit info`);const e4=dn[1],t4=dn[3],jn=dn[5];null!=e4&&(H2=K(e4)),null!=t4&&(S2=K(t4)),null!=jn?ut=K(jn):null!=t4&&S2>ut&&(ut=S2)}!function V(v,L,b){if(L>b)throw new Error(`The minimum number of digits after fraction (${L}) is higher than the maximum (${b}).`);let H=v.digits,f1=H.length-v.integerLen;const U1=Math.min(Math.max(L,f1),b);let ge=U1+v.integerLen,$e=H[ge];if(ge>0){H.splice(Math.max(v.integerLen,ge));for(let S2=ge;S2<H.length;S2++)H[S2]=0}else{f1=Math.max(0,f1),v.integerLen=1,H.length=Math.max(1,ge=U1+1),H[0]=0;for(let S2=1;S2<ge;S2++)H[S2]=0}if($e>=5)if(ge-1<0){for(let S2=0;S2>ge;S2--)H.unshift(0),v.integerLen++;H.unshift(1),v.integerLen++}else H[ge-1]++;for(;f1<Math.max(0,U1);f1++)H.push(0);let w2=0!==U1;const _2=L+v.integerLen,H2=H.reduceRight(function(S2,ut,Q2,kt){return kt[Q2]=(ut+=S2)<10?ut:ut-10,w2&&(0===kt[Q2]&&Q2>=_2?kt.pop():w2=!1),ut>=10?1:0},0);H2&&(H.unshift(H2),v.integerLen++)}(_2,S2,ut);let Q2=_2.digits,kt=_2.integerLen;const xn=_2.exponent;let an=[];for(w2=Q2.every(dn=>!dn);kt<H2;kt++)Q2.unshift(0);for(;kt<0;kt++)Q2.unshift(0);kt>0?an=Q2.splice(kt,Q2.length):(an=Q2,Q2=[0]);const Dn=[];for(Q2.length>=L.lgSize&&Dn.unshift(Q2.splice(-L.lgSize,Q2.length).join(""));Q2.length>L.gSize;)Dn.unshift(Q2.splice(-L.gSize,Q2.length).join(""));Q2.length&&Dn.unshift(Q2.join("")),$e=Dn.join(_1(b,H)),an.length&&($e+=_1(b,f1)+an.join("")),xn&&($e+=_1(b,ne.Exponential)+"+"+xn)}else $e=_1(b,ne.Infinity);return $e=v<0&&!w2?L.negPre+$e+L.negSuf:L.posPre+$e+L.posSuf,$e}(v,function re(v,L="-"){const b={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},H=v.split(";"),f1=H[0],U1=H[1],ge=-1!==f1.indexOf(w)?f1.split(w):[f1.substring(0,f1.lastIndexOf(x)+1),f1.substring(f1.lastIndexOf(x)+1)],$e=ge[0],w2=ge[1]||"";b.posPre=$e.substr(0,$e.indexOf("#"));for(let H2=0;H2<w2.length;H2++){const S2=w2.charAt(H2);S2===x?b.minFrac=b.maxFrac=H2+1:"#"===S2?b.maxFrac=H2+1:b.posSuf+=S2}const _2=$e.split(",");if(b.gSize=_2[1]?_2[1].length:0,b.lgSize=_2[2]||_2[1]?(_2[2]||_2[1]).length:0,U1){const H2=f1.length-b.posPre.length-b.posSuf.length,S2=U1.indexOf("#");b.negPre=U1.substr(0,S2).replace(/'/g,""),b.negSuf=U1.substr(S2+H2).replace(/'/g,"")}else b.negPre=L+b.posPre,b.negSuf=b.posSuf;return b}(function T1(v,L){return(0,o.cg1)(v)[o.wAp.NumberFormats][L]}(L,Ae.Decimal),_1(L,ne.MinusSign)),L,ne.Group,ne.Decimal,b)}(function rn(v){if("string"==typeof v&&!isNaN(Number(v)-parseFloat(v)))return Number(v);if("number"!=typeof v)throw new Error(`${v} is not a number`);return v}(b),f1,H)}catch(U1){throw tn()}}}return v.\u0275fac=function(b){return new(b||v)(o.Y36(o.soG,16))},v.\u0275pipe=o.Yjl({name:"number",type:v,pure:!0}),v})();let Ct=(()=>{class v{}return v.\u0275fac=function(b){return new(b||v)},v.\u0275mod=o.oAB({type:v}),v.\u0275inj=o.cJS({}),v})(),Z2=(()=>{class v{}return v.\u0275prov=(0,o.Yz7)({token:v,providedIn:"root",factory:()=>new O4((0,o.LFG)(N),window)}),v})();class O4{constructor(L,b){this.document=L,this.window=b,this.offset=()=>[0,0]}setOffset(L){this.offset=Array.isArray(L)?()=>L:L}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(L){this.supportsScrolling()&&this.window.scrollTo(L[0],L[1])}scrollToAnchor(L){if(!this.supportsScrolling())return;const b=function I4(v,L){const b=v.getElementById(L)||v.getElementsByName(L)[0];if(b)return b;if("function"==typeof v.createTreeWalker&&v.body&&(v.body.createShadowRoot||v.body.attachShadow)){const H=v.createTreeWalker(v.body,NodeFilter.SHOW_ELEMENT);let f1=H.currentNode;for(;f1;){const U1=f1.shadowRoot;if(U1){const ge=U1.getElementById(L)||U1.querySelector(`[name="${L}"]`);if(ge)return ge}f1=H.nextNode()}}return null}(this.document,L);b&&(this.scrollToElement(b),b.focus())}setHistoryScrollRestoration(L){if(this.supportScrollRestoration()){const b=this.window.history;b&&b.scrollRestoration&&(b.scrollRestoration=L)}}scrollToElement(L){const b=L.getBoundingClientRect(),H=b.left+this.window.pageXOffset,f1=b.to
1p+this.window.pageYOffset,U1=this.offset();this.window.scrollTo(H-U1[0],f1-U1[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const L=Vt(this.window.history)||Vt(Object.getPrototypeOf(this.window.history));return!(!L||!L.writable&&!L.set)}catch(L){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(L){return!1}}}function Vt(v){return Object.getOwnPropertyDescriptor(v,"scrollRestoration")}class p4{}},520:(xe,S1,m)=>{"use strict";m.d(S1,{JF:()=>V2,LE:()=>u1,TP:()=>t2,eN:()=>ne});var o=m(9808),a=m(6435),I=m(1086),r1=m(2916),X=m(1406),U=m(2198),N=m(4850);class F{}class j{}class W{constructor(Q){this.normalizedNames=new Map,this.lazyUpdate=null,Q?this.lazyInit="string"==typeof Q?()=>{this.headers=new Map,Q.split("\n").forEach(g1=>{const se=g1.indexOf(":");if(se>0){const ce=g1.slice(0,se),ye=ce.toLowerCase(),ze=g1.slice(se+1).trim();this.maybeSetNormalizedName(ce,ye),this.headers.has(ye)?this.headers.get(ye).push(ze):this.headers.set(ye,[ze])}})}:()=>{this.headers=new Map,Object.keys(Q).forEach(g1=>{let se=Q[g1];const ce=g1.toLowerCase();"string"==typeof se&&(se=[se]),se.length>0&&(this.headers.set(ce,se),this.maybeSetNormalizedName(g1,ce))})}:this.headers=new Map}has(Q){return this.init(),this.headers.has(Q.toLowerCase())}get(Q){this.init();const g1=this.headers.get(Q.toLowerCase());return g1&&g1.length>0?g1[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Q){return this.init(),this.headers.get(Q.toLowerCase())||null}append(Q,g1){return this.clone({name:Q,value:g1,op:"a"})}set(Q,g1){return this.clone({name:Q,value:g1,op:"s"})}delete(Q,g1){return this.clone({name:Q,value:g1,op:"d"})}maybeSetNormalizedName(Q,g1){this.normalizedNames.has(g1)||this.normalizedNames.set(g1,Q)}init(){this.lazyInit&&(this.lazyInit instanceof W?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Q=>this.applyUpdate(Q)),this.lazyUpdate=null))}copyFrom(Q){Q.init(),Array.from(Q.headers.keys()).forEach(g1=>{this.headers.set(g1,Q.headers.get(g1)),this.normalizedNames.set(g1,Q.normalizedNames.get(g1))})}clone(Q){const g1=new W;return g1.lazyInit=this.lazyInit&&this.lazyInit instanceof W?this.lazyInit:this,g1.lazyUpdate=(this.lazyUpdate||[]).concat([Q]),g1}applyUpdate(Q){const g1=Q.name.toLowerCase();switch(Q.op){case"a":case"s":let se=Q.value;if("string"==typeof se&&(se=[se]),0===se.length)return;this.maybeSetNormalizedName(Q.name,g1);const ce=("a"===Q.op?this.headers.get(g1):void 0)||[];ce.push(...se),this.headers.set(g1,ce);break;case"d":const ye=Q.value;if(ye){let ze=this.headers.get(g1);if(!ze)return;ze=ze.filter(z2=>-1===ye.indexOf(z2)),0===ze.length?(this.headers.delete(g1),this.normalizedNames.delete(g1)):this.headers.set(g1,ze)}else this.headers.delete(g1),this.normalizedNames.delete(g1)}}forEach(Q){this.init(),Array.from(this.normalizedNames.keys()).forEach(g1=>Q(this.normalizedNames.get(g1),this.headers.get(g1)))}}class J{encodeKey(Q){return y1(Q)}encodeValue(Q){return y1(Q)}decodeKey(Q){return decodeURIComponent(Q)}decodeValue(Q){return decodeURIComponent(Q)}}const s1=/%(\d[a-f0-9])/gi,n1={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function y1(ue){return encodeURIComponent(ue).replace(s1,(Q,g1)=>{var se;return null!==(se=n1[g1])&&void 0!==se?se:Q})}function M1(ue){return`${ue}`}class u1{constructor(Q={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Q.encoder||new J,Q.fromString){if(Q.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function l1(ue,Q){const g1=new Map;return ue.length>0&&ue.replace(/^\?/,"").split("&").forEach(ce=>{const ye=ce.indexOf("="),[ze,z2]=-1==ye?[Q.decodeKey(ce),""]:[Q.decodeKey(ce.slice(0,ye)),Q.decodeValue(ce.slice(ye+1))],i2=g1.get(ze)||[];i2.push(z2),g1.set(ze,i2)}),g1}(Q.fromString,this.encoder)}else Q.fromObject?(this.map=new Map,Object.keys(Q.fromObject).forEach(g1=>{const se=Q.fromObject[g1];this.map.set(g1,Array.isArray(se)?se:[se])})):this.map=null}has(Q){return this.init(),this.map.has(Q)}get(Q){this.init();const g1=this.map.get(Q);return g1?g1[0]:null}getAll(Q){return this.init(),this.map.get(Q)||null}
1keys(){return this.init(),Array.from(this.map.keys())}append(Q,g1){return this.clone({param:Q,value:g1,op:"a"})}appendAll(Q){const g1=[];return Object.keys(Q).forEach(se=>{const ce=Q[se];Array.isArray(ce)?ce.forEach(ye=>{g1.push({param:se,value:ye,op:"a"})}):g1.push({param:se,value:ce,op:"a"})}),this.clone(g1)}set(Q,g1){return this.clone({param:Q,value:g1,op:"s"})}delete(Q,g1){return this.clone({param:Q,value:g1,op:"d"})}toString(){return this.init(),this.keys().map(Q=>{const g1=this.encoder.encodeKey(Q);return this.map.get(Q).map(se=>g1+"="+this.encoder.encodeValue(se)).join("&")}).filter(Q=>""!==Q).join("&")}clone(Q){const g1=new u1({encoder:this.encoder});return g1.cloneFrom=this.cloneFrom||this,g1.updates=(this.updates||[]).concat(Q),g1}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Q=>this.map.set(Q,this.cloneFrom.map.get(Q))),this.updates.forEach(Q=>{switch(Q.op){case"a":case"s":const g1=("a"===Q.op?this.map.get(Q.param):void 0)||[];g1.push(M1(Q.value)),this.map.set(Q.param,g1);break;case"d":if(void 0===Q.value){this.map.delete(Q.param);break}{let se=this.map.get(Q.param)||[];const ce=se.indexOf(M1(Q.value));-1!==ce&&se.splice(ce,1),se.length>0?this.map.set(Q.param,se):this.map.delete(Q.param)}}}),this.cloneFrom=this.updates=null)}}class R1{constructor(){this.map=new Map}set(Q,g1){return this.map.set(Q,g1),this}get(Q){return this.map.has(Q)||this.map.set(Q,Q.defaultValue()),this.map.get(Q)}delete(Q){return this.map.delete(Q),this}has(Q){return this.map.has(Q)}keys(){return this.map.keys()}}function K1(ue){return"undefined"!=typeof ArrayBuffer&&ue instanceof ArrayBuffer}function X1(ue){return"undefined"!=typeof Blob&&ue instanceof Blob}function Se(ue){return"undefined"!=typeof FormData&&ue instanceof FormData}class ae{constructor(Q,g1,se,ce){let ye;if(this.url=g1,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Q.toUpperCase(),function D1(ue){switch(ue){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||ce?(this.body=void 0!==se?se:null,ye=ce):ye=se,ye&&(this.reportProgress=!!ye.reportProgress,this.withCredentials=!!ye.withCredentials,ye.responseType&&(this.responseType=ye.responseType),ye.headers&&(this.headers=ye.headers),ye.context&&(this.context=ye.context),ye.params&&(this.params=ye.params)),this.headers||(this.headers=new W),this.context||(this.context=new R1),this.params){const ze=this.params.toString();if(0===ze.length)this.urlWithParams=g1;else{const z2=g1.indexOf("?");this.urlWithParams=g1+(-1===z2?"?":z2<g1.length-1?"&":"")+ze}}else this.params=new u1,this.urlWithParams=g1}serializeBody(){return null===this.body?null:K1(this.body)||X1(this.body)||Se(this.body)||function Me(ue){return"undefined"!=typeof URLSearchParams&&ue instanceof URLSearchParams}(this.body)||"string"==typeof this.body?this.body:this.body instanceof u1?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||Se(this.body)?null:X1(this.body)?this.body.type||null:K1(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof u1?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||"boolean"==typeof this.body?"application/json":null}clone(Q={}){var g1;const se=Q.method||this.method,ce=Q.url||this.url,ye=Q.responseType||this.responseType,ze=void 0!==Q.body?Q.body:this.body,z2=void 0!==Q.withCredentials?Q.withCredentials:this.withCredentials,i2=void 0!==Q.reportProgress?Q.reportProgress:this.reportProgress;let Qe=Q.headers||this.headers,O2=Q.params||this.params;const x2=null!==(g1=Q.context)&&void 0!==g1?g1:this.context;return void 0!==Q.setHeaders&&(Qe=Object.keys(Q.setHeaders).reduce((W2,je)=>W2.set(je,Q.setHeaders[je]),Qe)),Q.setParams&&(O2=Object.keys(Q.setParams).reduce((W2,je)=>W2.set(je,Q.setParams[je]),O2)),new ae(se,ce,ze,{params:O2,headers:Qe,context:x2,reportProgress:i2,responseType:ye,withCredentials:z2})}}var Ee=(()=>((Ee=Ee||{})[Ee.Sent=0]="Sent",Ee[Ee.UploadProgress=1]="UploadProgress",Ee[Ee.ResponseHeader=2]="ResponseHeader",Ee[Ee.DownloadProgress=3]="DownloadProgress",Ee[Ee.Response=4]="Response",Ee[Ee.User=5]="User",Ee))();class Ae{constructor(Q,g1=200,se="OK"){this.headers=Q.headers||new W,this.status=void 0!==Q.status?Q.status:g1,this.statusText=Q.statusText||se,this.url=Q.url||null,this.ok=this.status>=200&&this.status<300}}class ke extends Ae{constructor(Q={}){super(Q),this.type=Ee.ResponseHeader}clone(Q={}){return new ke({headers:Q.headers||this.headers,status:void 0!==Q.status?Q.status:this.status,statusText:Q.statusText||this.statusText,url:Q.url||this.url||void 0})}}class te extends Ae{constructor(Q={}){super(Q),this.type=Ee.Response,this.body=void 0!==Q.body?Q.body:null}clone(Q={}){return new te({body:void 0!==Q.body?Q.body:this.body,headers:Q.headers||this.headers,status:void 0!==Q.status?Q.status:this.status,statusText:Q.statusText||this.statusText,url:Q.url||this.url||void 0})}}class ie extends Ae{constructor(Q){super(Q,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Q.url||"(unknown url)"}`:`Http failure response for ${Q.url||"(unknown url)"}: ${Q.status} ${Q.statusText}`,this.error=Q.error||null}}function G1(ue,Q){return{body:Q,headers:ue.headers,context:ue.context,observe:ue.observe,params:ue.params,reportProgress:ue.reportProgress,responseType:ue.responseType,withCredentials:ue.withCredentials}}let ne=(()=>{class ue{constructor(g1){this.handler=g1}request(g1,se,ce={}){let ye;if(g1 instanceof ae)ye=g1;else{let i2,Qe;i2=ce.headers instanceof W?ce.headers:new W(ce.headers),ce.params&&(Qe=ce.params instanceof u1?ce.params:new u1({fromObject:ce.params})),ye=new ae(g1,se,void 0!==ce.body?ce.body:null,{headers:i2,context:ce.context,params:Qe,reportProgress:ce.reportProgress,responseType:ce.responseType||"json",withCredentials:ce.withCredentials})}const ze=(0,I.of)(ye).pipe((0,X.b)(i2=>this.handler.handle(i2)));if(g1 instanceof ae||"events"===ce.observe)return ze;const z2=ze.pipe((0,U.h)(i2=>i2 instanceof te));switch(ce.observe||"body"){case"body":switch(ye.responseType){case"arraybuffer":return z2.pipe((0,N.U)(i2=>{if(null!==i2.body&&!(i2.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return i2.body}));case"blob":return z2.pipe((0,N.U)(i2=>{if(null!==i2.body&&!(i2.body instanceof Blob))throw new Error("Response is not a Blob.");return i2.body}));case"text":return z2.pipe((0,N.U)(i2=>{if(null!==i2.body&&"string"!=typeof i2.body)throw new Error("Response is not a string.");return i2.body}));default:return z2.pipe((0,N.U)(i2=>i2.body))}case"response":return z2;default:throw new Error(`Unreachable: unhandled observe type ${ce.observe}}`)}}delete(g1,se={}){return this.request("DELETE",g1,se)}get(g1,se={}){return this.request("GET",g1,se)}head(g1,se={}){return this.request("HEAD",g1,se)}jsonp(g1,se){return this.request("JSONP",g1,{params:(new u1).append(se,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(g1,se={}){return this.request("OPTIONS",g1,se)}patch(g1,se,ce={}){return this.request("PATCH",g1,G1(ce,se))}post(g1,se,ce={}){return this.request("POST",g1,G1(ce,se))}put(g1,se,ce={}){return this.request("PUT",g1,G1(ce,se))}}return ue.\u0275fac=function(g1){return new(g1||ue)(a.LFG(F))},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})();class Ke{constructor(Q,g1){this.next=Q,this.interceptor=g1}handle(Q){return this.interceptor.intercept(Q,this.next)}}const t2=new a.OlP("HTTP_INTERCEPTORS");let Je=(()=>{class ue{intercept(g1,se){return se.handle(g1)}}return ue.\u0275fac=function(g1){return new(g1||ue)},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})();const _1=/^\)\]\}',?\n/;let p1=(()=>{class ue{constructor(g1){this.xhrFactory=g1}handle(g1){if("JSONP"===g1.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new r1.y(se=>{const ce=this.xhrFactory.build();if(ce.open(g1.method,g1.urlWithParams),g1.withCredentials&&(ce.withCredentials=!0),g1.headers.forEac
1h((je,Pe)=>ce.setRequestHeader(je,Pe.join(","))),g1.headers.has("Accept")||ce.setRequestHeader("Accept","application/json, text/plain, */*"),!g1.headers.has("Content-Type")){const je=g1.detectContentTypeHeader();null!==je&&ce.setRequestHeader("Content-Type",je)}if(g1.responseType){const je=g1.responseType.toLowerCase();ce.responseType="json"!==je?je:"text"}const ye=g1.serializeBody();let ze=null;const z2=()=>{if(null!==ze)return ze;const je=ce.statusText||"OK",Pe=new W(ce.getAllResponseHeaders()),Ye=function T1(ue){return"responseURL"in ue&&ue.responseURL?ue.responseURL:/^X-Request-URL:/m.test(ue.getAllResponseHeaders())?ue.getResponseHeader("X-Request-URL"):null}(ce)||g1.url;return ze=new ke({headers:Pe,status:ce.status,statusText:je,url:Ye}),ze},i2=()=>{let{headers:je,status:Pe,statusText:Ye,url:x1}=z2(),j1=null;204!==Pe&&(j1=void 0===ce.response?ce.responseText:ce.response),0===Pe&&(Pe=j1?200:0);let c1=Pe>=200&&Pe<300;if("json"===g1.responseType&&"string"==typeof j1){const F1=j1;j1=j1.replace(_1,"");try{j1=""!==j1?JSON.parse(j1):null}catch(Re){j1=F1,c1&&(c1=!1,j1={error:Re,text:j1})}}c1?(se.next(new te({body:j1,headers:je,status:Pe,statusText:Ye,url:x1||void 0})),se.complete()):se.error(new ie({error:j1,headers:je,status:Pe,statusText:Ye,url:x1||void 0}))},Qe=je=>{const{url:Pe}=z2(),Ye=new ie({error:je,status:ce.status||0,statusText:ce.statusText||"Unknown Error",url:Pe||void 0});se.error(Ye)};let O2=!1;const x2=je=>{O2||(se.next(z2()),O2=!0);let Pe={type:Ee.DownloadProgress,loaded:je.loaded};je.lengthComputable&&(Pe.total=je.total),"text"===g1.responseType&&!!ce.responseText&&(Pe.partialText=ce.responseText),se.next(Pe)},W2=je=>{let Pe={type:Ee.UploadProgress,loaded:je.loaded};je.lengthComputable&&(Pe.total=je.total),se.next(Pe)};return ce.addEventListener("load",i2),ce.addEventListener("error",Qe),ce.addEventListener("timeout",Qe),ce.addEventListener("abort",Qe),g1.reportProgress&&(ce.addEventListener("progress",x2),null!==ye&&ce.upload&&ce.upload.addEventListener("progress",W2)),ce.send(ye),se.next({type:Ee.Sent}),()=>{ce.removeEventListener("error",Qe),ce.removeEventListener("abort",Qe),ce.removeEventListener("load",i2),ce.removeEventListener("timeout",Qe),g1.reportProgress&&(ce.removeEventListener("progress",x2),null!==ye&&ce.upload&&ce.upload.removeEventListener("progress",W2)),ce.readyState!==ce.DONE&&ce.abort()}})}}return ue.\u0275fac=function(g1){return new(g1||ue)(a.LFG(o.JF))},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})();const P1=new a.OlP("XSRF_COOKIE_NAME"),B1=new a.OlP("XSRF_HEADER_NAME");class me{}let Oe=(()=>{class ue{constructor(g1,se,ce){this.doc=g1,this.platform=se,this.cookieName=ce,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const g1=this.doc.cookie||"";return g1!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,o.Mx)(g1,this.cookieName),this.lastCookieString=g1),this.lastToken}}return ue.\u0275fac=function(g1){return new(g1||ue)(a.LFG(o.K0),a.LFG(a.Lbi),a.LFG(P1))},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})(),h2=(()=>{class ue{constructor(g1,se){this.tokenService=g1,this.headerName=se}intercept(g1,se){const ce=g1.url.toLowerCase();if("GET"===g1.method||"HEAD"===g1.method||ce.startsWith("http://")||ce.startsWith("https://"))return se.handle(g1);const ye=this.tokenService.getToken();return null!==ye&&!g1.headers.has(this.headerName)&&(g1=g1.clone({headers:g1.headers.set(this.headerName,ye)})),se.handle(g1)}}return ue.\u0275fac=function(g1){return new(g1||ue)(a.LFG(me),a.LFG(B1))},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})(),y2=(()=>{class ue{constructor(g1,se){this.backend=g1,this.injector=se,this.chain=null}handle(g1){if(null===this.chain){const se=this.injector.get(t2,[]);this.chain=se.reduceRight((ce,ye)=>new Ke(ce,ye),this.backend)}return this.chain.handle(g1)}}return ue.\u0275fac=function(g1){return new(g1||ue)(a.LFG(j),a.LFG(a.zs3))},ue.\u0275prov=a.Yz7({token:ue,factory:ue.\u0275fac}),ue})(),A2=(()=>{class ue{static disable(){return{ngModule:ue,providers:[{provide:h2,useClass:Je}]}}static withOptions(g1={}){return{ngModule:ue,providers:[g1.cookieName?{provide:P1,useValue:g1.cookieName}:[],g1.headerName?{provide:B1,useValue:g1.headerName}:[]]}}}return ue.\u0275fac=function(g1){return new(g1||ue)},ue.\u0275mod=a.oAB({type:ue}),ue.\u0275inj=a.cJS({providers:[h2,{provide:t2,useExisting:h2,multi:!0},{provide:me,useClass:Oe},{provide:P1,useValue:"XSRF-TOKEN"},{provide:B1,useValue:"X-XSRF-TOKEN"}
1]}),ue})(),V2=(()=>{class ue{}return ue.\u0275fac=function(g1){return new(g1||ue)},ue.\u0275mod=a.oAB({type:ue}),ue.\u0275inj=a.cJS({providers:[ne,{provide:F,useClass:y2},p1,{provide:j,useExisting:p1}],imports:[[A2.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),ue})()},6435:(xe,S1,m)=>{"use strict";m.d(S1,{deG:()=>xi,tb:()=>y5,AFp:()=>m5,ip1:()=>p5,CZH:()=>qa,hGG:()=>Qf,z2F:()=>ni,sBO:()=>Pf,Sil:()=>pf,_Vd:()=>I6,EJc:()=>ff,SBq:()=>Y3,qLn:()=>v6,vpe:()=>u4,tBr:()=>a6,XFs:()=>We,OlP:()=>ht,zs3:()=>s4,IIB:()=>sf,ZZ4:()=>ci,aQg:()=>li,soG:()=>Ka,YKP:()=>_8,h0i:()=>v3,PXZ:()=>Af,R0b:()=>Jn,FiY:()=>D3,r_U:()=>cf,Lbi:()=>lf,g9A:()=>g5,Qsj:()=>od,FYo:()=>C8,JOm:()=>r4,q3G:()=>wt,tp0:()=>E3,Rgc:()=>X3,dDg:()=>w5,GfV:()=>w8,s_b:()=>B6,ifc:()=>Qe,eFA:()=>_5,G48:()=>Nf,Gpc:()=>M1,X6Q:()=>Vf,_c5:()=>Jf,VLi:()=>_f,c2e:()=>uf,zSh:()=>Wr,wAp:()=>d2,vHH:()=>D1,EiD:()=>bo,mCW:()=>N3,qzn:()=>q4,JVY:()=>Wc,pB0:()=>Jc,eBb:()=>Yc,L6k:()=>qc,LAX:()=>Kc,cg1:()=>za,kL8:()=>Gs,yhl:()=>uo,dqk:()=>Pe,sIi:()=>B3,CqO:()=>J0,QGY:()=>da,F4k:()=>K0,RDi:()=>Yt,AaK:()=>s1,z3N:()=>g4,qOj:()=>Xr,TTD:()=>Rt,_Bn:()=>g8,xp6:()=>Do,uIk:()=>na,Tol:()=>bs,Gre:()=>Hs,ekj:()=>va,Suo:()=>$8,Xpm:()=>J2,lG2:()=>w,Yz7:()=>p1,cJS:()=>B1,oAB:()=>A1,Yjl:()=>x,Y36:()=>j3,_UZ:()=>la,GkF:()=>ua,BQk:()=>D6,ynx:()=>L6,qZA:()=>A6,TgZ:()=>S6,EpF:()=>Y0,n5z:()=>Mi,Ikx:()=>Ma,LFG:()=>Jt,$8M:()=>K6,$Z:()=>q0,NdJ:()=>fa,CRH:()=>W8,kcU:()=>I4,O4$:()=>O4,oxw:()=>ts,ALo:()=>P8,lcZ:()=>O8,xi3:()=>I8,Hsn:()=>rs,F$t:()=>ns,Q6J:()=>sa,s9C:()=>pa,MGl:()=>E6,DdM:()=>L8,VKq:()=>D8,WLB:()=>E8,l5B:()=>T8,iGM:()=>G8,MAs:()=>O0,evT:()=>Mo,Jf7:()=>wo,CHM:()=>h4,oJD:()=>Co,uOi:()=>Mr,LSH:()=>wr,kYT:()=>ee,Akn:()=>qn,Udp:()=>ma,YNc:()=>P0,W1O:()=>J8,_uU:()=>Ss,Oqu:()=>ba,hij:()=>k6,AsE:()=>Ca,lnq:()=>wa,Gf:()=>Z8});var o=m(8929),a=m(2654),I=m(2916),r1=m(6787),X=m(1762);class N{constructor(t,n){this.subjectFactory=t,this.selector=n}call(t,n){const{selector:r}=this,i=this.subjectFactory(),s=r(i).subscribe(t);return s.add(n.subscribe(i)),s}}var F=m(4327);function j(){return new o.xQ}function J(e){for(let t in e)if(e[t]===J)return t;throw Error("Could not find renamed property on target object.")}function l1(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function s1(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(s1).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function n1(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const y1=J({__forward_ref__:J});function M1(e){return e.__forward_ref__=M1,e.toString=function(){return s1(this())},e}function u1(e){return de(e)?e():e}function de(e){return"function"==typeof e&&e.hasOwnProperty(y1)&&e.__forward_ref__===M1}class D1 extends Error{constructor(t,n){super(function K1(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function X1(e){return"string"==typeof e?e:null==e?"":String(e)}function Se(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():X1(e)}function Ae(e,t){const n=t?` in ${t}`:"";throw new D1(-201,`No provider for ${Se(e)} found${n}`)}function O(e,t){null==e&&function h1(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function p1(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function B1(e){return{providers:e.providers||[],imports:e.imports||[]}}function me(e){return Oe(e,K2)||Oe(e,V2)}function Oe(e,t){return e.hasOwnProperty(t)?e[t]:null}function P2(e){return e&&(e.hasOwnProperty(A2)||e.hasOwnProperty(mt))?e[A2]:null}const K2=J({\u0275prov:J}),A2=J({\u0275inj:J}),V2=J({ngInjectableDef:J}),mt=J({ngInjectorDef:J});var We=(()=>((We=We||{})[We.Default=0]="Default",We[We.Host=1]="Host",We[We.Self=2]="Self",We[We.SkipSelf=4]="SkipSelf",We[We.Optional=8]="Optional",We))();let ue;function g1(e){const t=ue;return ue=e,t}function se(e,t,n){const r=me(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&We.Optional?null:void 0!==t?t:void Ae(s1(e),"Injector")}function ye(e){return{toString:e}.toString()}var ze=(()=>((ze=ze||{})[ze.OnPush=0]="OnPush",ze[ze.Default=1]="Default",ze))(),Qe=(()=>{return(e=Qe||(Qe={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",Qe;var e})();const O2="undefined"!=typeof globalThis&&globalThis,x2="undefined"!=typeof window&&window,W2
1="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,Pe=O2||"undefined"!=typeof global&&global||x2||W2,j1={},c1=[],F1=J({\u0275cmp:J}),Re=J({\u0275dir:J}),Ze=J({\u0275pipe:J}),E2=J({\u0275mod:J}),U2=J({\u0275fac:J}),I2=J({__NG_ELEMENT_ID__:J});let dt=0;function J2(e){return ye(()=>{const n={},r={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||c1,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Qe.Emulated,id:"c",styles:e.styles||c1,_:null,setInput:null,schemas:e.schemas||null,tView:null},i=e.directives,s=e.features,c=e.pipes;return r.id+=dt++,r.inputs=M(e.inputs,n),r.outputs=M(e.outputs),s&&s.forEach(f=>f(r)),r.directiveDefs=i?()=>("function"==typeof i?i():i).map(k1):null,r.pipeDefs=c?()=>("function"==typeof c?c():c).map(b1):null,r})}function k1(e){return C(e)||function Z(e){return e[Re]||null}(e)}function b1(e){return function G(e){return e[Ze]||null}(e)}const q={};function A1(e){return ye(()=>{const t={type:e.type,bootstrap:e.bootstrap||c1,declarations:e.declarations||c1,imports:e.imports||c1,exports:e.exports||c1,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&(q[e.id]=e.type),t})}function ee(e,t){return ye(()=>{const n=C1(e,!0);n.declarations=t.declarations||c1,n.imports=t.imports||c1,n.exports=t.exports||c1})}function M(e,t){if(null==e)return j1;const n={};for(const r in e)if(e.hasOwnProperty(r)){let i=e[r],s=i;Array.isArray(i)&&(s=i[1],i=i[0]),n[i]=r,t&&(t[i]=s)}return n}const w=J2;function x(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,onDestroy:e.type.prototype.ngOnDestroy||null}}function C(e){return e[F1]||null}function C1(e,t){const n=e[E2]||null;if(!n&&!0===t)throw new Error(`Type ${s1(e)} does not have '\u0275mod' property.`);return n}function k2(e){return Array.isArray(e)&&"object"==typeof e[1]}function p2(e){return Array.isArray(e)&&!0===e[1]}function c2(e){return 0!=(8&e.flags)}function st(e){return 2==(2&e.flags)}function ct(e){return 1==(1&e.flags)}function tt(e){return null!==e.template}function vt(e){return 0!=(512&e[2])}function Zt(e,t){return e.hasOwnProperty(U2)?e[U2]:null}class vn{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function Rt(){return $t}function $t(e){return e.type.prototype.ngOnChanges&&(e.setInput=qt),Wt}function Wt(){const e=gn(this),t=null==e?void 0:e.current;if(t){const n=e.previous;if(n===j1)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function qt(e,t,n,r){const i=gn(e)||function yn(e,t){return e[St]=t}(e,{previous:j1,current:null}),s=i.current||(i.current={}),c=i.previous,f=this.declaredInputs[n],y=c[f];s[f]=new vn(y&&y.currentValue,t,c===j1),e[r]=t}Rt.ngInherit=!0;const St="__ngSimpleChanges__";function gn(e){return e[St]||null}let en;function Yt(e){en=e}function wn(){return void 0!==en?en:"undefined"!=typeof document?document:void 0}function j2(e){return!!e.listen}const Bt={createRenderer:(e,t)=>wn()};function G2(e){for(;Array.isArray(e);)e=e[0];return e}function Dt(e,t){return G2(t[e])}function S(e,t){return G2(t[e.index])}function _(e,t){return e.data[t]}function Y(e,t){return e[t]}function p(e,t){const n=t[e];return k2(n)?n:n[0]}function d(e){return 4==(4&e[2])}function h(e){return 128==(128&e[2])}function V1(e,t){return null==t?null:e[t]}function ve(e){e[18]=0}function a2(e,t){e[5]+=t;let n=e,r=e[3];for(;null!==r&&(1===t&&1===n[5]||-1===t&&0===n[5]);)r[5]+=t,n=r,r=r[3]}const Be={lFrame:Kt(null),bindingsEnabled:!0};function w4(){return Be.bindingsEnabled}function be(){return Be.lFrame.lView}function C2(){return Be.lFrame.tView}function h4(e){return Be.lFrame.contextLView=e,e[8]}function rt(){let e=z4();for(;null!==e&&64===e.type;)e=e.parent;return e}function z4(){return Be.lFrame.currentTNode}function un(e,t){const n=Be.lFrame;n.currentTNode=e,n.isParent=t}function Bn(){return Be.lFrame.isParent}function Un(){Be.lFrame.isParent=!1}function P(){const e=Be.lFrame;let t=e.bindingRootIndex;
vendor: 4,985 bytes, line 1
1return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function $(){return Be.lFrame.bindingIndex}function L1(){return Be.lFrame.bindingIndex++}function W1(e){const t=Be.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function Ie(e,t){const n=Be.lFrame;n.bindingIndex=n.bindingRootIndex=e,g2(t)}function g2(e){Be.lFrame.currentDirectiveIndex=e}function q2(){return Be.lFrame.currentQueryIndex}function ft(e){Be.lFrame.currentQueryIndex=e}function Et(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function lt(e,t,n){if(n&We.SkipSelf){let i=t,s=e;for(;!(i=i.parent,null!==i||n&We.Host||(i=Et(s),null===i||(s=s[15],10&i.type))););if(null===i)return!1;t=i,e=s}const r=Be.lFrame=bt();return r.currentTNode=t,r.lView=e,!0}function it(e){const t=bt(),n=e[1];Be.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function bt(){const e=Be.lFrame,t=null===e?null:e.child;return null===t?Kt(e):t}function Kt(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function nn(){const e=Be.lFrame;return Be.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Tt=nn;function rn(){const e=nn();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(){return Be.lFrame.selectedIndex}function zn(e){Be.lFrame.selectedIndex=e}function Z2(){const e=Be.lFrame;return _(e.tView,e.selectedIndex)}function O4(){Be.lFrame.currentNamespace="svg"}function I4(){!function C3(){Be.lFrame.currentNamespace=null}()}function _n(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const s=e.data[n].type.prototype,{ngAfterContentInit:c,ngAfterContentChecked:f,ngAfterViewInit:y,ngAfterViewChecked:E,ngOnDestroy:k}=s;c&&(e.contentHooks||(e.contentHooks=[])).push(-n,c),f&&((e.contentHooks||(e.contentHooks=[])).push(n,f),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,f)),y&&(e.viewHooks||(e.viewHooks=[])).push(-n,y),E&&((e.viewHooks||(e.viewHooks=[])).push(n,E),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,E)),null!=k&&(e.destroyHooks||(e.destroyHooks=[])).push(n,k)}}function v(e,t,n){H(e,t,3,n)}function L(e,t,n,r){(3&e[2])===n&&H(e,t,n,r)}function b(e,t){let n=e[2];(3&n)===t&&(n&=2047,n+=1,e[2]=n)}function H(e,t,n,r){const s=null!=r?r:-1,c=t.length-1;let f=0;for(let y=void 0!==r?65535&e[18]:0;y<c;y++)if("number"==typeof t[y+1]){if(f=t[y],null!=r&&f>=r)break}else t[y]<0&&(e[18]+=65536),(f<s||-1==s)&&(f1(e,n,t,y),e[18]=(4294901760&e[18])+y+2),y++}function f1(e,t,n,r){const i=n[r]<0,s=n[r+1],f=e[i?-n[r]:n[r]];if(i){if(e[2]>>11<e[18]>>16&&(3&e[2])===t){e[2]+=2048;try{s.call(f)}finally{}}}else try{s.call(f)}finally{}}class ge{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function xn(e,t,n){const r=j2(e);let i=0;for(;i<n.length;){const s=n[i];if("number"==typeof s){if(0!==s)break;i++;const c=n[i++],f=n[i++],y=n[i++];r?e.setAttribute(t,f,y,c):t.setAttributeNS(c,f,y)}else{const c=s,f=n[++i];Dn(c)?r&&e.setProperty(t,c,f):r?e.setAttribute(t,c,f):t.setAttribute(c,f),i++}}return i}function an(e){return 3===e||4===e||6===e}function Dn(e){return 64===e.charCodeAt(0)}function dn(e,t){if(null!==t&&0!==t.length)if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const i=t[r];"number"==typeof i?n=i:0===n||e4(e,n,i,null,-1===n||2===n?t[++r]:null)}}return e}function e4(e,t,n,r,i){let s=0,c=e.length;if(-1===t)c=-1;else for(;s<e.length;){const f=e[s++];if("number"==typeof f){if(f===t){c=-1;break}if(f>t){c=s-1;break}}}for(;s<e.length;){const f=e[s];if("number"==typeof f)break;if(f===n){if(null===r)return void(null!==i&&(e[s+1]=i));if(r===e[s+1])return void(e[s+2]=i)}s++,null!==r&&s++,null!==i&&s++}-1!==c&&(e.splice(c,0,t),s=c+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==i&&e.splice(s++,0,i)}function t4(e){return-1!==e}function jn(e){return 32767&e}function m4(e,t){let n=function W6(e){return e>>16}(e),r=t;for(;n>0;)r=r[15],n--;return r}let w3=!0;function M3(e){const t=w3;return w3=e,t}let z=0;function R(e,t){const n=z1(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,i1(r.data,e),i1(t,null),i1(r.blueprint,null));const i=oe(e,t),s=e.injectorIndex;if(t4(i)){const c=jn(i),f=m4(i,t),y=f[1].data;for(let E=0;E<8;E++)t[s+E]=f[c+E]|y[c+E]}return t[s+8]=i,s}function i1(e,t){e.push(0,0,0,0,0,0,0,0,t)}function z1(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function oe(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,i=t;
1for(;null!==i;){const s=i[1],c=s.type;if(r=2===c?s.declTNode:1===c?i[6]:null,null===r)return-1;if(n++,i=i[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function Ue(e,t,n){!function D(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(I2)&&(r=n[I2]),null==r&&(r=n[I2]=z++);const i=255&r;t.data[e+(i>>5)]|=1<<i}(e,t,n)}function e2(e,t,n){if(n&We.Optional)return e;Ae(t,"NodeInjector")}function $2(e,t,n,r){if(n&We.Optional&&void 0===r&&(r=null),0==(n&(We.Self|We.Host))){const i=e[9],s=g1(void 0);try{return i?i.get(t,r,n&We.Optional):se(t,r,n&We.Optional)}finally{g1(s)}}return e2(r,t,n)}function B2(e,t,n,r=We.Default,i){if(null!==e){const s=function q6(e){if("string"==typeof e)return e.charCodeAt(0)||0;const t=e.hasOwnProperty(I2)?e[I2]:void 0;return"number"==typeof t?t>=0?255&t:v4:t}(n);if("function"==typeof s){if(!lt(t,e,r))return r&We.Host?e2(i,n,r):$2(t,n,r,i);try{const c=s(r);if(null!=c||r&We.Optional)return c;Ae(n)}finally{Tt()}}else if("number"==typeof s){let c=null,f=z1(e,t),y=-1,E=r&We.Host?t[16][6]:null;for((-1===f||r&We.SkipSelf)&&(y=-1===f?oe(e,t):t[f+8],-1!==y&&wi(r,!1)?(c=t[1],f=jn(y),t=m4(y,t)):f=-1);-1!==f;){const k=t[1];if(Ci(s,f,k.data)){const e1=z3(f,t,n,c,r,E);if(e1!==En)return e1}y=t[f+8],-1!==y&&wi(r,t[1].data[f+8]===E)&&Ci(s,f,t)?(c=k,f=jn(y),t=m4(y,t)):f=-1}}}return $2(t,n,r,i)}const En={};function v4(){return new R4(rt(),be())}function z3(e,t,n,r,i,s){const c=t[1],f=c.data[e+8],k=S4(f,c,n,null==r?st(f)&&w3:r!=c&&0!=(3&f.type),i&We.Host&&s===f);return null!==k?Gn(t,c,k,f):En}function S4(e,t,n,r,i){const s=e.providerIndexes,c=t.data,f=1048575&s,y=e.directiveStart,k=s>>20,w1=i?f+k:e.directiveEnd;for(let N1=r?f:f+k;N1<w1;N1++){const fe=c[N1];if(N1<y&&n===fe||N1>=y&&fe.type===n)return N1}if(i){const N1=c[y];if(N1&&tt(N1)&&N1.type===n)return y}return null}function Gn(e,t,n,r){let i=e[n];const s=t.data;if(function $e(e){return e instanceof ge}(i)){const c=i;c.resolving&&function Me(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new D1(-200,`Circular dependency in DI detected for ${e}${n}`)}(Se(s[n]));const f=M3(c.canSeeViewProviders);c.resolving=!0;const y=c.injectImpl?g1(c.injectImpl):null;lt(e,r,We.Default);try{i=e[n]=c.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function x4(e,t,n){const{ngOnChanges:r,ngOnInit:i,ngDoCheck:s}=t.type.prototype;if(r){const c=$t(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,c),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,c)}i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,i),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{null!==y&&g1(y),M3(f),c.resolving=!1,Tt()}}return i}function Ci(e,t,n){return!!(n[t+(e>>5)]&1<<e)}function wi(e,t){return!(e&We.Self||e&We.Host&&t)}class R4{constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return B2(this._tNode,this._lView,t,r,n)}}function Mi(e){return ye(()=>{const t=e.prototype.constructor,n=t[U2]||Y6(t),r=Object.prototype;let i=Object.getPrototypeOf(e.prototype).constructor;for(;i&&i!==r;){const s=i[U2]||Y6(i);if(s&&s!==n)return s;i=Object.getPrototypeOf(i)}return s=>new s})}function Y6(e){return de(e)?()=>{const t=Y6(u1(e));return t&&t()}:Zt(e)}function K6(e){return function D2(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const n=e.attrs;if(n){const r=n.length;let i=0;for(;i<r;){const s=n[i];if(an(s))break;if(0===s)i+=2;else if("number"==typeof s)for(i++;i<r&&"string"==typeof n[i];)i++;else{if(s===t)return n[i+1];i+=2}}}return null}(rt(),e)}const B4="__parameters__",U4="__prop__metadata__";function J6(e){return function(...n){if(e){const r=e(...n);for(const i in r)this[i]=r[i]}}}function j4(e,t,n){return ye(()=>{const r=J6(t);function i(...s){if(this instanceof i)return r.apply(this,s),this;const c=new i(...s);return f.annotation=c,f;function f(y,E,k){const e1=y.hasOwnProperty(B4)?y[B4]:Object.defineProperty(y,B4,{value:[]})[B4];for(;e1.length<=k;)e1.push(null);return(e1[k]=e1[k]||[]).push(c),y}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=e,i.annotationCls=i,i})}function _i(e,t,n,r){return ye(()=>{const i=J6(t);function s(...c){if(this instanceof s)return i.apply(this,c),this;const f=new s(...c);return function y(E,k){const e1=E.constructor,w1=e1.hasOwnProperty(U4)?e1[U4]:Object.defineProperty(e1,U4,{value:{}})[U4];w1[k]=w1.hasOwnProperty(k)&&w1[k]||[],w1[k].unshift(f),r&&r(E,k,...c)}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=e,s.annotationCls=s,s})}class ht{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=p1({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}toString(){return`InjectionToken ${this._desc}`}}const xi=new ht("AnalyzeForEntryComponents");function Pn(e,t){void 0===t&&(t=e);for(let n=0;n<e.length;n++){let r=e[n];Array.isArray(r)?(t===e&&(t=e.slice(0,n)),Pn(r,t)):t!==e&&t.push(r)}return t}function n4(e,t){e.forEach(n=>Array.isArray(n)?n4(n,t):t(n))}function Si(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function t6(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function G4(e,t){const n=[];for(let r=0;r<e;r++)n.push(t);return n}
1function Tn(e,t,n){let r=Z4(e,t);return r>=0?e[1|r]=n:(r=~r,function U5(e,t,n,r){let i=e.length;if(i==t)e.push(n,r);else if(1===i)e.push(r,e[0]),e[0]=n;else{for(i--,e.push(e[i-1],e[i]);i>t;)e[i]=e[i-2],i--;e[t]=n,e[t+1]=r}}(e,r,t,n)),r}function X6(e,t){const n=Z4(e,t);if(n>=0)return e[1|n]}function Z4(e,t){return function Di(e,t,n){let r=0,i=e.length>>n;for(;i!==r;){const s=r+(i-r>>1),c=e[s<<n];if(t===c)return s<<n;c>t?i=s:r=s+1}return~(i<<n)}(e,t,1)}const S3={},tr="__NG_DI_FLAG__",r6="ngTempTokenPath",Y5=/\n/gm,Ti="__source",J5=J({provide:String,useValue:J});let A3;function ki(e){const t=A3;return A3=e,t}function Q5(e,t=We.Default){if(void 0===A3)throw new D1(203,"");return null===A3?se(e,void 0,t):A3.get(e,t&We.Optional?null:void 0,t)}function Jt(e,t=We.Default){return(function Q(){return ue}()||Q5)(u1(e),t)}const X5=Jt;function nr(e){const t=[];for(let n=0;n<e.length;n++){const r=u1(e[n]);if(Array.isArray(r)){if(0===r.length)throw new D1(900,"");let i,s=We.Default;for(let c=0;c<r.length;c++){const f=r[c],y=ec(f);"number"==typeof y?-1===y?i=f.token:s|=y:i=f}t.push(Jt(i,s))}else t.push(Jt(r))}return t}function L3(e,t){return e[tr]=t,e.prototype[tr]=t,e}function ec(e){return e[tr]}const a6=L3(j4("Inject",e=>({token:e})),-1),D3=L3(j4("Optional"),8),E3=L3(j4("SkipSelf"),4);var r4=(()=>((r4=r4||{})[r4.Important=1]="Important",r4[r4.DashCase=2]="DashCase",r4))();const ir="__ngContext__";function on(e,t){e[ir]=t}function o6(e){const t=function k3(e){return e[ir]||null}(e);return t?Array.isArray(t)?t:t.lView:null}function sr(e,t){return undefined(e,t)}function H3(e){const t=e[3];return p2(t)?t[3]:t}function cr(e){return $i(e[13])}function lr(e){return $i(e[4])}function $i(e){for(;null!==e&&!p2(e);)e=e[4];return e}function W4(e,t,n,r,i){if(null!=r){let s,c=!1;p2(r)?s=r:k2(r)&&(c=!0,r=r[0]);const f=G2(r);0===e&&null!==n?null==i?Qi(t,n,f):A4(t,n,f,i||null,!0):1===e&&null!==n?A4(t,n,f,i||null,!0):2===e?function hr(e,t,n){const r=l6(e,t);r&&function Hc(e,t,n,r){j2(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,f,c):3===e&&t.destroyNode(f),null!=s&&function Pc(e,t,n,r,i){const s=n[7];s!==G2(n)&&W4(t,e,r,s,i);for(let f=10;f<n.length;f++){const y=n[f];V3(y[1],y,e,t,r,s)}}(t,e,s,n,i)}}function s6(e,t,n){if(j2(e))return e.createElement(t,n);{const r=null!==n?function Vn(e){const t=e.toLowerCase();return"svg"===t?"http://www.w3.org/2000/svg":"math"===t?"http://www.w3.org/1998/MathML/":null}(n):null;return null===r?e.createElement(t):e.createElementNS(r,t)}}function qi(e,t){const n=e[9],r=n.indexOf(t),i=t[3];1024&t[2]&&(t[2]&=-1025,a2(i,-1)),n.splice(r,1)}function c6(e,t){if(e.length<=10)return;const n=10+t,r=e[n];if(r){const i=r[17];null!==i&&i!==e&&qi(i,r),t>0&&(e[n-1][4]=r[4]);const s=t6(e,10+t);!function xc(e,t){V3(e,t,t[11],2,null,null),t[0]=null,t[6]=null}(r[1],r);const c=s[19];null!==c&&c.detachView(s[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function Yi(e,t){if(!(256&t[2])){const n=t[11];j2(n)&&n.destroyNode&&V3(e,t,n,3,null,null),function Lc(e){let t=e[13];if(!t)return dr(e[1],e);for(;t;){let n=null;if(k2(t))n=t[13];else{const r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)k2(t)&&dr(t[1],t),t=t[3];null===t&&(t=e),k2(t)&&dr(t[1],t),n=t&&t[4]}t=n}}(t)}}function dr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function kc(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const i=t[n[r]];if(!(i instanceof ge)){const s=n[r+1];if(Array.isArray(s))for(let c=0;c<s.length;c+=2){const f=i[s[c]],y=s[c+1];try{y.call(f)}finally{}}else try{s.call(i)}finally{}}}}(e,t),function Tc(e,t){const n=e.cleanup,r=t[7];let i=-1;if(null!==n)for(let s=0;s<n.length-1;s+=2)if("string"==typeof n[s]){const c=n[s+1],f="function"==typeof c?c(t):G2(t[c]),y=r[i=n[s+2]],E=n[s+3];"boolean"==typeof E?f.removeEventListener(n[s],y,E):E>=0?r[i=E]():r[i=-E].unsubscribe(),s+=2}else{const c=r[i=n[s+1]];n[s].call(c)}if(null!==r){for(let s=i+1;s<r.length;s++)r[s]();t[7]=null}}(e,t),1===t[1].type&&j2(t[11])&&t[11].destroy();const n=t[17];if(null!==n&&p2(t[3])){n!==t[3]&&qi(n,t);const r=t[19];null!==r&&r.detachView(e)}}}
vendor: 5,907 bytes, line 1
1function Ki(e,t,n){return function Ji(e,t,n){let r=t;for(;null!==r&&40&r.type;)r=(t=r).parent;if(null===r)return n[0];if(2&r.flags){const i=e.data[r.directiveStart].encapsulation;if(i===Qe.None||i===Qe.Emulated)return null}return S(r,n)}(e,t.parent,n)}function A4(e,t,n,r,i){j2(e)?e.insertBefore(t,n,r,i):t.insertBefore(n,r,i)}function Qi(e,t,n){j2(e)?e.appendChild(t,n):t.appendChild(n)}function Xi(e,t,n,r,i){null!==r?A4(e,t,n,r,i):Qi(e,t,n)}function l6(e,t){return j2(e)?e.parentNode(t):t.parentNode}function eo(e,t,n){return no(e,t,n)}let h6,p6,no=function to(e,t,n){return 40&e.type?S(e,n):null};function d6(e,t,n,r){const i=Ki(e,r,t),s=t[11],f=eo(r.parent||t[6],r,t);if(null!=i)if(Array.isArray(n))for(let y=0;y<n.length;y++)Xi(s,i,n[y],f,!1);else Xi(s,i,n,f,!1)}function f6(e,t){if(null!==t){const n=t.type;if(3&n)return S(t,e);if(4&n)return fr(-1,e[t.index]);if(8&n){const r=t.child;if(null!==r)return f6(e,r);{const i=e[t.index];return p2(i)?fr(-1,i):G2(i)}}if(32&n)return sr(t,e)()||G2(e[t.index]);{const r=ao(e,t);return null!==r?Array.isArray(r)?r[0]:f6(H3(e[16]),r):f6(e,t.next)}}return null}function ao(e,t){return null!==t?e[16][6].projection[t.projection]:null}function fr(e,t){const n=10+e+1;if(n<t.length){const r=t[n],i=r[1].firstChild;if(null!==i)return f6(r,i)}return t[7]}function pr(e,t,n,r,i,s,c){for(;null!=n;){const f=r[n.index],y=n.type;if(c&&0===t&&(f&&on(G2(f),r),n.flags|=4),64!=(64&n.flags))if(8&y)pr(e,t,n.child,r,i,s,!1),W4(t,e,i,f,s);else if(32&y){const E=sr(n,r);let k;for(;k=E();)W4(t,e,i,k,s);W4(t,e,i,f,s)}else 16&y?io(e,t,r,n,i,s):W4(t,e,i,f,s);n=c?n.projectionNext:n.next}}function V3(e,t,n,r,i,s){pr(n,r,e.firstChild,t,i,s,!1)}function io(e,t,n,r,i,s){const c=n[16],y=c[6].projection[r.projection];if(Array.isArray(y))for(let E=0;E<y.length;E++)W4(t,e,i,y[E],s);else pr(e,t,y,c[3],i,s,!0)}function Ic(e,t,n){j2(e)?e.setAttribute(t,"style",n):t.style.cssText=n}function oo(e,t,n){j2(e)?""===n?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n):t.className=n}function L4(e){var t;return(null===(t=function mr(){if(void 0===h6&&(h6=null,Pe.trustedTypes))try{h6=Pe.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(e){}return h6}())||void 0===t?void 0:t.createHTML(e))||e}function vr(){if(void 0===p6&&(p6=null,Pe.trustedTypes))try{p6=Pe.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(e){}return p6}function so(e){var t;return(null===(t=vr())||void 0===t?void 0:t.createHTML(e))||e}function lo(e){var t;return(null===(t=vr())||void 0===t?void 0:t.createScriptURL(e))||e}class D4{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class Uc extends D4{getTypeName(){return"HTML"}}class jc extends D4{getTypeName(){return"Style"}}class Gc extends D4{getTypeName(){return"Script"}}class Zc extends D4{getTypeName(){return"URL"}}class $c extends D4{getTypeName(){return"ResourceURL"}}function g4(e){return e instanceof D4?e.changingThisBreaksApplicationSecurity:e}function q4(e,t){const n=uo(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see https://g.co/ng/security#xss)`)}return n===t}function uo(e){return e instanceof D4&&e.getTypeName()||null}function Wc(e){return new Uc(e)}function qc(e){return new jc(e)}function Yc(e){return new Gc(e)}function Kc(e){return new Zc(e)}function Jc(e){return new $c(e)}class Qc{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t="<body><remove></remove>"+t;try{const n=(new window.DOMParser).parseFromString(L4(t),"text/html").body;return null===n?this.inertDocumentHelper.getInertBodyElement(t):(n.removeChild(n.firstChild),n)}catch(n){return null}}}class Xc{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const n=this.inertDocument.createElement("html");this.inertDocument.appendChild(n);const r=this.inertDocument.createElement("body");n.appendChild(r)}}getInertBodyElement(t){const n=this.inertDocument.createElement("template");if("content"in n)return n.innerHTML=L4(t),n;const r=this.inertDocument.createElement("body");return r.innerHTML=L4(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(r),r}stripCustomNsAttrs(t){const n=t.attributes;for(let i=n.length-1;0<i;i--){const c=n.item(i).name;("xmlns:ns1"===c||0===c.indexOf("ns1:"))&&t.removeAttribute(c)}let r=t.firstChild;for(;r;)r.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(r),r=r.nextSibling}}const t7=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,n7=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function N3(e){return(e=String(e)).match(t7)||e.match(n7)?e:"unsafe:"+e}function a4(e){const t={};for(const n of e.split(","))t[n]=!0;return t}function P3(...e){const t={};for(const n of e)for(const r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}const po=a4("area,br,col,hr,img,wbr"),mo=a4("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),vo=a4("rp,rt"),gr=P3(po,P3(mo,a4("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),P3(vo,a4("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),P3(vo,mo)),yr=a4("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),br=a4("srcset"),go=P3(yr,br,a4("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,c
1olspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),a4("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),r7=a4("script,style,template");class a7{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let n=t.firstChild,r=!0;for(;n;)if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild)n=n.firstChild;else for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=this.checkClobberedElement(n,n.nextSibling);if(i){n=i;break}n=this.checkClobberedElement(n,n.parentNode)}return this.buf.join("")}startElement(t){const n=t.nodeName.toLowerCase();if(!gr.hasOwnProperty(n))return this.sanitizedSomething=!0,!r7.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);const r=t.attributes;for(let i=0;i<r.length;i++){const s=r.item(i),c=s.name,f=c.toLowerCase();if(!go.hasOwnProperty(f)){this.sanitizedSomething=!0;continue}let y=s.value;yr[f]&&(y=N3(y)),br[f]&&(e=y,y=(e=String(e)).split(",").map(t=>N3(t.trim())).join(", ")),this.buf.push(" ",c,'="',yo(y),'"')}var e;return this.buf.push(">"),!0}endElement(t){const n=t.nodeName.toLowerCase();gr.hasOwnProperty(n)&&!po.hasOwnProperty(n)&&(this.buf.push("</"),this.buf.push(n),this.buf.push(">"))}chars(t){this.buf.push(yo(t))}checkClobberedElement(t,n){if(n&&(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return n}}const i7=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o7=/([^\#-~ |!])/g;function yo(e){return e.replace(/&/g,"&").replace(i7,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(o7,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")}let m6;function bo(e,t){let n=null;try{m6=m6||function fo(e){const t=new Xc(e);return function e7(){try{return!!(new window.DOMParser).parseFromString(L4(""),"text/html")}catch(e){return!1}}()?new Qc(t):t}(e);let r=t?String(t):"";n=m6.getInertBodyElement(r);let i=5,s=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=s,s=n.innerHTML,n=m6.getInertBodyElement(r)}while(r!==s);return L4((new a7).sanitizeChildren(Cr(n)||n))}finally{if(n){const r=Cr(n)||n;for(;r.firstChild;)r.removeChild(r.firstChild)}}}function Cr(e){return"content"in e&&function s7(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var wt=(()=>((wt=wt||{})[wt.NONE=0]="NONE",wt[wt.HTML=1]="HTML",wt[wt.STYLE=2]="STYLE",wt[wt.SCRIPT=3]="SCRIPT",wt[wt.URL=4]="URL",wt[wt.RESOURCE_URL=5]="RESOURCE_URL",wt))();function Co(e){const t=O3();return t?so(t.sanitize(wt.HTML,e)||""):q4(e,"HTML")?so(g4(e)):bo(wn(),X1(e))}function wr(e){const t=O3();return t?t.sanitize(wt.URL,e)||"":q4(e,"URL")?g4(e):N3(X1(e))}function Mr(e){const t=O3();if(t)return lo(t.sanitize(wt.RESOURCE_URL,e)||"");if(q4(e,"ResourceURL"))return lo(g4(e));throw new D1(904,"")}function O3(){const e=be();return e&&e[12]}function _r(e){return e.ngOriginalError}function g7(e,...t){e.error(...t)}class v6{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t),r=function v7(e){return e&&e.ngErrorLogger||g7}(t);r(this._console,"ERROR",t),n&&r(this._console,"ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&_r(t);for(;n&&_r(n);)n=_r(n);return n||null}}const _7=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Pe))();function wo(e){return e.ownerDocument.defaultView}function Mo(e){return e.ownerDocument}function i4(e){return e instanceof Function?e():e}function _o(e,t,n){let r=e.length;for(;;){const i=e.indexOf(t,n);if(-1===i)return i;if(0===i||e.charCodeAt(i-1)<=32){const s=t.length;if(i+s===r||e.charCodeAt(i+s)<=32)return i}n=i+1}}const xo="ng-template";
1function S7(e,t,n){let r=0;for(;r<e.length;){let i=e[r++];if(n&&"class"===i){if(i=e[r],-1!==_o(i.toLowerCase(),t,0))return!0}else if(1===i){for(;r<e.length&&"string"==typeof(i=e[r++]);)if(i.toLowerCase()===t)return!0;return!1}}return!1}function So(e){return 4===e.type&&e.value!==xo}function A7(e,t,n){return t===(4!==e.type||n?e.value:xo)}function L7(e,t,n){let r=4;const i=e.attrs||[],s=function T7(e){for(let t=0;t<e.length;t++)if(an(e[t]))return t;return e.length}(i);let c=!1;for(let f=0;f<t.length;f++){const y=t[f];if("number"!=typeof y){if(!c)if(4&r){if(r=2|1&r,""!==y&&!A7(e,y,n)||""===y&&1===t.length){if(Zn(r))return!1;c=!0}}else{const E=8&r?y:t[++f];if(8&r&&null!==e.attrs){if(!S7(e.attrs,E,n)){if(Zn(r))return!1;c=!0}continue}const e1=D7(8&r?"class":y,i,So(e),n);if(-1===e1){if(Zn(r))return!1;c=!0;continue}if(""!==E){let w1;w1=e1>s?"":i[e1+1].toLowerCase();const N1=8&r?w1:null;if(N1&&-1!==_o(N1,E,0)||2&r&&E!==w1){if(Zn(r))return!1;c=!0}}}}else{if(!c&&!Zn(r)&&!Zn(y))return!1;if(c&&Zn(y))continue;c=!1,r=y|1&r}}return Zn(r)||c}function Zn(e){return 0==(1&e)}function D7(e,t,n,r){if(null===t)return-1;let i=0;if(r||!n){let s=!1;for(;i<t.length;){const c=t[i];if(c===e)return i;if(3===c||6===c)s=!0;else{if(1===c||2===c){let f=t[++i];for(;"string"==typeof f;)f=t[++i];continue}if(4===c)break;if(0===c){i+=4;continue}}i+=s?1:2}return-1}return function k7(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){const r=e[n];if("number"==typeof r)return-1;if(r===t)return n;n++}return-1}(t,e)}function Ao(e,t,n=!1){for(let r=0;r<t.length;r++)if(L7(e,t[r],n))return!0;return!1}function H7(e,t){e:for(let n=0;n<t.length;n++){const r=t[n];if(e.length===r.length){for(let i=0;i<e.length;i++)if(e[i]!==r[i])continue e;return!0}}return!1}function Lo(e,t){return e?":not("+t.trim()+")":t}function V7(e){let t=e[0],n=1,r=2,i="",s=!1;for(;n<e.length;){let c=e[n];if("string"==typeof c)if(2&r){const f=e[++n];i+="["+c+(f.length>0?'="'+f+'"':"")+"]"}else 8&r?i+="."+c:4&r&&(i+=" "+c);else""!==i&&!Zn(c)&&(t+=Lo(s,i),i=""),r=c,s=s||!Zn(r);n++}return""!==i&&(t+=Lo(s,i)),t}const b2={};function Do(e){Eo(C2(),be(),Ct()+e,!1)}function Eo(e,t,n,r){if(!r)if(3==(3&t[2])){const s=e.preOrderCheckHooks;null!==s&&v(t,s,n)}else{const s=e.preOrderHooks;null!==s&&L(t,s,0,n)}zn(n)}function g6(e,t){return e<<17|t<<2}function $n(e){return e>>17&32767}function xr(e){return 2|e}function y4(e){return(131068&e)>>2}function Sr(e,t){return-131069&e|t<<2}function Ar(e){return 1|e}function Bo(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const i=n[r],s=n[r+1];if(-1!==s){const c=e.data[s];ft(i),c.contentQueries(2,t[s],s)}}}function I3(e,t,n,r,i,s,c,f,y,E){const k=t.blueprint.slice();return k[0]=i,k[2]=140|r,ve(k),k[3]=k[15]=e,k[8]=n,k[10]=c||e&&e[10],k[11]=f||e&&e[11],k[12]=y||e&&e[12]||null,k[9]=E||e&&e[9]||null,k[6]=s,k[16]=2==t.type?e[16]:k,k}function K4(e,t,n,r,i){let s=e.data[t];if(null===s)s=function Pr(e,t,n,r,i){const s=z4(),c=Bn(),y=e.data[t]=function Q7(e,t,n,r,i,s){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:i,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,c?s:s&&s.parent,n,t,r,i);return null===e.firstChild&&(e.firstChild=y),null!==s&&(c?null==s.child&&null!==y.parent&&(s.child=y):null===s.next&&(s.next=y)),y}(e,t,n,r,i),function pe(){return Be.lFrame.inI18n}()&&(s.flags|=64);else if(64&s.type){s.type=n,s.value=r,s.attrs=i;const c=function Ln(){const e=Be.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();s.injectorIndex=null===c?-1:c.injectorIndex}return un(s,!0),s}function J4(e,t,n,r){if(0===n)return-1;const i=t.length;for(let s=0;s<n;s++)t.push(r),e.blueprint.push(r),e.data.push(null);return i}function R3(e,t,n){it(t);try{const r=e.viewQuery;null!==r&&Zr(1,r,n);const i=e.template;null!==i&&Uo(e,t,i,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Bo(e,t),e.staticViewQueries&&Zr(2,e.viewQuery,n);const s=e.components;null!==s&&function Y7(e,t){for(let n=0;n<t.length;n++)vl(e,t[n])}(t,s)}catch(r){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),r}finally{t[2]&=-5,rn()}}function Q4(e,t,n,r){const i=t[2];if(256!=(256&i)){it(t);try{ve(t),function t1(e){return Be.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==n&&Uo(e,t,n,2,r);const c=3==(3&i);if(c){const E=e.preOrderCheckHooks;null!==E&&v(t,E,null)}else{const E=e.preOrderHooks;null!==E&&L(t,E,0,null),b(t,0)}if(function pl(e){for(let t=cr(e);null!==t;t=lr(t)){if(!t[2])continue;const n=t[9];for(let r=0;r<n.length;r++){const i=n[r],s=i[3];0==(1024&i[2])&&a2(s,1),i[2]|=1024}}}(t),function hl(e){for(let t=cr(e);null!==t;t=lr(t))for(let n=10;n<t.length;n++){const r=t[n],i=r[1];h(r)&&Q4(i,r,i.template,r[8])}}(t),null!==e.contentQueries&&Bo(e,t),c){const E=e.contentCheckHooks;null!==E&&v(t,E)}else{const E=e.contentHooks;null!==E&&L(t,E,1),b(t,1)}!function W7(e,t){const n=e.hostBindingOpCodes;if(null!==n)try{for(let r=0;r<n.length;r++){const i=n[r];if(i<0)zn(~i);else{const s=i,c=n[++r],f=n[++r];Ie(c,s),f(2,t[s])}}}finally{zn(-1)}}(e,t);const f=e.components;null!==f&&function q7(e,t){for(let n=0;n<t.length;n++)ml(e,t[n])}(t,f);const y=e.viewQuery;if(null!==y&&Zr(2,y,r),c){const E=e.viewCheckHooks;null!==E&&v(t,E)}else{const E=e.viewHooks;null!==E&&L(t,E,2),b(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),t[2]&=-73,1024&t[2]&&(t[2]&=-1025,a2(t[3],-1))}finally{rn()}}}function K7(e,t,n,r){const i=t[10],c=d(t);try{!c&&i.begin&&i.begin(),c&&R3(e,t,r),Q4(e,t,n,r)}finally{!c&&i.end&&i.end()}}function Uo(e,t,n,r,i){const s=Ct(),c=2&r;try{zn(-1),c&&t.length>
120&&Eo(e,t,20,!1),n(r,i)}finally{zn(s)}}function jo(e,t,n){if(c2(t)){const i=t.directiveEnd;for(let s=t.directiveStart;s<i;s++){const c=e.data[s];c.contentQueries&&c.contentQueries(1,n[s],s)}}}function Or(e,t,n){!w4()||(function il(e,t,n,r){const i=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||R(n,t),on(r,t);const c=n.initialInputs;for(let f=i;f<s;f++){const y=e.data[f],E=tt(y);E&&ul(t,n,y);const k=Gn(t,e,f,n);on(k,t),null!==c&&dl(0,f-i,k,y,0,c),E&&(p(n.index,t)[8]=k)}}(e,t,n,S(n,t)),128==(128&n.flags)&&function ol(e,t,n){const r=n.directiveStart,i=n.directiveEnd,c=n.index,f=function m2(){return Be.lFrame.currentDirectiveIndex}();try{zn(c);for(let y=r;y<i;y++){const E=e.data[y],k=t[y];g2(y),(null!==E.hostBindings||0!==E.hostVars||null!==E.hostAttrs)&&Jo(E,k)}}finally{zn(-1),g2(f)}}(e,t,n))}function Ir(e,t,n=S){const r=t.localNames;if(null!==r){let i=t.index+1;for(let s=0;s<r.length;s+=2){const c=r[s+1],f=-1===c?n(t,e):e[c];e[i++]=f}}}function Go(e){const t=e.tView;return null===t||t.incompleteFirstPass?e.tView=C6(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts):t}function C6(e,t,n,r,i,s,c,f,y,E){const k=20+r,e1=k+i,w1=function J7(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:b2);return n}(k,e1),N1="function"==typeof E?E():E;return w1[1]={type:e,blueprint:w1,template:n,queries:null,viewQuery:f,declTNode:t,data:w1.slice().fill(null,k),bindingStartIndex:k,expandoStartIndex:e1,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof s?s():s,pipeRegistry:"function"==typeof c?c():c,firstChild:null,schemas:y,consts:N1,incompleteFirstPass:!1}}function Wo(e,t,n,r){const i=r0(t);null===n?i.push(r):(i.push(n),e.firstCreatePass&&a0(e).push(r,i.length-1))}function qo(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const i=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,i):n[r]=[t,i]}return n}function kn(e,t,n,r,i,s,c,f){const y=S(t,n);let k,E=t.inputs;!f&&null!=E&&(k=E[r])?(c0(e,n,k,r,i),st(t)&&function tl(e,t){const n=p(t,e);16&n[2]||(n[2]|=64)}(n,t.index)):3&t.type&&(r=function el(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(r),i=null!=c?c(i,t.value||"",r):i,j2(s)?s.setProperty(y,r,i):Dn(r)||(y.setProperty?y.setProperty(r,i):y[r]=i))}function Rr(e,t,n,r){let i=!1;if(w4()){const s=function sl(e,t,n){const r=e.directiveRegistry;let i=null;if(r)for(let s=0;s<r.length;s++){const c=r[s];Ao(n,c.selectors,!1)&&(i||(i=[]),Ue(R(n,t),e,c.type),tt(c)?(Qo(e,n),i.unshift(c)):i.push(c))}return i}(e,t,n),c=null===r?null:{"":-1};if(null!==s){i=!0,Xo(n,e.data.length,s.length);for(let k=0;k<s.length;k++){const e1=s[k];e1.providersResolver&&e1.providersResolver(e1)}let f=!1,y=!1,E=J4(e,t,s.length,null);for(let k=0;k<s.length;k++){const e1=s[k];n.mergedAttrs=dn(n.mergedAttrs,e1.hostAttrs),e0(e,n,t,E,e1),ll(E,e1,c),null!==e1.contentQueries&&(n.flags|=8),(null!==e1.hostBindings||null!==e1.hostAttrs||0!==e1.hostVars)&&(n.flags|=128);const w1=e1.type.prototype;!f&&(w1.ngOnChanges||w1.ngOnInit||w1.ngDoCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index),f=!0),!y&&(w1.ngOnChanges||w1.ngDoCheck)&&((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index),y=!0),E++}!function X7(e,t){const r=t.directiveEnd,i=e.data,s=t.attrs,c=[];let f=null,y=null;for(let E=t.directiveStart;E<r;E++){const k=i[E],e1=k.inputs,w1=null===s||So(t)?null:fl(e1,s);c.push(w1),f=qo(e1,E,f),y=qo(k.outputs,E,y)}null!==f&&(f.hasOwnProperty("class")&&(t.flags|=16),f.hasOwnProperty("style")&&(t.flags|=32)),t.initialInputs=c,t.inputs=f,t.outputs=y}(e,n)}c&&function cl(e,t,n){if(t){const r=e.localNames=[];for(let i=0;i<t.length;i+=2){const s=n[t[i+1]];if(null==s)throw new D1(-301,!1);r.push(t[i],s)}}}(n,r,c)}return n.mergedAttrs=dn(n.mergedAttrs,n.attrs),i}function Ko(e,t,n,r,i,s){const c=s.hostBindings;if(c){let f=e.hostBindingOpCodes;null===f&&(f=e.hostBindingOpCodes=[]);const y=~t.index;(function al(e){let t=e.length;for(;t>0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(f)!=y&&f.push(y),f.push(r,i,c)}}function Jo(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function Qo(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function ll(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;tt(t)&&(n[""]=e)}}function Xo(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t
1+n,e.providerIndexes=t}function e0(e,t,n,r,i){e.data[r]=i;const s=i.factory||(i.factory=Zt(i.type)),c=new ge(s,tt(i),null);e.blueprint[r]=c,n[r]=c,Ko(e,t,0,r,J4(e,n,i.hostVars,b2),i)}function ul(e,t,n){const r=S(t,e),i=Go(n),s=e[10],c=w6(e,I3(e,i,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n),null,null));e[t.index]=c}function o4(e,t,n,r,i,s){const c=S(e,t);!function Fr(e,t,n,r,i,s,c){if(null==s)j2(e)?e.removeAttribute(t,i,n):t.removeAttribute(i);else{const f=null==c?X1(s):c(s,r||"",i);j2(e)?e.setAttribute(t,i,f,n):n?t.setAttributeNS(n,i,f):t.setAttribute(i,f)}}(t[11],c,s,e.value,n,r,i)}function dl(e,t,n,r,i,s){const c=s[t];if(null!==c){const f=r.setInput;for(let y=0;y<c.length;){const E=c[y++],k=c[y++],e1=c[y++];null!==f?r.setInput(n,e1,E,k):n[k]=e1}}}function fl(e,t){let n=null,r=0;for(;r<t.length;){const i=t[r];if(0!==i)if(5!==i){if("number"==typeof i)break;e.hasOwnProperty(i)&&(null===n&&(n=[]),n.push(i,e[i],t[r+1])),r+=2}else r+=2;else r+=4}return n}function t0(e,t,n,r){return new Array(e,!0,!1,t,null,0,r,n,null,null)}function ml(e,t){const n=p(t,e);if(h(n)){const r=n[1];80&n[2]?Q4(r,n,r.template,n[8]):n[5]>0&&Br(n)}}function Br(e){for(let r=cr(e);null!==r;r=lr(r))for(let i=10;i<r.length;i++){const s=r[i];if(1024&s[2]){const c=s[1];Q4(c,s,c.template,s[8])}else s[5]>0&&Br(s)}const n=e[1].components;if(null!==n)for(let r=0;r<n.length;r++){const i=p(n[r],e);h(i)&&i[5]>0&&Br(i)}}function vl(e,t){const n=p(t,e),r=n[1];(function gl(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])})(r,n),R3(r,n,n[8])}function w6(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function Ur(e){for(;e;){e[2]|=64;const t=H3(e);if(vt(e)&&!t)return e;e=t}return null}function n0(e){!function jr(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=o6(n),i=r[1];K7(i,r,i.template,n)}}(e[8])}function Zr(e,t,n){ft(0),t(e,n)}const bl=(()=>Promise.resolve(null))();function r0(e){return e[7]||(e[7]=[])}function a0(e){return e.cleanup||(e.cleanup=[])}function s0(e,t){const n=e[9],r=n?n.get(v6,null):null;r&&r.handleError(t)}function c0(e,t,n,r,i){for(let s=0;s<n.length;){const c=n[s++],f=n[s++],y=t[c],E=e.data[c];null!==E.setInput?E.setInput(y,i,r,f):y[f]=i}}function C4(e,t,n){const r=Dt(t,e);!function Wi(e,t,n){j2(e)?e.setValue(t,n):t.textContent=n}(e[11],r,n)}function M6(e,t,n){let r=n?e.styles:null,i=n?e.classes:null,s=0;if(null!==t)for(let c=0;c<t.length;c++){const f=t[c];"number"==typeof f?s=f:1==s?i=n1(i,f):2==s&&(r=n1(r,f+": "+t[++c]+";"))}n?e.styles=r:e.stylesWithoutHost=r,n?e.classes=i:e.classesWithoutHost=i}const $r=new ht("INJECTOR",-1);class l0{get(t,n=S3){if(n===S3){const r=new Error(`NullInjectorError: No provider for ${s1(t)}!`);throw r.name="NullInjectorError",r}return n}}const Wr=new ht("Set Injector scope."),F3={},Ml={};let qr;function u0(){return void 0===qr&&(qr=new l0),qr}function d0(e,t=null,n=null,r){const i=f0(e,t,n,r);return i._resolveInjectorDefTypes(),i}function f0(e,t=null,n=null,r){return new zl(e,n,t||u0(),r)}class zl{constructor(t,n,r,i=null){this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];n&&n4(n,f=>this.processProvider(f,t,n)),n4([t],f=>this.processInjectorType(f,[],s)),this.records.set($r,X4(void 0,this));const c=this.records.get(Wr);this.scope=null!=c?c.value:null,this.source=i||("object"==typeof t?null:s1(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,n=S3,r=We.Default){this.assertNotDestroyed();const i=ki(this),s=g1(void 0);try{if(!(r&We.SkipSelf)){let f=this.records.get(t);if(void 0===f){const y=function Tl(e){return"function"==typeof e||"object"==typeof e&&e instanceof ht}(t)&&me(t);f=y&&this.injectableDefInScope(y)?X4(Yr(t),F3):null,this.records.set(t,f)}if(null!=f)return this.hydrate(t,f)}return(r&We.Self?u0():this.parent).get(t,n=r&We.Optional&&n===S3?null:n)}catch(c){if("NullInjectorError"===c.name){if((c[r6]=c[r6]||[]).unshift(s1(t)),i)throw c;return function tc(e,t,n,r){const i=e[r6];throw t[Ti]&&i.unshift(t[Ti]),e.message=function nc(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.substr(2):e;let i=s1(t);if(Array.isArray(t))i=t.map(s1).join(" -> ");else if("object"==typeof t){let s=[];for(let c in t)if(t.hasOwnProperty(c)){let f=t[c];
1s.push(c+":"+("string"==typeof f?JSON.stringify(f):s1(f)))}i=`{${s.join(", ")}}`}return`${n}${r?"("+r+")":""}[${i}]: ${e.replace(Y5,"\n ")}`}("\n"+e.message,i,n,r),e.ngTokenPath=i,e[r6]=null,e}(c,t,"R3InjectorError",this.source)}throw c}finally{g1(s),ki(i)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((r,i)=>t.push(s1(i))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new D1(205,!1)}processInjectorType(t,n,r){if(!(t=u1(t)))return!1;let i=P2(t);const s=null==i&&t.ngModule||void 0,c=void 0===s?t:s,f=-1!==r.indexOf(c);if(void 0!==s&&(i=P2(s)),null==i)return!1;if(null!=i.imports&&!f){let k;r.push(c);try{n4(i.imports,e1=>{this.processInjectorType(e1,n,r)&&(void 0===k&&(k=[]),k.push(e1))})}finally{}if(void 0!==k)for(let e1=0;e1<k.length;e1++){const{ngModule:w1,providers:N1}=k[e1];n4(N1,fe=>this.processProvider(fe,w1,N1||c1))}}this.injectorDefTypes.add(c);const y=Zt(c)||(()=>new c);this.records.set(c,X4(y,F3));const E=i.providers;if(null!=E&&!f){const k=t;n4(E,e1=>this.processProvider(e1,k,E))}return void 0!==s&&void 0!==t.providers}processProvider(t,n,r){let i=e3(t=u1(t))?t:u1(t&&t.provide);const s=function xl(e,t,n){return p0(e)?X4(void 0,e.useValue):X4(h0(e),F3)}(t);if(e3(t)||!0!==t.multi)this.records.get(i);else{let c=this.records.get(i);c||(c=X4(void 0,F3,!0),c.factory=()=>nr(c.multi),this.records.set(i,c)),i=t,c.multi.push(t)}this.records.set(i,s)}hydrate(t,n){return n.value===F3&&(n.value=Ml,n.value=n.factory()),"object"==typeof n.value&&n.value&&function El(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this.onDestroy.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=u1(t.providedIn);return"string"==typeof n?"any"===n||n===this.scope:this.injectorDefTypes.has(n)}}function Yr(e){const t=me(e),n=null!==t?t.factory:Zt(e);if(null!==n)return n;if(e instanceof ht)throw new D1(204,!1);if(e instanceof Function)return function _l(e){const t=e.length;if(t>0)throw G4(t,"?"),new D1(204,!1);const n=function h2(e){const t=e&&(e[K2]||e[V2]);if(t){const n=function y2(e){if(e.hasOwnProperty("name"))return e.name;const t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token "${n}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${n}" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new D1(204,!1)}function h0(e,t,n){let r;if(e3(e)){const i=u1(e);return Zt(i)||Yr(i)}if(p0(e))r=()=>u1(e.useValue);else if(function Al(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...nr(e.deps||[]));else if(function Sl(e){return!(!e||!e.useExisting)}(e))r=()=>Jt(u1(e.useExisting));else{const i=u1(e&&(e.useClass||e.provide));if(!function Dl(e){return!!e.deps}(e))return Zt(i)||Yr(i);r=()=>new i(...nr(e.deps))}return r}function X4(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function p0(e){return null!==e&&"object"==typeof e&&J5 in e}function e3(e){return"function"==typeof e}let s4=(()=>{class e{static create(n,r){var i;if(Array.isArray(n))return d0({name:""},r,n,"");{const s=null!==(i=n.name)&&void 0!==i?i:"";return d0({name:s},n.parent,n.providers,s)}}}return e.THROW_IF_NOT_FOUND=S3,e.NULL=new l0,e.\u0275prov=p1({token:e,providedIn:"any",factory:()=>Jt($r)}),e.__NG_ELEMENT_ID__=-1,e})();function Il(e,t){_n(o6(e)[1],rt())}function Xr(e){let t=function S0(e){return Object.getPrototypeOf(e.prototype).constructor}(e.type),n=!0;const r=[e];for(;t;){let i;if(tt(e))i=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new D1(903,"");i=t.\u0275dir}if(i){if(n){r.push(i);const c=e;c.inputs=ea(e.inputs),c.declaredInputs=ea(e.declaredInputs),c.outputs=ea(e.outputs);const f=i.hostBindings;f&&jl(e,f);const y=i.viewQuery,E=i.contentQueries;if(y&&Bl(e,y),E&&Ul(e,E),l1(e.inputs,i.inputs),l1(e.declaredInputs,i.declaredInputs),l1(e.outputs,i.outputs),tt(i)&&i.data.animation){const k=e.data;k.animation=(k.animation||[]).concat(i.data.animation)}}const s=i.features;if(s)for(let c=0;c<s.length;c++){const f=s[c];f&&f.ngInherit&&f(e),f===Xr&&(n=!1)}}t=Object.getPrototypeOf(t)}!function Fl(e){let t=0,n=null;for(let r=e.length-1;r>=0;r--){const i=e[r];i.hostVars=t+=i.hostVars,i.hostAttrs=dn(i.hostAttrs,n=dn(n,i.hostAttrs))}}(r)}function ea(e){return e===j1?{}:e===c1?[]:e}function Bl(e,t){const n=e.viewQuery;e.viewQuery=n?(r,i)=>{t(r,i),n(r,i)}:t}function Ul(e,t){const n=e.contentQueries;e.contentQueries=n?(r,i,s)=>{t(r,i,s),n(r,i,s)}:t}function jl(e,t){const n=e.hostBindings;e.hostBindings=n?(r,i)=>{t(r,i),n(r,i)}:t}let z6=null;function t3(){if(!z6){const e=Pe.Symbol;if(e&&e.iterator)z6=e.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let n=0;n<t.length;++n){const r=t[n];"entries"!==r&&"size"!==r&&Map.prototype[r]===Map.prototype.entries&&(z6=r)}
1}}return z6}function B3(e){return!!ta(e)&&(Array.isArray(e)||!(e instanceof Map)&&t3()in e)}function ta(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function c4(e,t,n){return e[t]=n}function sn(e,t,n){return!Object.is(e[t],n)&&(e[t]=n,!0)}function E4(e,t,n,r){const i=sn(e,t,n);return sn(e,t+1,r)||i}function na(e,t,n,r){const i=be();return sn(i,L1(),t)&&(C2(),o4(Z2(),i,e,t,n,r)),na}function r3(e,t,n,r){return sn(e,L1(),n)?t+X1(n)+r:b2}function i3(e,t,n,r,i,s,c,f){const E=function _6(e,t,n,r,i){const s=E4(e,t,n,r);return sn(e,t+2,i)||s}(e,$(),n,i,c);return W1(3),E?t+X1(n)+r+X1(i)+s+X1(c)+f:b2}function P0(e,t,n,r,i,s,c,f){const y=be(),E=C2(),k=e+20,e1=E.firstCreatePass?function Kl(e,t,n,r,i,s,c,f,y){const E=t.consts,k=K4(t,e,4,c||null,V1(E,f));Rr(t,n,k,V1(E,y)),_n(t,k);const e1=k.tViews=C6(2,k,r,i,s,t.directiveRegistry,t.pipeRegistry,null,t.schemas,E);return null!==t.queries&&(t.queries.template(t,k),e1.queries=t.queries.embeddedTView(k)),k}(k,E,y,t,n,r,i,s,c):E.data[k];un(e1,!1);const w1=y[11].createComment("");d6(E,y,w1,e1),on(w1,y),w6(y,y[k]=t0(w1,y,w1,e1)),ct(e1)&&Or(E,y,e1),null!=c&&Ir(y,e1,f)}function O0(e){return Y(function tn(){return Be.lFrame.contextLView}(),20+e)}function j3(e,t=We.Default){const n=be();return null===n?Jt(e,t):B2(rt(),n,u1(e),t)}function q0(){throw new Error("invalid")}function sa(e,t,n){const r=be();return sn(r,L1(),t)&&kn(C2(),Z2(),r,e,t,r[11],n,!1),sa}function ca(e,t,n,r,i){const c=i?"class":"style";c0(e,n,t.inputs[c],c,r)}function S6(e,t,n,r){const i=be(),s=C2(),c=20+e,f=i[11],y=i[c]=s6(f,t,function p4(){return Be.lFrame.currentNamespace}()),E=s.firstCreatePass?function g9(e,t,n,r,i,s,c){const f=t.consts,E=K4(t,e,2,i,V1(f,s));return Rr(t,n,E,V1(f,c)),null!==E.attrs&&M6(E,E.attrs,!1),null!==E.mergedAttrs&&M6(E,E.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,E),E}(c,s,i,0,t,n,r):s.data[c];un(E,!0);const k=E.mergedAttrs;null!==k&&xn(f,y,k);const e1=E.classes;null!==e1&&oo(f,y,e1);const w1=E.styles;return null!==w1&&Ic(f,y,w1),64!=(64&E.flags)&&d6(s,i,y,E),0===function ln(){return Be.lFrame.elementDepthCount}()&&on(y,i),function f4(){Be.lFrame.elementDepthCount++}(),ct(E)&&(Or(s,i,E),jo(s,E,i)),null!==r&&Ir(i,E),S6}function A6(){let e=rt();Bn()?Un():(e=e.parent,un(e,!1));const t=e;!function Fn(){Be.lFrame.elementDepthCount--}();const n=C2();return n.firstCreatePass&&(_n(n,e),c2(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function S2(e){return 0!=(16&e.flags)}(t)&&ca(n,t,be(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function ut(e){return 0!=(32&e.flags)}(t)&&ca(n,t,be(),t.stylesWithoutHost,!1),A6}function la(e,t,n,r){return S6(e,t,n,r),A6(),la}function L6(e,t,n){const r=be(),i=C2(),s=e+20,c=i.firstCreatePass?function y9(e,t,n,r,i){const s=t.consts,c=V1(s,r),f=K4(t,e,8,"ng-container",c);return null!==c&&M6(f,c,!0),Rr(t,n,f,V1(s,i)),null!==t.queries&&t.queries.elementStart(t,f),f}(s,i,r,t,n):i.data[s];un(c,!0);const f=r[s]=r[11].createComment("");return d6(i,r,f,c),on(f,r),ct(c)&&(Or(i,r,c),jo(i,c,r)),null!=n&&Ir(r,c),L6}function D6(){let e=rt();const t=C2();return Bn()?Un():(e=e.parent,un(e,!1)),t.firstCreatePass&&(_n(t,e),c2(e)&&t.queries.elementEnd(e)),D6}function ua(e,t,n){return L6(e,t,n),D6(),ua}function Y0(){return be()}function da(e){return!!e&&"function"==typeof e.then}function K0(e){return!!e&&"function"==typeof e.subscribe}const J0=K0;function fa(e,t,n,r){const i=be(),s=C2(),c=rt();return function X0(e,t,n,r,i,s,c,f){const y=ct(r),k=e.firstCreatePass&&a0(e),e1=t[8],w1=r0(t);let N1=!0;if(3&r.type||f){const Ve=S(r,t),qe=f?f(Ve):Ve,we=w1.length,o2=f?T2=>f(G2(T2[r.index])):r.index;if(j2(n)){let T2=null;if(!f&&y&&(T2=function b9(e,t,n,r){const i=e.cleanup;if(null!=i)for(let s=0;s<i.length-1;s+=2){const c=i[s];if(c===n&&i[s+1]===r){const f=t[7],y=i[s+2];return f.length>y?f[y]:null}"string"==typeof c&&(s+=2)}return null}(e,t,i,r.index)),null!==T2)(T2.__ngLastListenerFn__||T2).__ngNextListenerFn__=s,T2.__ngLastListenerFn__=s,N1=!1;else{s=ha(r,t,e1,s,!1);const Y2=n.listen(qe,i,s);w1.push(s,Y2),k&&k.push(i,o2,we,we+1)}}else s=ha(r,t,e1,s,!0),qe.addEventListener(i,s,c),w1.push(s),k&&k.push(i,o2,we,c)}else s=ha(r,t,e1,s,!1);const fe=r.outputs;let De;if(N1&&null!==fe&&(De=fe[i])){const Ve=De.length;if(Ve)for(let qe=0;qe<Ve;qe+=2){const Hn=t[De[qe]][De[qe+1]].subscribe(s),V4=w1.length;w1.push(s,Hn),k&&k.push(i,r.index,V4,-(V4+1))}}}(s,i,i[11],c,e,t,!!n,r),fa}function es(e,t,n,r){try{return!1!==n(r)}catch(i){return s0(e,i),!1}}function ha(e,t,n,r,i){return function s(c){if(c===Function)return r;const f=2&e.flags?p(e.index,t):t;0==(32&t[2])&&Ur(f);let y=es(t,0,r,c),E=s.__ngNextListenerFn__;for(;E;)y=es(t,0,E,c)&&y,E=E.__ngNextListenerFn__;return i&&!1===y&&(c.preventDefault(),c.returnValue=!1),y}}function ts(e=1){return function Mn(e){return(Be.lFrame.contextLView=function _4(e,t){for(;e>0;)t=t[15],e--;return t}(e,Be.lFrame.contextLView))[8]}(e)}function C9(e,t){let n=null;const r=function E7(e){const t=e.attrs;if(null!=t){const n=t.indexOf(5);if(0==(1&n))return t[n+1]}return null}(e);for(let i=0;i<t.length;i++){const s=t[i];if("*"!==s){if(null===r?Ao(e,s,!0):H7(r,s))return i}else n=i}return n}function ns(e){const t=be()[16][6];if(!t.projection){const r=t.projection=G4(e?e.length:1,null),i=r.slice();let s=t.child;for(;null!==s;){const c=e?C9(s,e):0;null!==c&&(i[c]?i[c].projectionNext=s:r[c]=s,i[c]=s),s=s.next}}}function rs(e,t=0,n){const r=be(),i=C2(),s=K4(i,20+e,16,null,n||null);null===s.projection&&(s.projection=t),Un(),64!=(64&s.flags)&&function Nc(e,t,n){io(t[11],0,t,n,Ki(e,n,t),eo(n.parent||t[6],n,t))}(i,r,s)}
1function pa(e,t,n){return E6(e,"",t,"",n),pa}function E6(e,t,n,r,i){const s=be(),c=r3(s,t,n,r);return c!==b2&&kn(C2(),Z2(),s,e,c,s[11],i,!1),E6}function fs(e,t,n,r,i){const s=e[n+1],c=null===t;let f=r?$n(s):y4(s),y=!1;for(;0!==f&&(!1===y||c);){const k=e[f+1];z9(e[f],t)&&(y=!0,e[f+1]=r?Ar(k):xr(k)),f=r?$n(k):y4(k)}y&&(e[n+1]=r?xr(s):Ar(s))}function z9(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Z4(e,t)>=0}const Pt={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function hs(e){return e.substring(Pt.key,Pt.keyEnd)}function _9(e){return e.substring(Pt.value,Pt.valueEnd)}function ps(e,t){const n=Pt.textEnd;return n===t?-1:(t=Pt.keyEnd=function A9(e,t,n){for(;t<n&&e.charCodeAt(t)>32;)t++;return t}(e,Pt.key=t,n),f3(e,t,n))}function ms(e,t){const n=Pt.textEnd;let r=Pt.key=f3(e,t,n);return n===r?-1:(r=Pt.keyEnd=function L9(e,t,n){let r;for(;t<n&&(45===(r=e.charCodeAt(t))||95===r||(-33&r)>=65&&(-33&r)<=90||r>=48&&r<=57);)t++;return t}(e,r,n),r=gs(e,r,n),r=Pt.value=f3(e,r,n),r=Pt.valueEnd=function D9(e,t,n){let r=-1,i=-1,s=-1,c=t,f=c;for(;c<n;){const y=e.charCodeAt(c++);if(59===y)return f;34===y||39===y?f=c=ys(e,y,c,n):t===c-4&&85===s&&82===i&&76===r&&40===y?f=c=ys(e,41,c,n):y>32&&(f=c),s=i,i=r,r=-33&y}return f}(e,r,n),gs(e,r,n))}function vs(e){Pt.key=0,Pt.keyEnd=0,Pt.value=0,Pt.valueEnd=0,Pt.textEnd=e.length}function f3(e,t,n){for(;t<n&&e.charCodeAt(t)<=32;)t++;return t}function gs(e,t,n,r){return(t=f3(e,t,n))<n&&t++,t}function ys(e,t,n,r){let i=-1,s=n;for(;s<r;){const c=e.charCodeAt(s++);if(c==t&&92!==i)return s;i=92==c&&92===i?0:c}throw new Error}function ma(e,t,n){return Yn(e,t,n,!1),ma}function va(e,t){return Yn(e,t,null,!0),va}function qn(e){Kn(Ms,E9,e,!1)}function E9(e,t){for(let n=function S9(e){return vs(e),ms(e,f3(e,0,Pt.textEnd))}(t);n>=0;n=ms(t,n))Ms(e,hs(t),_9(t))}function bs(e){Kn(Tn,l4,e,!0)}function l4(e,t){for(let n=function x9(e){return vs(e),ps(e,f3(e,0,Pt.textEnd))}(t);n>=0;n=ps(t,n))Tn(e,hs(t),!0)}function Yn(e,t,n,r){const i=be(),s=C2(),c=W1(2);s.firstUpdatePass&&ws(s,e,c,r),t!==b2&&sn(i,c,t)&&zs(s,s.data[Ct()],i,i[11],e,i[c+1]=function O9(e,t){return null==e||("string"==typeof t?e+=t:"object"==typeof e&&(e=s1(g4(e)))),e}(t,n),r,c)}function Kn(e,t,n,r){const i=C2(),s=W1(2);i.firstUpdatePass&&ws(i,null,s,r);const c=be();if(n!==b2&&sn(c,s,n)){const f=i.data[Ct()];if(xs(f,r)&&!Cs(i,s)){let y=r?f.classesWithoutHost:f.stylesWithoutHost;null!==y&&(n=n1(y,n||"")),ca(i,f,c,n,r)}else!function P9(e,t,n,r,i,s,c,f){i===b2&&(i=c1);let y=0,E=0,k=0<i.length?i[0]:null,e1=0<s.length?s[0]:null;for(;null!==k||null!==e1;){const w1=y<i.length?i[y+1]:void 0,N1=E<s.length?s[E+1]:void 0;let De,fe=null;k===e1?(y+=2,E+=2,w1!==N1&&(fe=e1,De=N1)):null===e1||null!==k&&k<e1?(y+=2,fe=k):(E+=2,fe=e1,De=N1),null!==fe&&zs(e,t,n,r,fe,De,c,f),k=y<i.length?i[y]:null,e1=E<s.length?s[E]:null}}(i,f,c,c[11],c[s+1],c[s+1]=function N9(e,t,n){if(null==n||""===n)return c1;const r=[],i=g4(n);if(Array.isArray(i))for(let s=0;s<i.length;s++)e(r,i[s],!0);else if("object"==typeof i)for(const s in i)i.hasOwnProperty(s)&&e(r,s,i[s]);else"string"==typeof i&&t(r,i);return r}(e,t,n),r,s)}}function Cs(e,t){return t>=e.expandoStartIndex}function ws(e,t,n,r){const i=e.data;if(null===i[n+1]){const s=i[Ct()],c=Cs(e,n);xs(s,r)&&null===t&&!c&&(t=!1),t=function T9(e,t,n,r){const i=function M2(e){const t=Be.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let s=r?t.residualClasses:t.residualStyles;if(null===i)0===(r?t.classBindings:t.styleBindings)&&(n=G3(n=ya(null,e,t,n,r),t.attrs,r),s=null);else{const c=t.directiveStylingLast;if(-1===c||e[c]!==i)if(n=ya(i,e,t,n,r),null===s){let y=function k9(e,t,n){const r=n?t.classBindings:t.styleBindings;if(0!==y4(r))return e[$n(r)]}(e,t,r);void 0!==y&&Array.isArray(y)&&(y=ya(null,e,t,y[1],r),y=G3(y,t.attrs,r),function H9(e,t,n,r){e[$n(n?t.classBindings:t.styleBindings)]=r}(e,t,r,y))}else s=function V9(e,t,n){let r;const i=t.directiveEnd;for(let s=1+t.directiveStylingLast;s<i;s++)r=G3(r,e[s].hostAttrs,n);return G3(r,t.attrs,n)}(e,t,r)}return void 0!==s&&(r?t.residualClasses=s:t.residualStyles=s),n}(i,s,t,r),function w9(e,t,n,r,i,s){let c=s?t.classBindings:t.styleBindings,f=$n(c),y=y4(c);e[r]=n;let k,E=!1;if(Array.isArray(n)){const e1=n;k=e1[1],(null===k||Z4(e1,k)>0)&&(E=!0)}else k=n;
1if(i)if(0!==y){const w1=$n(e[f+1]);e[r+1]=g6(w1,f),0!==w1&&(e[w1+1]=Sr(e[w1+1],r)),e[f+1]=function O7(e,t){return 131071&e|t<<17}(e[f+1],r)}else e[r+1]=g6(f,0),0!==f&&(e[f+1]=Sr(e[f+1],r)),f=r;else e[r+1]=g6(y,0),0===f?f=r:e[y+1]=Sr(e[y+1],r),y=r;E&&(e[r+1]=xr(e[r+1])),fs(e,k,r,!0),fs(e,k,r,!1),function M9(e,t,n,r,i){const s=i?e.residualClasses:e.residualStyles;null!=s&&"string"==typeof t&&Z4(s,t)>=0&&(n[r+1]=Ar(n[r+1]))}(t,k,e,r,s),c=g6(f,y),s?t.classBindings=c:t.styleBindings=c}(i,s,t,n,c,r)}}function ya(e,t,n,r,i){let s=null;const c=n.directiveEnd;let f=n.directiveStylingLast;for(-1===f?f=n.directiveStart:f++;f<c&&(s=t[f],r=G3(r,s.hostAttrs,i),s!==e);)f++;return null!==e&&(n.directiveStylingLast=f),r}function G3(e,t,n){const r=n?1:2;let i=-1;if(null!==t)for(let s=0;s<t.length;s++){const c=t[s];"number"==typeof c?i=c:i===r&&(Array.isArray(e)||(e=void 0===e?[]:["",e]),Tn(e,c,!!n||t[++s]))}return void 0===e?null:e}function Ms(e,t,n){Tn(e,t,g4(n))}function zs(e,t,n,r,i,s,c,f){if(!(3&t.type))return;const y=e.data,E=y[f+1];T6(function Ho(e){return 1==(1&e)}(E)?_s(y,t,n,i,y4(E),c):void 0)||(T6(s)||function ko(e){return 2==(2&e)}(E)&&(s=_s(y,null,n,i,f,c)),function Oc(e,t,n,r,i){const s=j2(e);if(t)i?s?e.addClass(n,r):n.classList.add(r):s?e.removeClass(n,r):n.classList.remove(r);else{let c=-1===r.indexOf("-")?void 0:r4.DashCase;if(null==i)s?e.removeStyle(n,r,c):n.style.removeProperty(r);else{const f="string"==typeof i&&i.endsWith("!important");f&&(i=i.slice(0,-10),c|=r4.Important),s?e.setStyle(n,r,i,c):n.style.setProperty(r,i,f?"important":"")}}}(r,c,Dt(Ct(),n),i,s))}function _s(e,t,n,r,i,s){const c=null===t;let f;for(;i>0;){const y=e[i],E=Array.isArray(y),k=E?y[1]:y,e1=null===k;let w1=n[i+1];w1===b2&&(w1=e1?c1:void 0);let N1=e1?X6(w1,r):k===r?w1:void 0;if(E&&!T6(N1)&&(N1=X6(y,r)),T6(N1)&&(f=N1,c))return f;const fe=e[i+1];i=c?$n(fe):y4(fe)}if(null!==t){let y=s?t.residualClasses:t.residualStyles;null!=y&&(f=X6(y,r))}return f}function T6(e){return void 0!==e}function xs(e,t){return 0!=(e.flags&(t?16:32))}function Ss(e,t=""){const n=be(),r=C2(),i=e+20,s=r.firstCreatePass?K4(r,i,1,t,null):r.data[i],c=n[i]=function ur(e,t){return j2(e)?e.createText(t):e.createTextNode(t)}(n[11],t);d6(r,n,c,s),un(s,!1)}function ba(e){return k6("",e,""),ba}function k6(e,t,n){const r=be(),i=r3(r,e,t,n);return i!==b2&&C4(r,Ct(),i),k6}function Ca(e,t,n,r,i){const s=be(),c=function a3(e,t,n,r,i,s){const f=E4(e,$(),n,i);return W1(2),f?t+X1(n)+r+X1(i)+s:b2}(s,e,t,n,r,i);return c!==b2&&C4(s,Ct(),c),Ca}function wa(e,t,n,r,i,s,c){const f=be(),y=i3(f,e,t,n,r,i,s,c);return y!==b2&&C4(f,Ct(),y),wa}function Hs(e,t,n){Kn(Tn,l4,r3(be(),e,t,n),!0)}function Ma(e,t,n){const r=be();return sn(r,L1(),t)&&kn(C2(),Z2(),r,e,t,r[11],n,!0),Ma}const T4=void 0;var nu=["en",[["a","p"],["AM","PM"],T4],[["AM","PM"],T4,T4],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],T4,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],T4,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",T4,"{1} 'at' {0}",T4],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function tu(e){const n=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===r?1:5}];let h3={};function za(e){const t=function ru(e){return e.toLowerCase().replace(/_/g,"-")}(e);let n=Zs(t);if(n)return n;const r=t.split("-")[0];if(n=Zs(r),n)return n;if("en"===r)return nu;throw new Error(`Missing locale data for the locale "${e}".`)}function Gs(e){return za(e)[d2.PluralCase]}function Zs(e){return e in h3||(h3[e]=Pe.ng&&Pe.ng.common&&Pe.ng.common.locales&&Pe.ng.common.locales[e]),h3[e]}var d2=(()=>((d2=d2||{})[d2.LocaleId=0]="LocaleId",d2[d2.DayPeriodsFormat=1]="DayPeriodsFormat",d2[d2.DayPeriodsStandalone=2]="DayPeriodsStandalone",d2[d2.DaysFormat=3]="DaysFormat",d2[d2.DaysStandalone=4]="DaysStandalone",d2[d2.MonthsFormat=5]="MonthsFormat",d2[d2.MonthsStandalone=6]="MonthsStandalone",d2[d2.Eras=7]="Eras",d2[d2.FirstDayOfWeek=8]="FirstDayOfWeek",d2[d2.WeekendRange=9]="WeekendRange",d2[d2.DateFormat=10]="DateFormat",d2[d2.TimeFormat=11]="TimeFormat",d2[d2.DateTimeFormat=12]="DateTimeFormat",d2[d2.NumberSymbols=13]="NumberSymbols",d2[d2.NumberFormats=14]="NumberFormats",d2[d2.CurrencyCode=15]="CurrencyCode",d2[d2.CurrencySymbol=16]="CurrencySymbol",d2[d2.CurrencyName=17]="CurrencyName",d2[d2.Currencies=18]="Currencies",d2[d2.Directionality=19]="Directionality",d2[d2.PluralCase=20]="PluralCase",d2[d2.ExtraData=21]="ExtraData",d2))();const H6="en-US";let $s=H6;function Aa(e,t,n,r,i){if(e=u1(e),Array.isArray(e))for(let s=0;s<e.length;s++)Aa(e[s],t,n,r,i);else{const s=C2(),c=be();let f=e3(e)?e:u1(e.provide),y=h0(e);const E=rt(),k=1048575&E.providerIndexes,e1=E.directiveStart,w1=E.providerIndexes>>20;if(e3(e)||!e.multi){const N1=new ge(y,i,j3),fe=Da(f,t,i?k:k+w1,e1);-1===fe?(Ue(R(E,c),s,f),La(s,e,t.length),t.push(f),E.directiveStart++,E.directiveEnd++,i&&(E.providerIndexes+=1048576),n.push(N1),c.push(N1)):(n[fe]=N1,c[fe]=N1)}else{const N1=Da(f,t,k+w1,e1),fe=Da(f,t,k,k+w1),De=N1>=0&&n[N1],Ve=fe>=0&&n[fe];if(i&&!Ve||!i&&!De){Ue(R(E,c),s,f);const qe=function ed(e,t,n,r,i){const s=new ge(e,n,j3);return s.multi=[],s.index=t,s.componentProviders=0,v8(s,i,r&&!n),s}(i?Xu:Qu,n.length,i,r,y);!i&&Ve&&(n[fe].providerFactory=qe),La(s,e,t.length,0),t.push(f),E.directiveStart++,E.directiveEnd++,i&&(E.providerIndexes+=1048576),n.push(qe),c.push(qe)}else La(s,e,N1>-1?N1:fe,v8(n[i?fe:N1],y,!i&&r));!i&&r&&Ve&&n[fe].componentProviders++}}}function La(e,t,n,r){const i=e3(t),s=function Ll(e){return!!e.useClass}(t);if(i||s){const y=(s?u1(t.useClass):t).prototype.ngOnDestroy;if(y){const E=e.destroyHooks||(e.destroyHooks=[]);if(!i&&t.multi){const k=E.indexOf(n);-1===k?E.push(n,[r,y]):E[k+1].push(r,y)}else E.push(n,y)}}}function v8(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function Da(e,t,n,r){for(let i=n;i<r;i++)if(t[i]===e)return i;return-1}function Qu(e,t,n,r){return Ea(this.multi,[])}function Xu(e,t,n,r){const i=this.multi;let s;if(this.providerFactory){const c=this.providerFactory.componentProviders,f=Gn(n,n[1],this.providerFactory.index,r);s=f.slice(0,c),Ea(i,s);for(let y=c;y<f.length;y++)s.push(f[y])}else s=[],Ea(i,s);return s}function Ea(e,t){for(let n=0;n<e.length;n++)t.push((0,e[n])());return t}function g8(e,t=[]){return n=>{n.providersResolver=(r,i)=>function Ju(e,t,n){const r=C2();if(r.firstCreatePass){const i=tt(e);Aa(n,r.data,r.blueprint,i,!0),Aa(t,r.data,r.blueprint,i,!1)}}(r,i?i(e):e,t)}}class y8{}
1class rd{resolveComponentFactory(t){throw function nd(e){const t=Error(`No component factory found for ${s1(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(t)}}let I6=(()=>{class e{}return e.NULL=new rd,e})();function ad(){return m3(rt(),be())}function m3(e,t){return new Y3(S(e,t))}let Y3=(()=>{class e{constructor(n){this.nativeElement=n}}return e.__NG_ELEMENT_ID__=ad,e})();function id(e){return e instanceof Y3?e.nativeElement:e}class C8{}let od=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function cd(){const e=be(),n=p(rt().index,e);return function sd(e){return e[11]}(k2(n)?n:e)}(),e})(),ld=(()=>{class e{}return e.\u0275prov=p1({token:e,providedIn:"root",factory:()=>null}),e})();class w8{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const ud=new w8("13.4.0"),Ta={};function R6(e,t,n,r,i=!1){for(;null!==n;){const s=t[n.index];if(null!==s&&r.push(G2(s)),p2(s))for(let f=10;f<s.length;f++){const y=s[f],E=y[1].firstChild;null!==E&&R6(y[1],y,E,r)}const c=n.type;
1if(8&c)R6(e,t,n.child,r);else if(32&c){const f=sr(n,t);let y;for(;y=f();)r.push(y)}else if(16&c){const f=ao(t,n);if(Array.isArray(f))r.push(...f);else{const y=H3(t[16]);R6(y[1],y,f,r,!0)}}n=i?n.projectionNext:n.next}return r}class K3{constructor(t,n){this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._attachedToViewContainer=!1}get rootNodes(){const t=this._lView,n=t[1];return R6(n,t,n.firstChild,[])}get context(){return this._lView[8]}set context(t){this._lView[8]=t}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const t=this._lView[3];if(p2(t)){const n=t[8],r=n?n.indexOf(this):-1;r>-1&&(c6(t,r),t6(n,r))}this._attachedToViewContainer=!1}Yi(this._lView[1],this._lView)}onDestroy(t){Wo(this._lView[1],this._lView,null,t)}markForCheck(){Ur(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){!function Gr(e,t,n){const r=t[10];r.begin&&r.begin();try{Q4(e,t,e.template,n)}catch(i){throw s0(t,i),i}finally{r.end&&r.end()}}(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new D1(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function Ac(e,t){V3(e,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new D1(902,"");this._appRef=t}}class dd extends K3{constructor(t){super(t),this._view=t}detectChanges(){n0(this._view)}checkNoChanges(){}get context(){return null}}class M8 extends I6{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=C(t);return new ka(n,this.ngModule)}}function z8(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class ka extends y8{constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function N7(e){return e.map(V7).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return z8(this.componentDef.inputs)}get outputs(){return z8(this.componentDef.outputs)}create(t,n,r,i){const s=(i=i||this.ngModule)?function hd(e,t){return{get:(n,r,i)=>{const s=e.get(n,Ta,i);return s!==Ta||r===Ta?s:t.get(n,r,i)}}}(t,i.injector):t,c=s.get(C8,Bt),f=s.get(ld,null),y=c.createRenderer(null,this.componentDef),E=this.componentDef.selectors[0][0]||"div",k=r?function $o(e,t,n){if(j2(e))return e.selectRootElement(t,n===Qe.ShadowDom);let r="string"==typeof t?e.querySelector(t):t;return r.textContent="",r}(y,r,this.componentDef.encapsulation):s6(c.createRenderer(null,this.componentDef),E,function fd(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(E)),e1=this.componentDef.onPush?576:528,w1=function x0(e,t){return{components:[],scheduler:e||_7,clean:bl,playerHandler:t||null,flags:0}}(),N1=C6(0,null,null,1,0,null,null,null,null,null),fe=I3(null,N1,w1,e1,null,null,c,y,f,s);let De,Ve;it(fe);try{const qe=function z0(e,t,n,r,i,s){const c=n[1];n[20]=e;const y=K4(c,20,2,"#host",null),E=y.mergedAttrs=t.hostAttrs;null!==E&&(M6(y,E,!0),null!==e&&(xn(i,e,E),null!==y.classes&&oo(i,e,y.classes),null!==y.styles&&Ic(i,e,y.styles)));const k=r.createRenderer(e,t),e1=I3(n,Go(t),null,t.onPush?64:16,n[20],y,r,k,s||null,null);return c.firstCreatePass&&(Ue(R(y,n),c,t.type),Qo(c,y),Xo(y,n.length,1)),w6(n,e1),n[20]=e1}(k,this.componentDef,fe,c,y);if(k)if(r)xn(y,k,["ng-version",ud.full]);else{const{attrs:we,classes:o2}=function P7(e){const t=[],n=[];let r=1,i=2;for(;r<e.length;){let s=e[r];if("string"==typeof s)2===i?""!==s&&t.push(s,e[++r]):8===i&&n.push(s);else{if(!Zn(i))break;i=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);we&&xn(y,k,we),o2&&o2.length>0&&oo(y,k,o2.join(" "))}if(Ve=_(N1,20),void 0!==n){const we=Ve.projection=[];for(let o2=0;o2<this.ngContentSelectors.length;o2++){const T2=n[o2];we.push(null!=T2?Array.from(T2):null)}}De=function _0(e,t,n,r,i){const s=n[1],c=function rl(e,t,n){const r=rt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),e0(e,r,t,J4(e,t,1,null),n));const i=Gn(t,e,r.directiveStart,r);on(i,t);const s=S(r,t);return s&&on(s,t),i}(s,n,t);
1if(r.components.push(c),e[8]=c,i&&i.forEach(y=>y(c,t)),t.contentQueries){const y=rt();t.contentQueries(1,c,y.directiveStart)}const f=rt();return!s.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(zn(f.index),Ko(n[1],f,0,f.directiveStart,f.directiveEnd,t),Jo(t,c)),c}(qe,this.componentDef,fe,w1,[Il]),R3(N1,fe,null)}finally{rn()}return new md(this.componentType,De,m3(Ve,fe),fe,Ve)}}class md extends class td{}{constructor(t,n,r,i,s){super(),this.location=r,this._rootLView=i,this._tNode=s,this.instance=n,this.hostView=this.changeDetectorRef=new dd(i),this.componentType=t}get injector(){return new R4(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}class v3{}class _8{}const g3=new Map;class A8 extends v3{constructor(t,n){super(),this._parent=n,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new M8(this);const r=C1(t);this._bootstrapComponents=i4(r.bootstrap),this._r3Injector=f0(t,n,[{provide:v3,useValue:this},{provide:I6,useValue:this.componentFactoryResolver}],s1(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,n=s4.THROW_IF_NOT_FOUND,r=We.Default){return t===s4||t===v3||t===$r?this:this._r3Injector.get(t,n,r)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Ha extends _8{constructor(t){super(),this.moduleType=t,null!==C1(t)&&function gd(e){const t=new Set;!function n(r){const i=C1(r,!0),s=i.id;null!==s&&(function x8(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${s1(t)} vs ${s1(t.name)}`)}(s,g3.get(s),r),g3.set(s,r));const c=i4(i.imports);for(const f of c)t.has(f)||(t.add(f),n(f))}(e)}(t)}create(t){return new A8(this.moduleType,t)}}function L8(e,t,n){const r=P()+e,i=be();return i[r]===b2?c4(i,r,n?t.call(n):t()):function U3(e,t){return e[t]}(i,r)}function D8(e,t,n,r){return k8(be(),P(),e,t,n,r)}function E8(e,t,n,r,i){return H8(be(),P(),e,t,n,r,i)}function T8(e,t,n,r,i,s,c){return function Va(e,t,n,r,i,s,c,f,y){const E=t+n;return function On(e,t,n,r,i,s){const c=E4(e,t,n,r);return E4(e,t+2,i,s)||c}(e,E,i,s,c,f)?c4(e,E+4,y?r.call(y,i,s,c,f):r(i,s,c,f)):J3(e,E+4)}(be(),P(),e,t,n,r,i,s,c)}function J3(e,t){const n=e[t];return n===b2?void 0:n}function k8(e,t,n,r,i,s){const c=t+n;return sn(e,c,i)?c4(e,c+1,s?r.call(s,i):r(i)):J3(e,c+1)}function H8(e,t,n,r,i,s,c){const f=t+n;return E4(e,f,i,s)?c4(e,f+2,c?r.call(c,i,s):r(i,s)):J3(e,f+2)}function P8(e,t){const n=C2();let r;const i=e+20;n.firstCreatePass?(r=function _d(e,t){if(t)for(let n=t.length-1;n>=0;n--){const r=t[n];if(e===r.name)return r}}(t,n.pipeRegistry),n.data[i]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(i,r.onDestroy)):r=n.data[i];const s=r.factory||(r.factory=Zt(r.type)),c=g1(j3);try{const f=M3(!1),y=s();return M3(f),function Jl(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}(n,be(),i,y),y}finally{g1(c)}}function O8(e,t,n){const r=e+20,i=be(),s=Y(i,r);return Q3(i,r)?k8(i,P(),t,s.transform,n,s):s.transform(n)}function I8(e,t,n,r){const i=e+20,s=be(),c=Y(s,i);return Q3(s,i)?H8(s,P(),t,c.transform,n,r,c):c.transform(n,r)}function Q3(e,t){return e[1].data[t].pure}function Na(e){return t=>{setTimeout(e,void 0,t)}}const u4=class Ld extends o.xQ{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){var i,s,c;let f=t,y=n||(()=>null),E=r;if(t&&"object"==typeof t){const e1=t;f=null===(i=e1.next)||void 0===i?void 0:i.bind(e1),y=null===(s=e1.error)||void 0===s?void 0:s.bind(e1),E=null===(c=e1.complete)||void 0===c?void 0:c.bind(e1)}this.__isAsync&&(y=Na(y),f&&(f=Na(f)),E&&(E=Na(E)));const k=super.subscribe({next:f,error:y,complete:E});return t instanceof a.w&&t.add(k),k}};function Dd(){return this._results[t3()]()}class Pa{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const n=t3(),r=Pa.prototype;r[n]||(r[n]=Dd)}get changes(){return this._changes||(this._changes=new u4)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}
1forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){const r=this;r.dirty=!1;const i=Pn(t);(this._changesDetected=!function F5(e,t,n){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++){let i=e[r],s=t[r];if(n&&(i=n(i),s=n(s)),s!==i)return!1}return!0}(r._results,i,n))&&(r._results=i,r.length=i.length,r.last=i[this.length-1],r.first=i[0])}notifyOnChanges(){this._changes&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}Symbol;let X3=(()=>{class e{}return e.__NG_ELEMENT_ID__=kd,e})();const Ed=X3,Td=class extends Ed{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(t){const n=this._declarationTContainer.tViews,r=I3(this._declarationLView,n,t,16,null,n.declTNode,null,null,null,null);r[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(r[19]=s.createEmbeddedView(n)),R3(n,r,t),new K3(r)}};function kd(){return F6(rt(),be())}function F6(e,t){return 4&e.type?new Td(t,e,m3(e,t)):null}let B6=(()=>{class e{}return e.__NG_ELEMENT_ID__=Hd,e})();function Hd(){return B8(rt(),be())}const Vd=B6,R8=class extends Vd{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return m3(this._hostTNode,this._hostLView)}get injector(){return new R4(this._hostTNode,this._hostLView)}get parentInjector(){const t=oe(this._hostTNode,this._hostLView);if(t4(t)){const n=m4(t,this._hostLView),r=jn(t);return new R4(n[1].data[r+8],n)}return new R4(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=F8(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,n,r){const i=t.createEmbeddedView(n||{});return this.insert(i,r),i}createComponent(t,n,r,i,s){const c=t&&!function x3(e){return"function"==typeof e}(t);let f;if(c)f=n;else{const e1=n||{};f=e1.index,r=e1.injector,i=e1.projectableNodes,s=e1.ngModuleRef}const y=c?t:new ka(C(t)),E=r||this.parentInjector;if(!s&&null==y.ngModule){const w1=(c?E:this.parentInjector).get(v3,null);w1&&(s=w1)}const k=y.create(E,i,void 0,s);return this.insert(k.hostView,f),k}insert(t,n){const r=t._lView,i=r[1];if(function T(e){return p2(e[3])}(r)){const k=this.indexOf(t);if(-1!==k)this.detach(k);else{const e1=r[3],w1=new R8(e1,e1[6],e1[3]);w1.detach(w1.indexOf(t))}}const s=this._adjustIndex(n),c=this._lContainer;!function Dc(e,t,n,r){const i=10+r,s=n.length;r>0&&(n[i-1][4]=t),r<s-10?(t[4]=n[i],Si(n,10+r,t)):(n.push(t),t[4]=null),t[3]=n;const c=t[17];null!==c&&n!==c&&function Ec(e,t){const n=e[9];t[16]!==t[3][3][16]&&(e[2]=!0),null===n?e[9]=[t]:n.push(t)}(c,t);const f=t[19];null!==f&&f.insertView(e),t[2]|=128}(i,r,c,s);const f=fr(s,c),y=r[11],E=l6(y,c[7]);return null!==E&&function Sc(e,t,n,r,i,s){r[0]=i,r[6]=t,V3(e,r,n,1,i,s)}(i,c[6],y,r,E,f),t.attachToViewContainerRef(),Si(Oa(c),s,t),t}move(t,n){return this.insert(t,n)}indexOf(t){const n=F8(this._lContainer);return null!==n?n.indexOf(t):-1}remove(t){const n=this._adjustIndex(t,-1),r=c6(this._lContainer,n);r&&(t6(Oa(this._lContainer),n),Yi(r[1],r))}detach(t){const n=this._adjustIndex(t,-1),r=c6(this._lContainer,n);return r&&null!=t6(Oa(this._lContainer),n)?new K3(r):null}_adjustIndex(t,n=0){return null==t?this.length+n:t}};function F8(e){return e[8]}function Oa(e){return e[8]||(e[8]=[])}function B8(e,t){let n;const r=t[e.index];if(p2(r))n=r;else{let i;if(8&e.type)i=G2(r);else{const s=t[11];i=s.createComment("");const c=S(e,t);A4(s,l6(s,c),i,function Vc(e,t){return j2(e)?e.nextSibling(t):t.nextSibling}(s,c),!1)}t[e.index]=n=t0(r,t,i,e),w6(t,n)}return new R8(n,e,t)}class Ia{constructor(t){this.queryList=t,this.matches=null}clone(){return new Ia(this.queryList)}setDirty(){this.queryList.setDirty()}}class Ra{constructor(t=[]){this.queries=t}createEmbeddedView(t){const n=t.queries;if(null!==n){const r=null!==t.contentQueries?t.contentQueries[0]:n.length,i=[];for(let s=0;s<r;s++){const c=n.getByIndex(s);i.push(this.queries[c.indexInDeclarationView].clone())}return new Ra(i)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let n=0;n<this.queries.length;n++)null!==K8(t,n).matches&&this.queries[n].setDirty()}}class U8{constructor(t,n,r=null){this.predicate=t,this.flags=n,this.read=r}}class Fa{constructor(t=[]){this.queries=t}elementStart(t,n){for(let r=0;r<this.queries.length;r++)this.queries[r].elementStart(t,n)}elementEnd(t){for(let n=0;n<this.queries.length;n++)this.queries[n].elementEnd(t)}embeddedTView(t){let n=null;for(let r=0;r<this.length;r++){const i=null!==n?n.length:0,s=this.getByIndex(r).embeddedTView(t,i);s&&(s.indexInDeclarationView=r,null!==n?n.push(s):n=[s])}return null!==n?new Fa(n):null}template(t,n){for(let r=0;r<this.queries.length;r++)this.queries[r].template(t,n)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class Ba{constructor(t,n=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=n}elementStart(t,n){this.isApplyingToNode(n)&&this.matchTNode(t,n)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,n){this.elementStart(t,n)}embeddedTView(t,n){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,n),new Ba(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){const n=this._declarationNodeIndex;let r=t.parent;for(;null!==r&&8&r.type&&r.index!==n;)r=r.parent;return n===(null!==r?r.index:-1)}return this._appliesToNextNode}
1matchTNode(t,n){const r=this.metadata.predicate;if(Array.isArray(r))for(let i=0;i<r.length;i++){const s=r[i];this.matchTNodeWithReadOption(t,n,Od(n,s)),this.matchTNodeWithReadOption(t,n,S4(n,t,s,!1,!1))}else r===X3?4&n.type&&this.matchTNodeWithReadOption(t,n,-1):this.matchTNodeWithReadOption(t,n,S4(n,t,r,!1,!1))}matchTNodeWithReadOption(t,n,r){if(null!==r){const i=this.metadata.read;if(null!==i)if(i===Y3||i===B6||i===X3&&4&n.type)this.addMatch(n.index,-2);else{const s=S4(n,t,i,!1,!1);null!==s&&this.addMatch(n.index,s)}else this.addMatch(n.index,r)}}addMatch(t,n){null===this.matches?this.matches=[t,n]:this.matches.push(t,n)}}function Od(e,t){const n=e.localNames;if(null!==n)for(let r=0;r<n.length;r+=2)if(n[r]===t)return n[r+1];return null}function Rd(e,t,n,r){return-1===n?function Id(e,t){return 11&e.type?m3(e,t):4&e.type?F6(e,t):null}(t,e):-2===n?function Fd(e,t,n){return n===Y3?m3(t,e):n===X3?F6(t,e):n===B6?B8(t,e):void 0}(e,t,r):Gn(e,e[1],n,t)}function j8(e,t,n,r){const i=t[19].queries[r];if(null===i.matches){const s=e.data,c=n.matches,f=[];for(let y=0;y<c.length;y+=2){const E=c[y];f.push(E<0?null:Rd(t,s[E],c[y+1],n.metadata.read))}i.matches=f}return i.matches}function Ua(e,t,n,r){const i=e.queries.getByIndex(n),s=i.matches;if(null!==s){const c=j8(e,t,i,n);for(let f=0;f<s.length;f+=2){const y=s[f];if(y>0)r.push(c[f/2]);else{const E=s[f+1],k=t[-y];for(let e1=10;e1<k.length;e1++){const w1=k[e1];w1[17]===w1[3]&&Ua(w1[1],w1,E,r)}if(null!==k[9]){const e1=k[9];for(let w1=0;w1<e1.length;w1++){const N1=e1[w1];Ua(N1[1],N1,E,r)}}}}}return r}function G8(e){const t=be(),n=C2(),r=q2();ft(r+1);const i=K8(n,r);if(e.dirty&&d(t)===(2==(2&i.metadata.flags))){if(null===i.matches)e.reset([]);else{const s=i.crossesNgTemplate?Ua(n,t,r,[]):j8(n,t,i,r);e.reset(s,id),e.notifyOnChanges()}return!0}return!1}function Z8(e,t,n){const r=C2();r.firstCreatePass&&(Y8(r,new U8(e,t,n),-1),2==(2&t)&&(r.staticViewQueries=!0)),q8(r,be(),t)}function $8(e,t,n,r){const i=C2();if(i.firstCreatePass){const s=rt();Y8(i,new U8(t,n,r),s.index),function Ud(e,t){const n=e.contentQueries||(e.contentQueries=[]);t!==(n.length?n[n.length-1]:-1)&&n.push(e.queries.length-1,t)}(i,e),2==(2&n)&&(i.staticContentQueries=!0)}q8(i,be(),n)}function W8(){return function Bd(e,t){return e[19].queries[t].queryList}(be(),q2())}function q8(e,t,n){const r=new Pa(4==(4&n));Wo(e,t,r,r.destroy),null===t[19]&&(t[19]=new Ra),t[19].queries.push(new Ia(r))}function Y8(e,t,n){null===e.queries&&(e.queries=new Fa),e.queries.track(new Ba(t,n))}function K8(e,t){return e.queries.getByIndex(t)}function J8(e,t){return F6(e,t)}const sf=_i("Input",e=>({bindingPropertyName:e})),cf=_i("Output",e=>({bindingPropertyName:e}));function G6(...e){}const p5=new ht("Application Initializer");let qa=(()=>{class e{constructor(n){this.appInits=n,this.resolve=G6,this.reject=G6,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,i)=>{this.resolve=r,this.reject=i})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let i=0;i<this.appInits.length;i++){const s=this.appInits[i]();if(da(s))n.push(s);else if(J0(s)){const c=new Promise((f,y)=>{s.subscribe({complete:f,error:y})});n.push(c)}}Promise.all(n).then(()=>{r()}).catch(i=>{this.reject(i)}),0===n.length&&r(),this.initialized=!0}}return e.\u0275fac=function(n){return new(n||e)(Jt(p5,8))},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const m5=new ht("AppId",{providedIn:"root",factory:function v5(){return`${Ya()}${Ya()}${Ya()}`}});function Ya(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const g5=new ht("Platform Initializer"),lf=new ht("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),y5=new ht("appBootstrapListener");let uf=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();const Ka=new ht("LocaleId",{providedIn:"root",factory:()=>X5(Ka,We.Optional|We.SkipSelf)||function df(){return"undefined"!=typeof $localize&&$localize.locale||H6}()}),ff=new ht("DefaultCurrencyCode",{providedIn:"root",factory:()=>"USD"});class hf{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}let pf=(()=>{class e{compileModuleSync(n){return new Ha(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),s=i4(C1(n).declarations).reduce((c,f)=>{const y=C(f);return y&&c.push(new ka(y)),c},[]);return new hf(r,s)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const vf=(()=>Promise.resolve(0))();function Ja(e){"undefined"==typeof Zone?vf.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class Jn{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new u4(!1),this.onMicrotaskEmpty=new u4(!1),this.onStable=new u4(!1),this.onError=ne
1w u4(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const i=this;i._nesting=0,i._outer=i._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(i._inner=i._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(i._inner=i._inner.fork(Zone.longStackTraceZoneSpec)),i.shouldCoalesceEventChangeDetection=!r&&n,i.shouldCoalesceRunChangeDetection=r,i.lastRequestAnimationFrameId=-1,i.nativeRequestAnimationFrame=function gf(){let e=Pe.requestAnimationFrame,t=Pe.cancelAnimationFrame;if("undefined"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function Cf(e){const t=()=>{!function bf(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(Pe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Xa(e),e.isCheckStableRunning=!0,Qa(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Xa(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,i,s,c,f)=>{try{return b5(e),n.invokeTask(i,s,c,f)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||e.shouldCoalesceRunChangeDetection)&&t(),C5(e)}},onInvoke:(n,r,i,s,c,f,y)=>{try{return b5(e),n.invoke(i,s,c,f,y)}finally{e.shouldCoalesceRunChangeDetection&&t(),C5(e)}},onHasTask:(n,r,i,s)=>{n.hasTask(i,s),r===i&&("microTask"==s.change?(e._hasPendingMicrotasks=s.microTask,Xa(e),Qa(e)):"macroTask"==s.change&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(n,r,i,s)=>(n.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}(i)}static isInAngularZone(){return"undefined"!=typeof Zone&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Jn.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Jn.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,i){const s=this._inner,c=s.scheduleEventTask("NgZoneEvent: "+i,t,yf,G6,G6);try{return s.runTask(c,n,r)}finally{s.cancelTask(c)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const yf={};function Qa(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Xa(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function b5(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function C5(e){e._nesting--,Qa(e)}class wf{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new u4,this.onMicrotaskEmpty=new u4,this.onStable=new u4,this.onError=new u4}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,i){return t.apply(n,r)}}let w5=(()=>{class e{constructor(n){this._ngZone=n,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Jn.assertNotInAngularZone(),Ja(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}
1decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Ja(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,i){let s=-1;r&&r>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(c=>c.timeoutId!==s),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:s,updateCb:i})}whenStable(n,r,i){if(i&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(n,r,i){return[]}}return e.\u0275fac=function(n){return new(n||e)(Jt(Jn))},e.\u0275prov=p1({token:e,factory:e.\u0275fac}),e})(),Mf=(()=>{class e{constructor(){this._applications=new Map,ei.addToWindow(this)}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return ei.findTestabilityInTree(this,n,r)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();class zf{addToWindow(t){}findTestabilityInTree(t,n,r){return null}}function _f(e){ei=e}let ei=new zf,k4=null;const M5=new ht("AllowMultipleToken"),z5=new ht("PlatformOnDestroy");class Af{constructor(t,n){this.name=t,this.token=n}}function _5(e,t,n=[]){const r=`Platform: ${t}`,i=new ht(r);return(s=[])=>{let c=ti();if(!c||c.injector.get(M5,!1)){const f=[...n,...s,{provide:i,useValue:!0}];e?e(f):function Lf(e){if(k4&&!k4.get(M5,!1))throw new D1(400,"");k4=e;const t=e.get(x5),n=e.get(g5,null);n&&n.forEach(r=>r())}(function Ef(e=[],t){return s4.create({name:t,providers:[{provide:Wr,useValue:"platform"},{provide:z5,useValue:()=>k4=null},...e]})}(f,r))}return function Df(e){const t=ti();if(!t)throw new D1(401,"");return t}()}}function ti(){var e;return null!==(e=null==k4?void 0:k4.get(x5))&&void 0!==e?e:null}let x5=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const f=function Tf(e,t){let n;return n="noop"===e?new wf:("zone.js"===e?void 0:e)||new Jn({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!(null==t?void 0:t.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==t?void 0:t.ngZoneRunCoalescing)}),n}(r?r.ngZone:void 0,{ngZoneEventCoalescing:r&&r.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:r&&r.ngZoneRunCoalescing||!1}),y=[{provide:Jn,useValue:f}];return f.run(()=>{const E=s4.create({providers:y,parent:this.injector,name:n.moduleType.name}),k=n.create(E),e1=k.injector.get(v6,null);if(!e1)throw new D1(402,"");return f.runOutsideAngular(()=>{const w1=f.onError.subscribe({next:N1=>{e1.handleError(N1)}});k.onDestroy(()=>{ri(this._modules,k),w1.unsubscribe()})}),function kf(e,t,n){try{const r=n();return da(r)?r.catch(i=>{throw t.runOutsideAngular(()=>e.handleError(i)),i}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(e1,f,()=>{const w1=k.injector.get(qa);return w1.runInitializers(),w1.donePromise.then(()=>(function Ws(e){O(e,"Expected localeId to be defined"),"string"==typeof e&&($s=e.toLowerCase().replace(/_/g,"-"))}(k.injector.get(Ka,H6)||H6),this._moduleDoBootstrap(k),k))})})}bootstrapModule(n,r=[]){const i=S5({},r);return function xf(e,t,n){const r=new Ha(n);return Promise.resolve(r)}(0,0,n).then(s=>this.bootstrapModuleFactory(s,i))}_moduleDoBootstrap(n){const r=n.injector.get(ni);if(n._bootstrapComponents.length>
10)n._bootstrapComponents.forEach(i=>r.bootstrap(i));else{if(!n.instance.ngDoBootstrap)throw new D1(403,"");n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new D1(404,"");this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(z5,null);null==n||n(),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(n){return new(n||e)(Jt(s4))},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function S5(e,t){return Array.isArray(t)?t.reduce(S5,e):Object.assign(Object.assign({},e),t)}let ni=(()=>{class e{constructor(n,r,i,s){this._zone=n,this._injector=r,this._exceptionHandler=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const c=new I.y(y=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{y.next(this._stable),y.complete()})}),f=new I.y(y=>{let E;this._zone.runOutsideAngular(()=>{E=this._zone.onStable.subscribe(()=>{Jn.assertNotInAngularZone(),Ja(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,y.next(!0))})})});const k=this._zone.onUnstable.subscribe(()=>{Jn.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{y.next(!1)}))});return()=>{E.unsubscribe(),k.unsubscribe()}});this.isStable=(0,r1.T)(c,f.pipe(function W(){return e=>(0,F.x)()(function U(e,t){return function(r){let i;if(i="function"==typeof e?e:function(){return e},"function"==typeof t)return r.lift(new N(i,t));const s=Object.create(r,X.N);return s.source=r,s.subjectFactory=i,s}}(j)(e))}()))}bootstrap(n,r){if(!this._initStatus.done)throw new D1(405,"");let i;i=n instanceof y8?n:this._injector.get(I6).resolveComponentFactory(n),this.componentTypes.push(i.componentType);const s=function Sf(e){return e.isBoundToModule}(i)?void 0:this._injector.get(v3),f=i.create(s4.NULL,[],r||i.selector,s),y=f.location.nativeElement,E=f.injector.get(w5,null),k=E&&f.injector.get(Mf);return E&&k&&k.registerApplication(y,E),f.onDestroy(()=>{this.detachView(f.hostView),ri(this.components,f),k&&k.unregisterApplication(y)}),this._loadComponent(f),f}tick(){if(this._runningTick)throw new D1(101,"");try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;ri(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(y5,[]).concat(this._bootstrapListeners).forEach(i=>i(n))}ngOnDestroy(){this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return e.\u0275fac=function(n){return new(n||e)(Jt(Jn),Jt(s4),Jt(v6),Jt(qa))},e.\u0275prov=p1({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function ri(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}let L5=!0,D5=!1;function Vf(){return D5=!0,L5}function Nf(){if(D5)throw new Error("Cannot enable prod mode after platform setup.");L5=!1}let Pf=(()=>{class e{}return e.__NG_ELEMENT_ID__=Of,e})();function Of(e){return function If(e,t,n){if(st(e)&&!n){const r=p(e.index,t);return new K3(r,r)}return 47&e.type?new K3(t[16],t):null}(rt(),be(),16==(16&e))}class H5{constructor(){}supports(t){return B3(t)}create(t){return new Gf(t)}}const jf=(e,t)=>t;class Gf{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||jf}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,i=0,s=null;for(;n||r;){const c=!r||n&&n.currentIndex<N5(r,i,s)?n:r,f=N5(c,i,s),y=c.currentIndex;if(c===r)i--,r=r._nextRemoved;else if(n=n._next,null==c.previousIndex)i++;else{s||(s=[]);const E=f-i,k=y-i;if(E!=k){for(let w1=0;w1<E;w1++){const N1=w1<s.length?s[w1]:s[w1]=0,fe=N1+w1;k<=fe&&fe<E&&(s[w1]=N1+1)}s[c.previousIndex]=k-E}}f!==y&&t(c,f,y)}}forEachPreviousItem(t){let n;for(n=this._previousItHead;null!==n;n=n._nextPrevious)t(n)}forEachAddedItem(t){let n;for(n=this._additionsHead;null!==n;
vendor: 10,686 bytes, line 1
1n=n._nextAdded)t(n)}forEachMovedItem(t){let n;for(n=this._movesHead;null!==n;n=n._nextMoved)t(n)}forEachRemovedItem(t){let n;for(n=this._removalsHead;null!==n;n=n._nextRemoved)t(n)}forEachIdentityChange(t){let n;for(n=this._identityChangesHead;null!==n;n=n._nextIdentityChange)t(n)}diff(t){if(null==t&&(t=[]),!B3(t))throw new D1(900,"");return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let i,s,c,n=this._itHead,r=!1;if(Array.isArray(t)){this.length=t.length;for(let f=0;f<this.length;f++)s=t[f],c=this._trackByFn(f,s),null!==n&&Object.is(n.trackById,c)?(r&&(n=this._verifyReinsertion(n,s,c,f)),Object.is(n.item,s)||this._addIdentityChange(n,s)):(n=this._mismatch(n,s,c,f),r=!0),n=n._next}else i=0,function Yl(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[t3()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(t,f=>{c=this._trackByFn(i,f),null!==n&&Object.is(n.trackById,c)?(r&&(n=this._verifyReinsertion(n,f,c,i)),Object.is(n.item,f)||this._addIdentityChange(n,f)):(n=this._mismatch(n,f,c,i),r=!0),n=n._next,i++}),this.length=i;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,i){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,s,i)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,i))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,s,i)):t=this._addAfter(new Zf(n,r),s,i),t}_verifyReinsertion(t,n,r,i){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==s?t=this._reinsertAfter(s,t._prev,i):t.currentIndex!=i&&(t.currentIndex=i,this._addToMoves(t,i)),t}_truncate(t){for(;null!==t;){const n=t._next;this._addToRemovals(this._unlink(t)),t=n}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const i=t._prevRemoved,s=t._nextRemoved;return null===i?this._removalsHead=s:i._nextRemoved=s,null===s?this._removalsTail=i:s._prevRemoved=i,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const i=null===n?this._itHead:n._next;return t._next=i,t._prev=n,null===i?this._itTail=t:i._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new V5),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new V5),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Zf{constructor(t,n){this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class $f{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class V5{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new $f,this.map.set(n,r)),r.add(t)}get(t,n){const i=this.map.get(t);return i?i.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function N5(e,t,n){const r=e.previousIndex;if(null===r)return r;let i=0;return n&&r<n.length&&(i=n[r]),r+t+i}class P5{constructor(){}supports(t){return t instanceof Map||ta(t)}create(){return new Wf}}class Wf{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let n;for(n=this._mapHead;null!==n;n=n._next)t(n)}forEachPreviousItem(t){let n;for(n=this._previousMapHead;null!==n;n=n._nextPrevious)t(n)}forEachChangedItem(t){let n;for(n=this._changesHead;null!==n;n=n._nextChanged)t(n)}forEachAddedItem(t){let n;for(n=this._additionsHead;null!==n;n=n._nextAdded)t(n)}forEachRemovedItem(t){let n;for(n=this._removalsHead;null!==n;n=n._nextRemoved)t(n)}diff(t){if(t){if(!(t instanceof Map||ta(t)))throw new D1(900,"")}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let n=this._mapHead;if(this._appendAfter=null,this._forEach(t,(r,i)=>{if(n&&n.key===i)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const s=this._getOrCreateRecordForKey(i,r);n=this._insertBeforeOrAppend(n,s)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const i=this._records.get(t);this._maybeAddToChanges(i,n);const s=i._prev,c=i._next;return s&&(s._next=c),c&&(c._prev=s),i._next=null,i._prev=null,i}const r=new qf(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}}class qf{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function O5(){return new ci([new H5])}let ci=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(null!=r){const i=r.factories.slice();n=n.concat(i)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||O5()),deps:[[e,new E3,new D3]]}}find(n){const r=this.factories.find(i=>i.supports(n));if(null!=r)return r;throw new D1(901,"")}}return e.\u0275prov=p1({token:e,providedIn:"root",factory:O5}),e})();function I5(){return new li([new P5])}let li=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(r){const i=r.factories.slice();n=n.concat(i)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||I5()),deps:[[e,new E3,new D3]]}}find(n){const r=this.factories.find(s=>s.supports(n));if(r)return r;throw new D1(901,"")}}return e.\u0275prov=p1({token:e,providedIn:"root",factory:I5}),e})();const Jf=_5(null,"core",[]);let Qf=(()=>{class e{constructor(n){}}return e.\u0275fac=function(n){return new(n||e)(Jt(ni))},e.\u0275mod=A1({type:e}),e.\u0275inj=B1({}),e})()},3075:(xe,S1,m)=>{"use strict";m.d(S1,{CE:()=>Ot,EJ:()=>R2,Fj:()=>n1,JJ:()=>P2,JL:()=>K2,JU:()=>F,Kr:()=>Rt,NI:()=>Q1,On:()=>L2,Q7:()=>Ft,UX:()=>S,Wl:()=>W,YN:()=>et,_:()=>vt,_Y:()=>N2,a5:()=>B1,kI:()=>D1,qu:()=>_,sg:()=>nt,u:()=>Gt,u5:()=>Dt});var o=m(6435),a=m(9808),I=m(5254),r1=m(567),X=m(4850);let U=(()=>{class p{constructor(h,T){this._renderer=h,this._elementRef=T,this.onChange=V1=>{},this.onTouched=()=>{}}setProperty(h,T){this._renderer.setProperty(this._elementRef.nativeElement,h,T)}registerOnTouched(h){this.onTouched=h}registerOnChange(h){this.onChange=h}setDisabledState(h){this.setProperty("disabled",h)}}
1return p.\u0275fac=function(h){return new(h||p)(o.Y36(o.Qsj),o.Y36(o.SBq))},p.\u0275dir=o.lG2({type:p}),p})(),N=(()=>{class p extends U{}return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,features:[o.qOj]}),p})();const F=new o.OlP("NgValueAccessor"),j={provide:F,useExisting:(0,o.Gpc)(()=>W),multi:!0};let W=(()=>{class p extends N{writeValue(h){this.setProperty("checked",h)}}return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(h,T){1&h&&o.NdJ("change",function(ve){return T.onChange(ve.target.checked)})("blur",function(){return T.onTouched()})},features:[o._Bn([j]),o.qOj]}),p})();const J={provide:F,useExisting:(0,o.Gpc)(()=>n1),multi:!0},s1=new o.OlP("CompositionEventMode");let n1=(()=>{class p extends U{constructor(h,T,V1){super(h,T),this._compositionMode=V1,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function l1(){const p=(0,a.q)()?(0,a.q)().getUserAgent():"";return/android (\d+)/.test(p.toLowerCase())}())}writeValue(h){this.setProperty("value",null==h?"":h)}_handleInput(h){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(h)}_compositionStart(){this._composing=!0}_compositionEnd(h){this._composing=!1,this._compositionMode&&this.onChange(h)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(o.Qsj),o.Y36(o.SBq),o.Y36(s1,8))},p.\u0275dir=o.lG2({type:p,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(h,T){1&h&&o.NdJ("input",function(ve){return T._handleInput(ve.target.value)})("blur",function(){return T.onTouched()})("compositionstart",function(){return T._compositionStart()})("compositionend",function(ve){return T._compositionEnd(ve.target.value)})},features:[o._Bn([J]),o.qOj]}),p})();function y1(p){return null==p||0===p.length}function M1(p){return null!=p&&"number"==typeof p.length}const u1=new o.OlP("NgValidators"),de=new o.OlP("NgAsyncValidators"),R1=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class D1{static min(d){return function K1(p){return d=>{if(y1(d.value)||y1(p))return null;const h=parseFloat(d.value);return!isNaN(h)&&h<p?{min:{min:p,actual:d.value}}:null}}(d)}static max(d){return function X1(p){return d=>{if(y1(d.value)||y1(p))return null;const h=parseFloat(d.value);return!isNaN(h)&&h>p?{max:{max:p,actual:d.value}}:null}}(d)}static required(d){return Se(d)}static requiredTrue(d){return function Me(p){return!0===p.value?null:{required:!0}}(d)}static email(d){return function ae(p){return y1(p.value)||R1.test(p.value)?null:{email:!0}}(d)}static minLength(d){return function Ee(p){return d=>y1(d.value)||!M1(d.value)?null:d.value.length<p?{minlength:{requiredLength:p,actualLength:d.value.length}}:null}(d)}static maxLength(d){return function Ae(p){return d=>M1(d.value)&&d.value.length>p?{maxlength:{requiredLength:p,actualLength:d.value.length}}:null}(d)}static pattern(d){return function ke(p){if(!p)return te;let d,h;return"string"==typeof p?(h="","^"!==p.charAt(0)&&(h+="^"),h+=p,"$"!==p.charAt(p.length-1)&&(h+="$"),d=new RegExp(h)):(h=p.toString(),d=p),T=>{if(y1(T.value))return null;const V1=T.value;return d.test(V1)?null:{pattern:{requiredPattern:h,actualValue:V1}}}}(d)}static nullValidator(d){return null}static compose(d){return H1(d)}static composeAsync(d){return Z1(d)}}function Se(p){return y1(p.value)?{required:!0}:null}function te(p){return null}function ie(p){return null!=p}function G1(p){const d=(0,o.QGY)(p)?(0,I.D)(p):p;return(0,o.CqO)(d),d}function ne(p){let d={};return p.forEach(h=>{d=null!=h?Object.assign(Object.assign({},d),h):d}),0===Object.keys(d).length?null:d}function Ke(p,d){return d.map(h=>h(p))}function Je(p){return p.map(d=>function t2(p){return!p.validate}(d)?d:h=>d.validate(h))}function H1(p){if(!p)return null;const d=p.filter(ie);return 0==d.length?null:function(h){return ne(Ke(h,d))}}
1function O1(p){return null!=p?H1(Je(p)):null}function Z1(p){if(!p)return null;const d=p.filter(ie);return 0==d.length?null:function(h){const T=Ke(h,d).map(G1);return(0,r1.D)(T).pipe((0,X.U)(ne))}}function d1(p){return null!=p?Z1(Je(p)):null}function I1(p,d){return null===p?[d]:Array.isArray(p)?[...p,d]:[p,d]}function O(p){return p._rawValidators}function h1(p){return p._rawAsyncValidators}function q1(p){return p?Array.isArray(p)?p:[p]:[]}function _1(p,d){return Array.isArray(p)?p.includes(d):p===d}function T1(p,d){const h=q1(d);return q1(p).forEach(V1=>{_1(h,V1)||h.push(V1)}),h}function p1(p,d){return q1(d).filter(h=>!_1(p,h))}class P1{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(d){this._rawValidators=d||[],this._composedValidatorFn=O1(this._rawValidators)}_setAsyncValidators(d){this._rawAsyncValidators=d||[],this._composedAsyncValidatorFn=d1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(d){this._onDestroyCallbacks.push(d)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(d=>d()),this._onDestroyCallbacks=[]}reset(d){this.control&&this.control.reset(d)}hasError(d,h){return!!this.control&&this.control.hasError(d,h)}getError(d,h){return this.control?this.control.getError(d,h):null}}class B1 extends P1{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class me extends P1{get formDirective(){return null}get path(){return null}}class Oe{constructor(d){this._cd=d}is(d){var h,T,V1;return"submitted"===d?!!(null===(h=this._cd)||void 0===h?void 0:h.submitted):!!(null===(V1=null===(T=this._cd)||void 0===T?void 0:T.control)||void 0===V1?void 0:V1[d])}}let P2=(()=>{class p extends Oe{constructor(h){super(h)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(B1,2))},p.\u0275dir=o.lG2({type:p,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(h,T){2&h&&o.ekj("ng-untouched",T.is("untouched"))("ng-touched",T.is("touched"))("ng-pristine",T.is("pristine"))("ng-dirty",T.is("dirty"))("ng-valid",T.is("valid"))("ng-invalid",T.is("invalid"))("ng-pending",T.is("pending"))},features:[o.qOj]}),p})(),K2=(()=>{class p extends Oe{constructor(h){super(h)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(me,10))},p.\u0275dir=o.lG2({type:p,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(h,T){2&h&&o.ekj("ng-untouched",T.is("untouched"))("ng-touched",T.is("touched"))("ng-pristine",T.is("pristine"))("ng-dirty",T.is("dirty"))("ng-valid",T.is("valid"))("ng-invalid",T.is("invalid"))("ng-pending",T.is("pending"))("ng-submitted",T.is("submitted"))},features:[o.qOj]}),p})();function W2(p,d){return[...d.path,p]}function je(p,d){j1(p,d),d.valueAccessor.writeValue(p.value),function F1(p,d){d.valueAccessor.registerOnChange(h=>{p._pendingValue=h,p._pendingChange=!0,p._pendingDirty=!0,"change"===p.updateOn&&Ze(p,d)})}(p,d),function E2(p,d){const h=(T,V1)=>{d.valueAccessor.writeValue(T),V1&&d.viewToModelUpdate(T)};p.registerOnChange(h),d._registerOnDestroy(()=>{p._unregisterOnChange(h)})}(p,d),function Re(p,d){d.valueAccessor.registerOnTouched(()=>{p._pendingTouched=!0,"blur"===p.updateOn&&p._pendingChange&&Ze(p,d),"submit"!==p.updateOn&&p.markAsTouched()})}(p,d),function x1(p,d){if(d.valueAccessor.setDisabledState){const h=T=>{d.valueAccessor.setDisabledState(T)};p.registerOnDisabledChange(h),d._registerOnDestroy(()=>{p._unregisterOnDisabledChange(h)})}}(p,d)}function Pe(p,d,h=!0){const T=()=>{};d.valueAccessor&&(d.valueAccessor.registerOnChange(T),d.valueAccessor.registerOnTouched(T)),c1(p,d),p&&(d._invokeOnDestroyCallbacks(),p._registerOnCollectionChange(()=>{}))}function Ye(p,d){p.forEach(h=>{h.registerOnValidatorChange&&h.registerOnValidatorChange(d)})}
1function j1(p,d){const h=O(p);null!==d.validator?p.setValidators(I1(h,d.validator)):"function"==typeof h&&p.setValidators([h]);const T=h1(p);null!==d.asyncValidator?p.setAsyncValidators(I1(T,d.asyncValidator)):"function"==typeof T&&p.setAsyncValidators([T]);const V1=()=>p.updateValueAndValidity();Ye(d._rawValidators,V1),Ye(d._rawAsyncValidators,V1)}function c1(p,d){let h=!1;if(null!==p){if(null!==d.validator){const V1=O(p);if(Array.isArray(V1)&&V1.length>0){const ve=V1.filter(a2=>a2!==d.validator);ve.length!==V1.length&&(h=!0,p.setValidators(ve))}}if(null!==d.asyncValidator){const V1=h1(p);if(Array.isArray(V1)&&V1.length>0){const ve=V1.filter(a2=>a2!==d.asyncValidator);ve.length!==V1.length&&(h=!0,p.setAsyncValidators(ve))}}}const T=()=>{};return Ye(d._rawValidators,T),Ye(d._rawAsyncValidators,T),h}function Ze(p,d){p._pendingDirty&&p.markAsDirty(),p.setValue(p._pendingValue,{emitModelToViewChange:!1}),d.viewToModelUpdate(p._pendingValue),p._pendingChange=!1}function b1(p,d){if(!p.hasOwnProperty("model"))return!1;const h=p.model;return!!h.isFirstChange()||!Object.is(d,h.currentValue)}function ee(p,d){if(!d)return null;let h,T,V1;return Array.isArray(d),d.forEach(ve=>{ve.constructor===n1?h=ve:function q(p){return Object.getPrototypeOf(p.constructor)===N}(ve)?T=ve:V1=ve}),V1||T||h||null}function M(p,d){const h=p.indexOf(d);h>-1&&p.splice(h,1)}const C="VALID",Z="INVALID",G="PENDING",C1="DISABLED";function o1(p){return(re(p)?p.validators:p)||null}function Y1(p){return Array.isArray(p)?O1(p):p||null}function J1(p,d){return(re(d)?d.asyncValidators:p)||null}function le(p){return Array.isArray(p)?d1(p):p||null}function re(p){return null!=p&&!Array.isArray(p)&&"object"==typeof p}const He=p=>p instanceof Q1,B=p=>p instanceof Ne,V=p=>p instanceof Le;function K(p){return He(p)?p.value:p.getRawValue()}function m1(p,d){const h=B(p),T=p.controls;if(!(h?Object.keys(T):T).length)throw new o.vHH(1e3,"");if(!T[d])throw new o.vHH(1001,"")}function E1(p,d){B(p),p._forEachChild((T,V1)=>{if(void 0===d[V1])throw new o.vHH(1002,"")})}class $1{constructor(d,h){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=d,this._rawAsyncValidators=h,this._composedValidatorFn=Y1(this._rawValidators),this._composedAsyncValidatorFn=le(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(d){this._rawValidators=this._composedValidatorFn=d}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(d){this._rawAsyncValidators=this._composedAsyncValidatorFn=d}get parent(){return this._parent}get valid(){return this.status===C}get invalid(){return this.status===Z}get pending(){return this.status==G}get disabled(){return this.status===C1}get enabled(){return this.status!==C1}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(d){this._rawValidators=d,this._composedValidatorFn=Y1(d)}setAsyncValidators(d){this._rawAsyncValidators=d,this._composedAsyncValidatorFn=le(d)}addValidators(d){this.setValidators(T1(d,this._rawValidators))}addAsyncValidators(d){this.setAsyncValidators(T1(d,this._rawAsyncValidators))}removeValidators(d){this.setValidators(p1(d,this._rawValidators))}removeAsyncValidators(d){this.setAsyncValidators(p1(d,this._rawAsyncValidators))}hasValidator(d){return _1(this._rawValidators,d)}hasAsyncValidator(d){return _1(this._rawAsyncValidators,d)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(d={}){this.touched=!0,this._parent&&!d.onlySelf&&this._parent.markAsTouched(d)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(d=>d.markAllAsTouched())}markAsUntouched(d={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(h=>{h.markAsUntouched({onlySelf:!0})}),this._parent&&!d.onlySelf&&this._parent._updateTouched(d)}markAsDirty(d={}){this.pristine=!1,this._parent&&!d.onlySelf&&this._parent.markAsDirty(d)}markAsPristine(d={}
1){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(h=>{h.markAsPristine({onlySelf:!0})}),this._parent&&!d.onlySelf&&this._parent._updatePristine(d)}markAsPending(d={}){this.status=G,!1!==d.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!d.onlySelf&&this._parent.markAsPending(d)}disable(d={}){const h=this._parentMarkedDirty(d.onlySelf);this.status=C1,this.errors=null,this._forEachChild(T=>{T.disable(Object.assign(Object.assign({},d),{onlySelf:!0}))}),this._updateValue(),!1!==d.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},d),{skipPristineCheck:h})),this._onDisabledChange.forEach(T=>T(!0))}enable(d={}){const h=this._parentMarkedDirty(d.onlySelf);this.status=C,this._forEachChild(T=>{T.enable(Object.assign(Object.assign({},d),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:d.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},d),{skipPristineCheck:h})),this._onDisabledChange.forEach(T=>T(!1))}_updateAncestors(d){this._parent&&!d.onlySelf&&(this._parent.updateValueAndValidity(d),d.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(d){this._parent=d}updateValueAndValidity(d={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===C||this.status===G)&&this._runAsyncValidator(d.emitEvent)),!1!==d.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!d.onlySelf&&this._parent.updateValueAndValidity(d)}_updateTreeValidity(d={emitEvent:!0}){this._forEachChild(h=>h._updateTreeValidity(d)),this.updateValueAndValidity({onlySelf:!0,emitEvent:d.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?C1:C}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(d){if(this.asyncValidator){this.status=G,this._hasOwnPendingAsyncValidator=!0;const h=G1(this.asyncValidator(this));this._asyncValidationSubscription=h.subscribe(T=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(T,{emitEvent:d})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(d,h={}){this.errors=d,this._updateControlsErrors(!1!==h.emitEvent)}get(d){return function v1(p,d,h){if(null==d||(Array.isArray(d)||(d=d.split(h)),Array.isArray(d)&&0===d.length))return null;let T=p;return d.forEach(V1=>{T=B(T)?T.controls.hasOwnProperty(V1)?T.controls[V1]:null:V(T)&&T.at(V1)||null}),T}(this,d,".")}getError(d,h){const T=h?this.get(h):this;return T&&T.errors?T.errors[d]:null}hasError(d,h){return!!this.getError(d,h)}get root(){let d=this;for(;d._parent;)d=d._parent;return d}_updateControlsErrors(d){this.status=this._calculateStatus(),d&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(d)}_initObservables(){this.valueChanges=new o.vpe,this.statusChanges=new o.vpe}_calculateStatus(){return this._allControlsDisabled()?C1:this.errors?Z:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(G)?G:this._anyControlsHaveStatus(Z)?Z:C}_anyControlsHaveStatus(d){return this._anyControls(h=>h.status===d)}_anyControlsDirty(){return this._anyControls(d=>d.dirty)}_anyControlsTouched(){return this._anyControls(d=>d.touched)}_updatePristine(d={}){this.pristine=!this._anyControlsDirty(),this._parent&&!d.onlySelf&&this._parent._updatePristine(d)}_updateTouched(d={}){this.touched=this._anyControlsTouched(),this._parent&&!d.onlySelf&&this._parent._updateTouched(d)}_isBoxedValue(d){return"object"==typeof d&&null!==d&&2===Object.keys(d).length&&"value"in d&&"disabled"in d}_registerOnCollectionChange(d){this._onCollectionChange=d}_setUpdateStrategy(d){re(d)&&null!=d.updateOn&&(this._updateOn=d.updateOn)}_parentMarkedDirty(d){return!d&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class Q1 extends $1{constructor(d=null,h,T){super(o1(h),J1(T,h)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(d),this._setUpdateStrategy(h),this._initOb
1servables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),re(h)&&h.initialValueIsDefault&&(this.defaultValue=this._isBoxedValue(d)?d.value:d)}setValue(d,h={}){this.value=this._pendingValue=d,this._onChange.length&&!1!==h.emitModelToViewChange&&this._onChange.forEach(T=>T(this.value,!1!==h.emitViewToModelChange)),this.updateValueAndValidity(h)}patchValue(d,h={}){this.setValue(d,h)}reset(d=this.defaultValue,h={}){this._applyFormState(d),this.markAsPristine(h),this.markAsUntouched(h),this.setValue(this.value,h),this._pendingChange=!1}_updateValue(){}_anyControls(d){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(d){this._onChange.push(d)}_unregisterOnChange(d){M(this._onChange,d)}registerOnDisabledChange(d){this._onDisabledChange.push(d)}_unregisterOnDisabledChange(d){M(this._onDisabledChange,d)}_forEachChild(d){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(d){this._isBoxedValue(d)?(this.value=this._pendingValue=d.value,d.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=d}}class Ne extends $1{constructor(d,h,T){super(o1(h),J1(T,h)),this.controls=d,this._initObservables(),this._setUpdateStrategy(h),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(d,h){return this.controls[d]?this.controls[d]:(this.controls[d]=h,h.setParent(this),h._registerOnCollectionChange(this._onCollectionChange),h)}addControl(d,h,T={}){this.registerControl(d,h),this.updateValueAndValidity({emitEvent:T.emitEvent}),this._onCollectionChange()}removeControl(d,h={}){this.controls[d]&&this.controls[d]._registerOnCollectionChange(()=>{}),delete this.controls[d],this.updateValueAndValidity({emitEvent:h.emitEvent}),this._onCollectionChange()}setControl(d,h,T={}){this.controls[d]&&this.controls[d]._registerOnCollectionChange(()=>{}),delete this.controls[d],h&&this.registerControl(d,h),this.updateValueAndValidity({emitEvent:T.emitEvent}),this._onCollectionChange()}contains(d){return this.controls.hasOwnProperty(d)&&this.controls[d].enabled}setValue(d,h={}){E1(this,d),Object.keys(d).forEach(T=>{m1(this,T),this.controls[T].setValue(d[T],{onlySelf:!0,emitEvent:h.emitEvent})}),this.updateValueAndValidity(h)}patchValue(d,h={}){null!=d&&(Object.keys(d).forEach(T=>{this.controls[T]&&this.controls[T].patchValue(d[T],{onlySelf:!0,emitEvent:h.emitEvent})}),this.updateValueAndValidity(h))}reset(d={},h={}){this._forEachChild((T,V1)=>{T.reset(d[V1],{onlySelf:!0,emitEvent:h.emitEvent})}),this._updatePristine(h),this._updateTouched(h),this.updateValueAndValidity(h)}getRawValue(){return this._reduceChildren({},(d,h,T)=>(d[T]=K(h),d))}_syncPendingControls(){let d=this._reduceChildren(!1,(h,T)=>!!T._syncPendingControls()||h);return d&&this.updateValueAndValidity({onlySelf:!0}),d}_forEachChild(d){Object.keys(this.controls).forEach(h=>{const T=this.controls[h];T&&d(T,h)})}_setUpControls(){this._forEachChild(d=>{d.setParent(this),d._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(d){for(const h of Object.keys(this.controls)){const T=this.controls[h];if(this.contains(h)&&d(T))return!0}return!1}_reduceValue(){return this._reduceChildren({},(d,h,T)=>((h.enabled||this.disabled)&&(d[T]=h.value),d))}_reduceChildren(d,h){let T=d;return this._forEachChild((V1,ve)=>{T=h(T,V1,ve)}),T}_allControlsDisabled(){for(const d of Object.keys(this.controls))if(this.controls[d].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}}class Le extends $1{constructor(d,h,T){super(o1(h),J1(T,h)),this.controls=d,this._initObservables(),this._setUpdateStrategy(h),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(d){return this.controls[d]}push(d,h={}
1){this.controls.push(d),this._registerControl(d),this.updateValueAndValidity({emitEvent:h.emitEvent}),this._onCollectionChange()}insert(d,h,T={}){this.controls.splice(d,0,h),this._registerControl(h),this.updateValueAndValidity({emitEvent:T.emitEvent})}removeAt(d,h={}){this.controls[d]&&this.controls[d]._registerOnCollectionChange(()=>{}),this.controls.splice(d,1),this.updateValueAndValidity({emitEvent:h.emitEvent})}setControl(d,h,T={}){this.controls[d]&&this.controls[d]._registerOnCollectionChange(()=>{}),this.controls.splice(d,1),h&&(this.controls.splice(d,0,h),this._registerControl(h)),this.updateValueAndValidity({emitEvent:T.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(d,h={}){E1(this,d),d.forEach((T,V1)=>{m1(this,V1),this.at(V1).setValue(T,{onlySelf:!0,emitEvent:h.emitEvent})}),this.updateValueAndValidity(h)}patchValue(d,h={}){null!=d&&(d.forEach((T,V1)=>{this.at(V1)&&this.at(V1).patchValue(T,{onlySelf:!0,emitEvent:h.emitEvent})}),this.updateValueAndValidity(h))}reset(d=[],h={}){this._forEachChild((T,V1)=>{T.reset(d[V1],{onlySelf:!0,emitEvent:h.emitEvent})}),this._updatePristine(h),this._updateTouched(h),this.updateValueAndValidity(h)}getRawValue(){return this.controls.map(d=>K(d))}clear(d={}){this.controls.length<1||(this._forEachChild(h=>h._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:d.emitEvent}))}_syncPendingControls(){let d=this.controls.reduce((h,T)=>!!T._syncPendingControls()||h,!1);return d&&this.updateValueAndValidity({onlySelf:!0}),d}_forEachChild(d){this.controls.forEach((h,T)=>{d(h,T)})}_updateValue(){this.value=this.controls.filter(d=>d.enabled||this.disabled).map(d=>d.value)}_anyControls(d){return this.controls.some(h=>h.enabled&&d(h))}_setUpControls(){this._forEachChild(d=>this._registerControl(d))}_allControlsDisabled(){for(const d of this.controls)if(d.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(d){d.setParent(this),d._registerOnCollectionChange(this._onCollectionChange)}}let Ge=(()=>{class p extends me{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return W2(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,features:[o.qOj]}),p})();const u2={provide:B1,useExisting:(0,o.Gpc)(()=>L2)},Xe=(()=>Promise.resolve(null))();let L2=(()=>{class p extends B1{constructor(h,T,V1,ve,a2){super(),this._changeDetectorRef=a2,this.control=new Q1,this._registered=!1,this.update=new o.vpe,this._parent=h,this._setValidators(T),this._setAsyncValidators(V1),this.valueAccessor=ee(0,ve)}ngOnChanges(h){if(this._checkForErrors(),!this._registered||"name"in h){if(this._registered&&(this._checkName(),this.formDirective)){const T=h.name.previousValue;this.formDirective.removeControl({name:T,path:this._getPath(T)})}this._setUpControl()}"isDisabled"in h&&this._updateDisabled(h),b1(h,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(h){this.viewModel=h,this.update.emit(h)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){je(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(h){Xe.then(()=>{var T;this.control.setValue(h,{emitViewToModelChange:!1}),null===(T=this._changeDetectorRef)||void 0===T||T.markForCheck()})}_updateDisabled(h){const T=h.isDisabled.currentValue,V1=""===T||T&&"false"!==T;Xe.then(()=>{var ve;V1&&!this.control.disabled?this.control.disable():!V1&&this.control.disabled&&this.control.enable(),null===(ve=this._changeDetectorRef)||void 0===ve||ve.markForCheck()})}_getPath(h){return this._parent?W2(h,this._parent):[h]}}
1return p.\u0275fac=function(h){return new(h||p)(o.Y36(me,9),o.Y36(u1,10),o.Y36(de,10),o.Y36(F,10),o.Y36(o.sBO,8))},p.\u0275dir=o.lG2({type:p,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[o._Bn([u2]),o.qOj,o.TTD]}),p})(),N2=(()=>{class p{}return p.\u0275fac=function(h){return new(h||p)},p.\u0275dir=o.lG2({type:p,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),p})();const c2={provide:F,useExisting:(0,o.Gpc)(()=>vt),multi:!0};let ct=(()=>{class p{}return p.\u0275fac=function(h){return new(h||p)},p.\u0275mod=o.oAB({type:p}),p.\u0275inj=o.cJS({}),p})(),tt=(()=>{class p{constructor(){this._accessors=[]}add(h,T){this._accessors.push([h,T])}remove(h){for(let T=this._accessors.length-1;T>=0;--T)if(this._accessors[T][1]===h)return void this._accessors.splice(T,1)}select(h){this._accessors.forEach(T=>{this._isSameGroup(T,h)&&T[1]!==h&&T[1].fireUncheck(h.value)})}_isSameGroup(h,T){return!!h[0].control&&h[0]._parent===T._control._parent&&h[1].name===T.name}}return p.\u0275fac=function(h){return new(h||p)},p.\u0275prov=o.Yz7({token:p,factory:p.\u0275fac,providedIn:ct}),p})(),vt=(()=>{class p extends N{constructor(h,T,V1,ve){super(h,T),this._registry=V1,this._injector=ve,this.onChange=()=>{}}ngOnInit(){this._control=this._injector.get(B1),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(h){this._state=h===this.value,this.setProperty("checked",this._state)}registerOnChange(h){this._fn=h,this.onChange=()=>{h(this.value),this._registry.select(this)}}fireUncheck(h){this.writeValue(h)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(o.Qsj),o.Y36(o.SBq),o.Y36(tt),o.Y36(o.zs3))},p.\u0275dir=o.lG2({type:p,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(h,T){1&h&&o.NdJ("change",function(){return T.onChange()})("blur",function(){return T.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[o._Bn([c2]),o.qOj]}),p})();const ot=new o.OlP("NgModelWithFormControlWarning"),pn={provide:me,useExisting:(0,o.Gpc)(()=>nt)};let nt=(()=>{class p extends me{constructor(h,T){super(),this.validators=h,this.asyncValidators=T,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new o.vpe,this._setValidators(h),this._setAsyncValidators(T)}ngOnChanges(h){this._checkFormPresent(),h.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(c1(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(h){const T=this.form.get(h.path);return je(T,h),T.updateValueAndValidity({emitEvent:!1}),this.directives.push(h),T}getControl(h){return this.form.get(h.path)}
1removeControl(h){Pe(h.control||null,h,!1),M(this.directives,h)}addFormGroup(h){this._setUpFormContainer(h)}removeFormGroup(h){this._cleanUpFormContainer(h)}getFormGroup(h){return this.form.get(h.path)}addFormArray(h){this._setUpFormContainer(h)}removeFormArray(h){this._cleanUpFormContainer(h)}getFormArray(h){return this.form.get(h.path)}updateModel(h,T){this.form.get(h.path).setValue(T)}onSubmit(h){return this.submitted=!0,function A1(p,d){p._syncPendingControls(),d.forEach(h=>{const T=h.control;"submit"===T.updateOn&&T._pendingChange&&(h.viewToModelUpdate(T._pendingValue),T._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(h),!1}onReset(){this.resetForm()}resetForm(h){this.form.reset(h),this.submitted=!1}_updateDomValue(){this.directives.forEach(h=>{const T=h.control,V1=this.form.get(h.path);T!==V1&&(Pe(T||null,h),He(V1)&&(je(V1,h),h.control=V1))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(h){const T=this.form.get(h.path);(function U2(p,d){j1(p,d)})(T,h),T.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(h){if(this.form){const T=this.form.get(h.path);T&&function I2(p,d){return c1(p,d)}(T,h)&&T.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){j1(this.form,this),this._oldForm&&c1(this._oldForm,this)}_checkFormPresent(){}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(u1,10),o.Y36(de,10))},p.\u0275dir=o.lG2({type:p,selectors:[["","formGroup",""]],hostBindings:function(h,T){1&h&&o.NdJ("submit",function(ve){return T.onSubmit(ve)})("reset",function(){return T.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[o._Bn([pn]),o.qOj,o.TTD]}),p})();const yt={provide:me,useExisting:(0,o.Gpc)(()=>Mt)};let Mt=(()=>{class p extends Ge{constructor(h,T,V1){super(),this._parent=h,this._setValidators(T),this._setAsyncValidators(V1)}_checkParentType(){It(this._parent)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(me,13),o.Y36(u1,10),o.Y36(de,10))},p.\u0275dir=o.lG2({type:p,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[o._Bn([yt]),o.qOj]}),p})();const zt={provide:me,useExisting:(0,o.Gpc)(()=>Ot)};let Ot=(()=>{class p extends me{constructor(h,T,V1){super(),this._parent=h,this._setValidators(T),this._setAsyncValidators(V1)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return W2(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){It(this._parent)}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(me,13),o.Y36(u1,10),o.Y36(de,10))},p.\u0275dir=o.lG2({type:p,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[o._Bn([zt]),o.qOj]}),p})();function It(p){return!(p instanceof Mt||p instanceof nt||p instanceof Ot)}const cn={provide:B1,useExisting:(0,o.Gpc)(()=>Gt)};let Gt=(()=>{class p extends B1{constructor(h,T,V1,ve,a2){super(),this._ngModelWarningConfig=a2,this._added=!1,this.update=new o.vpe,this._ngModelWarningSent=!1,this._parent=h,this._setValidators(T),this._setAsyncValidators(V1),this.valueAccessor=ee(0,ve)}set isDisabled(h){}ngOnChanges(h){this._added||this._setUpControl(),b1(h,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(h){this.viewModel=h,this.update.emit(h)}get path(){return W2(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return p._ngModelWarningSentOnce=!1,p.\u0275fac=function(h){return new(h||p)(o.Y36(me,13),o.Y36(u1,10),o.Y36(de,10),o.Y36(F,10),o.Y36(ot,8))},p.\u0275dir=o.lG2({type:p,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[o._Bn([cn]),o.qOj,o.TTD]}),p})();const mn={provide:F,useExisting:(0,o.Gpc)(()=>R2),multi:!0};function Xt(p,d){return null==p?`${d}`:(d&&"object"==typeof d&&(d="Object"),`${p}: ${d}`.slice(0,50))}let R2=(()=>{class p extends N{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(h){this._compareWith=h}writeValue(h){this.value=h;const V1=Xt(this._getOptionId(h),h);this.setProperty("value",V1)}registerOnChange(h){this.onChange=T=>{this.value=this._getOptionValue(T),h(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(h){for(const T of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(T),h))return T;return null}_getOptionValue(h){const T=function Sn(p){return p.split(":")[0]}(h);return this._optionMap.has(T)?this._optionMap.get(T):h}}
1return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(h,T){1&h&&o.NdJ("change",function(ve){return T.onChange(ve.target.value)})("blur",function(){return T.onTouched()})},inputs:{compareWith:"compareWith"},features:[o._Bn([mn]),o.qOj]}),p})(),et=(()=>{class p{constructor(h,T,V1){this._element=h,this._renderer=T,this._select=V1,this._select&&(this.id=this._select._registerOption())}set ngValue(h){null!=this._select&&(this._select._optionMap.set(this.id,h),this._setElementValue(Xt(this.id,h)),this._select.writeValue(this._select.value))}set value(h){this._setElementValue(h),this._select&&this._select.writeValue(this._select.value)}_setElementValue(h){this._renderer.setProperty(this._element.nativeElement,"value",h)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(o.SBq),o.Y36(o.Qsj),o.Y36(R2,9))},p.\u0275dir=o.lG2({type:p,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),p})();const _t={provide:F,useExisting:(0,o.Gpc)(()=>vn),multi:!0};function Ht(p,d){return null==p?`${d}`:("string"==typeof d&&(d=`'${d}'`),d&&"object"==typeof d&&(d="Object"),`${p}: ${d}`.slice(0,50))}let vn=(()=>{class p extends N{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(h){this._compareWith=h}writeValue(h){let T;if(this.value=h,Array.isArray(h)){const V1=h.map(ve=>this._getOptionId(ve));T=(ve,a2)=>{ve._setSelected(V1.indexOf(a2.toString())>-1)}}else T=(V1,ve)=>{V1._setSelected(!1)};this._optionMap.forEach(T)}registerOnChange(h){this.onChange=T=>{const V1=[],ve=T.selectedOptions;if(void 0!==ve){const a2=ve;for(let Be=0;Be<a2.length;Be++){const Ut=this._getOptionValue(a2[Be].value);V1.push(Ut)}}else{const a2=T.options;for(let Be=0;Be<a2.length;Be++){const F2=a2[Be];if(F2.selected){const Ut=this._getOptionValue(F2.value);V1.push(Ut)}}}this.value=V1,h(V1)}}_registerOption(h){const T=(this._idCounter++).toString();return this._optionMap.set(T,h),T}_getOptionId(h){for(const T of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(T)._value,h))return T;return null}_getOptionValue(h){const T=function xt(p){return p.split(":")[0]}(h);return this._optionMap.has(T)?this._optionMap.get(T)._value:h}}return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(h,T){1&h&&o.NdJ("change",function(ve){return T.onChange(ve.target)})("blur",function(){return T.onTouched()})},inputs:{compareWith:"compareWith"},features:[o._Bn([_t]),o.qOj]}),p})(),Rt=(()=>{class p{constructor(h,T,V1){this._element=h,this._renderer=T,this._select=V1,this._select&&(this.id=this._select._registerOption(this))}set ngValue(h){null!=this._select&&(this._value=h,this._setElementValue(Ht(this.id,h)),this._select.writeValue(this._select.value))}set value(h){this._select?(this._value=h,this._setElementValue(Ht(this.id,h)),this._select.writeValue(this._select.value)):this._setElementValue(h)}_setElementValue(h){this._renderer.setProperty(this._element.nativeElement,"value",h)}_setSelected(h){this._renderer.setProperty(this._element.nativeElement,"selected",h)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return p.\u0275fac=function(h){return new(h||p)(o.Y36(o.SBq),o.Y36(o.Qsj),o.Y36(vn,9))},p.\u0275dir=o.lG2({type:p,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),p})(),St=(()=>{class p{constructor(){this._validator=te}ngOnChanges(h){if(this.inputName in h){const T=this.normalizeInput(h[this.inputName].currentValue);
1this._enabled=this.enabled(T),this._validator=this._enabled?this.createValidator(T):te,this._onChange&&this._onChange()}}validate(h){return this._validator(h)}registerOnValidatorChange(h){this._onChange=h}enabled(h){return null!=h}}return p.\u0275fac=function(h){return new(h||p)},p.\u0275dir=o.lG2({type:p,features:[o.TTD]}),p})();const at={provide:u1,useExisting:(0,o.Gpc)(()=>Ft),multi:!0};let Ft=(()=>{class p extends St{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=h=>function Wt(p){return null!=p&&!1!==p&&"false"!=`${p}`}(h),this.createValidator=h=>Se}enabled(h){return h}}return p.\u0275fac=function(){let d;return function(T){return(d||(d=o.n5z(p)))(T||p)}}(),p.\u0275dir=o.lG2({type:p,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(h,T){2&h&&o.uIk("required",T._enabled?"":null)},inputs:{required:"required"},features:[o._Bn([at]),o.qOj]}),p})(),Rn=(()=>{class p{}return p.\u0275fac=function(h){return new(h||p)},p.\u0275mod=o.oAB({type:p}),p.\u0275inj=o.cJS({imports:[[ct]]}),p})(),Dt=(()=>{class p{}return p.\u0275fac=function(h){return new(h||p)},p.\u0275mod=o.oAB({type:p}),p.\u0275inj=o.cJS({imports:[Rn]}),p})(),S=(()=>{class p{static withConfig(h){return{ngModule:p,providers:[{provide:ot,useValue:h.warnOnNgModelWithFormControl}]}}}return p.\u0275fac=function(h){return new(h||p)},p.\u0275mod=o.oAB({type:p}),p.\u0275inj=o.cJS({imports:[Rn]}),p})(),_=(()=>{class p{group(h,T=null){const V1=this._reduceControls(h);let Be,ve=null,a2=null;return null!=T&&(function a1(p){return void 0!==p.asyncValidators||void 0!==p.validators||void 0!==p.updateOn}(T)?(ve=null!=T.validators?T.validators:null,a2=null!=T.asyncValidators?T.asyncValidators:null,Be=null!=T.updateOn?T.updateOn:void 0):(ve=null!=T.validator?T.validator:null,a2=null!=T.asyncValidator?T.asyncValidator:null)),new Ne(V1,{asyncValidators:a2,updateOn:Be,validators:ve})}control(h,T,V1){return new Q1(h,T,V1)}array(h,T,V1){const ve=h.map(a2=>this._createControl(a2));return new Le(ve,T,V1)}_reduceControls(h){const T={};return Object.keys(h).forEach(V1=>{T[V1]=this._createControl(h[V1])}),T}_createControl(h){return He(h)||B(h)||V(h)?h:Array.isArray(h)?this.control(h[0],h.length>1?h[1]:null,h.length>2?h[2]:null):this.control(h)}}return p.\u0275fac=function(h){return new(h||p)},p.\u0275prov=o.Yz7({token:p,factory:p.\u0275fac,providedIn:S}),p})()},2313:(xe,S1,m)=>{"use strict";m.d(S1,{Dx:()=>V2,H7:()=>I2,b2:()=>h2,h_:()=>P2,q6:()=>me});var o=m(9808),a=m(6435);class I extends o.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class r1 extends I{static makeCurrent(){(0,o.HT)(new r1)}onAndCancel(b1,q,A1){return b1.addEventListener(q,A1,!1),()=>{b1.removeEventListener(q,A1,!1)}}dispatchEvent(b1,q){b1.dispatchEvent(q)}remove(b1){b1.parentNode&&b1.parentNode.removeChild(b1)}createElement(b1,q){return(q=q||this.getDefaultDocument()).createElement(b1)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(b1){return b1.nodeType===Node.ELEMENT_NODE}isShadowRoot(b1){return b1 instanceof DocumentFragment}getGlobalEventTarget(b1,q){return"window"===q?window:"document"===q?b1:"body"===q?b1.body:null}getBaseHref(b1){const q=function U(){return X=X||document.querySelector("base"),X?X.getAttribute("href"):null}();return null==q?null:function F(k1){N=N||document.createElement("a"),N.setAttribute("href",k1);const b1=N.pathname;return"/"===b1.charAt(0)?b1:`/${b1}`}(q)}resetBaseElement(){X=null}getUserAgent(){return window.navigator.userAgent}getCookie(b1){return(0,o.Mx)(document.cookie,b1)}}let N,X=null;const j=new a.OlP("TRANSITION_ID"),J=[{provide:a.ip1,useFactory:function W(k1,b1,q){return()=>{q.get(a.CZH).donePromise.then(()=>{const A1=(0,o.q)(),ee=b1.querySelectorAll(`style[ng-transition="${k1}"]`);for(let M=0;M<ee.length;M++)A1.remove(ee[M])})}},deps:[j,o.K0,a.zs3],multi:!0}];class l1{static init(){(0,a.VLi)(new l1)}addToWindow(b1){a.dqk.getAngularTestability=(A1,ee=!0)=>{const M=b1.findTestabilityInTree(A1,ee);if(null==M)throw new Error("Could not find testability for element.");return M},a.dqk.getAllAngularTestabilities=()=>b1.getAllTestabilities(),a.dqk.getAllAngularRootElements=()=>b1.getAllRootElements(),a.dqk.frameworkStabilizers||(a.dqk.frameworkStabilizers=[]),a.dqk.frameworkStabilizers.push(A1=>{const ee=a.dqk.getAllAngularTestabilities();let M=ee.length,w=!1;const x=function(C){w=w||C,M--,0==M&&A1(w)};ee.forEach(function(C){C.whenStable(x)})})}findTestabilityInTree(b1,q,A1){if(null==q)return null;const ee=b1.getTestability(q);return null!=ee?ee:A1?(0,o.q)().isShadowRoot(q)?this.findTestabilityInTree(b1,q.host,!0):this.findTestabilityInTree(b1,q.parentElement,!0):null}}let s1=(()=>{class k1{build(){return new XMLHttpRequest}}return k1.\u0275fac=function(q){return new(q||k1)},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();const n1=new a.OlP("EventManagerPlugins");let y1=(()=>{class k1{constructor(q,A1){this._zone=A1,this._eventNameToPlugin=new Map,q.forEach(ee=>ee.manager=this),this._plugins=q.slice().reverse()}addEventListener(q,A1,ee){return this._findPluginFor(A1).addEventListener(q,A1,ee)}
1addGlobalEventListener(q,A1,ee){return this._findPluginFor(A1).addGlobalEventListener(q,A1,ee)}getZone(){return this._zone}_findPluginFor(q){const A1=this._eventNameToPlugin.get(q);if(A1)return A1;const ee=this._plugins;for(let M=0;M<ee.length;M++){const w=ee[M];if(w.supports(q))return this._eventNameToPlugin.set(q,w),w}throw new Error(`No event manager plugin found for event ${q}`)}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(n1),a.LFG(a.R0b))},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();class M1{constructor(b1){this._doc=b1}addGlobalEventListener(b1,q,A1){const ee=(0,o.q)().getGlobalEventTarget(this._doc,b1);if(!ee)throw new Error(`Unsupported event target ${ee} for event ${q}`);return this.addEventListener(ee,q,A1)}}let u1=(()=>{class k1{constructor(){this._stylesSet=new Set}addStyles(q){const A1=new Set;q.forEach(ee=>{this._stylesSet.has(ee)||(this._stylesSet.add(ee),A1.add(ee))}),this.onStylesAdded(A1)}onStylesAdded(q){}getAllStyles(){return Array.from(this._stylesSet)}}return k1.\u0275fac=function(q){return new(q||k1)},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})(),de=(()=>{class k1 extends u1{constructor(q){super(),this._doc=q,this._hostNodes=new Map,this._hostNodes.set(q.head,[])}_addStylesToHost(q,A1,ee){q.forEach(M=>{const w=this._doc.createElement("style");w.textContent=M,ee.push(A1.appendChild(w))})}addHost(q){const A1=[];this._addStylesToHost(this._stylesSet,q,A1),this._hostNodes.set(q,A1)}removeHost(q){const A1=this._hostNodes.get(q);A1&&A1.forEach(R1),this._hostNodes.delete(q)}onStylesAdded(q){this._hostNodes.forEach((A1,ee)=>{this._addStylesToHost(q,ee,A1)})}ngOnDestroy(){this._hostNodes.forEach(q=>q.forEach(R1))}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();function R1(k1){(0,o.q)().remove(k1)}const D1={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},K1=/%COMP%/g;function ke(k1,b1,q){for(let A1=0;A1<b1.length;A1++){let ee=b1[A1];Array.isArray(ee)?ke(k1,ee,q):(ee=ee.replace(K1,k1),q.push(ee))}return q}function te(k1){return b1=>{if("__ngUnwrap__"===b1)return k1;!1===k1(b1)&&(b1.preventDefault(),b1.returnValue=!1)}}let G1=(()=>{class k1{constructor(q,A1,ee){this.eventManager=q,this.sharedStylesHost=A1,this.appId=ee,this.rendererByCompId=new Map,this.defaultRenderer=new ne(q)}createRenderer(q,A1){if(!q||!A1)return this.defaultRenderer;switch(A1.encapsulation){case a.ifc.Emulated:{let ee=this.rendererByCompId.get(A1.id);return ee||(ee=new Je(this.eventManager,this.sharedStylesHost,A1,this.appId),this.rendererByCompId.set(A1.id,ee)),ee.applyToHost(q),ee}case 1:case a.ifc.ShadowDom:return new H1(this.eventManager,this.sharedStylesHost,q,A1);default:if(!this.rendererByCompId.has(A1.id)){const ee=ke(A1.id,A1.styles,[]);this.sharedStylesHost.addStyles(ee),this.rendererByCompId.set(A1.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(y1),a.LFG(de),a.LFG(a.AFp))},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();class ne{constructor(b1){this.eventManager=b1,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(b1,q){return q?document.createElementNS(D1[q]||q,b1):document.createElement(b1)}createComment(b1){return document.createComment(b1)}createText(b1){return document.createTextNode(b1)}appendChild(b1,q){b1.appendChild(q)}insertBefore(b1,q,A1){b1&&b1.insertBefore(q,A1)}removeChild(b1,q){b1&&b1.removeChild(q)}selectRootElement(b1,q){let A1="string"==typeof b1?document.querySelector(b1):b1;if(!A1)throw new Error(`The selector "${b1}" did not match any elements`);return q||(A1.textContent=""),A1}parentNode(b1){return b1.parentNode}nextSibling(b1){return b1.nextSibling}setAttribute(b1,q,A1,ee){if(ee){q=ee+":"+q;const M=D1[ee];M?b1.setAttributeNS(M,q,A1):b1.setAttribute(q,A1)}else b1.setAttribute(q,A1)}removeAttribute(b1,q,A1){if(A1){const ee=D1[A1];ee?b1.removeAttributeNS(ee,q):b1.removeAttribute(`${A1}:${q}`)}else b1.removeAttribute(q)}addClass(b1,q){b1.classList.add(q)}removeClass(b1,q){b1.classList.remove(q)}setStyle(b1,q,A1,ee){ee&(a.JOm.DashCase|a.JOm.Important)?b1.style.setProperty(q,A1,ee&a.JOm.Important?"important":""):b1.style[q]=A1}removeStyle(b1,q,A1){A1&a.JOm.DashCase?b1.style.removeProperty(q):b1.style[q]=""}setProperty(b1,q,A1){b1[q]=A1}setValue(b1,q){b1.nodeValue=q}listen(b1,q,A1){return"string"==typeof b1?this.eventManager.addGlobalEventListener(b1,q,te(A1)):this.eventManager.addEventListener(b1,q,te(A1))}}class Je extends ne{constructor(b1,q,A1,ee){super(b1),this.component=A1;const M=ke(ee+"-"+A1.id,A1.styles,[]);q.addStyles(M),this.contentAttr=function Ee(k1){return"_ngcontent-%COMP%".replace(K1,k1)}(ee+"-"+A1.id),this.hostAttr=function Ae(k1){return"_nghost-%COMP%".replace(K1,k1)}(ee+"-"+A1.id)}
1applyToHost(b1){super.setAttribute(b1,this.hostAttr,"")}createElement(b1,q){const A1=super.createElement(b1,q);return super.setAttribute(A1,this.contentAttr,""),A1}}class H1 extends ne{constructor(b1,q,A1,ee){super(b1),this.sharedStylesHost=q,this.hostEl=A1,this.shadowRoot=A1.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const M=ke(ee.id,ee.styles,[]);for(let w=0;w<M.length;w++){const x=document.createElement("style");x.textContent=M[w],this.shadowRoot.appendChild(x)}}nodeOrShadowRoot(b1){return b1===this.hostEl?this.shadowRoot:b1}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(b1,q){return super.appendChild(this.nodeOrShadowRoot(b1),q)}insertBefore(b1,q,A1){return super.insertBefore(this.nodeOrShadowRoot(b1),q,A1)}removeChild(b1,q){return super.removeChild(this.nodeOrShadowRoot(b1),q)}parentNode(b1){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(b1)))}}let O1=(()=>{class k1 extends M1{constructor(q){super(q)}supports(q){return!0}addEventListener(q,A1,ee){return q.addEventListener(A1,ee,!1),()=>this.removeEventListener(q,A1,ee)}removeEventListener(q,A1,ee){return q.removeEventListener(A1,ee)}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();const Z1=["alt","control","meta","shift"],I1={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},O={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},h1={alt:k1=>k1.altKey,control:k1=>k1.ctrlKey,meta:k1=>k1.metaKey,shift:k1=>k1.shiftKey};let q1=(()=>{class k1 extends M1{constructor(q){super(q)}supports(q){return null!=k1.parseEventName(q)}addEventListener(q,A1,ee){const M=k1.parseEventName(A1),w=k1.eventCallback(M.fullKey,ee,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,o.q)().onAndCancel(q,M.domEventName,w))}static parseEventName(q){const A1=q.toLowerCase().split("."),ee=A1.shift();if(0===A1.length||"keydown"!==ee&&"keyup"!==ee)return null;const M=k1._normalizeKey(A1.pop());let w="";if(Z1.forEach(C=>{const Z=A1.indexOf(C);Z>-1&&(A1.splice(Z,1),w+=C+".")}),w+=M,0!=A1.length||0===M.length)return null;const x={};return x.domEventName=ee,x.fullKey=w,x}static getEventFullKey(q){let A1="",ee=function _1(k1){let b1=k1.key;if(null==b1){if(b1=k1.keyIdentifier,null==b1)return"Unidentified";b1.startsWith("U+")&&(b1=String.fromCharCode(parseInt(b1.substring(2),16)),3===k1.location&&O.hasOwnProperty(b1)&&(b1=O[b1]))}return I1[b1]||b1}(q);return ee=ee.toLowerCase()," "===ee?ee="space":"."===ee&&(ee="dot"),Z1.forEach(M=>{M!=ee&&h1[M](q)&&(A1+=M+".")}),A1+=ee,A1}static eventCallback(q,A1,ee){return M=>{k1.getEventFullKey(M)===q&&ee.runGuarded(()=>A1(M))}}static _normalizeKey(q){return"esc"===q?"escape":q}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:k1.\u0275fac}),k1})();const me=(0,a.eFA)(a._c5,"browser",[{provide:a.Lbi,useValue:o.bD},{provide:a.g9A,useValue:function T1(){r1.makeCurrent(),l1.init()},multi:!0},{provide:o.K0,useFactory:function P1(){return(0,a.RDi)(document),document},deps:[]}]),Oe=[{provide:a.zSh,useValue:"root"},{provide:a.qLn,useFactory:function p1(){return new a.qLn},deps:[]},{provide:n1,useClass:O1,multi:!0,deps:[o.K0,a.R0b,a.Lbi]},{provide:n1,useClass:q1,multi:!0,deps:[o.K0]},{provide:G1,useClass:G1,deps:[y1,de,a.AFp]},{provide:a.FYo,useExisting:G1},{provide:u1,useExisting:de},{provide:de,useClass:de,deps:[o.K0]},{provide:a.dDg,useClass:a.dDg,deps:[a.R0b]},{provide:y1,useClass:y1,deps:[n1,a.R0b]},{provide:o.JF,useClass:s1,deps:[]}];let h2=(()=>{class k1{constructor(q){if(q)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(q){return{ngModule:k1,providers:[{provide:a.AFp,useValue:q.appId},{provide:j,useExisting:a.AFp},J]}}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(k1,12))},k1.\u0275mod=a.oAB({type:k1}),k1.\u0275inj=a.cJS({providers:Oe,imports:[o.ez,a.hGG]}),k1})(),P2=(()=>{class k1{constructor(q){this._doc=q,this._dom=(0,o.q)()}addTag(q,A1=!1){return q?this._getOrCreateElement(q,A1):null}addTags(q,A1=!1){return q?q.reduce((ee,M)=>(M&&ee.push(this._getOrCreateElement(M,A1)),ee),[]):[]}getTag(q){return q&&this._doc.querySelector(`meta[${q}]`)||null}getTags(q){if(!q)return[];const A1=this._doc.querySelectorAll(`meta[${q}]`);return A1?[].slice.call(A1):[]}updateTag(q,A1){if(!q)return null;A1=A1||this._parseSelector(q);const ee=this.getTag(A1);return ee?this._setMetaElementAttributes(q,ee):this._getOrCreateElement(q,!0)}removeTag(q){this.removeTagElement(this.getTag(q))}removeTagElement(q){q&&this._dom.remove(q)}_getOrCreateElement(q,A1=!1){if(!A1){const w=this._parseSelector(q),x=this.getTags(w).filter(C=>this._containsAttributes(q,C))[0];if(void 0!==x)return x}const ee=this._dom.createElement("meta");return this._setMetaElementAttributes(q,ee),this._doc.getElementsByTagName("head")[0].appendChild(ee),ee}_setMetaElementAttributes(q,A1){return Object.keys(q).forEach(ee=>A1.setAttribute(this._getMetaKeyMap(ee),q[ee])),A1}_parseSelector(q){const A1=q.name?"name":"property";return`${A1}="${q[A1]}"`}_containsAttributes(q,A1){return Object.keys(q).every(ee=>A1.getAttribute(this._getMetaKeyMap(ee))===q[ee])}_getMetaKeyMap(q){return K2[q]||q}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:function(q){let A1=null;return A1=q?new q:function y2(){return new P2((0,a.LFG)(o.K0))}(),A1},providedIn:"root"}),k1})();const K2={httpEquiv:"http-equiv"};let V2=(()=>{class k1{constructor(q){this._doc=q}getTitle(){return this._doc.title}setTitle(q){this._doc.title=q||""}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:function(q){let A1=null;return A1=q?new q:function A2(){return new V2((0,a.LFG)(o.K0))}(),A1},providedIn:"root"}),k1})();"undefined"!=typeof window&&window;let I2=(()=>{class k1{}return k1.\u0275fac=function(q){return new(q||k1)},k1.\u0275prov=a.Yz7({token:k1,factory:function(q){let A1=null;return A1=q?new(q||k1):a.LFG(J2),A1},providedIn:"root"}),k1})(),J2=(()=>{class k1 extends I2{constructor(q){super(),this._doc=q}sanitize(q,A1){if(null==A1)return null;switch(q){case a.q3G.NONE:return A1;case a.q3G.HTML:return(0,a.qzn)(A1,"HTML")?(0,a.z3N)(A1):(0,a.EiD)(this._doc,String(A1)).toString();case a.q3G.STYLE:return(0,a.qzn)(A1,"Style")?(0,a.z3N)(A1):A1;case a.q3G.SCRIPT:if((0,a.qzn)(A1,"Script"))return(0,a.z3N)(A1);throw new Error("unsafe value used in a script context");case a.q3G.URL:return(0,a.yhl)(A1),(0,a.qzn)(A1,"URL")?(0,a.z3N)(A1):(0,a.mCW)(String(A1));case a.q3G.RESOURCE_URL:if((0,a.qzn)(A1,"ResourceURL"))return(0,a.z3N)(A1);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${q} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(q){return(0,a.JVY)(q)}bypassSecurityTrustStyle(q){return(0,a.L6k)(q)}bypassSecurityTrustScript(q){return(0,a.eBb)(q)}bypassSecurityTrustUrl(q){return(0,a.LAX)(q)}bypassSecurityTrustResourceUrl(q){return(0,a.pB0)(q)}}return k1.\u0275fac=function(q){return new(q||k1)(a.LFG(o.K0))},k1.\u0275prov=a.Yz7({token:k1,factory:function(q){let A1=null;return A1=q?new q:function dt(k1){return new J2(k1.get(o.K0))}(a.LFG(a.zs3)),A1},providedIn:"root"}),k1})()},6741:(xe,S1,m)=>{"use strict";m.d(S1,{gz:()=>n2,gk:()=>p1,m2:()=>T1,Q3:()=>P1,OD:()=>_1,wm:()=>H,F0:()=>Vt,rH:()=>p4,yS:()=>x4,Bz:()=>ut,lC:()=>yn});var o=m(6435),a=m(5254),I=m(1086),r1=m(591),X=m(3426),U=m(1737),N=m(4450),F=m(1221),j=m(8514),W=m(2916),J=m(8896),l1=m(1762),s1=m(8929),n1=m(4850),y1=m(7545),M1=m(2986),u1=m(1059),de=m(3489);function R1(g,u){let l=!1;return arguments.length>=2&&(l=!0),function(D){return D.lift(new D1(g,u,l))}}class D1{constructor(u,l,z=!1){this.accumulator=u,this.seed=l,this.hasSeed=z}call(u,l){return l.subscribe(new K1(u,this.accumulator,this.seed,this.hasSeed))}}class K1 extends de.L{constructor(u,l,z,D){super(u),this.accumulator=l,this._seed=z,this.hasSeed=D,this.index=0}get seed(){return this._seed}set seed(u){this.hasSeed=!0,this._seed=u}_next(u){if(this.hasSeed)return this._tryNext(u);this.seed=u,this.destination.next(u)}_tryNext(u){const l=this.index++;let z;try{z=this.accumulator(this.seed,u,l)}catch(D){this.destination.error(D)}this.seed=z,this.destination.next(z)}}
1var X1=m(2198),Se=m(7221),Me=m(1406),ae=m(4231);function Ee(g){return function(l){return 0===g?(0,J.c)():l.lift(new Ae(g))}}class Ae{constructor(u){if(this.total=u,this.total<0)throw new ae.W}call(u,l){return l.subscribe(new ke(u,this.total))}}class ke extends de.L{constructor(u,l){super(u),this.total=l,this.ring=new Array,this.count=0}_next(u){const l=this.ring,z=this.total,D=this.count++;l.length<z?l.push(u):l[D%z]=u}_complete(){const u=this.destination;let l=this.count;if(l>0){const z=this.count>=this.total?this.total:this.count,D=this.ring;for(let R=0;R<z;R++){const i1=l++%z;u.next(D[i1])}}u.complete()}}var te=m(4907),ie=m(7314),G1=m(5379),Ke=m(7224),t2=m(1709),Je=m(2994),H1=m(4327),O1=m(2654);class d1{constructor(u){this.callback=u}call(u,l){return l.subscribe(new I1(u,this.callback))}}class I1 extends de.L{constructor(u,l){super(u),this.add(new O1.w(l))}}var O=m(9146),h1=m(9808);class q1{constructor(u,l){this.id=u,this.url=l}}class _1 extends q1{constructor(u,l,z="imperative",D=null){super(u,l),this.navigationTrigger=z,this.restoredState=D}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class T1 extends q1{constructor(u,l,z){super(u,l),this.urlAfterRedirects=z}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class p1 extends q1{constructor(u,l,z){super(u,l),this.reason=z}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class P1 extends q1{constructor(u,l,z){super(u,l),this.error=z}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class B1 extends q1{constructor(u,l,z,D){super(u,l),this.urlAfterRedirects=z,this.state=D}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class me extends q1{constructor(u,l,z,D){super(u,l),this.urlAfterRedirects=z,this.state=D}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Oe extends q1{constructor(u,l,z,D,R){super(u,l),this.urlAfterRedirects=z,this.state=D,this.shouldActivate=R}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class h2 extends q1{constructor(u,l,z,D){super(u,l),this.urlAfterRedirects=z,this.state=D}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class y2 extends q1{constructor(u,l,z,D){super(u,l),this.urlAfterRedirects=z,this.state=D}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class P2{constructor(u){this.route=u}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class K2{constructor(u){this.route=u}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class A2{constructor(u){this.snapshot=u}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class V2{constructor(u){this.snapshot=u}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mt{constructor(u){this.snapshot=u}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class We{constructor(u){this.snapshot=u}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class ue{constructor(u,l,z){this.routerEvent=u,this.position=l,this.anchor=z}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const Q="primary";class g1{constructor(u){this.params=u||{}}has(u){return Object.prototype.hasOwnProperty.call(this.params,u)}get(u){if(this.has(u)){const l=this.params[u];return Array.isArray(l)?l[0]:l}return null}getAll(u){if(this.has(u)){const l=this.params[u];return Array.isArray(l)?l:[l]}return[]}get keys(){return Object.keys(this.params)}}function se(g){return new g1(g)}const ce="ngNavigationCancelingError";function ye(g){const u=Error("NavigationCancelingError: "+g);return u[ce]=!0,u}function z2(g,u,l){const z=l.path.split("/");if(z.length>g.length||"full"===l.pathMatch&&(u.hasChildren()||z.length<g.length))return null;const D={};for(let R=0;R<z.length;R++){const i1=z[R],z1=g[R];if(i1.startsWith(":"))D[i1.substring(1)]=z1;else if(i1!==z1.path)return null}return{consumed:g.slice(0,z.length),posParams:D}}function Qe(g,u){const l=g?Object.keys(g):void 0,z=u?Object.keys(u):void 0;if(!l||!z||l.length!=z.length)return!1;let D;for(let R=0;R<l.length;R++)if(D=l[R],!O2(g[D],u[D]))return!1;return!0}function O2(g,u){if(Array.isArray(g)&&Array.isArray(u)){if(g.length!==u.length)return!1;const l=[...g].sort(),z=[...u].sort();return l.every((D,R)=>z[R]===D)}return g===u}function x2(g){return Array.prototype.concat.apply([],g)}function W2(g){return g.length>0?g[g.length-1]:null}function Pe(g,u){for(const l in g)g.hasOwnProperty(l)&&u(g[l],l)}
1function Ye(g){return(0,o.CqO)(g)?g:(0,o.QGY)(g)?(0,a.D)(Promise.resolve(g)):(0,I.of)(g)}const j1={exact:function Ze(g,u,l){if(!q(g.segments,u.segments)||!dt(g.segments,u.segments,l)||g.numberOfChildren!==u.numberOfChildren)return!1;for(const z in u.children)if(!g.children[z]||!Ze(g.children[z],u.children[z],l))return!1;return!0},subset:U2},c1={exact:function Re(g,u){return Qe(g,u)},subset:function E2(g,u){return Object.keys(u).length<=Object.keys(g).length&&Object.keys(u).every(l=>O2(g[l],u[l]))},ignored:()=>!0};function F1(g,u,l){return j1[l.paths](g.root,u.root,l.matrixParams)&&c1[l.queryParams](g.queryParams,u.queryParams)&&!("exact"===l.fragment&&g.fragment!==u.fragment)}function U2(g,u,l){return I2(g,u,u.segments,l)}function I2(g,u,l,z){if(g.segments.length>l.length){const D=g.segments.slice(0,l.length);return!(!q(D,l)||u.hasChildren()||!dt(D,l,z))}if(g.segments.length===l.length){if(!q(g.segments,l)||!dt(g.segments,l,z))return!1;for(const D in u.children)if(!g.children[D]||!U2(g.children[D],u.children[D],z))return!1;return!0}{const D=l.slice(0,g.segments.length),R=l.slice(g.segments.length);return!!(q(g.segments,D)&&dt(g.segments,D,z)&&g.children[Q])&&I2(g.children[Q],u,R,z)}}function dt(g,u,l){return u.every((z,D)=>c1[l](g[D].parameters,z.parameters))}class J2{constructor(u,l,z){this.root=u,this.queryParams=l,this.fragment=z}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=se(this.queryParams)),this._queryParamMap}toString(){return w.serialize(this)}}class l2{constructor(u,l){this.segments=u,this.children=l,this.parent=null,Pe(l,(z,D)=>z.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return x(this)}}class k1{constructor(u,l){this.path=u,this.parameters=l}get parameterMap(){return this._parameterMap||(this._parameterMap=se(this.parameters)),this._parameterMap}toString(){return J1(this)}}function q(g,u){return g.length===u.length&&g.every((l,z)=>l.path===u[z].path)}class ee{}class M{parse(u){const l=new $1(u);return new J2(l.parseRootSegment(),l.parseQueryParams(),l.parseFragment())}serialize(u){const l=`/${C(u.root,!0)}`,z=function re(g){const u=Object.keys(g).map(l=>{const z=g[l];return Array.isArray(z)?z.map(D=>`${G(l)}=${G(D)}`).join("&"):`${G(l)}=${G(z)}`}).filter(l=>!!l);return u.length?`?${u.join("&")}`:""}(u.queryParams);return`${l}${z}${"string"==typeof u.fragment?`#${function C1(g){return encodeURI(g)}(u.fragment)}`:""}`}}const w=new M;function x(g){return g.segments.map(u=>J1(u)).join("/")}function C(g,u){if(!g.hasChildren())return x(g);if(u){const l=g.children[Q]?C(g.children[Q],!1):"",z=[];return Pe(g.children,(D,R)=>{R!==Q&&z.push(`${R}:${C(D,!1)}`)}),z.length>0?`${l}(${z.join("//")})`:l}{const l=function A1(g,u){let l=[];return Pe(g.children,(z,D)=>{D===Q&&(l=l.concat(u(z,D)))}),Pe(g.children,(z,D)=>{D!==Q&&(l=l.concat(u(z,D)))}),l}(g,(z,D)=>D===Q?[C(g.children[Q],!1)]:[`${D}:${C(z,!1)}`]);return 1===Object.keys(g.children).length&&null!=g.children[Q]?`${x(g)}/${l[0]}`:`${x(g)}/(${l.join("//")})`}}function Z(g){return encodeURIComponent(g).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function G(g){return Z(g).replace(/%3B/gi,";")}function v1(g){return Z(g).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function o1(g){return decodeURIComponent(g)}function Y1(g){return o1(g.replace(/\+/g,"%20"))}function J1(g){return`${v1(g.path)}${function le(g){return Object.keys(g).map(u=>`;${v1(u)}=${v1(g[u])}`).join("")}(g.parameters)}`}const He=/^[^\/()?;=#]+/;function B(g){const u=g.match(He);return u?u[0]:""}const V=/^[^=?&#]+/,m1=/^[^&#]+/;class $1{constructor(u){this.url=u,this.remaining=u}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new l2([],{}):new l2([],this.parseChildren())}parseQueryParams(){const u={};if(this.consumeOptional("?"))do{this.parseQueryParam(u)}while(this.consumeOptional("&"));return u}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const u=[];for(this.peekStartsWith("(")||u.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),u.push(this.parseSegment());let l={};this.peekStartsWith("/(")&&(this.capture("/"),l=this.parseParens(!0));let z={};return this.peekStartsWith("(")&&(z=this.parseParens(!1)),(u.length>0||Object.keys(l).length>0)&&(z[Q]=new l2(u,l)),z}
1parseSegment(){const u=B(this.remaining);if(""===u&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(u),new k1(o1(u),this.parseMatrixParams())}parseMatrixParams(){const u={};for(;this.consumeOptional(";");)this.parseParam(u);return u}parseParam(u){const l=B(this.remaining);if(!l)return;this.capture(l);let z="";if(this.consumeOptional("=")){const D=B(this.remaining);D&&(z=D,this.capture(z))}u[o1(l)]=o1(z)}parseQueryParam(u){const l=function K(g){const u=g.match(V);return u?u[0]:""}(this.remaining);if(!l)return;this.capture(l);let z="";if(this.consumeOptional("=")){const i1=function E1(g){const u=g.match(m1);return u?u[0]:""}(this.remaining);i1&&(z=i1,this.capture(z))}const D=Y1(l),R=Y1(z);if(u.hasOwnProperty(D)){let i1=u[D];Array.isArray(i1)||(i1=[i1],u[D]=i1),i1.push(R)}else u[D]=R}parseParens(u){const l={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const z=B(this.remaining),D=this.remaining[z.length];if("/"!==D&&")"!==D&&";"!==D)throw new Error(`Cannot parse url '${this.url}'`);let R;z.indexOf(":")>-1?(R=z.substr(0,z.indexOf(":")),this.capture(R),this.capture(":")):u&&(R=Q);const i1=this.parseChildren();l[R]=1===Object.keys(i1).length?i1[Q]:new l2([],i1),this.consumeOptional("//")}return l}peekStartsWith(u){return this.remaining.startsWith(u)}consumeOptional(u){return!!this.peekStartsWith(u)&&(this.remaining=this.remaining.substring(u.length),!0)}capture(u){if(!this.consumeOptional(u))throw new Error(`Expected "${u}".`)}}class Q1{constructor(u){this._root=u}get root(){return this._root.value}parent(u){const l=this.pathFromRoot(u);return l.length>1?l[l.length-2]:null}children(u){const l=Ne(u,this._root);return l?l.children.map(z=>z.value):[]}firstChild(u){const l=Ne(u,this._root);return l&&l.children.length>0?l.children[0].value:null}siblings(u){const l=Le(u,this._root);return l.length<2?[]:l[l.length-2].children.map(D=>D.value).filter(D=>D!==u)}pathFromRoot(u){return Le(u,this._root).map(l=>l.value)}}function Ne(g,u){if(g===u.value)return u;for(const l of u.children){const z=Ne(g,l);if(z)return z}return null}function Le(g,u){if(g===u.value)return[u];for(const l of u.children){const z=Le(g,l);if(z.length)return z.unshift(u),z}return[]}class Te{constructor(u,l){this.value=u,this.children=l}toString(){return`TreeNode(${this.value})`}}function _e(g){const u={};return g&&g.children.forEach(l=>u[l.value.outlet]=l),u}class Ce extends Q1{constructor(u,l){super(u),this.snapshot=l,u2(this,u)}toString(){return this.snapshot.toString()}}function Ge(g,u){const l=function v2(g,u){const i1=new s2([],{},{},"",{},Q,u,null,g.root,-1,{});return new f2("",new Te(i1,[]))}(g,u),z=new r1.X([new k1("",{})]),D=new r1.X({}),R=new r1.X({}),i1=new r1.X({}),z1=new r1.X(""),oe=new n2(z,D,i1,z1,R,Q,u,l.root);return oe.snapshot=l.root,new Ce(new Te(oe,[]),l)}class n2{constructor(u,l,z,D,R,i1,z1,oe){this.url=u,this.params=l,this.queryParams=z,this.fragment=D,this.data=R,this.outlet=i1,this.component=z
11,this._futureSnapshot=oe}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,n1.U)(u=>se(u)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,n1.U)(u=>se(u)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Fe(g,u="emptyOnly"){const l=g.pathFromRoot;let z=0;if("always"!==u)for(z=l.length-1;z>=1;){const D=l[z],R=l[z-1];if(D.routeConfig&&""===D.routeConfig.path)z--;else{if(R.component)break;z--}}return function r2(g){return g.reduce((u,l)=>({params:Object.assign(Object.assign({},u.params),l.params),data:Object.assign(Object.assign({},u.data),l.data),resolve:Object.assign(Object.assign({},u.resolve),l._resolvedData)}),{params:{},data:{},resolve:{}})}(l.slice(z))}class s2{constructor(u,l,z,D,R,i1,z1,oe,Ue,D2,e2){this.url=u,this.params=l,this.queryParams=z,this.fragment=D,this.data=R,this.outlet=i1,this.component=z
11,this.routeConfig=oe,this._urlSegment=Ue,this._lastPathIndex=D2,this._resolve=e2}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=se(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=se(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(z=>z.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class f2 extends Q1{constructor(u,l){super(l),this.url=u,u2(this,l)}toString(){return Xe(this._root)}}function u2(g,u){u.value._routerState=g,u.children.forEach(l=>u2(g,l))}function Xe(g){const u=g.children.length>0?` { ${g.children.map(Xe).join(", ")} } `:"";return`${g.value}${u}`}function L2(g){if(g.snapshot){const u=g.snapshot,l=g._futureSnapshot;g.snapshot=l,Qe(u.queryParams,l.queryParams)||g.queryParams.next(l.queryParams),u.fragment!==l.fragment&&g.fragment.next(l.fragment),Qe(u.params,l.params)||g.params.next(l.params),function i2(g,u){if(g.length!==u.length)return!1;for(let l=0;l<g.length;++l)if(!Qe(g[l],u[l]))return!1;return!0}(u.url,l.url)||g.url.next(l.url),Qe(u.data,l.data)||g.data.next(l.data)}else g.snapshot=g._futureSnapshot,g.data.next(g._futureSnapshot.data)}function N2(g,u){const l=Qe(g.params,u.params)&&function b1(g,u){return q(g,u)&&g.every((l,z)=>Qe(l.parameters,u[z].parameters))}(g.url,u.url);return l&&!(!g.parent!=!u.parent)&&(!g.parent||N2(g.parent,u.parent))}function p2(g,u,l){if(l&&g.shouldReuseRoute(u.value,l.value.snapshot)){const z=l.value;z._futureSnapshot=u.value;const D=function c2(g,u,l){return u.children.map(z=>{for(const D of l.children)if(g.shouldReuseRoute(z.value,D.value.snapshot))return p2(g,z,D);return p2(g,z)})}(g,u,l);return new Te(z,D)}{if(g.shouldAttach(u.value)){const R=g.retrieve(u.value);if(null!==R){const i1=R.route;return i1.value._futureSnapshot=u.value,i1.children=u.children.map(z1=>p2(g,z1)),i1}}const z=function st(g){return new n2(new r1.X(g.url),new r1.X(g.params),new r1.X(g.queryParams),new r1.X(g.fragment),new r1.X(g.data),g.outlet,g.component,g)}(u.value),D=u.children.map(R=>p2(g,R));return new Te(z,D)}}function tt(g){return"object"==typeof g&&null!=g&&!g.outlets&&!g.segmentPath}function vt(g){return"object"==typeof g&&null!=g&&g.outlets}function gt(g,u,l,z,D){let R={};if(z&&Pe(z,(z1,oe)=>{R[oe]=Array.isArray(z1)?z1.map(Ue=>`${Ue}`):`${z1}`}),g===u)return new J2(l,R,D);const i1=jt(g,u,l);return new J2(i1,R,D)}function jt(g,u,l){const z={};return Pe(g.children,(D,R)=>{z[R]=D===u?l:jt(D,u,l)}),new l2(g.segments,z)}class ot{constructor(u,l,z){if(this.isAbsolute=u,this.numberOfDoubleDots=l,this.commands=z,u&&z.length>0&&tt(z[0]))throw new Error("Root segment cannot have matrix parameters");const D=z.find(vt);if(D&&D!==W2(z))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class X2{constructor(u,l,z){this.segmentGroup=u,this.processChildren=l,this.index=z}}function Mt(g,u,l){if(g||(g=new l2([],{})),0===g.segments.length&&g.hasChildren())return zt(g,u,l);const z=function Ot(g,u,l){let z=0,D=u;const R={match:!1,pathIndex:0,commandIndex:0};for(;D<g.segments.length;){if(z>=l.length)return R;const i1=g.segments[D],z1=l[z];if(vt(z1))break;const oe=`${z1}`,Ue=z<l.length-1?l[z+1]:null;if(D>0&&void 0===oe)break;if(oe&&Ue&&"object"==typeof Ue&&void 0===Ue.outlets){if(!mn(oe,Ue,i1))return R;z+=2}else{if(!mn(oe,{},i1))return R;z++}D++}return{match:!0,pathIndex:D,commandIndex:z}}(g,u,l),D=l.slice(z.commandIndex);if(z.match&&z.pathIndex<g.segments.length){const R=new l2(g.segments.slice(0,z.pathIndex),{});return R.children[Q]=new l2(g.segments.slice(z.pathIndex),g.children),zt(R,0,D)}return z.match&&0===D.length?new l2(g.segments,{}):z.match&&!g.hasChildren()?It(g,u,l):z.match?zt(g,0,D):It(g,u,l)}function zt(g,u,l){if(0===l.length)return new l2(g.segments,{});{const z=function yt(g){return vt(g[0])?g[0].outlets:{[Q]:g}}(l),D={};return Pe(z,(R,i1)=>
1{"string"==typeof R&&(R=[R]),null!==R&&(D[i1]=Mt(g.children[i1],u,R))}),Pe(g.children,(R,i1)=>{void 0===z[i1]&&(D[i1]=R)}),new l2(g.segments,D)}}function It(g,u,l){const z=g.segments.slice(0,u);let D=0;for(;D<l.length;){const R=l[D];if(vt(R)){const oe=cn(R.outlets);return new l2(z,oe)}if(0===D&&tt(l[0])){z.push(new k1(g.segments[u].path,Gt(l[0]))),D++;continue}const i1=vt(R)?R.outlets[Q]:`${R}`,z1=D<l.length-1?l[D+1]:null;i1&&z1&&tt(z1)?(z.push(new k1(i1,Gt(z1))),D+=2):(z.push(new k1(i1,{})),D++)}return new l2(z,{})}function cn(g){const u={};return Pe(g,(l,z)=>{"string"==typeof l&&(l=[l]),null!==l&&(u[z]=It(new l2([],{}),0,l))}),u}function Gt(g){const u={};return Pe(g,(l,z)=>u[z]=`${l}`),u}function mn(g,u,l){return g==l.path&&Qe(u,l.parameters)}class Sn{constructor(u,l,z,D){this.routeReuseStrategy=u,this.futureState=l,this.currState=z,this.forwardEvent=D}activate(u){const l=this.futureState._root,z=this.currState?this.currState._root:null;this.deactivateChildRoutes(l,z,u),L2(this.futureState.root),this.activateChildRoutes(l,z,u)}deactivateChildRoutes(u,l,z){const D=_e(l);u.children.forEach(R=>{const i1=R.value.outlet;this.deactivateRoutes(R,D[i1],z),delete D[i1]}),Pe(D,(R,i1)=>{this.deactivateRouteAndItsChildren(R,z)})}deactivateRoutes(u,l,z){const D=u.value,R=l?l.value:null;if(D===R)if(D.component){const i1=z.getContext(D.outlet);i1&&this.deactivateChildRoutes(u,l,i1.children)}else this.deactivateChildRoutes(u,l,z);else R&&this.deactivateRouteAndItsChildren(l,z)}deactivateRouteAndItsChildren(u,l){u.value.component&&this.routeReuseStrategy.shouldDetach(u.value.snapshot)?this.detachAndStoreRouteSubtree(u,l):this.deactivateRouteAndOutlet(u,l)}detachAndStoreRouteSubtree(u,l){const z=l.getContext(u.value.outlet),D=z&&u.value.component?z.children:l,R=_e(u);for(const i1 of Object.keys(R))this.deactivateRouteAndItsChildren(R[i1],D);if(z&&z.outlet){const i1=z.outlet.detach(),z1=z.children.onOutletDeactivated();this.routeReuseStrategy.store(u.value.snapshot,{componentRef:i1,route:u,contexts:z1})}}deactivateRouteAndOutlet(u,l){const z=l.getContext(u.value.outlet),D=z&&u.value.component?z.children:l,R=_e(u);for(const i1 of Object.keys(R))this.deactivateRouteAndItsChildren(R[i1],D);z&&z.outlet&&(z.outlet.deactivate(),z.children.onOutletDeactivated(),z.attachRef=null,z.resolver=null,z.route=null)}activateChildRoutes(u,l,z){const D=_e(l);u.children.forEach(R=>{this.activateRoutes(R,D[R.value.outlet],z),this.forwardEvent(new We(R.value.snapshot))}),u.children.length&&this.forwardEvent(new V2(u.value.snapshot))}activateRoutes(u,l,z){const D=u.value,R=l?l.value:null;if(L2(D),D===R)if(D.component){const i1=z.getOrCreateContext(D.outlet);this.activateChildRoutes(u,l,i1.children)}else this.activateChildRoutes(u,l,z);else if(D.component){const i1=z.getOrCreateContext(D.outlet);if(this.routeReuseStrategy.shouldAttach(D.snapshot)){const z1=this.routeReuseStrategy.retrieve(D.snapshot);this.routeReuseStrategy.store(D.snapshot,null),i1.children.onOutletReAttached(z1.contexts),i1.attachRef=z1.componentRef,i1.route=z1.route.value,i1.outlet&&i1.outlet.attach(z1.componentRef,z1.route.value),L2(z1.route.value),this.activateChildRoutes(u,null,i1.children)}else{const z1=function R2(g){for(let u=g.parent;u;u=u.parent){const l=u.routeConfig;if(l&&l._loadedConfig)return l._loadedConfig;if(l&&l.component)return null}return null}(D.snapshot),oe=z1?z1.module.componentFactoryResolver:null;i1.attachRef=null,i1.route=D,i1.resolver=oe,i1.outlet&&i1.outlet.activateWith(D,oe),this.activateChildRoutes(u,null,i1.children)}}else this.activateChildRoutes(u,null,z)}}class et{constructor(u,l){this.routes=u,this.module=l}}function _t(g){return"function"==typeof g}function xt(g){return g instanceof J2}const Wt=Symbol("INITIAL_VALUE");function qt(){return(0,y1.w)(g=>(0,X.aj)(g.map(u=>u.pipe((0,M1.q)(1),(0,u1.O)(Wt)))).pipe(R1((u,l)=>{let z=!1;return l.reduce((D,R,i1)=>D!==Wt?D:(R===Wt&&(z=!0),z||!1!==R&&i1!==l.length-1&&!xt(R)?D:R),u)},Wt),(0,X1.h)(u=>u!==Wt),(0,n1.U)(u=>xt(u)?u:!0===u),(0,M1.q)(1)))}class St{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new gn,this.attachRef=null}}class gn{constructor(){this.contexts=new Map}onChildOutletCreated(u,l){const z=this.getOrCreateContext(u);z.outlet=l,this.contexts.set(u,z)}onChildOutletDestroyed(u){const l=this.getContext(u);l&&(l.outlet=null,l.attachRef=null)}onOutletDeactivated(){const u=this.contexts;return this.contexts=new Map,u}onOutletReAttached(u){this.contexts=u}getOrCreateContext(u){let l=this.getContext(u);return l||(l=new St,this.contexts.set(u,l)),l}getContext(u){return this.contexts.get(u)||null}}let yn=(()=>{class g{constructor(l,z,D,R,i1){this.parentContexts=l,this.location=z,this.resolver=D,this.changeDetector=i1,this.activated=null,this._activatedRoute=null,this.activateEvents=new o.vpe,this.deactivateEvents=new o.vpe,this.attachEvents=new o.vpe,this.detachEvents=new o.vpe,this.name=R||Q,l.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const l=this.parentContexts.getContext(this.name);l&&l.route&&(l.attachRef?this.attach(l.attachRef,l.route):this.activateWith(l.route,l.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const l=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(l.instance),l}attach(l,z){this.activated=l,this._activatedRoute=z,this.location.insert(l.hostView),this.attachEvents.emit(l.instance)}deactivate(){if(this.activated){const l=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(l)}}activateWith(l,z){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=l;const i1=(z=z||this.resolver).resolveComponentFactory(l._futureSnapshot.routeConfig.component),z1=this.parentContexts.getOrCreateContext(this.name).children,oe=new An(l,z1,this.location.injector);this.activated=this.location.createComponent(i1,this.location.length,oe),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return g.\u0275fac=function(l){return new(l||g)(o.Y36(gn),o.Y36(o.s_b),o.Y36(o._Vd),o.$8M("name"),o.Y36(o.sBO))},g.\u0275dir=o.lG2({type:g,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"]}),g})();class An{constructor(u,l,z){this.route=u,this.childContexts=l,this.parent=z}get(u,l){return u===n2?this.route:u===gn?this.childContexts:this.parent.get(u,l)}}let bn=(()=>{class g{}return g.\u0275fac=function(l){return new(l||g)},g.\u0275cmp=o.Xpm({type:g,selectors:[["ng-component"]],decls:1,vars:0,template:function(l,z){1&l&&o._UZ(0,"router-outlet")},directives:[yn],encapsulation:2}),g})();function at(g,u=""){for(let l=0;l<g.length;l++){const z=g[l];Cn(z,Ft(u,z))}}function Cn(g,u){g.children&&at(g.children,u)}function Ft(g,u){return u?g||u.path?g&&!u.path?`${g}/`:!g&&u.path?u.path:`${g}/${u.path}`:"":g}function At(g){const u=g.children&&g.children.map(At),l=u?Object.assign(Object.assign({},g),{children:u}):Object.assign({},g);return!l.component&&(u||l.loadChildren)&&l.outlet&&l.outlet!==Q&&(l.component=bn),l}function Lt(g){return g.outlet||Q}function Vn(g,u){const l=g.filter(z=>Lt(z)===u);return l.push(...g.filter(z=>Lt(z)!==u)),l}const en={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Yt(g,u,l){var z;if(""===u.path)return"full"===u.pathMatch&&(g.hasChildren()||l.length>0)?Object.assign({},en):{matched:!0,consumedSegments:[],remainingSegments:l,parameters:{},positionalParamSegments:{}};const R=(u.matcher||z2)(l,g,u);if(!R)return Object.assign({},en);const i1={};Pe(R.posParams,(oe,Ue)=>{i1[Ue]=oe.path});const z1=R.consumed.length>0?Object.assign(Object.assign({},i1),R.consumed[R.consumed.length-1].parameters):i1;return{matched:!0,consumedSegments:R.consumed,remainingSegments:l.slice(R.consumed.length),parameters:z1,positionalParamSegments:null!==(z=R.posParams)&&void 0!==z?z:{}}}function wn(g,u,l,z,D="corrected"){if(l.length>0&&function Bt(g,u,l){return l.some(z=>G2(g,u,z)&&Lt(z)!==Q)}(g,l,z)){const i1=new l2(u,function j2(g,u,l,z){const D={};D[Q]=z,z._sourceSegment=g,z._segmentIndexShift=u.length;for(const R of l)if(""===R.path&&Lt(R)!==Q){const i1=new l2([],{});i1._sourceSegment=g,i1._segmentIndexShift=u.length,D[Lt(R)]=i1}return D}(g,u,z,new l2(l,g.children)));return i1._sourceSegment=g,i1._segmentIndexShift=u.length,{segmentGroup:i1,slicedSegments:[]}}if(0===l.length&&function d4(g,u,l){return l.some(z=>G2(g,u,z))}(g,l,z)){const i1=new l2(g.segments,function In(g,u,l,z,D,R){const i1={};for(const z1 of z)if(G2(g,l,z1)&&!D[Lt(z1)]){const oe=new l2([],{});oe._sourceSegment=g,oe._segmentIndexShift="legacy"===R?g.segments.length:u.length,i1[Lt(z1)]=oe}return Object.assign(Object.assign({},D),i1)}(g,u,l,z,g.children,D));return i1._sourceSegment=g,i1._segmentIndexShift=u.length,{segmentGroup:i1,slicedSegments:l}}const R=new l2(g.segments,g.children);return R._sourceSegment=g,R._segmentIndexShift=u.length,{segmentGroup:R,slicedSegments:l}}function G2(g,u,l){return(!(g.hasChildren()||u.length>0)||"full"!==l.pathMatch)&&""===l.path}function Nn(g,u,l,z){return!!(Lt(g)===z||z!==Q&&G2(u,l,g))&&("**"===g.path||Yt(u,g,l).matched)}function Rn(g,u,l){return 0===u.length&&!g.children[l]}class Dt{constructor(u){this.segmentGroup=u||null}}class S{constructor(u){this.urlTree=u}}function a1(g){return(0,U._)(new Dt(g))}function _(g){return(0,U._)(new S(g))}class h{constructor(u,l,z,D,R){this.configLoader=l,this.urlSerializer
1=z,this.urlTree=D,this.config=R,this.allowRedirects=!0,this.ngModule=u.get(o.h0i)}apply(){const u=wn(this.urlTree.root,[],[],this.config).segmentGroup,l=new l2(u.segments,u.children);return this.expandSegmentGroup(this.ngModule,this.config,l,Q).pipe((0,n1.U)(R=>this.createUrlTree(V1(R),this.urlTree.queryParams,this.urlTree.fragment))).pipe((0,Se.K)(R=>{if(R instanceof S)return this.allowRedirects=!1,this.match(R.urlTree);throw R instanceof Dt?this.noMatchError(R):R}))}match(u){return this.expandSegmentGroup(this.ngModule,this.config,u.root,Q).pipe((0,n1.U)(D=>this.createUrlTree(V1(D),u.queryParams,u.fragment))).pipe((0,Se.K)(D=>{throw D instanceof Dt?this.noMatchError(D):D}))}noMatchError(u){return new Error(`Cannot match any routes. URL Segment: '${u.segmentGroup}'`)}createUrlTree(u,l,z){const D=u.segments.length>0?new l2([],{[Q]:u}):u;return new J2(D,l,z)}expandSegmentGroup(u,l,z,D){return 0===z.segments.length&&z.hasChildren()?this.expandChildren(u,l,z).pipe((0,n1.U)(R=>new l2([],R))):this.expandSegment(u,z,l,z.segments,D,!0)}expandChildren(u,l,z){const D=[];for(const R of Object.keys(z.children))"primary"===R?D.unshift(R):D.push(R);return(0,a.D)(D).pipe((0,Me.b)(R=>{const i1=z.children[R],z1=Vn(l,R);return this.expandSegmentGroup(u,z1,i1,R).pipe((0,n1.U)(oe=>({segment:oe,outlet:R})))}),R1((R,i1)=>(R[i1.outlet]=i1.segment,R),{}),function ne(g,u){const l=arguments.length>=2;return z=>z.pipe(g?(0,X1.h)((D,R)=>g(D,R,z)):G1.y,Ee(1),l?(0,ie.d)(u):(0,te.T)(()=>new N.K))}())}expandSegment(u,l,z,D,R,i1){return(0,a.D)(z).pipe((0,Me.b)(z1=>this.expandSegmentAgainstRoute(u,l,z,z1,D,R,i1).pipe((0,Se.K)(Ue=>{if(Ue instanceof Dt)return(0,I.of)(null);throw Ue}))),(0,Ke.P)(z1=>!!z1),(0,Se.K)((z1,oe)=>{if(z1 instanceof N.K||"EmptyError"===z1.name)return Rn(l,D,R)?(0,I.of)(new l2([],{})):a1(l);throw z1}))}expandSegmentAgainstRoute(u,l,z,D,R,i1,z1){return Nn(D,l,R,i1)?void 0===D.redirectTo?this.matchSegmentAgainstRoute(u,l,D,R,i1):z1&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(u,l,z,D,R,i1):a1(l):a1(l)}expandSegmentAgainstRouteUsingRedirect(u,l,z,D,R,i1){return"**"===D.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(u,z,D,i1):this.expandRegularSegmentAgainstRouteUsingRedirect(u,l,z,D,R,i1)}expandWildCardWithParamsAgainstRouteUsingRedirect(u,l,z,D){const R=this.applyRedirectCommands([],z.redirectTo,{});return z.redirectTo.startsWith("/")?_(R):this.lineralizeSegments(z,R).pipe((0,t2.zg)(i1=>{const z1=new l2(i1,{});return this.expandSegment(u,z1,l,i1,D,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(u,l,z,D,R,i1){const{matched:z1,consumedSegments:oe,remainingSegments:Ue,positionalParamSegments:D2}=Yt(l,D,R);if(!z1)return a1(l);const e2=this.applyRedirectCommands(oe,D.redirectTo,D2);return D.redirectTo.startsWith("/")?_(e2):this.lineralizeSegments(D,e2).pipe((0,t2.zg)($2=>this.expandSegment(u,l,z,$2.concat(Ue),i1,!1)))}matchSegmentAgainstRoute(u,l,z,D,R){if("**"===z.path)return z.loadChildren?(z._loadedConfig?(0,I.of)(z._loadedConfig):this.configLoader.load(u.injector,z)).pipe((0,n1.U)(e2=>(z._loadedConfig=e2,new l2(D,{})))):(0,I.of)(new l2(D,{}));const{matched:i1,consumedSegments:z1,remainingSegments:oe}=Yt(l,z,D);return i1?this.getChildConfig(u,z,D).pipe((0,t2.zg)(D2=>{const e2=D2.module,$2=D2.routes,{segmentGroup:B2,slicedSegments:En}=wn(l,z1,oe,$2),v4=new l2(B2.segments,B2.children);if(0===En.length&&v4.hasChildren())return this.expandChildren(e2,$2,v4).pipe((0,n1.U)(q6=>new l2(z1,q6)));if(0===$2.length&&0===En.length)return(0,I.of)(new l2(z1,{}));const z3=Lt(z)===R;return this.expandSegment(e2,v4,$2,En,z3?Q:R,!0).pipe((0,n1.U)(Gn=>new l2(z1.concat(Gn.segments),Gn.children)))})):a1(l)}getChildConfig(u,l,z){return l.children?(0,I.of)(new et(l.children,u)):l.loadChildren?void 0!==l._loadedConfig?(0,I.of)(l._loadedConfig):this.runCanLoadGuards(u.injector,l,z).pipe((0,t2.zg)(D=>D?this.configLoader.load(u.injector,l).pipe((0,n1.U)(R=>(l._loadedConfig=R,R))):function p(g){return(0,U._)(ye(`Cannot load children because the guard of the route "path: '${g.path}'" returned false`))}(l))):(0,I.of)(new et([],u))}runCanLoadGuards(u,l,z){const D=l.canLoad;if(!D||0===D.length)return(0,I.of)(!0);const R=D.map(i1=>{const z1=u.get(i1);let oe;if(function Zt(g){return g&&_t(g.canLoad)}(z1))oe=z1.canLoad(l,z);else{if(!_t(z1))throw new Error("Invalid CanLoad guard");oe=z1(l,z)}return Ye(oe)});return(0,I.of)(R).pipe(qt(),(0,Je.b)(i1=>{if(!xt(i1))return;const z1=ye(`Redirecting to "${this.urlSerializer.serialize(i1)}"`);throw z1.url=i1,z1}),(0,n1.U)(i1=>!0===i1))}lineralizeSegments(u,l){let z=[],D=l.root;for(;;){if(z=z.concat(D.segments),0===D.numberOfChildren)return(0,I.of)(z);if(D.numberOfChildren>1||!D.children[Q])return(0,U._)(new Error(`Only absolute redirects can have named outlets. redirectTo: '${u.redirectTo}'`));D=D.children[Q]}}applyRedirectCommands(u,l,z){return this.applyRedirectCreatreUrlTree(l,this.urlSerializer.parse(l),u,z)}applyRedirectCreatreUrlTree(u,l,z,D){const R=this.createSegmentGroup(u,l.root,z,D);return new J2(R,this.createQueryParams(l.queryParams,this.urlTree.queryParams),l.fragment)}createQueryParams(u,l){const z={};return Pe(u,(D,R)=>
1{if("string"==typeof D&&D.startsWith(":")){const z1=D.substring(1);z[R]=l[z1]}else z[R]=D}),z}createSegmentGroup(u,l,z,D){const R=this.createSegments(u,l.segments,z,D);let i1={};return Pe(l.children,(z1,oe)=>{i1[oe]=this.createSegmentGroup(u,z1,z,D)}),new l2(R,i1)}createSegments(u,l,z,D){return l.map(R=>R.path.startsWith(":")?this.findPosParam(u,R,D):this.findOrReturn(R,z))}findPosParam(u,l,z){const D=z[l.path.substring(1)];if(!D)throw new Error(`Cannot redirect to '${u}'. Cannot find '${l.path}'.`);return D}findOrReturn(u,l){let z=0;for(const D of l){if(D.path===u.path)return l.splice(z),D;z++}return u}}function V1(g){const u={};for(const z of Object.keys(g.children)){const R=V1(g.children[z]);(R.segments.length>0||R.hasChildren())&&(u[z]=R)}return function T(g){if(1===g.numberOfChildren&&g.children[Q]){const u=g.children[Q];return new l2(g.segments.concat(u.segments),u.children)}return g}(new l2(g.segments,u))}class a2{constructor(u){this.path=u,this.route=this.path[this.path.length-1]}}class Be{constructor(u,l){this.component=u,this.route=l}}function F2(g,u,l){const z=g._root;return Fn(z,u?u._root:null,l,[z.value])}function ln(g,u,l){const z=function f4(g){if(!g)return null;for(let u=g.parent;u;u=u.parent){const l=u.routeConfig;if(l&&l._loadedConfig)return l._loadedConfig}return null}(u);return(z?z.module.injector:l).get(g)}function Fn(g,u,l,z,D={canDeactivateChecks:[],canActivateChecks:[]}){const R=_e(u);return g.children.forEach(i1=>{(function w4(g,u,l,z,D={canDeactivateChecks:[],canActivateChecks:[]}){const R=g.value,i1=u?u.value:null,z1=l?l.getContext(g.value.outlet):null;if(i1&&R.routeConfig===i1.routeConfig){const oe=function N4(g,u,l){if("function"==typeof l)return l(g,u);switch(l){case"pathParamsChange":return!q(g.url,u.url);case"pathParamsOrQueryParamsChange":return!q(g.url,u.url)||!Qe(g.queryParams,u.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!N2(g,u)||!Qe(g.queryParams,u.queryParams);default:return!N2(g,u)}}(i1,R,R.routeConfig.runGuardsAndResolvers);oe?D.canActivateChecks.push(new a2(z)):(R.data=i1.data,R._resolvedData=i1._resolvedData),Fn(g,u,R.component?z1?z1.children:null:l,z,D),oe&&z1&&z1.outlet&&z1.outlet.isActivated&&D.canDeactivateChecks.push(new Be(z1.outlet.component,i1))}else i1&&Xn(u,z1,D),D.canActivateChecks.push(new a2(z)),Fn(g,null,R.component?z1?z1.children:null:l,z,D)})(i1,R[i1.value.outlet],l,z.concat([i1.value]),D),delete R[i1.value.outlet]}),Pe(R,(i1,z1)=>Xn(i1,l.getContext(z1),D)),D}function Xn(g,u,l){const z=_e(g),D=g.value;Pe(z,(R,i1)=>{Xn(R,D.component?u?u.children.getContext(i1):null:u,l)}),l.canDeactivateChecks.push(new Be(D.component&&u&&u.outlet&&u.outlet.isActivated?u.outlet.component:null,D))}class Un{}function b3(g){return new W.y(u=>u.error(g))}class P4{constructor(u,l,z,D,R,i1){this.rootComponentType=u,this.config=l,this.urlTree=z,this.url=D,this.paramsInheritanceStrategy=R,this.relativeLinkResolution=i1}recognize(){const u=wn(this.urlTree.root,[],[],this.config.filter(i1=>void 0===i1.redirectTo),this.relativeLinkResolution).segmentGroup,l=this.processSegmentGroup(this.config,u,Q);if(null===l)return null;const z=new s2([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},Q,this.rootComponentType,null,this.urlTree.root,-1,{}),D=new Te(z,l),R=new f2(this.url,D);return this.inheritParamsAndData(R._root),R}inheritParamsAndData(u){const l=u.value,z=Fe(l,this.paramsInheritanceStrategy);l.params=Object.freeze(z.params),l.data=Object.freeze(z.data),u.children.forEach(D=>this.inheritParamsAndData(D))}processSegmentGroup(u,l,z){return 0===l.segments.length&&l.hasChildren()?this.processChildren(u,l):this.processSegment(u,l,l.segments,z)}processChildren(u,l){const z=[];for(const R of Object.keys(l.children)){const i1=l.children[R],z1=Vn(u,R),oe=this.processSegmentGroup(z1,i1,R);if(null===oe)return null;z.push(...oe)}const D=t1(z);return function A(g){g.sort((u,l)=>u.value.outlet===Q?-1:l.value.outlet===Q?1:u.value.outlet.localeCompare(l.value.outlet))}(D),D}processSegment(u,l,z,D){for(const R of u){const i1=this.processSegmentAgainstRoute(R,l,z,D);if(null!==i1)return i1}return Rn(l,z,D)?[]:null}
1processSegmentAgainstRoute(u,l,z,D){if(u.redirectTo||!Nn(u,l,z,D))return null;let R,i1=[],z1=[];if("**"===u.path){const B2=z.length>0?W2(z).parameters:{};R=new s2(z,B2,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,he(u),Lt(u),u.component,u,W1(l),pe(l)+z.length,Ie(u))}else{const B2=Yt(l,u,z);if(!B2.matched)return null;i1=B2.consumedSegments,z1=B2.remainingSegments,R=new s2(i1,B2.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,he(u),Lt(u),u.component,u,W1(l),pe(l)+i1.length,Ie(u))}const oe=function P(g){return g.children?g.children:g.loadChildren?g._loadedConfig.routes:[]}(u),{segmentGroup:Ue,slicedSegments:D2}=wn(l,i1,z1,oe.filter(B2=>void 0===B2.redirectTo),this.relativeLinkResolution);if(0===D2.length&&Ue.hasChildren()){const B2=this.processChildren(oe,Ue);return null===B2?null:[new Te(R,B2)]}if(0===oe.length&&0===D2.length)return[new Te(R,[])];const e2=Lt(u)===D,$2=this.processSegment(oe,Ue,D2,e2?Q:D);return null===$2?null:[new Te(R,$2)]}}function $(g){const u=g.value.routeConfig;return u&&""===u.path&&void 0===u.redirectTo}function t1(g){const u=[],l=new Set;for(const z of g){if(!$(z)){u.push(z);continue}const D=u.find(R=>z.value.routeConfig===R.value.routeConfig);void 0!==D?(D.children.push(...z.children),l.add(D)):u.push(z)}for(const z of l){const D=t1(z.children);u.push(new Te(z.value,D))}return u.filter(z=>!l.has(z))}function W1(g){let u=g;for(;u._sourceSegment;)u=u._sourceSegment;return u}function pe(g){let u=g,l=u._segmentIndexShift?u._segmentIndexShift:0;for(;u._sourceSegment;)u=u._sourceSegment,l+=u._segmentIndexShift?u._segmentIndexShift:0;return l-1}function he(g){return g.data||{}}function Ie(g){return g.resolve||{}}function ft(g){return[...Object.keys(g),...Object.getOwnPropertySymbols(g)]}function lt(g){return(0,y1.w)(u=>{const l=g(u);return l?(0,a.D)(l).pipe((0,n1.U)(()=>u)):(0,I.of)(u)})}class Kt extends class bt{shouldDetach(u){return!1}store(u,l){}shouldAttach(u){return!1}retrieve(u){return null}shouldReuseRoute(u,l){return u.routeConfig===l.routeConfig}}{}const nn=new o.OlP("ROUTES");class Tt{constructor(u,l,z,D){this.injector=u,this.compiler=l,this.onLoadStartListener=z,this.onLoadEndListener=D}load(u,l){if(l._loader$)return l._loader$;this.onLoadStartListener&&this.onLoadStartListener(l);const D=this.loadModuleFactory(l.loadChildren).pipe((0,n1.U)(R=>{this.onLoadEndListener&&this.onLoadEndListener(l);const i1=R.create(u);return new et(x2(i1.injector.get(nn,void 0,o.XFs.Self|o.XFs.Optional)).map(At),i1)}),(0,Se.K)(R=>{throw l._loader$=void 0,R}));return l._loader$=new l1.c(D,()=>new s1.xQ).pipe((0,H1.x)()),l._loader$}loadModuleFactory(u){return Ye(u()).pipe((0,t2.zg)(l=>l instanceof o.YKP?(0,I.of)(l):(0,a.D)(this.compiler.compileModuleAsync(l))))}}class Mn{shouldProcessUrl(u){return!0}extract(u){return u}merge(u,l){return u}}function _4(g){throw g}function Ct(g,u,l){return u.parse("/")}function zn(g,u){return(0,I.of)(null)}const Z2={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},O4={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Vt=(()=>{class g{constructor(l,z,D,R,i1,z1,oe){this.rootComponentType=l,this.urlSerializer=z,this.rootContexts=D,this.location=R,this.config=oe,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new s1.xQ,this.errorHandler=_4,this.malformedUriErrorHandler=Ct,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:zn,afterPreactivation:zn},this.urlHandlingStrategy=new Mn,this.routeReuseStrategy=new Kt,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=i1.get(o.h0i),this.console=i1.get(o.c2e);const e2=i1.get(o.R0b);this.isNgZoneEnabled=e2 instanceof o.R0b&&o.R0b.isInAngularZone(),this.resetConfig(oe),this.currentUrlTree=function x1(){return new J2(new l2([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Tt(i1,z1,$2=>this.triggerEvent(new P2($2)),$2=>this.triggerEvent(new K2($2))),this.routerState=Ge(this.currentUrlTree,this.rootComponentType),this.transitions=new r1.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var l;return null===(l=this.location.getState())||void 0===l?void 0:l.\u0275routerPageId}setupNavigations(l){const z=this.events;return l.pipe((0,X1.h)(D=>0!==D.id),(0,n1.U)(D=>Object.assign(Object.assign({},D),{extractedUrl:this.urlHandlingStrategy.extract(D.rawUrl)})),(0,y1.w)(D=>{let R=!1,i1=!1;return(0,I.of)(D).pipe((0,Je.b)(z1=>{this.currentNavigation={id:z1.id,initialUrl:z1.currentRawUrl,extractedUrl:z1.extractedUrl,trigger:z1.source,extras:z1.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,y1.w)(z1=>{const oe=this.browserUrlTree.toString(),Ue=!this.navigated||z1.extractedUrl.toString()!==oe||oe!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||Ue)&&this.urlHandlingStrategy.shouldProcessUrl(z1.rawUrl))return C3(z1.source)&&(this.browserUrlTree=z1.extractedUrl),(0,I.of)(z1).pipe((0,y1.w)(e2=>{const $2=this.transitions.getValue();return z.next(new _1(e2.id,this.serializeUrl(e2.extractedUrl),e2.source,e2.restoredState)),$2!==this.transitions.getValue()?J.E:Promise.resolve(e2)}),function ve(g,u,l,z){return(0,y1.w)(D=>function d(g,u,l,z,D){return new h(g,u,l,z,D).apply()}(g,u,l,D.extractedUrl,z).pipe((0,n1.U)(R=>Object.assign(Object.assign({},D),{urlAfterRedirects:R}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),(0,Je.b)(e2=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:e2.urlAfterRedirects})}),function m2(g,u,l,z,D){return(0,t2.zg)(R=>function tn(g,u,l,z,D="emptyOnly",R="legacy"){try{const i1=new P4(g,u,l,z,D,R).recognize();
1return null===i1?b3(new Un):(0,I.of)(i1)}catch(i1){return b3(i1)}}(g,u,R.urlAfterRedirects,l(R.urlAfterRedirects),z,D).pipe((0,n1.U)(i1=>Object.assign(Object.assign({},R),{targetSnapshot:i1}))))}(this.rootComponentType,this.config,e2=>this.serializeUrl(e2),this.paramsInheritanceStrategy,this.relativeLinkResolution),(0,Je.b)(e2=>{if("eager"===this.urlUpdateStrategy){if(!e2.extras.skipLocationChange){const B2=this.urlHandlingStrategy.merge(e2.urlAfterRedirects,e2.rawUrl);this.setBrowserUrl(B2,e2)}this.browserUrlTree=e2.urlAfterRedirects}const $2=new B1(e2.id,this.serializeUrl(e2.extractedUrl),this.serializeUrl(e2.urlAfterRedirects),e2.targetSnapshot);z.next($2)}));if(Ue&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:$2,extractedUrl:B2,source:En,restoredState:v4,extras:z3}=z1,S4=new _1($2,this.serializeUrl(B2),En,v4);z.next(S4);const Gn=Ge(B2,this.rootComponentType).snapshot;return(0,I.of)(Object.assign(Object.assign({},z1),{targetSnapshot:Gn,urlAfterRedirects:B2,extras:Object.assign(Object.assign({},z3),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=z1.rawUrl,z1.resolve(null),J.E}),lt(z1=>{const{targetSnapshot:oe,id:Ue,extractedUrl:D2,rawUrl:e2,extras:{skipLocationChange:$2,replaceUrl:B2}}=z1;return this.hooks.beforePreactivation(oe,{navigationId:Ue,appliedUrlTree:D2,rawUrlTree:e2,skipLocationChange:!!$2,replaceUrl:!!B2})}),(0,Je.b)(z1=>{const oe=new me(z1.id,this.serializeUrl(z1.extractedUrl),this.serializeUrl(z1.urlAfterRedirects),z1.targetSnapshot);this.triggerEvent(oe)}),(0,n1.U)(z1=>Object.assign(Object.assign({},z1),{guards:F2(z1.targetSnapshot,z1.currentSnapshot,this.rootContexts)})),function be(g,u){return(0,t2.zg)(l=>{const{targetSnapshot:z,currentSnapshot:D,guards:{canActivateChecks:R,canDeactivateChecks:i1}}=l;return 0===i1.length&&0===R.length?(0,I.of)(Object.assign(Object.assign({},l),{guardsResult:!0})):function C2(g,u,l,z){return(0,a.D)(g).pipe((0,t2.zg)(D=>function Bn(g,u,l,z,D){const R=u&&u.routeConfig?u.routeConfig.canDeactivate:null;if(!R||0===R.length)return(0,I.of)(!0);const i1=R.map(z1=>{const oe=ln(z1,u,D);let Ue;if(function $t(g){return g&&_t(g.canDeactivate)}(oe))Ue=Ye(oe.canDeactivate(g,u,l,z));else{if(!_t(oe))throw new Error("Invalid CanDeactivate guard");Ue=Ye(oe(g,u,l,z))}return Ue.pipe((0,Ke.P)())});return(0,I.of)(i1).pipe(qt())}(D.component,D.route,l,u,z)),(0,Ke.P)(D=>!0!==D,!0))}(i1,z,D,g).pipe((0,t2.zg)(z1=>z1&&function Ht(g){return"boolean"==typeof g}(z1)?function h4(g,u,l,z){return(0,a.D)(u).pipe((0,Me.b)(D=>(0,F.z)(function z4(g,u){return null!==g&&u&&u(new A2(g)),(0,I.of)(!0)}(D.route.parent,z),function rt(g,u){return null!==g&&u&&u(new mt(g)),(0,I.of)(!0)}(D.route,z),function un(g,u,l){const z=u[u.length-1],R=u.slice(0,u.length-1).reverse().map(i1=>function Ut(g){const u=g.routeConfig?g.routeConfig.canActivateChild:null;return u&&0!==u.length?{node:g,guards:u}:null}(i1)).filter(i1=>null!==i1).map(i1=>(0,j.P)(()=>{const z1=i1.guards.map(oe=>{const Ue=ln(oe,i1.node,l);let D2;if(function Rt(g){return g&&_t(g.canActivateChild)}(Ue))D2=Ye(Ue.canActivateChild(z,g));else{if(!_t(Ue))throw new Error("Invalid CanActivateChild guard");D2=Ye(Ue(z,g))}return D2.pipe((0,Ke.P)())});return(0,I.of)(z1).pipe(qt())}));return(0,I.of)(R).pipe(qt())}(g,D.path,l),function Ln(g,u,l){const z=u.routeConfig?u.routeConfig.canActivate:null;if(!z||0===z.length)return(0,I.of)(!0);const D=z.map(R=>(0,j.P)(()=>{const i1=ln(R,u,l);let z1;if(function vn(g){return g&&_t(g.canActivate)}(i1))z1=Ye(i1.canActivate(u,g));else{if(!_t(i1))throw new Error("Invalid CanActivate guard");z1=Ye(i1(u,g))}return z1.pipe((0,Ke.P)())}));return(0,I.of)(D).pipe(qt())}(g,D.route,l))),(0,Ke.P)(D=>!0!==D,!0))}(z,R,g,u):(0,I.of)(z1)),(0,n1.U)(z1=>Object.assign(Object.assign({},l),{guardsResult:z1})))})}(this.ngModule.injector,z1=>this.triggerEvent(z1)),(0,Je.b)(z1=>{if(xt(z1.guardsResult)){const Ue=ye(`Redirecting to "${this.serializeUrl(z1.guardsResult)}"`);throw Ue.url=z1.guardsResult,Ue}const oe=new Oe(z1.id,this.serializeUrl(z1.extractedUrl),this.serializeUrl(z1.urlAfterRedirects),z1.targetSnapshot,!!z1.guardsResult);this.triggerEvent(oe)}),(0,X1.h)(z1=>!!z1.guardsResult||(this.restoreHistory(z1),this.cancelNavigationTransition(z1,""),!1)),lt(z1=>{if(z1.guards.canActivateChecks.length)return(0,I.of)(z1).pipe((0,Je.b)(oe=>{const Ue=new h2(oe.id,this.serializeUrl(oe.extractedUrl),this.serializeUrl(oe.urlAfterRedirects),oe.targetSnapshot);this.triggerEvent(Ue)}),(0,y1.w)(oe=>{let Ue=!1;return(0,I.of)(oe).pipe(function g2(g,u){return(0,t2.zg)(l=>{const{targetSnapshot:z,guards:{canActivateChecks:D}}=l;if(!D.length)return(0,I.of)(l);let R=0;return(0,a.D)(D).pipe((0,Me.b)(i1=>function M2(g,u,l,z){return function q2(g,u,l,z){const D=ft(g);if(0===D.length)return(0,I.of)({});const R={};return(0,a.D)(D).pipe((0,t2.zg)(i1=>function Et(g,u,l,z){const D=ln(g,u,z);return Ye(D.resolve?D.resolve(u,l):D(u,l))}(g[i1],u,l,z).pipe((0,Je.b)(z1=>{R[i1]=z1}))),Ee(1),(0,t2.zg)(()=>ft(R).length===D.length?(0,I.of)(R):J.E))}(g._resolve,g,u,z).pipe((0,n1.U)(R=>(g._resolvedData=R,g.data=Object.assign(Object.assign({},g.data),Fe(g,l).resolve),null)))}(i1.route,z,g,u)),(0,Je.b)(()=>R++),Ee(1),(0,t2.zg)(i1=>R===D.length?(0,I.of)(l):J.E))})}(this.paramsInheritanceStrategy,this.ngModule.injector),(0,Je.b)({next:()=>Ue=!0,complete:()=>{Ue||(this.restoreHistory(oe),this.cancelNavigationTransition(oe,"At least one route resolver didn't emit any value."))}}))}),(0,Je.b)(oe=>{const Ue=new y2(oe.id,this.serializeUrl(oe.extractedUrl),this.serializeUrl(oe.urlAfterRedirects),oe.targetSnapshot);this.triggerEvent(Ue)}))}),lt(z1=>{const{targetSnapshot:oe,id:Ue,extractedUrl:D2,rawUrl:e2,extras:{skipLocationChange:$2,replaceUrl:B2}}=z1;return this.hooks.afterPreactivation(oe,{navigationId:Ue,appliedUrlTree:D2,rawUrlTree:e2,skipLocationChange:!!$2,replaceUrl:!!B2})}),(0,n1.U)(z1=>{const oe=function k2(g,u,l){const z=p2(g,u._root,l?l._root:void 0);return new Ce(z,u)}
1(this.routeReuseStrategy,z1.targetSnapshot,z1.currentRouterState);return Object.assign(Object.assign({},z1),{targetRouterState:oe})}),(0,Je.b)(z1=>{this.currentUrlTree=z1.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(z1.urlAfterRedirects,z1.rawUrl),this.routerState=z1.targetRouterState,"deferred"===this.urlUpdateStrategy&&(z1.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,z1),this.browserUrlTree=z1.urlAfterRedirects)}),((g,u,l)=>(0,n1.U)(z=>(new Sn(u,z.targetRouterState,z.currentRouterState,l).activate(g),z)))(this.rootContexts,this.routeReuseStrategy,z1=>this.triggerEvent(z1)),(0,Je.b)({next(){R=!0},complete(){R=!0}}),function Z1(g){return u=>u.lift(new d1(g))}(()=>{var z1;R||i1||this.cancelNavigationTransition(D,`Navigation ID ${D.id} is not equal to the current navigation id ${this.navigationId}`),(null===(z1=this.currentNavigation)||void 0===z1?void 0:z1.id)===D.id&&(this.currentNavigation=null)}),(0,Se.K)(z1=>{if(i1=!0,function ze(g){return g&&g[ce]}(z1)){const oe=xt(z1.url);oe||(this.navigated=!0,this.restoreHistory(D,!0));const Ue=new p1(D.id,this.serializeUrl(D.extractedUrl),z1.message);z.next(Ue),oe?setTimeout(()=>{const D2=this.urlHandlingStrategy.merge(z1.url,this.rawUrlTree),e2={skipLocationChange:D.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||C3(D.source)};this.scheduleNavigation(D2,"imperative",null,e2,{resolve:D.resolve,reject:D.reject,promise:D.promise})},0):D.resolve(!1)}else{this.restoreHistory(D,!0);const oe=new P1(D.id,this.serializeUrl(D.extractedUrl),z1);z.next(oe);try{D.resolve(this.errorHandler(z1))}catch(Ue){D.reject(Ue)}}return J.E}))}))}resetRootComponentType(l){this.rootComponentType=l,this.routerState.root.component=this.rootComponentType}setTransition(l){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),l))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(l=>{const z="popstate"===l.type?"popstate":"hashchange";"popstate"===z&&setTimeout(()=>{var D;const R={replaceUrl:!0},i1=(null===(D=l.state)||void 0===D?void 0:D.navigationId)?l.state:null;if(i1){const oe=Object.assign({},i1);delete oe.navigationId,delete oe.\u0275routerPageId,0!==Object.keys(oe).length&&(R.state=oe)}const z1=this.parseUrl(l.url);this.scheduleNavigation(z1,z,i1,R)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(l){this.events.next(l)}resetConfig(l){at(l),this.config=l.map(At),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(l,z={}){const{relativeTo:D,queryParams:R,fragment:i1,queryParamsHandling:z1,preserveFragment:oe}=z,Ue=D||this.routerState.root,D2=oe?this.currentUrlTree.fragment:i1;let e2=null;switch(z1){case"merge":e2=Object.assign(Object.assign({},this.currentUrlTree.queryParams),R);break;case"preserve":e2=this.currentUrlTree.queryParams;break;default:e2=R||null}return null!==e2&&(e2=this.removeEmptyProps(e2)),function ct(g,u,l,z,D){if(0===l.length)return gt(u.root,u.root,u.root,z,D);const R=function Qt(g){if("string"==typeof g[0]&&1===g.length&&"/"===g[0])return new ot(!0,0,g);let u=0,l=!1;const z=g.reduce((D,R,i1)=>{if("object"==typeof R&&null!=R){if(R.outlets){const z1={};return Pe(R.outlets,(oe,Ue)=>{z1[Ue]="string"==typeof oe?oe.split("/"):oe}),[...D,{outlets:z1}]}if(R.segmentPath)return[...D,R.segmentPath]}return"string"!=typeof R?[...D,R]:0===i1?(R.split("/").forEach((z1,oe)=>{0==oe&&"."===z1||(0==oe&&""===z1?l=!0:".."===z1?u++:""!=z1&&D.push(z1))}),D):[...D,R]},[]);return new ot(l,u,z)}(l);if(R.toRoot())return gt(u.root,u.root,new l2([],{}),z,D);const i1=function pn(g,u,l){if(g.isAbsolute)return new X2(u.root,!0,0);if(-1===l.snapshot._lastPathIndex){const R=l.snapshot._urlSegment;return new X2(R,R===u.root,0)}const z=tt(g.commands[0])?0:1;return function nt(g,u,l){let z=g,D=u,R=l;for(;R>D;){if(R-=D,z=z.parent,!z)throw new Error("Invalid number of '../'");D=z.segments.length}return new X2(z,!1,D-R)}(l.snapshot._urlSegment,l.snapshot._lastPathIndex+z,g.numberOfDoubleDots)}(R,u,g),z1=i1.processChildren?zt(i1.segmentGroup,i1.index,R.commands):Mt(i1.segmentGroup,i1.index,R.commands);return gt(u.root,i1.segmentGroup,z1,z,D)}(Ue,this.currentUrlTree,l,e2,null!=D2?D2:null)}navigateByUrl(l,z={skipLocationChange:!1}){const D=xt(l)?l:this.parseUrl(l),R=this.urlHandlingStrategy.merge(D,this.rawUrlTree);return this.scheduleNavigation(R,"imperative",null,z)}navigate(l,z={skipLocationChange:!1}){return function I4(g){for(let u=0;u<g.length;u++){const l=g[u];if(null==l)throw new Error(`The requested path contains ${l} segment at index ${u}`)}}(l),this.navigateByUrl(this.createUrlTree(l,z),z)}serializeUrl(l){return this.urlSerializer.serialize(l)}parseUrl(l){let z;try{z=this.urlSerializer.parse(l)}catch(D){z=this.malformedUriErrorHandler(D,this.urlSerializer,l)}return z}isActive(l,z){let D;if(D=!0===z?Object.assign({},Z2):!1===z?Object.assign({},O4):z,xt(l))return F1(this.currentUrlTree,l,D);const R=this.parseUrl(l);return F1(this.currentUrlTree,R,D)}removeEmptyProps(l){return Object.keys(l).reduce((z,D)=>{const R=l[D];return null!=R&&(z[D]=R),z},{})}processNavigations(){this.navigations.subscribe(l=>{this.navigated=!0,this.lastSuccessfulId=l.id,this.currentPageId=l.targetPageId,this.events.next(new T1(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,l.resolve(!0)},l=>{this.console.warn(`Unhandled Navigation Error: ${l}`)})}scheduleNavigation(l,z,D,R,i1){var z1,oe;if(this.disposed)return Promise.resolve(!1);let Ue,D2,e2;i1?(Ue=i1.resolve,D2=i1.reject,e2=i1.promise):e2=new Promise((En,v4)=>{Ue=En,D2=v4});const $2=++this.navigationId;let B2;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(D=this.location.getState()),B2=D&&D.\u0275routerPageId?D.\u0275routerPageId:R.replaceUrl||R.skipLocationChange?null!==(z1=this.browserPageId)&&void 0!==z1?z1:0:(null!==(oe=this.browserPageId)&&void 0!==oe?oe:0)+1):B2=0,this.setTransition({id:$2,targetPageId:B2,source:z,restoredState:D,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:l,extras:R,resolve:Ue,reject:D2,promise:e2,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),e2.catch(En=>Promise.reject(En))}setBrowserUrl(l,z){const D=this.urlSerializer.serialize(l),R=Object.assign(Object.assign({},z.extras.state),this.generateNgRouterState(z.id,z.targetPageId));this.location.isCurrentPathEqualTo(D)||z.extras.replaceUrl?this.location.replaceState(D,"",R):this.location.go(D,"",R)}restoreHistory(l,z=!1){var D,R;if("computed"===this.canceledNavigationResolution){const i1=this.currentPageId-l.targetPageId;"popstate"!==l.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(D=this.currentNavigation)||void 0===D?void 0:D.finalUrl)||0===i1?this.currentUrlTree===(null===(R=this.currentNavigation)||void 0===R?void 0:R.finalUrl)&&0===i1&&(this.resetState(l),this.browserUrlTree=l.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(i1)}else"replace"===this.canceledNavigationResolution&&(z&&this.resetState(l),this.resetUrlToCurrentUrlTree())}resetState(l){this.routerState=l.currentRouterState,this.currentUrlTree=l.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,l.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(l,z){const D=new p1(l.id,this.serializeUrl(l.extractedUrl),z);this.triggerEvent(D),l.resolve(!1)}generateNgRouterState(l,z){return"computed"===this.canceledNavigationResolution?{navigationId:l,\u0275routerPageId:z}:{navigationId:l}}}return g.\u0275fac=function(l){o.$Z()},g.\u0275prov=o.Yz7({token:g,factory:g.\u0275fac}),g})();function C3(g){return"imperative"!==g}let p4=(()=>{class g{constructor(l,z,D,R,i1){this.router=l,this.route=z,this.tabIndexAttribute=D,this.renderer=R,this.el=i1,this.commands=null,this.onChanges=new s1.xQ,this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(l){if(null!=this.tabIndexAttribute)return;const z=this.renderer,D=this.el.nativeElement;null!==l?z.setAttribute(D,"tabindex",l):z.removeAttribute(D,"tabindex")}ngOnChanges(l){this.onChanges.next(this)}set routerLink(l){null!=l?(this.commands=Array.isArray(l)?l:[l],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(){if(null===this.urlTree)return!0;const l={skipLocationChange:_n(this.skipLocationChange),replaceUrl:_n(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,l),!0}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:_n(this.preserveFragment)})}}return g.\u0275fac=function(l){return new(l||g)(o.Y36(Vt),o.Y36(n2),o.$8M("tabindex"),o.Y36(o.Qsj),o.Y36(o.SBq))},g.\u0275dir=o.lG2({type:g,selectors:[["","routerLink","",5,"a",5,"area"]],hostBindings:function(l,z){1&l&&o.NdJ("click",function(){return z.onClick()})},inputs:{queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[o.TTD]}),g})(),x4=(()=>{class g{constructor(l,z,D){this.router=l,this.route=z,this.locationStrategy=D,this.commands=null,this.href=null,this.onChanges=new s1.xQ,this.subscription=l.events.subscribe(R=>{R instanceof T1&&this.updateTargetUrlAndHref()})}set routerLink(l){this.commands=null!=l?Array.isArray(l)?l:[l]:null}ngOnChanges(l){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(l,z,D,R,i1){if(0!==l||z||D||R||i1||"string"==typeof this.target&&"_self"!=this.target||null===this.urlTree)return!0;const z1={skipLocationChange:_n(this.skipLocationChange),replaceUrl:_n(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,z1),!1}updateTargetUrlAndHref(){this.href=null!==this.urlTree?this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:_n(this.preserveFragment)})}}return g.\u0275fac=function(l){return new(l||g)(o.Y36(Vt),o.Y36(n2),o.Y36(h1.S$))},g.\u0275dir=o.lG2({type:g,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(l,z){1&l&&o.NdJ("click",function(R){return z.onClick(R.button,R.ctrlKey,R.shiftKey,R.altKey,R.metaKey)}),2&l&&o.uIk("target",z.target)("href",z.href,o.LSH)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[o.TTD]}),g})();function _n(g){return""===g||!!g}class b{}class H{preload(u,l){return l().pipe((0,Se.K)(()=>(0,I.of)(null)))}}class f1{preload(u,l){return(0,I.of)(null)}}let U1=(()=>{class g{constructor(l,z,D,R){this.router=l,this.injector=D,this.preloadingStrategy=R,this.loader=new Tt(D,z,oe=>l.triggerEvent(new P2(oe)),oe=>l.triggerEvent(new K2(oe)))}setUpPreloading(){this.subscription=this.router.events.pipe((0,X1.h)(l=>l instanceof T1),(0,Me.b)(()=>this.preload())).subscribe(()=>{})}preload(){const l=this.injector.get(o.h0i);return this.processRoutes(l,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(l,z){const D=[];for(const R of z)if(R.loadChildren&&!R.canLoad&&R._loadedConfig){const i1=R._loadedConfig;D.push(this.processRoutes(i1.module,i1.routes))}else R.loadChildren&&!R.canLoad?D.push(this.preloadConfig(l,R)):R.children&&D.push(this.processRoutes(l,R.children));return(0,a.D)(D).pipe((0,O.J)(),(0,n1.U)(R=>{}))}preloadConfig(l,z){return this.preloadingStrategy.preload(z,()=>(z._loadedConfig?(0,I.of)(z._loadedConfig):this.loader.load(l.injector,z)).pipe((0,t2.zg)(R=>(z._loadedConfig=R,this.processRoutes(R.module,R.routes)))))}}return g.\u0275fac=function(l){return new(l||g)(o.LFG(Vt),o.LFG(o.Sil),o.LFG(o.zs3),o.LFG(b))},g.\u0275prov=o.Yz7({token:g,factory:g.\u0275fac}),g})(),ge=(()=>{class g{constructor(l,z,D={}){this.router=l,this.viewportScroller=z,this.options=D,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},D.scrollPositionRestoration=D.scrollPositionRestoration||"disabled",D.anchorScrolling=D.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(l=>{l instanceof _1?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=l.navigationTrigger,this.restoredId=l.restoredState?l.restoredState.navigationId:0):l instanceof T1&&(this.lastId=l.id,this.scheduleScrollEvent(l,this.router.parseUrl(l.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(l=>{l instanceof ue&&(l.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(l.position):l.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(l.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(l,z){this.router.triggerEvent(new ue(l,"popstate"===this.lastSource?this.store[this.restoredId]:null,z))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return g.\u0275fac=function(l){o.$Z()},g.\u0275prov=o.Yz7({token:g,factory:g.\u0275fac}),g})();
1const w2=new o.OlP("ROUTER_CONFIGURATION"),_2=new o.OlP("ROUTER_FORROOT_GUARD"),H2=[h1.Ye,{provide:ee,useClass:M},{provide:Vt,useFactory:function Dn(g,u,l,z,D,R,i1={},z1,oe){const Ue=new Vt(null,g,u,l,z,D,x2(R));return z1&&(Ue.urlHandlingStrategy=z1),oe&&(Ue.routeReuseStrategy=oe),function dn(g,u){g.errorHandler&&(u.errorHandler=g.errorHandler),g.malformedUriErrorHandler&&(u.malformedUriErrorHandler=g.malformedUriErrorHandler),g.onSameUrlNavigation&&(u.onSameUrlNavigation=g.onSameUrlNavigation),g.paramsInheritanceStrategy&&(u.paramsInheritanceStrategy=g.paramsInheritanceStrategy),g.relativeLinkResolution&&(u.relativeLinkResolution=g.relativeLinkResolution),g.urlUpdateStrategy&&(u.urlUpdateStrategy=g.urlUpdateStrategy),g.canceledNavigationResolution&&(u.canceledNavigationResolution=g.canceledNavigationResolution)}(i1,Ue),i1.enableTracing&&Ue.events.subscribe(D2=>{var e2,$2;null===(e2=console.group)||void 0===e2||e2.call(console,`Router Event: ${D2.constructor.name}`),console.log(D2.toString()),console.log(D2),null===($2=console.groupEnd)||void 0===$2||$2.call(console)}),Ue},deps:[ee,gn,h1.Ye,o.zs3,o.Sil,nn,w2,[class rn{},new o.FiY],[class it{},new o.FiY]]},gn,{provide:n2,useFactory:function e4(g){return g.routerState.root},deps:[Vt]},U1,f1,H,{provide:w2,useValue:{enableTracing:!1}}];function S2(){return new o.PXZ("Router",Vt)}let ut=(()=>{class g{constructor(l,z){}static forRoot(l,z){return{ngModule:g,providers:[H2,an(l),{provide:_2,useFactory:xn,deps:[[Vt,new o.FiY,new o.tp0]]},{provide:w2,useValue:z||{}},{provide:h1.S$,useFactory:kt,deps:[h1.lw,[new o.tBr(h1.mr),new o.FiY],w2]},{provide:ge,useFactory:Q2,deps:[Vt,h1.EM,w2]},{provide:b,useExisting:z&&z.preloadingStrategy?z.preloadingStrategy:f1},{provide:o.PXZ,multi:!0,useFactory:S2},[t4,{provide:o.ip1,multi:!0,useFactory:jn,deps:[t4]},{provide:m4,useFactory:W6,deps:[t4]},{provide:o.tb,multi:!0,useExisting:m4}]]}}static forChild(l){return{ngModule:g,providers:[an(l)]}}}return g.\u0275fac=function(l){return new(l||g)(o.LFG(_2,8),o.LFG(Vt,8))},g.\u0275mod=o.oAB({type:g}),g.\u0275inj=o.cJS({}),g})();function Q2(g,u,l){return l.scrollOffset&&u.setOffset(l.scrollOffset),new ge(g,u,l)}function kt(g,u,l={}){return l.useHash?new h1.Do(g,u):new h1.b0(g,u)}function xn(g){return"guarded"}function an(g){return[{provide:o.deG,multi:!0,useValue:g},{provide:nn,multi:!0,useValue:g}]}let t4=(()=>{class g{constructor(l){this.injector=l,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new s1.xQ}appInitializer(){return this.injector.get(h1.V_,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let z=null;const D=new Promise(z1=>z=z1),R=this.injector.get(Vt),i1=this.injector.get(w2);return"disabled"===i1.initialNavigation?(R.setUpLocationChangeListener(),z(!0)):"enabled"===i1.initialNavigation||"enabledBlocking"===i1.initialNavigation?(R.hooks.afterPreactivation=()=>this.initNavigation?(0,I.of)(null):(this.initNavigation=!0,z(!0),this.resultOfPreactivationDone),R.initialNavigation()):z(!0),D})}bootstrapListener(l){const z=this.injector.get(w2),D=this.injector.get(U1),R=this.injector.get(ge),i1=this.injector.get(Vt),z1=this.injector.get(o.z2F);l===z1.components[0]&&(("enabledNonBlocking"===z.initialNavigation||void 0===z.initialNavigation)&&i1.initialNavigation(),D.setUpPreloading(),R.init(),i1.resetRootComponentType(z1.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return g.\u0275fac=function(l){return new(l||g)(o.LFG(o.zs3))},g.\u0275prov=o.Yz7({token:g,factory:g.\u0275fac}),g})();function jn(g){return g.appInitializer.bind(g)}function W6(g){return g.bootstrapListener.bind(g)}const m4=new o.OlP("Router Initializer")},5861:(xe,S1,m)=>{"use strict";function o(I,r1,X,U,N,F,j){try{var W=I[F](j),J=W.value}catch(l1){return void X(l1)}W.done?r1(J):Promise.resolve(J).then(U,N)}function a(I){return function(){var r1=this,X=arguments;return new Promise(function(U,N){var F=I.apply(r1,X);function j(J){o(F,U,N,j,W,"next",J)}function W(J){o(F,U,N,j,W,"throw",J)}j(void 0)})}}m.d(S1,{Z:()=>a})},7582:(xe,S1,m)=>{"use strict";function X(H1,O1,Z1,d1){var h1,I1=arguments.length,O=I1<3?O1:null===d1?d1=Object.getOwnPropertyDescriptor(O1,Z1):d1;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)O=Reflect.decorate(H1,O1,Z1,d1);else for(var q1=H1.length-1;q1>=0;q1--)(h1=H1[q1])&&(O=(I1<3?h1(O):I1>3?h1(O1,Z1,O):h1(O1,Z1))||O);return I1>3&&O&&Object.defineProperty(O1,Z1,O),O}function U(H1,O1){return function(Z1,d1){O1(Z1,d1,H1)}}function J(H1,O1){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(H1,O1)}function l1(H1,O1,Z1,d1){return new(Z1||(Z1=Promise))(function(O,h1){function q1(p1){try{T1(d1.next(p1))}catch(P1){h1(P1)}}function _1(p1){try{T1(d1.throw(p1))}catch(P1){h1(P1)}}function T1(p1){p1.done?O(p1.value):function I1(O){return O instanceof Z1?O:new Z1(function(h1){h1(O)})}(p1.value).then(q1,_1)}T1((d1=d1.apply(H1,O1||[])).next())})}m.d(S1,{fM:()=>U,gn:()=>X,mG:()=>l1,w6:()=>J}),"function"==typeof SuppressedError&&SuppressedError}},xe=>{xe(xe.s=5491)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.