c?a[c]:null}"string"==typeof s&&(o+=2)}return null}(e,n,r,i.index)),null!==S)(S.__ngLastListenerFn__||S).__ngNextListenerFn__=o,S.__ngLastListenerFn__=o,h=!1;else{o=cE(i,n,d,o),rE(p,r,o);const A=t.listen(b,r,o);u.push(o,A),l&&l.push(r,g,E,E+1)}}else o=cE(i,n,d,o);const f=i.outputs;let m;if(h&&null!==f&&(m=f[r])){const p=m.length;if(p)for(let b=0;b-1?Kt(e.index,n):n,5);let a=aE(n,t,i,o),c=r.__ngNextListenerFn__;for(;c;)a=aE(n,t,c,o)&&a,c=c.__ngNextListenerFn__;return a}}function O(e=1){return function Dk(e){return(q.lFrame.contextLView=function r_(e,n){for(;e>0;)n=n[Wr],e--;return n}(e,q.lFrame.contextLView))[xe]}(e)}function WP(e,n){let t=null;const i=function IS(e){const n=e.attrs;if(null!=n){const t=n.indexOf(5);if(!(1&t))return n[t+1]}return null}(e);for(let r=0;rt._dirtyCounter.update(i=>i+1))}(n,mw(e,t,i,r))}function Tn(e){return zi(function c_(){return q.lFrame.contextLView}(),R+e)}function k(e,n=""){const t=C(),i=te(),r=e+R,o=i.firstCreatePass?Ji(i,r,1,n,null):i.data[r],s=SE(i,t,o,n,e);t[r]=s,Cs()&&rl(i,t,s,o),Dn(o,!1)}let SE=(e,n,t,i,r)=>(Vn(!0),rf(n[G],i));function oL(e,n,t,i,r){const o=n[St],s=!o||$i()||wo(t)||Ki(o,r);return Vn(s),s?rf(n[G],i):Ws(o,e,n,t)}function ai(e){return Ho("",e,""),ai}function Ho(e,n,t){const i=C(),r=function ko(e,n,t,i){return ze(e,xn(),t)?n+K(t)+i:Q}(i,e,n,t);return r!==Q&&oi(i,gt(),r),Ho}function Cm(e,n,t,i,r){const o=C(),s=Ao(o,e,n,t,i,r);return s!==Q&&oi(o,gt(),s),Cm}function Ke(e,n,t){vw(n)&&(n=n());const i=C();return ze(i,xn(),n)&&Ht(te(),Me(),i,e,n,i[G],t,!1),Ke}function ot(e,n){const t=vw(e);return t&&e.set(n),t}function Ye(e,n){const t=C(),i=te(),r=_e();return vm(i,t,t[G],r,e,n),Ye}function Em(e,n,t,i,r){if(e=z(e),Array.isArray(e))for(let o=0;o>20;if(ji(e)||!e.multi){const f=new Es(l,r,v),m=xm(c,n,r?d:d+h,u);-1===m?(wh(Lc(a,s),o,c),Dm(o,e,n.length),n.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),t.push(f),s.push(f)):(t[m]=f,s[m]=f)}else{const f=xm(c,n,d+h,u),m=xm(c,n,d,d+h),b=m>=0&&t[m];if(r&&!b||!r&&!(f>=0&&t[f])){wh(Lc(a,s),o,c);const E=function hL(e,n,t,i,r){const o=new Es(e,t,v);return o.multi=[],o.index=n,o.componentProviders=0,BE(o,r,i&&!t),o}(r?uL:dL,t.length,r,i,l);!r&&b&&(t[m].providerFactory=E),Dm(o,e,n.length,0),n.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),t.push(E),s.push(E)}else Dm(o,e,f>-1?f:m,BE(t[r?m:f],l,!r&&i));!r&&i&&b&&t[m].componentProviders++}}}function Dm(e,n,t,i){const r=ji(n),o=function jS(e){return!!e.useClass}(n);if(r||o){const c=(o?z(n.useClass):n).prototype.ngOnDestroy;if(c){const l=e.destroyHooks||(e.destroyHooks=[]);if(!r&&n.multi){const d=l.indexOf(t);-1===d?l.push(t,[i,c]):l[d+1].push(i,c)}else l.push(t,c)}}}function BE(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function xm(e,n,t,i){for(let r=t;r{t.providersResolver=(i,r)=>function lL(e,n,t){const i=te();if(i.firstCreatePass){const r=En(e);Em(t,i.data,i.blueprint,r,!0),Em(n,i.data,i.blueprint,r,!1)}}(i,r?r(e):e,n)}}let fL=(()=>{class e{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const i=Uu(0,t.type),r=i.length>0?function Pw(e,n,t=null){return new Rw({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}([i],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,r)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=L({token:e,providedIn:"environment",factory:()=>new e(N(wn))})}}return e})();function un(e){Et("NgStandalone"),e.getStandaloneInjector=n=>n.get(fL).getOrCreateStandaloneInjector(e)}function zE(e,n,t,i,r,o){return function WE(e,n,t,i,r,o,s,a){const c=n+t;return function Dl(e,n,t,i,r){const o=sr(e,n,t,i);return ze(e,n+2,r)||o}(e,c,r,o,s)?zn(e,c+3,a?i.call(a,r,o,s):i(r,o,s)):pa(e,c+3)}(C(),At(),e,n,t,i,r,o)}function $E(e,n,t,i,r,o,s){return function ZE(e,n,t,i,r,o,s,a,c){const l=n+t;return function dn(e,n,t,i,r,o){const s=sr(e,n,t,i);return sr(e,n+2,r,o)||s}(e,l,r,o,s,a)?zn(e,l+4,c?i.call(c,r,o,s,a):i(r,o,s,a)):pa(e,l+4)}(C(),At(),e,n,t,i,r,o,s)}function pa(e,n){const t=e[n];return t===Q?void 0:t}function GE(e,n,t,i,r,o){const s=n+t;return ze(e,s,r)?zn(e,s+1,o?i.call(o,r):i(r)):pa(e,s+1)}function Im(e,n){const t=te();let i;const r=e+R;t.firstCreatePass?(i=function DL(e,n){if(n)for(let t=n.length-1;t>=0;t--){const i=n[t];if(e===i.name)return i}}(n,t.pipeRegistry),t.data[r]=i,i.onDestroy&&(t.destroyHooks??=[]).push(r,i.onDestroy)):i=t.data[r];const o=i.factory||(i.factory=Vi(i.type)),a=Lt(v);try{const c=Pc(!1),l=o();return Pc(c),function wm(e,n,t,i){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=i}(t,C(),r,l),l}finally{Lt(a)}}function Tm(e,n,t){const i=e+R,r=C(),o=zi(r,i);return function ga(e,n){return e[M].data[n].pure}(r,i)?GE(r,At(),n,o.transform,t,o):o.transform(t)}function $t(e,n){return dl(e,n)}const gD=new D(""),Hl=new D("");let Pm,Fm=(()=>{class e{constructor(t,i,r){this._ngZone=t,this.registry=i,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Pm||(function wV(e){Pm=e}(r),r.addToWindow(i)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Y.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(t)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),t()},i)),this._callbacks.push({doneCb:t,timeoutId:o,updateCb:r})}whenStable(t,i,r){if(r&&!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(t,i,r),this._runCallbacksIfReady()}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,i,r){return[]}static{this.\u0275fac=function(i){return new(i||e)(N(Y),N(Rm),N(Hl))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})(),Rm=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,i){this._applications.set(t,i)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,i=!0){return Pm?.findTestabilityInTree(this,t,i)??null}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})();function Ul(e){return!!e&&"function"==typeof e.then}function bD(e){return!!e&&"function"==typeof e.subscribe}const CV=new D("");let _D=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,i)=>{this.resolve=t,this.reject=i}),this.appInits=T(CV,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const r of this.appInits){const o=r();if(Ul(o))t.push(o);else if(bD(o)){const s=new Promise((a,c)=>{o.subscribe({complete:a,error:c})});t.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{i()}).catch(r=>{this.reject(r)}),0===t.length&&i(),this.initialized=!0}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const zl=new D("");function yD(e,n){return Array.isArray(n)?n.reduce(yD,e):{...e,...n}}let Gl,qn=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=T(sA),this.afterRenderManager=T($w),this.zonelessEnabled=T(_o),this.dirtyFlags=0,this.deferredDirtyFlags=0,this.externalTestViews=new Set,this.beforeRender=new Ve,this.afterTick=new Ve,this.componentTypes=[],this.components=[],this.isStable=T(to).hasPendingTasks.pipe(ht(t=>!t)),this._injector=T(wn)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}whenStable(){let t;return new Promise(i=>{t=this.isStable.subscribe({next:r=>{r&&i()}})}).finally(()=>{t.unsubscribe()})}get injector(){return this._injector}bootstrap(t,i){const r=t instanceof Xy;if(!this._injector.get(_D).done)throw!r&&function Bi(e){const n=re(e)||et(e)||mt(e);return null!==n&&n.standalone}(t),new w(405,!1);let s;s=r?t:this._injector.get(gl).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function EV(e){return e.isBoundToModule}(s)?void 0:this._injector.get(or),l=s.create(at.NULL,[],i||s.selector,a),d=l.location.nativeElement,u=l.injector.get(gD,null);return u?.registerApplication(d),l.onDestroy(()=>{this.detachView(l.hostView),$l(this.components,l),u?.unregisterApplication(d)}),this._loadComponent(l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new w(101,!1);const t=ee(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,ee(t),this.afterTick.next()}}synchronize(){let t=null;this._injector.destroyed||(t=this._injector.get(bl,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let i=0;for(;0!==this.dirtyFlags&&i++<10;)this.synchronizeOnce(t)}synchronizeOnce(t){if(this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0,7&this.dirtyFlags){const i=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8,this.beforeRender.next(i);for(let{_lView:r,notifyErrorHandler:o}of this._views)MV(r,o,i,this.zonelessEnabled);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),7&this.dirtyFlags)return}else t?.begin?.(),t?.end?.();8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:t})=>Tc(t))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(t){const i=t;this._views.push(i),i.attachToAppRef(this)}detachView(t){const i=t;$l(this._views,i),i.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const i=this._injector.get(zl,[]);[...this._bootstrapListeners,...i].forEach(r=>r(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>$l(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new w(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function $l(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function Lm(e){Gl??=new WeakMap;const n=Gl.get(e);if(n)return n;const t=e.isStable.pipe(function QT(e,n){const t=arguments.length>=2;return i=>i.pipe(e?sc((r,o)=>e(r,o,i)):wu,cs(1),t?function $T(e=null){return n=>n.lift(new GT(e))}(n):WT(()=>new db))}(i=>i)).toPromise().then(()=>{});return Gl.set(e,t),e.onDestroy(()=>Gl?.delete(e)),t}function MV(e,n,t,i){(t||Tc(e))&&ll(e,n,t&&!i?0:1)}let kV=(()=>{class e{constructor(){this.zone=T(Y),this.changeDetectionScheduler=T(bo),this.applicationRef=T(qn)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function Vm({ngZoneFactory:e,ignoreChangesOutsideZone:n,scheduleInRootZone:t}){return e??=()=>new Y({...Bm(),scheduleInRootZone:t}),[{provide:Y,useFactory:e},{provide:Fn,multi:!0,useFactory:()=>{const i=T(kV,{optional:!0});return()=>i.initialize()}},{provide:Fn,multi:!0,useFactory:()=>{const i=T(NV);return()=>{i.initialize()}}},!0===n?{provide:Qy,useValue:!0}:[],{provide:Lf,useValue:t??U_}]}function Bm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}let NV=(()=>{class e{constructor(){this.subscription=new me,this.initialized=!1,this.zone=T(Y),this.pendingTasks=T(to)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Y.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Y.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),va=(()=>{class e{constructor(){this.appRef=T(qn),this.taskService=T(to),this.ngZone=T(Y),this.zonelessEnabled=T(_o),this.disableScheduling=T(Qy,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new me,this.angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Uc):null,this.scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(T(Lf,{optional:!0})??!1),this.cancelScheduledCallback=null,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Th||!this.zoneIsDefined)}notify(t){if(!this.zonelessEnabled&&5===t)return;switch(t){case 0:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 7:this.appRef.deferredDirtyFlags|=8;break;default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?$_:z_;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>i(()=>this.tick())):this.ngZone.runOutsideAngular(()=>i(()=>this.tick()))}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Uc+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const t=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(t),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,$_(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(t)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const t=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(t)}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const ci=new D("",{providedIn:"root",factory:()=>T(ci,oe.Optional|oe.SkipSelf)||function OV(){return typeof $localize<"u"&&$localize.locale||Ol}()}),ql=new D("");function Wl(e){return!e.moduleRef}let MD=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,i){const r=i?.scheduleInRootZone,s=i?.ignoreChangesOutsideZone,a=[Vm({ngZoneFactory:()=>function oA(e="zone.js",n){return"noop"===e?new Th:"zone.js"===e?new Y(n):e}(i?.ngZone,{...Bm({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}),scheduleInRootZone:r}),ignoreChangesOutsideZone:s}),{provide:bo,useExisting:va}],c=function wF(e,n,t){return new Yf(e,n,t,!1)}(t.moduleType,this.injector,a);return function xD(e){const n=Wl(e)?e.r3Injector:e.moduleRef.injector,t=n.get(Y);return t.run(()=>{Wl(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();const i=n.get(Yt,null);let r;if(t.runOutsideAngular(()=>{r=t.onError.subscribe({next:o=>{i.handleError(o)}})}),Wl(e)){const o=()=>n.destroy(),s=e.platformInjector.get(ql);s.add(o),n.onDestroy(()=>{r.unsubscribe(),s.delete(o)})}else{const o=()=>e.moduleRef.destroy(),s=e.platformInjector.get(ql);s.add(o),e.moduleRef.onDestroy(()=>{$l(e.allPlatformModules,e.moduleRef),r.unsubscribe(),s.delete(o)})}return function xV(e,n,t){try{const i=t();return Ul(i)?i.catch(r=>{throw n.runOutsideAngular(()=>e.handleError(r)),r}):i}catch(i){throw n.runOutsideAngular(()=>e.handleError(i)),i}}(i,t,()=>{const o=n.get(_D);return o.runInitializers(),o.donePromise.then(()=>{if(function cP(e){"string"==typeof e&&(jC=e.toLowerCase().replace(/_/g,"-"))}(n.get(ci,Ol)||Ol),Wl(e)){const a=n.get(qn);return void 0!==e.rootComponent&&a.bootstrap(e.rootComponent),a}return function BV(e,n){const t=e.injector.get(qn);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(i=>t.bootstrap(i));else{if(!e.instance.ngDoBootstrap)throw new w(-403,!1);e.instance.ngDoBootstrap(t)}n.push(e)}(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}({moduleRef:c,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(t,i=[]){const r=yD({},i);return function SV(e,n,t){const i=new Qf(t);return Promise.resolve(i)}(0,0,t).then(o=>this.bootstrapModuleFactory(o,r))}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new w(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const t=this._injector.get(ql,null);t&&(t.forEach(i=>i()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(i){return new(i||e)(N(at))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})(),Ii=null;const ID=new D("");function TD(e,n,t=[]){const i=`Platform: ${n}`,r=new D(i);return(o=[])=>{let s=Hm();if(!s||s.injector.get(ID,!1)){const a=[...t,...o,{provide:r,useValue:!0}];e?e(a):function jV(e){if(Ii&&!Ii.get(ID,!1))throw new w(400,!1);(function vD(){!function IT(e){Jg=e}(()=>{throw new w(600,!1)})})(),Ii=e;const n=e.get(MD);(function kD(e){e.get(pv,null)?.forEach(t=>t())})(e)}(function SD(e=[],n){return at.create({name:n,providers:[{provide:Gu,useValue:"platform"},{provide:ql,useValue:new Set([()=>Ii=null])},...e]})}(a,i))}return function HV(){const n=Hm();if(!n)throw new w(401,!1);return n}()}}function Hm(){return Ii?.get(MD)??null}let Sn=(()=>{class e{static{this.__NG_ELEMENT_ID__=zV}}return e})();function zV(e){return function $V(e,n,t){if(Ui(e)&&!t){const i=Kt(e.index,n);return new Hs(i,i)}return 175&e.type?new Hs(n[Oe],n):null}(_e(),C(),!(16&~e))}class RD{constructor(){}supports(n){return El(n)}create(n){return new KV(n)}}const ZV=(e,n)=>n;class KV{constructor(n){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=n||ZV}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,i=this._removalsHead,r=0,o=null;for(;t||i;){const s=!i||t&&t.currentIndex{s=this._trackByFn(r,a),null!==t&&Object.is(t.trackById,s)?(i&&(t=this._verifyReinsertion(t,a,s,r)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,r),i=!0),t=t._next,r++}),this.length=r;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,i,r){let o;return null===n?o=this._itTail:(o=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,o,r)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,o,r)):n=this._addAfter(new YV(t,i),o,r),n}_verifyReinsertion(n,t,i,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==o?n=this._reinsertAfter(o,n._prev,r):n.currentIndex!=r&&(n.currentIndex=r,this._addToMoves(n,r)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}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(n,t,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const r=n._prevRemoved,o=n._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(n,t,i),this._addToMoves(n,i),n}_moveAfter(n,t,i){return this._unlink(n),this._insertAfter(n,t,i),this._addToMoves(n,i),n}_addAfter(n,t,i){return this._insertAfter(n,t,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,i){const r=null===t?this._itHead:t._next;return n._next=r,n._prev=t,null===r?this._itTail=n:r._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new PD),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,i=n._next;return null===t?this._itHead=i:t._next=i,null===i?this._itTail=t:i._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new PD),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class YV{constructor(n,t){this.item=n,this.trackById=t,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 QV{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===t||t<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const t=n._prevDup,i=n._nextDup;return null===t?this._head=i:t._nextDup=i,null===i?this._tail=t:i._prevDup=t,null===this._head}}class PD{constructor(){this.map=new Map}put(n){const t=n.trackById;let i=this.map.get(t);i||(i=new QV,this.map.set(t,i)),i.add(n)}get(n,t){const r=this.map.get(n);return r?r.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function LD(e,n,t){const i=e.previousIndex;if(null===i)return i;let r=0;return t&&i{class e{static{this.\u0275prov=L({token:e,providedIn:"root",factory:BD})}constructor(t){this.factories=t}static create(t,i){if(null!=i){const r=i.factories.slice();t=t.concat(r)}return new e(t)}static extend(t){return{provide:e,useFactory:i=>e.create(t,i||BD()),deps:[[e,new mc,new jr]]}}find(t){const i=this.factories.find(r=>r.supports(t));if(null!=i)return i;throw new w(901,!1)}}return e})();const n2=TD(null,"core",[]);let i2=(()=>{class e{constructor(t){}static{this.\u0275fac=function(i){return new(i||e)(N(qn))}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({})}}return e})(),c0=!1;function O2(){return ms([{provide:Kc,useFactory:()=>{let e=!0;return Jt()&&(e=!!T(ao,{optional:!0})?.get(jh,null)),e&&Et("NgHydration"),e}},{provide:Fn,useValue:()=>{(function qy(e){$y=e})(!1),Jt()&&T(Kc)&&(function F2(){const e=wi();let n;for(const t of e.body.childNodes)if(t.nodeType===Node.COMMENT_NODE&&t.textContent?.trim()===FA){n=t;break}if(!n)throw new w(-507,!1)}(),function k2(){c0||(c0=!0,function PA(){gv=RA}(),function XR(){RC=QR}(),function sL(){SE=oL}(),function tP(){PC=eP}(),function TF(){Lw=IF}(),function GO(){aw=$O,Hf=zO}(),function EO(){Yy=CO}(),function YN(){hy=KN}())}())},multi:!0},{provide:Dv,useFactory:()=>Jt()&&T(Kc)},{provide:zl,useFactory:()=>{if(Jt()&&T(Kc)){const e=T(qn);return T(at),()=>{(function N2(e){return Lm(e)})(e).then(()=>{!function yO(e){const n=e._views;for(const t of n){const i=bv(t);null!==i&&null!==i[Ne]&&(nt(i)?pl(i):Ky(i))}}(e)})}}return()=>{}},multi:!0}])}function ct(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}function Km(e,n=NaN){return isNaN(parseFloat(e))||isNaN(Number(e))?n:Number(e)}function pr(e,n){Et("NgSignals");const t=Xg(e);return n?.equal&&(t[sn].equal=n.equal),t}function Wn(e){const n=ee(null);try{return e()}finally{ee(n)}}let u0=null;function Ea(){return u0}class H2{}const lt=new D("");class kB{constructor(n,t,i,r){this.$implicit=n,this.ngForOf=t,this.index=i,this.count=r}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 sp=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,i,r){this._viewContainer=t,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const i=this._viewContainer;t.forEachOperation((r,o,s)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new kB(r.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===o?void 0:o);else if(null!==o){const a=i.get(o);i.move(a,s),C0(a,r)}});for(let r=0,o=i.length;r{C0(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(t,i){return!0}static{this.\u0275fac=function(i){return new(i||e)(v(Un),v(si),v(qm))}}static{this.\u0275dir=V({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}}return e})();function C0(e,n){e.context.$implicit=n.item}let gr=(()=>{class e{constructor(t,i){this._viewContainer=t,this._context=new AB,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){E0("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){E0("ngIfElse",t),this._elseTemplateRef=t,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(t,i){return!0}static{this.\u0275fac=function(i){return new(i||e)(v(Un),v(si))}}static{this.\u0275dir=V({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return e})();class AB{constructor(){this.$implicit=null,this.ngIf=null}}function E0(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${Je(n)}'.`)}let md=(()=>{class e{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(t){if(this._shouldRecreateView(t)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(t){return!!t.ngTemplateOutlet||!!t.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(t,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(t,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static{this.\u0275fac=function(i){return new(i||e)(v(Un))}}static{this.\u0275dir=V({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[Bt]})}}return e})();class PB{createSubscription(n,t){return Wn(()=>n.subscribe({next:t,error:i=>{throw i}}))}dispose(n){Wn(()=>n.unsubscribe())}}class LB{createSubscription(n,t){return n.then(t,i=>{throw i})}dispose(n){}}const VB=new LB,BB=new PB;let x0=(()=>{class e{constructor(t){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=t}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(t){if(!this._obj){if(t)try{this.markForCheckOnValueUpdate=!1,this._subscribe(t)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,i=>this._updateLatestValue(t,i))}_selectStrategy(t){if(Ul(t))return VB;if(bD(t))return BB;throw function An(e,n){return new w(2100,!1)}()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,i){t===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.\u0275fac=function(i){return new(i||e)(v(Sn,16))}}static{this.\u0275pipe=Tt({name:"async",type:e,pure:!1,standalone:!0})}}return e})(),br=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({})}}return e})();const I0="browser",ij="server";function up(e){return e===ij}function _d(e){return e&&"function"==typeof e.schedule}const V0=e=>n=>{for(let t=0,i=e.length;t{const i=new me;let r=0;return i.add(n.schedule(function(){r!==e.length?(t.next(e[r++]),t.closed||i.add(this.schedule())):t.complete()})),i})}function gp(e,n){return n?pp(e,n):new Le(V0(e))}function Rt(...e){let n=e[e.length-1];return _d(n)?(e.pop(),pp(e,n)):gp(e)}const vd=function Rj(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}(),B0=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function j0(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}const bp=e=>{if(e&&"function"==typeof e[as])return(e=>n=>{const t=e[as]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(n)})(e);if(B0(e))return V0(e);if(j0(e))return(e=>n=>(e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,Fr),n))(e);if(e&&"function"==typeof e[vd])return(e=>n=>{const t=e[vd]();for(;;){let i;try{i=t.next()}catch(r){return n.error(r),n}if(i.done){n.complete();break}if(n.next(i.value),n.closed)break}return"function"==typeof t.return&&n.add(()=>{t.return&&t.return()}),n})(e);{const t=`You provided ${yu(e)?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(t)}};function Ia(e,n){return n?function zj(e,n){if(null!=e){if(function Hj(e){return e&&"function"==typeof e[as]}(e))return function Vj(e,n){return new Le(t=>{const i=new me;return i.add(n.schedule(()=>{const r=e[as]();i.add(r.subscribe({next(o){i.add(n.schedule(()=>t.next(o)))},error(o){i.add(n.schedule(()=>t.error(o)))},complete(){i.add(n.schedule(()=>t.complete()))}}))})),i})}(e,n);if(j0(e))return function Bj(e,n){return new Le(t=>{const i=new me;return i.add(n.schedule(()=>e.then(r=>{i.add(n.schedule(()=>{t.next(r),i.add(n.schedule(()=>t.complete()))}))},r=>{i.add(n.schedule(()=>t.error(r)))}))),i})}(e,n);if(B0(e))return pp(e,n);if(function Uj(e){return e&&"function"==typeof e[vd]}(e)||"string"==typeof e)return function jj(e,n){if(!e)throw new Error("Iterable cannot be null");return new Le(t=>{const i=new me;let r;return i.add(()=>{r&&"function"==typeof r.return&&r.return()}),i.add(n.schedule(()=>{r=e[vd](),i.add(n.schedule(function(){if(t.closed)return;let o,s;try{const a=r.next();o=a.value,s=a.done}catch(a){return void t.error(a)}s?t.complete():(t.next(o),this.schedule())}))})),i})}(e,n)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}(e,n):e instanceof Le?e:new Le(bp(e))}class yd extends Ce{constructor(n){super(),this.parent=n}_next(n){this.parent.notifyNext(n)}_error(n){this.parent.notifyError(n),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class wd extends Ce{notifyNext(n){this.destination.next(n)}notifyError(n){this.destination.error(n)}notifyComplete(){this.destination.complete()}}function Cd(e,n){if(n.closed)return;if(e instanceof Le)return e.subscribe(n);let t;try{t=bp(e)(n)}catch(i){n.error(i)}return t}function _p(e,n,t=Number.POSITIVE_INFINITY){return"function"==typeof n?i=>i.pipe(_p((r,o)=>Ia(e(r,o)).pipe(ht((s,a)=>n(r,s,o,a))),t)):("number"==typeof n&&(t=n),i=>i.lift(new $j(e,t)))}class $j{constructor(n,t=Number.POSITIVE_INFINITY){this.project=n,this.concurrent=t}call(n,t){return t.subscribe(new Gj(n,this.project,this.concurrent))}}class Gj extends wd{constructor(n,t,i=Number.POSITIVE_INFINITY){super(n),this.project=t,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(n){this.active0?this._next(n.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function Ti(){}function Ta(e,n,t){return function(r){return r.lift(new Wj(e,n,t))}}class Wj{constructor(n,t,i){this.nextOrObserver=n,this.error=t,this.complete=i}call(n,t){return t.subscribe(new Zj(n,this.nextOrObserver,this.error,this.complete))}}class Zj extends Ce{constructor(n,t,i,r){super(n),this._tapNext=Ti,this._tapError=Ti,this._tapComplete=Ti,this._tapError=i||Ti,this._tapComplete=r||Ti,tc(t)?(this._context=this,this._tapNext=t):t&&(this._context=t,this._tapNext=t.next||Ti,this._tapError=t.error||Ti,this._tapComplete=t.complete||Ti)}_next(n){try{this._tapNext.call(this._context,n)}catch(t){return void this.destination.error(t)}this.destination.next(n)}_error(n){try{this._tapError.call(this._context,n)}catch(t){return void this.destination.error(t)}this.destination.error(n)}_complete(){try{this._tapComplete.call(this._context)}catch(n){return void this.destination.error(n)}return this.destination.complete()}}class vp{}class ui{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(t=>{const i=t.indexOf(":");if(i>0){const r=t.slice(0,i),o=r.toLowerCase(),s=t.slice(i+1).trim();this.maybeSetNormalizedName(r,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((t,i)=>{this.setHeaderEntries(i,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([t,i])=>{this.setHeaderEntries(t,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const t=this.headers.get(n.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,t){return this.clone({name:n,value:t,op:"a"})}set(n,t){return this.clone({name:n,value:t,op:"s"})}delete(n,t){return this.clone({name:n,value:t,op:"d"})}maybeSetNormalizedName(n,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,n)}init(){this.lazyInit&&(this.lazyInit instanceof ui?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(t=>{this.headers.set(t,n.headers.get(t)),this.normalizedNames.set(t,n.normalizedNames.get(t))})}clone(n){const t=new ui;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof ui?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([n]),t}applyUpdate(n){const t=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,t);const r=("a"===n.op?this.headers.get(t):void 0)||[];r.push(...i),this.headers.set(t,r);break;case"d":const o=n.value;if(o){let s=this.headers.get(t);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,s)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(n,t){const i=(Array.isArray(t)?t:[t]).map(o=>o.toString()),r=n.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(n,r)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>n(this.normalizedNames.get(t),this.headers.get(t)))}}class Kj{encodeKey(n){return H0(n)}encodeValue(n){return H0(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const Qj=/%(\d[a-f0-9])/gi,Xj={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function H0(e){return encodeURIComponent(e).replace(Qj,(n,t)=>Xj[t]??n)}function Ed(e){return`${e}`}class Si{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new Kj,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Yj(e,n){const t=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(r=>{const o=r.indexOf("="),[s,a]=-1==o?[n.decodeKey(r),""]:[n.decodeKey(r.slice(0,o)),n.decodeValue(r.slice(o+1))],c=t.get(s)||[];c.push(a),t.set(s,c)}),t}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(t=>{const i=n.fromObject[t],r=Array.isArray(i)?i.map(Ed):[Ed(i)];this.map.set(t,r)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const t=this.map.get(n);return t?t[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,t){return this.clone({param:n,value:t,op:"a"})}appendAll(n){const t=[];return Object.keys(n).forEach(i=>{const r=n[i];Array.isArray(r)?r.forEach(o=>{t.push({param:i,value:o,op:"a"})}):t.push({param:i,value:r,op:"a"})}),this.clone(t)}set(n,t){return this.clone({param:n,value:t,op:"s"})}delete(n,t){return this.clone({param:n,value:t,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const t=this.encoder.encodeKey(n);return this.map.get(n).map(i=>t+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const t=new Si({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(n),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const t=("a"===n.op?this.map.get(n.param):void 0)||[];t.push(Ed(n.value)),this.map.set(n.param,t);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const r=i.indexOf(Ed(n.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class Jj{constructor(){this.map=new Map}set(n,t){return this.map.set(n,t),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function U0(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function z0(e){return typeof Blob<"u"&&e instanceof Blob}function $0(e){return typeof FormData<"u"&&e instanceof FormData}class Sa{constructor(n,t,i,r){let o;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function eH(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,o=r):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new ui,this.context??=new Jj,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":ah.set(f,n.setHeaders[f]),l)),n.setParams&&(d=Object.keys(n.setParams).reduce((h,f)=>h.set(f,n.setParams[f]),d)),new Sa(t,i,s,{params:d,headers:l,context:u,reportProgress:c,responseType:r,withCredentials:a,transferCache:o})}}var wp=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(wp||{});class Cp{constructor(n,t=200,i="OK"){this.headers=n.headers||new ui,this.status=void 0!==n.status?n.status:t,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class ka extends Cp{constructor(n={}){super(n),this.type=wp.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new ka({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}function Ep(e,n){return{body:n,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}let Dp=(()=>{class e{constructor(t){this.handler=t}request(t,i,r={}){let o;if(t instanceof Sa)o=t;else{let c,l;c=r.headers instanceof ui?r.headers:new ui(r.headers),r.params&&(l=r.params instanceof Si?r.params:new Si({fromObject:r.params})),o=new Sa(t,i,void 0!==r.body?r.body:null,{headers:c,context:r.context,params:l,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const s=Rt(o).pipe(function qj(e,n){return _p(e,n,1)}(c=>this.handler.handle(c)));if(t instanceof Sa||"events"===r.observe)return s;const a=s.pipe(sc(c=>c instanceof ka));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(ht(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return a.pipe(ht(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return a.pipe(ht(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return a.pipe(ht(c=>c.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(t,i={}){return this.request("DELETE",t,i)}get(t,i={}){return this.request("GET",t,i)}head(t,i={}){return this.request("HEAD",t,i)}jsonp(t,i){return this.request("JSONP",t,{params:(new Si).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,i={}){return this.request("OPTIONS",t,i)}patch(t,i,r={}){return this.request("PATCH",t,Ep(r,i))}post(t,i,r={}){return this.request("POST",t,Ep(r,i))}put(t,i,r={}){return this.request("PUT",t,Ep(r,i))}static{this.\u0275fac=function(i){return new(i||e)(N(vp))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const aH=new D(""),vH=new D(""),J0="b",ex="h",tx="s",nx="st",ix="u",rx="rt",xd=new D(""),yH=["GET","HEAD"];function wH(e,n){const{isCacheActive:t,...i}=T(xd),{transferCache:r,method:o}=e;if(!t||!1===r||"POST"===o&&!i.includePostRequests&&!r||"POST"!==o&&!yH.includes(o)||!i.includeRequestsWithAuthHeaders&&function CH(e){return e.headers.has("authorization")||e.headers.has("proxy-authorization")}(e)||!1===i.filter?.(e))return n(e);const s=T(ao),a=T(vH,{optional:!0}),c=up(T(ii));if(a&&!c)throw new w(2803,!1);const l=c&&a?function IH(e,n){const t=new URL(e,"resolve://").origin,i=n[t];return i?e.replace(t,i):e}(e.url,a):e.url,d=function DH(e,n){const{params:t,method:i,responseType:r}=e,o=ox(t);let s=e.serializeBody();s instanceof URLSearchParams?s=ox(s):"string"!=typeof s&&(s="");const c=function xH(e){let n=0;for(const t of e)n=Math.imul(31,n)+t.charCodeAt(0)|0;return n+=2147483648,n.toString()}([i,r,n,s,o].join("|"));return c}(e,l),u=s.get(d,null);let h=i.includeHeaders;if("object"==typeof r&&r.includeHeaders&&(h=r.includeHeaders),u){const{[J0]:f,[rx]:m,[ex]:p,[tx]:b,[nx]:E,[ix]:g}=u;let S=f;switch(m){case"arraybuffer":S=(new TextEncoder).encode(f).buffer;break;case"blob":S=new Blob([f])}let A=new ui(p);return Rt(new ka({body:S,headers:A,status:b,statusText:E,url:g}))}return n(e).pipe(Ta(f=>{f instanceof ka&&c&&s.set(d,{[J0]:f.body,[ex]:EH(f.headers,h),[tx]:f.status,[nx]:f.statusText,[ix]:l,[rx]:e.responseType})}))}function EH(e,n){if(!n)return{};const t={};for(const i of n){const r=e.getAll(i);null!==r&&(t[i]=r)}return t}function ox(e){return[...e.keys()].sort().map(n=>`${n}=${e.getAll(n)}`).join("&")}function MH(e){return[{provide:xd,useFactory:()=>(Et("NgHttpTransferCache"),{isCacheActive:!0,...e})},{provide:aH,useValue:wH,multi:!0,deps:[ao,xd]},{provide:zl,multi:!0,useFactory:()=>{const n=T(qn),t=T(xd);return()=>{Lm(n).then(()=>{t.isCacheActive=!1})}}}]}class TH extends H2{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ip extends TH{static makeCurrent(){!function j2(e){u0??=e}(new Ip)}onAndCancel(n,t,i){return n.addEventListener(t,i),()=>{n.removeEventListener(t,i)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.remove()}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function SH(){return Aa=Aa||document.querySelector("base"),Aa?Aa.getAttribute("href"):null}();return null==t?null:function kH(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){Aa=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function IB(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const i=t.indexOf("="),[r,o]=-1==i?[t,""]:[t.slice(0,i),t.slice(i+1)];if(r.trim()===n)return decodeURIComponent(o)}return null}(document.cookie,n)}}let Aa=null,NH=(()=>{class e{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const Tp=new D("");let sx=(()=>{class e{constructor(t,i){this._zone=i,this._eventNameToPlugin=new Map,t.forEach(r=>{r.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,i,r){return this._findPluginFor(i).addEventListener(t,i,r)}getZone(){return this._zone}_findPluginFor(t){let i=this._eventNameToPlugin.get(t);if(i)return i;if(i=this._plugins.find(o=>o.supports(t)),!i)throw new w(5101,!1);return this._eventNameToPlugin.set(t,i),i}static{this.\u0275fac=function(i){return new(i||e)(N(Tp),N(Y))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();class ax{constructor(n){this._doc=n}}const Sp="ng-app-id";let cx=(()=>{class e{constructor(t,i,r,o={}){this.doc=t,this.appId=i,this.nonce=r,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=up(o),this.resetHostNodes()}addStyles(t){for(const i of t)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(t){for(const i of t)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(i=>i.remove()),t.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const i of this.getAllStyles())this.addStyleToHost(t,i)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const i of this.hostNodes)this.addStyleToHost(i,t)}onStyleRemoved(t){const i=this.styleRef;i.get(t)?.elements?.forEach(r=>r.remove()),i.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${Sp}="${this.appId}"]`);if(t?.length){const i=new Map;return t.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(t,i){const r=this.styleRef;if(r.has(t)){const o=r.get(t);return o.usage+=i,o.usage}return r.set(t,{usage:i,elements:[]}),i}getStyleElement(t,i){const r=this.styleNodesInDOM,o=r?.get(i);if(o?.parentNode===t)return r.delete(i),o.removeAttribute(Sp),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(Sp,this.appId),t.appendChild(s),s}}addStyleToHost(t,i){const r=this.getStyleElement(t,i),o=this.styleRef,s=o.get(i)?.elements;s?s.push(r):o.set(i,{elements:[r],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static{this.\u0275fac=function(i){return new(i||e)(N(lt),N(oo),N(Fh,8),N(ii))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const kp={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/Math/MathML"},Ap=/%COMP%/g,PH=new D("",{providedIn:"root",factory:()=>!0});function dx(e,n){return n.map(t=>t.replace(Ap,e))}let Np=(()=>{class e{constructor(t,i,r,o,s,a,c,l=null){this.eventManager=t,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=l,this.rendererByCompId=new Map,this.platformIsServer=up(a),this.defaultRenderer=new Op(t,s,c,this.platformIsServer)}createRenderer(t,i){if(!t||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===vn.ShadowDom&&(i={...i,encapsulation:vn.Emulated});const r=this.getOrCreateRenderer(t,i);return r instanceof hx?r.applyToHost(t):r instanceof Fp&&r.applyStyles(),r}getOrCreateRenderer(t,i){const r=this.rendererByCompId;let o=r.get(i.id);if(!o){const s=this.doc,a=this.ngZone,c=this.eventManager,l=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.platformIsServer;switch(i.encapsulation){case vn.Emulated:o=new hx(c,l,i,this.appId,d,s,a,u);break;case vn.ShadowDom:return new jH(c,l,t,i,s,a,this.nonce,u);default:o=new Fp(c,l,i,d,s,a,u)}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||e)(N(sx),N(cx),N(oo),N(PH),N(lt),N(ii),N(Y),N(Fh))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();class Op{constructor(n,t,i,r){this.eventManager=n,this.doc=t,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,t){return t?this.doc.createElementNS(kp[t]||t,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,t){(ux(n)?n.content:n).appendChild(t)}insertBefore(n,t,i){n&&(ux(n)?n.content:n).insertBefore(t,i)}removeChild(n,t){t.remove()}selectRootElement(n,t){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new w(-5104,!1);return t||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,i,r){if(r){t=r+":"+t;const o=kp[r];o?n.setAttributeNS(o,t,i):n.setAttribute(t,i)}else n.setAttribute(t,i)}removeAttribute(n,t,i){if(i){const r=kp[i];r?n.removeAttributeNS(r,t):n.removeAttribute(`${i}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,i,r){r&(Ci.DashCase|Ci.Important)?n.style.setProperty(t,i,r&Ci.Important?"important":""):n.style[t]=i}removeStyle(n,t,i){i&Ci.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,i){null!=n&&(n[t]=i)}setValue(n,t){n.nodeValue=t}listen(n,t,i){if("string"==typeof n&&!(n=Ea().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${t}`);return this.eventManager.addEventListener(n,t,this.decoratePreventDefault(i))}decoratePreventDefault(n){return t=>{if("__ngUnwrap__"===t)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(t)):n(t))&&t.preventDefault()}}}function ux(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class jH extends Op{constructor(n,t,i,r,o,s,a,c){super(n,o,s,c),this.sharedStylesHost=t,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const l=dx(r.id,r.styles);for(const d of l){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=d,this.shadowRoot.appendChild(u)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,t){return super.appendChild(this.nodeOrShadowRoot(n),t)}insertBefore(n,t,i){return super.insertBefore(this.nodeOrShadowRoot(n),t,i)}removeChild(n,t){return super.removeChild(null,t)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Fp extends Op{constructor(n,t,i,r,o,s,a,c){super(n,o,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=r,this.styles=c?dx(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class hx extends Fp{constructor(n,t,i,r,o,s,a,c){const l=r+"-"+i.id;super(n,t,i,o,s,a,c,l),this.contentAttr=function LH(e){return"_ngcontent-%COMP%".replace(Ap,e)}(l),this.hostAttr=function VH(e){return"_nghost-%COMP%".replace(Ap,e)}(l)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,t){const i=super.createElement(n,t);return super.setAttribute(i,this.contentAttr,""),i}}let HH=(()=>{class e extends ax{constructor(t){super(t)}supports(t){return!0}addEventListener(t,i,r){return t.addEventListener(i,r,!1),()=>this.removeEventListener(t,i,r)}removeEventListener(t,i,r){return t.removeEventListener(i,r)}static{this.\u0275fac=function(i){return new(i||e)(N(lt))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const fx=["alt","control","meta","shift"],UH={"\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"},zH={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let $H=(()=>{class e extends ax{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,i,r){const o=e.parseEventName(i),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ea().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const i=t.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const o=e._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),fx.forEach(l=>{const d=i.indexOf(l);d>-1&&(i.splice(d,1),s+=l+".")}),s+=o,0!=i.length||0===o.length)return null;const c={};return c.domEventName=r,c.fullKey=s,c}static matchEventFullKeyCode(t,i){let r=UH[t.key]||t.key,o="";return i.indexOf("code.")>-1&&(r=t.code,o="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),fx.forEach(s=>{s!==r&&(0,zH[s])(t)&&(o+=s+".")}),o+=r,o===i)}static eventCallback(t,i,r){return o=>{e.matchEventFullKeyCode(o,t)&&r.runGuarded(()=>i(o))}}static _normalizeKey(t){return"esc"===t?"escape":t}static{this.\u0275fac=function(i){return new(i||e)(N(lt))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const px=[{provide:ii,useValue:I0},{provide:pv,useValue:function GH(){Ip.makeCurrent()},multi:!0},{provide:lt,useFactory:function WH(){return function TA(e){Oh=e}(document),document},deps:[]}],ZH=TD(n2,"browser",px),KH=new D(""),gx=[{provide:Hl,useClass:class AH{addToWindow(n){Ae.getAngularTestability=(i,r=!0)=>{const o=n.findTestabilityInTree(i,r);if(null==o)throw new w(5103,!1);return o},Ae.getAllAngularTestabilities=()=>n.getAllTestabilities(),Ae.getAllAngularRootElements=()=>n.getAllRootElements(),Ae.frameworkStabilizers||(Ae.frameworkStabilizers=[]),Ae.frameworkStabilizers.push(i=>{const r=Ae.getAllAngularTestabilities();let o=r.length;const s=function(){o--,0==o&&i()};r.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,t,i){return null==t?null:n.getTestability(t)??(i?Ea().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:gD,useClass:Fm,deps:[Y,Rm,Hl]},{provide:Fm,useClass:Fm,deps:[Y,Rm,Hl]}],bx=[{provide:Gu,useValue:"root"},{provide:Yt,useFactory:function qH(){return new Yt},deps:[]},{provide:Tp,useClass:HH,multi:!0,deps:[lt,Y,ii]},{provide:Tp,useClass:$H,multi:!0,deps:[lt]},Np,cx,sx,{provide:bl,useExisting:Np},{provide:class sj{},useClass:NH,deps:[]},[]];let _x=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:oo,useValue:t.appId}]}}static{this.\u0275fac=function(i){return new(i||e)(N(KH,12))}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({providers:[...bx,...gx],imports:[br,i2]})}}return e})(),Md=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:function(i){let r=null;return r=i?new(i||e):N(JH),r},providedIn:"root"})}}return e})(),JH=(()=>{class e extends Md{constructor(t){super(),this._doc=t}sanitize(t,i){if(null==i)return null;switch(t){case _t.NONE:return i;case _t.HTML:return jn(i,"HTML")?Qt(i):Vv(this._doc,String(i)).toString();case _t.STYLE:return jn(i,"Style")?Qt(i):i;case _t.SCRIPT:if(jn(i,"Script"))return Qt(i);throw new w(5200,!1);case _t.URL:return jn(i,"URL")?Qt(i):Xc(String(i));case _t.RESOURCE_URL:if(jn(i,"ResourceURL"))return Qt(i);throw new w(5201,!1);default:throw new w(5202,!1)}}bypassSecurityTrustHtml(t){return function YA(e){return new $A(e)}(t)}bypassSecurityTrustStyle(t){return function QA(e){return new GA(e)}(t)}bypassSecurityTrustScript(t){return function XA(e){return new qA(e)}(t)}bypassSecurityTrustUrl(t){return function JA(e){return new WA(e)}(t)}bypassSecurityTrustResourceUrl(t){return function eN(e){return new ZA(e)}(t)}static{this.\u0275fac=function(i){return new(i||e)(N(lt))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var vr=function(e){return e[e.NoHttpTransferCache=0]="NoHttpTransferCache",e[e.HttpTransferCacheOptions=1]="HttpTransferCacheOptions",e[e.I18nSupport=2]="I18nSupport",e[e.EventReplay=3]="EventReplay",e}(vr||{});function eU(...e){const n=[],t=new Set,i=t.has(vr.HttpTransferCacheOptions);for(const{\u0275providers:r,\u0275kind:o}of e)t.add(o),r.length&&n.push(r);return ms([[],O2(),t.has(vr.NoHttpTransferCache)||i?[]:MH({}),n])}var W=function(e){return e[e.State=0]="State",e[e.Transition=1]="Transition",e[e.Sequence=2]="Sequence",e[e.Group=3]="Group",e[e.Animate=4]="Animate",e[e.Keyframes=5]="Keyframes",e[e.Style=6]="Style",e[e.Trigger=7]="Trigger",e[e.Reference=8]="Reference",e[e.AnimateChild=9]="AnimateChild",e[e.AnimateRef=10]="AnimateRef",e[e.Query=11]="Query",e[e.Stagger=12]="Stagger",e}(W||{});const hi="*";function wx(e,n){return{type:W.Trigger,name:e,definitions:n,options:{}}}function Rp(e,n=null){return{type:W.Animate,styles:n,timings:e}}function Wo(e){return{type:W.Style,styles:e,offset:null}}function nU(e,n,t){return{type:W.State,name:e,styles:n,options:t}}function Pp(e,n,t=null){return{type:W.Transition,expr:e,animation:n,options:t}}class Na{constructor(n=0,t=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+t}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const t="start"==n?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class Cx{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let t=0,i=0,r=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++t==o&&this._onFinish()}),s.onDestroy(()=>{++i==o&&this._onDestroy()}),s.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const t=n*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,t/i.totalTime):1;i.setPosition(r)})}getPosition(){const n=this.players.reduce((t,i)=>null===t||i.totalTime>t.totalTime?i:t,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const t="start"==n?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}function Ex(e){return new w(3e3,!1)}function Ai(e){switch(e.length){case 0:return new Na;case 1:return e[0];default:return new Cx(e)}}function Dx(e,n,t=new Map,i=new Map){const r=[],o=[];let s=-1,a=null;if(n.forEach(c=>{const l=c.get("offset"),d=l==s,u=d&&a||new Map;c.forEach((h,f)=>{let m=f,p=h;if("offset"!==f)switch(m=e.normalizePropertyName(m,r),p){case"!":p=t.get(f);break;case hi:p=i.get(f);break;default:p=e.normalizeStyleValue(f,m,p,r)}u.set(m,p)}),d||o.push(u),a=u,s=l}),r.length)throw function SU(){return new w(3502,!1)}();return o}function Vp(e,n,t,i){switch(n){case"start":e.onStart(()=>i(t&&Bp(t,"start",e)));break;case"done":e.onDone(()=>i(t&&Bp(t,"done",e)));break;case"destroy":e.onDestroy(()=>i(t&&Bp(t,"destroy",e)))}}function Bp(e,n,t){const o=jp(e.element,e.triggerName,e.fromState,e.toState,n||e.phaseName,t.totalTime??e.totalTime,!!t.disabled),s=e._data;return null!=s&&(o._data=s),o}function jp(e,n,t,i,r="",o=0,s){return{element:e,triggerName:n,fromState:t,toState:i,phaseName:r,totalTime:o,disabled:!!s}}function nn(e,n,t){let i=e.get(n);return i||e.set(n,i=t),i}function xx(e){const n=e.indexOf(":");return[e.substring(1,n),e.slice(n+1)]}const HU=typeof document>"u"?null:document.documentElement;function Hp(e){const n=e.parentNode||e.host||null;return n===HU?null:n}let yr=null,Mx=!1;function Ix(e,n){for(;n;){if(n===e)return!0;n=Hp(n)}return!1}function Tx(e,n,t){if(t)return Array.from(e.querySelectorAll(n));const i=e.querySelector(n);return i?[i]:[]}let Up=(()=>{class e{validateStyleProperty(t){return function zU(e){yr||(yr=function $U(){return typeof document<"u"?document.body:null}()||{},Mx=!!yr.style&&"WebkitAppearance"in yr.style);let n=!0;return yr.style&&!function UU(e){return"ebkit"==e.substring(1,6)}(e)&&(n=e in yr.style,!n&&Mx&&(n="Webkit"+e.charAt(0).toUpperCase()+e.slice(1)in yr.style)),n}(t)}containsElement(t,i){return Ix(t,i)}getParentElement(t){return Hp(t)}query(t,i,r){return Tx(t,i,r)}computeStyle(t,i,r){return r||""}animate(t,i,r,o,s,a=[],c){return new Na(r,o)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();class zp{static{this.NOOP=new Up}}class $p{}const qU=1e3,Gp="ng-enter",Td="ng-leave",Sd="ng-trigger",kd=".ng-trigger",kx="ng-animating",qp=".ng-animating";function fi(e){if("number"==typeof e)return e;const n=e.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Wp(parseFloat(n[1]),n[2])}function Wp(e,n){return"s"===n?e*qU:e}function Ad(e,n,t){return e.hasOwnProperty("duration")?e:function ZU(e,n,t){let r,o=0,s="";if("string"==typeof e){const a=e.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return n.push(Ex()),{duration:0,delay:0,easing:""};r=Wp(parseFloat(a[1]),a[2]);const c=a[3];null!=c&&(o=Wp(parseFloat(c),a[4]));const l=a[5];l&&(s=l)}else r=e;if(!t){let a=!1,c=n.length;r<0&&(n.push(function aU(){return new w(3100,!1)}()),a=!0),o<0&&(n.push(function cU(){return new w(3101,!1)}()),a=!0),a&&n.splice(c,0,Ex())}return{duration:r,delay:o,easing:s}}(e,n,t)}function Zn(e,n,t){n.forEach((i,r)=>{const o=Kp(r);t&&!t.has(r)&&t.set(r,e.style[o]),e.style[o]=i})}function wr(e,n){n.forEach((t,i)=>{const r=Kp(i);e.style[r]=""})}function Oa(e){return Array.isArray(e)?1==e.length?e[0]:function tU(e,n=null){return{type:W.Sequence,steps:e,options:n}}(e):e}const Zp=new RegExp("{{\\s*(.+?)\\s*}}","g");function Nx(e){let n=[];if("string"==typeof e){let t;for(;t=Zp.exec(e);)n.push(t[1]);Zp.lastIndex=0}return n}function Fa(e,n,t){const i=`${e}`,r=i.replace(Zp,(o,s)=>{let a=n[s];return null==a&&(t.push(function dU(){return new w(3003,!1)}()),a=""),a.toString()});return r==i?e:r}const QU=/-+([a-z0-9])/g;function Kp(e){return e.replace(QU,(...n)=>n[1].toUpperCase())}function rn(e,n,t){switch(n.type){case W.Trigger:return e.visitTrigger(n,t);case W.State:return e.visitState(n,t);case W.Transition:return e.visitTransition(n,t);case W.Sequence:return e.visitSequence(n,t);case W.Group:return e.visitGroup(n,t);case W.Animate:return e.visitAnimate(n,t);case W.Keyframes:return e.visitKeyframes(n,t);case W.Style:return e.visitStyle(n,t);case W.Reference:return e.visitReference(n,t);case W.AnimateChild:return e.visitAnimateChild(n,t);case W.AnimateRef:return e.visitAnimateRef(n,t);case W.Query:return e.visitQuery(n,t);case W.Stagger:return e.visitStagger(n,t);default:throw function uU(){return new w(3004,!1)}()}}function Yp(e,n){return window.getComputedStyle(e)[n]}const e3=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Ox extends $p{normalizePropertyName(n,t){return Kp(n)}normalizeStyleValue(n,t,i,r){let o="";const s=i.toString().trim();if(e3.has(t)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function hU(){return new w(3005,!1)}())}return s+o}}const Nd="*";const Od=new Set(["true","1"]),Fd=new Set(["false","0"]);function Fx(e,n){const t=Od.has(e)||Fd.has(e),i=Od.has(n)||Fd.has(n);return(r,o)=>{let s=e==Nd||e==r,a=n==Nd||n==o;return!s&&t&&"boolean"==typeof r&&(s=r?Od.has(e):Fd.has(e)),!a&&i&&"boolean"==typeof o&&(a=o?Od.has(n):Fd.has(n)),s&&a}}const r3=new RegExp("s*:selfs*,?","g");function Qp(e,n,t,i){return new o3(e).build(n,t,i)}class o3{constructor(n){this._driver=n}build(n,t,i){const r=new c3(t);return this._resetContextStyleTimingState(r),rn(this,Oa(n),r)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,t){let i=t.queryCount=0,r=t.depCount=0;const o=[],s=[];return"@"==n.name.charAt(0)&&t.errors.push(function fU(){return new w(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(t),a.type==W.State){const c=a,l=c.name;l.toString().split(/\s*,\s*/).forEach(d=>{c.name=d,o.push(this.visitState(c,t))}),c.name=l}else if(a.type==W.Transition){const c=this.visitTransition(a,t);i+=c.queryCount,r+=c.depCount,s.push(c)}else t.errors.push(function mU(){return new w(3007,!1)}())}),{type:W.Trigger,name:n.name,states:o,transitions:s,queryCount:i,depCount:r,options:null}}visitState(n,t){const i=this.visitStyle(n.styles,t),r=n.options&&n.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(c=>{Nx(c).forEach(l=>{s.hasOwnProperty(l)||o.add(l)})})}),o.size&&t.errors.push(function pU(){return new w(3008,!1)}(0,o.values()))}return{type:W.State,name:n.name,style:i,options:r?{params:r}:null}}visitTransition(n,t){t.queryCount=0,t.depCount=0;const i=rn(this,Oa(n.animation),t),r=function t3(e,n){const t=[];return"string"==typeof e?e.split(/\s*,\s*/).forEach(i=>function n3(e,n,t){if(":"==e[0]){const c=function i3(e,n){switch(e){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i) *"}}(e,t);if("function"==typeof c)return void n.push(c);e=c}const i=e.match(/^(\*|[-\w]+)\s*([=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return t.push(function DU(){return new w(3015,!1)}()),n;const r=i[1],o=i[2],s=i[3];n.push(Fx(r,s)),"<"==o[0]&&(r!=Nd||s!=Nd)&&n.push(Fx(s,r))}(i,t,n)):t.push(e),t}(n.expr,t.errors);return{type:W.Transition,matchers:r,animation:i,queryCount:t.queryCount,depCount:t.depCount,options:Cr(n.options)}}visitSequence(n,t){return{type:W.Sequence,steps:n.steps.map(i=>rn(this,i,t)),options:Cr(n.options)}}visitGroup(n,t){const i=t.currentTime;let r=0;const o=n.steps.map(s=>{t.currentTime=i;const a=rn(this,s,t);return r=Math.max(r,t.currentTime),a});return t.currentTime=r,{type:W.Group,steps:o,options:Cr(n.options)}}visitAnimate(n,t){const i=function d3(e,n){if(e.hasOwnProperty("duration"))return e;if("number"==typeof e)return Xp(Ad(e,n).duration,0,"");const t=e;if(t.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=Xp(0,0,"");return o.dynamic=!0,o.strValue=t,o}const r=Ad(t,n);return Xp(r.duration,r.delay,r.easing)}(n.timings,t.errors);t.currentAnimateTimings=i;let r,o=n.styles?n.styles:Wo({});if(o.type==W.Keyframes)r=this.visitKeyframes(o,t);else{let s=n.styles,a=!1;if(!s){a=!0;const l={};i.easing&&(l.easing=i.easing),s=Wo(l)}t.currentTime+=i.duration+i.delay;const c=this.visitStyle(s,t);c.isEmptyStep=a,r=c}return t.currentAnimateTimings=null,{type:W.Animate,timings:i,style:r,options:null}}visitStyle(n,t){const i=this._makeStyleAst(n,t);return this._validateStyleAst(i,t),i}_makeStyleAst(n,t){const i=[],r=Array.isArray(n.styles)?n.styles:[n.styles];for(let a of r)"string"==typeof a?a===hi?i.push(a):t.errors.push(new w(3002,!1)):i.push(new Map(Object.entries(a)));let o=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let c of a.values())if(c.toString().indexOf("{{")>=0){o=!0;break}}),{type:W.Style,styles:i,easing:s,offset:n.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(n,t){const i=t.currentAnimateTimings;let r=t.currentTime,o=t.currentTime;i&&o>0&&(o-=i.duration+i.delay),n.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,c)=>{const l=t.collectedStyles.get(t.currentQuerySelector),d=l.get(c);let u=!0;d&&(o!=r&&o>=d.startTime&&r<=d.endTime&&(t.errors.push(function bU(){return new w(3010,!1)}()),u=!1),o=d.startTime),u&&l.set(c,{startTime:o,endTime:r}),t.options&&function YU(e,n,t){const i=n.params||{},r=Nx(e);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||t.push(function lU(){return new w(3001,!1)}())})}(a,t.options,t.errors)})})}visitKeyframes(n,t){const i={type:W.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function _U(){return new w(3011,!1)}()),i;let o=0;const s=[];let a=!1,c=!1,l=0;const d=n.steps.map(E=>{const g=this._makeStyleAst(E,t);let S=null!=g.offset?g.offset:function l3(e){if("string"==typeof e)return null;let n=null;if(Array.isArray(e))e.forEach(t=>{if(t instanceof Map&&t.has("offset")){const i=t;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(e instanceof Map&&e.has("offset")){const t=e;n=parseFloat(t.get("offset")),t.delete("offset")}return n}(g.styles),A=0;return null!=S&&(o++,A=g.offset=S),c=c||A<0||A>1,a=a||A0&&o{const S=h>0?g==f?1:h*g:s[g],A=S*b;t.currentTime=m+p.delay+A,p.duration=A,this._validateStyleAst(E,t),E.offset=S,i.styles.push(E)}),i}visitReference(n,t){return{type:W.Reference,animation:rn(this,Oa(n.animation),t),options:Cr(n.options)}}visitAnimateChild(n,t){return t.depCount++,{type:W.AnimateChild,options:Cr(n.options)}}visitAnimateRef(n,t){return{type:W.AnimateRef,animation:this.visitReference(n.animation,t),options:Cr(n.options)}}visitQuery(n,t){const i=t.currentQuerySelector,r=n.options||{};t.queryCount++,t.currentQuery=n;const[o,s]=function s3(e){const n=!!e.split(/\s*,\s*/).find(t=>":self"==t);return n&&(e=e.replace(r3,"")),e=e.replace(/@\*/g,kd).replace(/@\w+/g,t=>kd+"-"+t.slice(1)).replace(/:animating/g,qp),[e,n]}(n.selector);t.currentQuerySelector=i.length?i+" "+o:o,nn(t.collectedStyles,t.currentQuerySelector,new Map);const a=rn(this,Oa(n.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:W.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Cr(n.options)}}visitStagger(n,t){t.currentQuery||t.errors.push(function CU(){return new w(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:Ad(n.timings,t.errors,!0);return{type:W.Stagger,animation:rn(this,Oa(n.animation),t),timings:i,options:null}}}class c3{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Cr(e){return e?(e={...e}).params&&(e.params=function a3(e){return e?{...e}:null}(e.params)):e={},e}function Xp(e,n,t){return{duration:e,delay:n,easing:t}}function Jp(e,n,t,i,r,o,s=null,a=!1){return{type:1,element:e,keyframes:n,preStyleProps:t,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:s,subTimeline:a}}class Rd{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,t){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...t)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const f3=new RegExp(":enter","g"),p3=new RegExp(":leave","g");function eg(e,n,t,i,r,o=new Map,s=new Map,a,c,l=[]){return(new g3).buildKeyframes(e,n,t,i,r,o,s,a,c,l)}class g3{buildKeyframes(n,t,i,r,o,s,a,c,l,d=[]){l=l||new Rd;const u=new tg(n,t,l,r,o,d,[]);u.options=c;const h=c.delay?fi(c.delay):0;u.currentTimeline.delayNextStep(h),u.currentTimeline.setStyles([s],null,u.errors,c),rn(this,i,u);const f=u.timelines.filter(m=>m.containsAnimation());if(f.length&&a.size){let m;for(let p=f.length-1;p>=0;p--){const b=f[p];if(b.element===t){m=b;break}}m&&!m.allowOnlyTimelineStyles()&&m.setStyles([a],null,u.errors,c)}return f.length?f.map(m=>m.buildKeyframes()):[Jp(t,[],[],[],0,h,"",!1)]}visitTrigger(n,t){}visitState(n,t){}visitTransition(n,t){}visitAnimateChild(n,t){const i=t.subInstructions.get(t.element);if(i){const r=t.createSubContext(n.options),o=t.currentTimeline.currentTime,s=this._visitSubInstructions(i,r,r.options);o!=s&&t.transformIntoNewTimeline(s)}t.previousNode=n}visitAnimateRef(n,t){const i=t.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],t,i),this.visitReference(n.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=n}_applyAnimationRefDelays(n,t,i){for(const r of n){const o=r?.delay;if(o){const s="number"==typeof o?o:fi(Fa(o,r?.params??{},t.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,t,i){let o=t.currentTimeline.currentTime;const s=null!=i.duration?fi(i.duration):null,a=null!=i.delay?fi(i.delay):null;return 0!==s&&n.forEach(c=>{const l=t.appendInstructionToTimeline(c,s,a);o=Math.max(o,l.duration+l.delay)}),o}visitReference(n,t){t.updateOptions(n.options,!0),rn(this,n.animation,t),t.previousNode=n}visitSequence(n,t){const i=t.subContextCount;let r=t;const o=n.options;if(o&&(o.params||o.delay)&&(r=t.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){r.previousNode.type==W.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=Pd);const s=fi(o.delay);r.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>rn(this,s,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),t.previousNode=n}visitGroup(n,t){const i=[];let r=t.currentTimeline.currentTime;const o=n.options&&n.options.delay?fi(n.options.delay):0;n.steps.forEach(s=>{const a=t.createSubContext(n.options);o&&a.delayNextStep(o),rn(this,s,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>t.currentTimeline.mergeTimelineCollectedStyles(s)),t.transformIntoNewTimeline(r),t.previousNode=n}_visitTiming(n,t){if(n.dynamic){const i=n.strValue;return Ad(t.params?Fa(i,t.params,t.errors):i,t.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,t){const i=t.currentAnimateTimings=this._visitTiming(n.timings,t),r=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),r.snapshotCurrentStyles());const o=n.style;o.type==W.Keyframes?this.visitKeyframes(o,t):(t.incrementTime(i.duration),this.visitStyle(o,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=n}visitStyle(n,t){const i=t.currentTimeline,r=t.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=r&&r.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(o):i.setStyles(n.styles,o,t.errors,t.options),t.previousNode=n}visitKeyframes(n,t){const i=t.currentAnimateTimings,r=t.currentTimeline.duration,o=i.duration,a=t.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(c=>{a.forwardTime((c.offset||0)*o),a.setStyles(c.styles,c.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(r+o),t.previousNode=n}visitQuery(n,t){const i=t.currentTimeline.currentTime,r=n.options||{},o=r.delay?fi(r.delay):0;o&&(t.previousNode.type===W.Style||0==i&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=Pd);let s=i;const a=t.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!r.optional,t.errors);t.currentQueryTotal=a.length;let c=null;a.forEach((l,d)=>{t.currentQueryIndex=d;const u=t.createSubContext(n.options,l);o&&u.delayNextStep(o),l===t.element&&(c=u.currentTimeline),rn(this,n.animation,u),u.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,u.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(s),c&&(t.currentTimeline.mergeTimelineCollectedStyles(c),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=n}visitStagger(n,t){const i=t.parentContext,r=t.currentTimeline,o=n.timings,s=Math.abs(o.duration),a=s*(t.currentQueryTotal-1);let c=s*t.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":c=a-c;break;case"full":c=i.currentStaggerTime}const d=t.currentTimeline;c&&d.delayNextStep(c);const u=d.currentTime;rn(this,n.animation,t),t.previousNode=n,i.currentStaggerTime=r.currentTime-u+(r.startTime-i.currentTimeline.startTime)}}const Pd={};class tg{constructor(n,t,i,r,o,s,a,c){this._driver=n,this.element=t,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Pd,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Ld(this._driver,t,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,t){if(!n)return;const i=n;let r=this.options;null!=i.duration&&(r.duration=fi(i.duration)),null!=i.delay&&(r.delay=fi(i.delay));const o=i.params;if(o){let s=r.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!t||!s.hasOwnProperty(a))&&(s[a]=Fa(o[a],s,this.errors))})}}_copyOptions(){const n={};if(this.options){const t=this.options.params;if(t){const i=n.params={};Object.keys(t).forEach(r=>{i[r]=t[r]})}}return n}createSubContext(n=null,t,i){const r=t||this.element,o=new tg(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(n),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(n){return this.previousNode=Pd,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,t,i){const r={duration:t??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},o=new b3(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,r,n.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,t,i,r,o,s){let a=[];if(r&&a.push(this.element),n.length>0){n=(n=n.replace(f3,"."+this._enterClassName)).replace(p3,"."+this._leaveClassName);let l=this._driver.query(this.element,n,1!=i);0!==i&&(l=i<0?l.slice(l.length+i,l.length):l.slice(0,i)),a.push(...l)}return!o&&0==a.length&&s.push(function EU(){return new w(3014,!1)}()),a}}class Ld{constructor(n,t,i,r){this._driver=n,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+n),t&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,t){return this.applyStylesToKeyframe(),new Ld(this._driver,n,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,t){this._localTimelineStyles.set(n,t),this._globalTimelineStyles.set(n,t),this._styleSummary.set(n,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||hi),this._currentKeyframe.set(t,hi);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,t,i,r){t&&this._previousKeyframe.set("easing",t);const o=r&&r.params||{},s=function _3(e,n){const t=new Map;let i;return e.forEach(r=>{if("*"===r){i??=n.keys();for(let o of i)t.set(o,hi)}else for(let[o,s]of r)t.set(o,s)}),t}(n,this._globalTimelineStyles);for(let[a,c]of s){const l=Fa(c,o,i);this._pendingStyles.set(a,l),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??hi),this._updateStyle(a,l)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,t)=>{this._currentKeyframe.set(t,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,n)}))}snapshotCurrentStyles(){for(let[n,t]of this._localTimelineStyles)this._pendingStyles.set(n,t),this._updateStyle(n,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let t in this._currentKeyframe)n.push(t);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((t,i)=>{const r=this._styleSummary.get(i);(!r||t.time>r.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,t=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,c)=>{const l=new Map([...this._backFill,...a]);l.forEach((d,u)=>{"!"===d?n.add(u):d===hi&&t.add(u)}),i||l.set("offset",c/this.duration),r.push(l)});const o=[...n.values()],s=[...t.values()];if(i){const a=r[0],c=new Map(a);a.set("offset",0),c.set("offset",1),r=[a,c]}return Jp(this.element,r,o,s,this.duration,this.startTime,this.easing,!1)}}class b3 extends Ld{constructor(n,t,i,r,o,s,a=!1){super(n,t,s.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:t,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&t){const o=[],s=i+t,a=t/s,c=new Map(n[0]);c.set("offset",0),o.push(c);const l=new Map(n[0]);l.set("offset",Lx(a)),o.push(l);const d=n.length-1;for(let u=1;u<=d;u++){let h=new Map(n[u]);const f=h.get("offset");h.set("offset",Lx((t+f*i)/s)),o.push(h)}i=s,t=0,r="",n=o}return Jp(this.element,n,this.preStyleProps,this.postStyleProps,i,t,r,!0)}}function Lx(e,n=3){const t=Math.pow(10,n-1);return Math.round(e*t)/t}function Vx(e,n,t,i,r,o,s,a,c,l,d,u,h){return{type:0,element:e,triggerName:n,isRemovalTransition:r,fromState:t,fromStyles:o,toState:i,toStyles:s,timelines:a,queriedElements:c,preStyleProps:l,postStyleProps:d,totalTime:u,errors:h}}const ng={};class Bx{constructor(n,t,i){this._triggerName=n,this.ast=t,this._stateStyles=i}match(n,t,i,r){return function v3(e,n,t,i,r){return e.some(o=>o(n,t,i,r))}(this.ast.matchers,n,t,i,r)}buildStyles(n,t,i){let r=this._stateStyles.get("*");return void 0!==n&&(r=this._stateStyles.get(n?.toString())||r),r?r.buildStyles(t,i):new Map}build(n,t,i,r,o,s,a,c,l,d){const u=[],h=this.ast.options&&this.ast.options.params||ng,m=this.buildStyles(i,a&&a.params||ng,u),p=c&&c.params||ng,b=this.buildStyles(r,p,u),E=new Set,g=new Map,S=new Map,A="void"===r,X={params:jx(p,h),delay:this.ast.options?.delay},ie=d?[]:eg(n,t,this.ast.animation,o,s,m,b,X,l,u);let se=0;return ie.forEach(Be=>{se=Math.max(Be.duration+Be.delay,se)}),u.length?Vx(t,this._triggerName,i,r,A,m,b,[],[],g,S,se,u):(ie.forEach(Be=>{const Kn=Be.element,is=nn(g,Kn,new Set);Be.preStyleProps.forEach(kr=>is.add(kr));const vT=nn(S,Kn,new Set);Be.postStyleProps.forEach(kr=>vT.add(kr)),Kn!==t&&E.add(Kn)}),Vx(t,this._triggerName,i,r,A,m,b,ie,[...E.values()],g,S,se))}}function jx(e,n){const t={...n};return Object.entries(e).forEach(([i,r])=>{null!=r&&(t[i]=r)}),t}class y3{constructor(n,t,i){this.styles=n,this.defaultParams=t,this.normalizer=i}buildStyles(n,t){const i=new Map,r=jx(n,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=Fa(s,r,t));const c=this.normalizer.normalizePropertyName(a,t);s=this.normalizer.normalizeStyleValue(a,c,s,t),i.set(a,s)})}),i}}class C3{constructor(n,t,i){this.name=n,this.ast=t,this._normalizer=i,this.transitionFactories=[],this.states=new Map,t.states.forEach(r=>{this.states.set(r.name,new y3(r.style,r.options&&r.options.params||{},i))}),Hx(this.states,"true","1"),Hx(this.states,"false","0"),t.transitions.forEach(r=>{this.transitionFactories.push(new Bx(n,r,this.states))}),this.fallbackTransition=function E3(e,n){return new Bx(e,{type:W.Transition,animation:{type:W.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,t,i,r){return this.transitionFactories.find(s=>s.match(n,t,i,r))||null}matchStyles(n,t,i){return this.fallbackTransition.buildStyles(n,t,i)}}function Hx(e,n,t){e.has(n)?e.has(t)||e.set(t,e.get(n)):e.has(t)&&e.set(n,e.get(t))}const D3=new Rd;class x3{constructor(n,t,i){this.bodyNode=n,this._driver=t,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,t){const i=[],o=Qp(this._driver,t,i,[]);if(i.length)throw function kU(){return new w(3503,!1)}();this._animations.set(n,o)}_buildPlayer(n,t,i){const r=n.element,o=Dx(this._normalizer,n.keyframes,t,i);return this._driver.animate(r,o,n.duration,n.delay,n.easing,[],!0)}create(n,t,i={}){const r=[],o=this._animations.get(n);let s;const a=new Map;if(o?(s=eg(this._driver,t,o,Gp,Td,new Map,new Map,i,D3,r),s.forEach(d=>{const u=nn(a,d.element,new Map);d.postStyleProps.forEach(h=>u.set(h,null))})):(r.push(function AU(){return new w(3300,!1)}()),s=[]),r.length)throw function NU(){return new w(3504,!1)}();a.forEach((d,u)=>{d.forEach((h,f)=>{d.set(f,this._driver.computeStyle(u,f,hi))})});const l=Ai(s.map(d=>{const u=a.get(d.element);return this._buildPlayer(d,new Map,u)}));return this._playersById.set(n,l),l.onDestroy(()=>this.destroy(n)),this.players.push(l),l}destroy(n){const t=this._getPlayer(n);t.destroy(),this._playersById.delete(n);const i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(n){const t=this._playersById.get(n);if(!t)throw function OU(){return new w(3301,!1)}();return t}listen(n,t,i,r){const o=jp(t,"","","");return Vp(this._getPlayer(n),i,o,r),()=>{}}command(n,t,i,r){if("register"==i)return void this.register(n,r[0]);if("create"==i)return void this.create(n,t,r[0]||{});const o=this._getPlayer(n);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(n)}}}const Ux="ng-animate-queued",ig="ng-animate-disabled",k3=[],zx={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},A3={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Nn="__ng_removed";class rg{get params(){return this.options.params}constructor(n,t=""){this.namespaceId=t;const i=n&&n.hasOwnProperty("value");if(this.value=function R3(e){return e??null}(i?n.value:n),i){const{value:o,...s}=n;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const t=n.params;if(t){const i=this.options.params;Object.keys(t).forEach(r=>{null==i[r]&&(i[r]=t[r])})}}}const Ra="void",og=new rg(Ra);class N3{constructor(n,t,i){this.id=n,this.hostElement=t,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,mn(t,this._hostClassName)}listen(n,t,i,r){if(!this._triggers.has(t))throw function FU(){return new w(3302,!1)}();if(null==i||0==i.length)throw function RU(){return new w(3303,!1)}();if(!function P3(e){return"start"==e||"done"==e}(i))throw function PU(){return new w(3400,!1)}();const o=nn(this._elementListeners,n,[]),s={name:t,phase:i,callback:r};o.push(s);const a=nn(this._engine.statesByElement,n,new Map);return a.has(t)||(mn(n,Sd),mn(n,Sd+"-"+t),a.set(t,og)),()=>{this._engine.afterFlush(()=>{const c=o.indexOf(s);c>=0&&o.splice(c,1),this._triggers.has(t)||a.delete(t)})}}register(n,t){return!this._triggers.has(n)&&(this._triggers.set(n,t),!0)}_getTrigger(n){const t=this._triggers.get(n);if(!t)throw function LU(){return new w(3401,!1)}();return t}trigger(n,t,i,r=!0){const o=this._getTrigger(t),s=new sg(this.id,t,n);let a=this._engine.statesByElement.get(n);a||(mn(n,Sd),mn(n,Sd+"-"+t),this._engine.statesByElement.set(n,a=new Map));let c=a.get(t);const l=new rg(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&l.absorbOptions(c.options),a.set(t,l),c||(c=og),l.value!==Ra&&c.value===l.value){if(!function B3(e,n){const t=Object.keys(e),i=Object.keys(n);if(t.length!=i.length)return!1;for(let r=0;r{wr(n,b),Zn(n,E)})}return}const h=nn(this._engine.playersByElement,n,[]);h.forEach(p=>{p.namespaceId==this.id&&p.triggerName==t&&p.queued&&p.destroy()});let f=o.matchTransition(c.value,l.value,n,l.params),m=!1;if(!f){if(!r)return;f=o.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:t,transition:f,fromState:c,toState:l,player:s,isFallbackTransition:m}),m||(mn(n,Ux),s.onStart(()=>{Zo(n,Ux)})),s.onDone(()=>{let p=this.players.indexOf(s);p>=0&&this.players.splice(p,1);const b=this._engine.playersByElement.get(n);if(b){let E=b.indexOf(s);E>=0&&b.splice(E,1)}}),this.players.push(s),h.push(s),s}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(t=>t.delete(n)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(r=>r.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const t=this._engine.playersByElement.get(n);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,t){const i=this._engine.driver.query(n,kd,!0);i.forEach(r=>{if(r[Nn])return;const o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(s=>s.triggerLeaveAnimation(r,t,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(n,t,i,r){const o=this._engine.statesByElement.get(n),s=new Map;if(o){const a=[];if(o.forEach((c,l)=>{if(s.set(l,c.value),this._triggers.has(l)){const d=this.trigger(n,l,Ra,r);d&&a.push(d)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,t,s),i&&Ai(a).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const t=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(t&&i){const r=new Set;t.forEach(o=>{const s=o.name;if(r.has(s))return;r.add(s);const c=this._triggers.get(s).fallbackTransition,l=i.get(s)||og,d=new rg(Ra),u=new sg(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:c,fromState:l,toState:d,player:u,isFallbackTransition:!0})})}}removeNode(n,t){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,t),this.triggerLeaveAnimation(n,t,!0))return;let r=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(n):[];if(o&&o.length)r=!0;else{let s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(n),r)i.markElementAsRemoved(this.id,n,!1,t);else{const o=n[Nn];(!o||o===zx)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,t))}}insertNode(n,t){mn(n,this._hostClassName)}drainQueuedTransitions(n){const t=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==i.triggerName){const c=jp(o,i.triggerName,i.fromState.value,i.toState.value);c._data=n,Vp(i.player,a.phase,c,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):t.push(i)}),this._queue=[],t.sort((i,r)=>{const o=i.transition.ast.depCount,s=r.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(n){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class O3{_onRemovalComplete(n,t){this.onRemovalComplete(n,t)}constructor(n,t,i){this.bodyNode=n,this.driver=t,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(r,o)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,t){const i=new N3(n,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,t){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(t);for(;a;){const c=r.get(a);if(c){const l=i.indexOf(c);i.splice(l+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(n)}else i.push(n);return r.set(t,n),n}register(n,t){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,t)),i}registerTrigger(n,t,i){let r=this._namespaceLookup[n];r&&r.register(t,i)&&this.totalAnimations++}destroy(n,t){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(t),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const t=new Set,i=this.statesByElement.get(n);if(i)for(let r of i.values())if(r.namespaceId){const o=this._fetchNamespace(r.namespaceId);o&&t.add(o)}return t}trigger(n,t,i,r){if(Vd(t)){const o=this._fetchNamespace(n);if(o)return o.trigger(t,i,r),!0}return!1}insertNode(n,t,i,r){if(!Vd(t))return;const o=t[Nn];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(t);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.insertNode(t,i)}r&&this.collectEnterElement(t)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,t){t?this.disabledNodes.has(n)||(this.disabledNodes.add(n),mn(n,ig)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Zo(n,ig))}removeNode(n,t,i){if(Vd(t)){const r=n?this._fetchNamespace(n):null;r?r.removeNode(t,i):this.markElementAsRemoved(n,t,!1,i);const o=this.namespacesByHostElement.get(t);o&&o.id!==n&&o.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(n,t,i,r,o){this.collectedLeaveElements.push(t),t[Nn]={namespaceId:n,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(n,t,i,r,o){return Vd(t)?this._fetchNamespace(n).listen(t,i,r,o):()=>{}}_buildInstruction(n,t,i,r,o){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,r,n.fromState.options,n.toState.options,t,o)}destroyInnerAnimations(n){let t=this.driver.query(n,kd,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(n,qp,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const t=this.playersByElement.get(n);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const t=this.playersByQueriedElement.get(n);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Ai(this.players).onDone(()=>n());n()})}processLeaveNode(n){const t=n[Nn];if(t&&t.setForRemoval){if(n[Nn]=zx,t.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,t.setForRemoval)}n.classList?.contains(ig)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],t.length?Ai(t).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(n){throw function VU(){return new w(3402,!1)}()}_flushAnimations(n,t){const i=new Rd,r=[],o=new Map,s=[],a=new Map,c=new Map,l=new Map,d=new Set;this.disabledNodes.forEach(F=>{d.add(F);const H=this.driver.query(F,".ng-animate-queued",!0);for(let $=0;${const $=Gp+p++;m.set(H,$),F.forEach(le=>mn(le,$))});const b=[],E=new Set,g=new Set;for(let F=0;FE.add(le)):g.add(H))}const S=new Map,A=qx(h,Array.from(E));A.forEach((F,H)=>{const $=Td+p++;S.set(H,$),F.forEach(le=>mn(le,$))}),n.push(()=>{f.forEach((F,H)=>{const $=m.get(H);F.forEach(le=>Zo(le,$))}),A.forEach((F,H)=>{const $=S.get(H);F.forEach(le=>Zo(le,$))}),b.forEach(F=>{this.processLeaveNode(F)})});const X=[],ie=[];for(let F=this._namespaceList.length-1;F>=0;F--)this._namespaceList[F].drainQueuedTransitions(t).forEach($=>{const le=$.player,ut=$.element;if(X.push(le),this.collectedEnterElements.length){const It=ut[Nn];if(It&&It.setForMove){if(It.previousTriggersValues&&It.previousTriggersValues.has($.triggerName)){const Ar=It.previousTriggersValues.get($.triggerName),bn=this.statesByElement.get($.element);if(bn&&bn.has($.triggerName)){const du=bn.get($.triggerName);du.value=Ar,bn.set($.triggerName,du)}}return void le.destroy()}}const Yn=!u||!this.driver.containsElement(u,ut),on=S.get(ut),Pi=m.get(ut),Pe=this._buildInstruction($,i,Pi,on,Yn);if(Pe.errors&&Pe.errors.length)return void ie.push(Pe);if(Yn)return le.onStart(()=>wr(ut,Pe.fromStyles)),le.onDestroy(()=>Zn(ut,Pe.toStyles)),void r.push(le);if($.isFallbackTransition)return le.onStart(()=>wr(ut,Pe.fromStyles)),le.onDestroy(()=>Zn(ut,Pe.toStyles)),void r.push(le);const CT=[];Pe.timelines.forEach(It=>{It.stretchStartingKeyframe=!0,this.disabledNodes.has(It.element)||CT.push(It)}),Pe.timelines=CT,i.append(ut,Pe.timelines),s.push({instruction:Pe,player:le,element:ut}),Pe.queriedElements.forEach(It=>nn(a,It,[]).push(le)),Pe.preStyleProps.forEach((It,Ar)=>{if(It.size){let bn=c.get(Ar);bn||c.set(Ar,bn=new Set),It.forEach((du,$g)=>bn.add($g))}}),Pe.postStyleProps.forEach((It,Ar)=>{let bn=l.get(Ar);bn||l.set(Ar,bn=new Set),It.forEach((du,$g)=>bn.add($g))})});if(ie.length){const F=[];ie.forEach(H=>{F.push(function BU(){return new w(3505,!1)}())}),X.forEach(H=>H.destroy()),this.reportError(F)}const se=new Map,Be=new Map;s.forEach(F=>{const H=F.element;i.has(H)&&(Be.set(H,H),this._beforeAnimationBuild(F.player.namespaceId,F.instruction,se))}),r.forEach(F=>{const H=F.element;this._getPreviousPlayers(H,!1,F.namespaceId,F.triggerName,null).forEach(le=>{nn(se,H,[]).push(le),le.destroy()})});const Kn=b.filter(F=>Zx(F,c,l)),is=new Map;Gx(is,this.driver,g,l,hi).forEach(F=>{Zx(F,c,l)&&Kn.push(F)});const kr=new Map;f.forEach((F,H)=>{Gx(kr,this.driver,new Set(F),c,"!")}),Kn.forEach(F=>{const H=is.get(F),$=kr.get(F);is.set(F,new Map([...H?.entries()??[],...$?.entries()??[]]))});const zg=[],yT=[],wT={};s.forEach(F=>{const{element:H,player:$,instruction:le}=F;if(i.has(H)){if(d.has(H))return $.onDestroy(()=>Zn(H,le.toStyles)),$.disabled=!0,$.overrideTotalTime(le.totalTime),void r.push($);let ut=wT;if(Be.size>1){let on=H;const Pi=[];for(;on=on.parentNode;){const Pe=Be.get(on);if(Pe){ut=Pe;break}Pi.push(on)}Pi.forEach(Pe=>Be.set(Pe,ut))}const Yn=this._buildAnimation($.namespaceId,le,se,o,kr,is);if($.setRealPlayer(Yn),ut===wT)zg.push($);else{const on=this.playersByElement.get(ut);on&&on.length&&($.parentPlayer=Ai(on)),r.push($)}}else wr(H,le.fromStyles),$.onDestroy(()=>Zn(H,le.toStyles)),yT.push($),d.has(H)&&r.push($)}),yT.forEach(F=>{const H=o.get(F.element);if(H&&H.length){const $=Ai(H);F.setRealPlayer($)}}),r.forEach(F=>{F.parentPlayer?F.syncPlayerEvents(F.parentPlayer):F.destroy()});for(let F=0;F!Yn.destroyed);ut.length?L3(this,H,ut):this.processLeaveNode(H)}return b.length=0,zg.forEach(F=>{this.players.push(F),F.onDone(()=>{F.destroy();const H=this.players.indexOf(F);this.players.splice(H,1)}),F.play()}),zg}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,t,i,r,o){let s=[];if(t){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const c=!o||o==Ra;a.forEach(l=>{l.queued||!c&&l.triggerName!=r||s.push(l)})}}return(i||r)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),s}_beforeAnimationBuild(n,t,i){const o=t.element,s=t.isRemovalTransition?void 0:n,a=t.isRemovalTransition?void 0:t.triggerName;for(const c of t.timelines){const l=c.element,d=l!==o,u=nn(i,l,[]);this._getPreviousPlayers(l,d,s,a,t.toState).forEach(f=>{const m=f.getRealPlayer();m.beforeDestroy&&m.beforeDestroy(),f.destroy(),u.push(f)})}wr(o,t.fromStyles)}_buildAnimation(n,t,i,r,o,s){const a=t.triggerName,c=t.element,l=[],d=new Set,u=new Set,h=t.timelines.map(m=>{const p=m.element;d.add(p);const b=p[Nn];if(b&&b.removedBeforeQueried)return new Na(m.duration,m.delay);const E=p!==c,g=function V3(e){const n=[];return Wx(e,n),n}((i.get(p)||k3).map(se=>se.getRealPlayer())).filter(se=>!!se.element&&se.element===p),S=o.get(p),A=s.get(p),X=Dx(this._normalizer,m.keyframes,S,A),ie=this._buildPlayer(m,X,g);if(m.subTimeline&&r&&u.add(p),E){const se=new sg(n,a,p);se.setRealPlayer(ie),l.push(se)}return ie});l.forEach(m=>{nn(this.playersByQueriedElement,m.element,[]).push(m),m.onDone(()=>function F3(e,n,t){let i=e.get(n);if(i){if(i.length){const r=i.indexOf(t);i.splice(r,1)}0==i.length&&e.delete(n)}return i}(this.playersByQueriedElement,m.element,m))}),d.forEach(m=>mn(m,kx));const f=Ai(h);return f.onDestroy(()=>{d.forEach(m=>Zo(m,kx)),Zn(c,t.toStyles)}),u.forEach(m=>{nn(r,m,[]).push(f)}),f}_buildPlayer(n,t,i){return t.length>0?this.driver.animate(n.element,t,n.duration,n.delay,n.easing,i):new Na(n.duration,n.delay)}}class sg{constructor(n,t,i){this.namespaceId=n,this.triggerName=t,this.element=i,this._player=new Na,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((t,i)=>{t.forEach(r=>Vp(n,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const t=this._player;t.triggerCallback&&n.onStart(()=>t.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,t){nn(this._queuedCallbacks,n,[]).push(t)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const t=this._player;t.triggerCallback&&t.triggerCallback(n)}}function Vd(e){return e&&1===e.nodeType}function $x(e,n){const t=e.style.display;return e.style.display=n??"none",t}function Gx(e,n,t,i,r){const o=[];t.forEach(c=>o.push($x(c)));const s=[];i.forEach((c,l)=>{const d=new Map;c.forEach(u=>{const h=n.computeStyle(l,u,r);d.set(u,h),(!h||0==h.length)&&(l[Nn]=A3,s.push(l))}),e.set(l,d)});let a=0;return t.forEach(c=>$x(c,o[a++])),s}function qx(e,n){const t=new Map;if(e.forEach(a=>t.set(a,[])),0==n.length)return t;const r=new Set(n),o=new Map;function s(a){if(!a)return 1;let c=o.get(a);if(c)return c;const l=a.parentNode;return c=t.has(l)?l:r.has(l)?1:s(l),o.set(a,c),c}return n.forEach(a=>{const c=s(a);1!==c&&t.get(c).push(a)}),t}function mn(e,n){e.classList?.add(n)}function Zo(e,n){e.classList?.remove(n)}function L3(e,n,t){Ai(t).onDone(()=>e.processLeaveNode(n))}function Wx(e,n){for(let t=0;tr.add(o)):n.set(e,i),t.delete(e),!0}class Pa{constructor(n,t,i){this._driver=t,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,o)=>{},this._transitionEngine=new O3(n.body,t,i),this._timelineEngine=new x3(n.body,t,i),this._transitionEngine.onRemovalComplete=(r,o)=>this.onRemovalComplete(r,o)}registerTrigger(n,t,i,r,o){const s=n+"-"+r;let a=this._triggerCache[s];if(!a){const c=[],d=Qp(this._driver,o,c,[]);if(c.length)throw function TU(){return new w(3404,!1)}();a=function w3(e,n,t){return new C3(e,n,t)}(r,d,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(t,r,a)}register(n,t){this._transitionEngine.register(n,t)}destroy(n,t){this._transitionEngine.destroy(n,t)}onInsert(n,t,i,r){this._transitionEngine.insertNode(n,t,i,r)}onRemove(n,t,i){this._transitionEngine.removeNode(n,t,i)}disableAnimations(n,t){this._transitionEngine.markElementAsDisabled(n,t)}process(n,t,i,r){if("@"==i.charAt(0)){const[o,s]=xx(i);this._timelineEngine.command(o,t,s,r)}else this._transitionEngine.trigger(n,t,i,r)}listen(n,t,i,r,o){if("@"==i.charAt(0)){const[s,a]=xx(i);return this._timelineEngine.listen(s,t,a,o)}return this._transitionEngine.listen(n,t,i,r,o)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class La{static{this.initialStylesByElement=new WeakMap}constructor(n,t,i){this._element=n,this._startStyles=t,this._endStyles=i,this._state=0;let r=La.initialStylesByElement.get(n);r||La.initialStylesByElement.set(n,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Zn(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Zn(this._element,this._initialStyles),this._endStyles&&(Zn(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(La.initialStylesByElement.delete(this._element),this._startStyles&&(wr(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wr(this._element,this._endStyles),this._endStyles=null),Zn(this._element,this._initialStyles),this._state=3)}}function ag(e){let n=null;return e.forEach((t,i)=>{(function H3(e){return"display"===e||"position"===e})(i)&&(n=n||new Map,n.set(i,t))}),n}class Kx{constructor(n,t,i,r){this.element=n,this.keyframes=t,this.options=i,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const t=[];return n.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(n,t,i){return n.animate(this._convertKeyframesToObject(t),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{"offset"!==r&&n.set(r,this._finished?i:Yp(this.element,r))}),this.currentSnapshot=n}triggerCallback(n){const t="start"===n?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class Yx{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,t){return Ix(n,t)}getParentElement(n){return Hp(n)}query(n,t,i){return Tx(n,t,i)}computeStyle(n,t,i){return Yp(n,t)}animate(n,t,i,r,o,s=[]){const c={duration:i,delay:r,fill:0==r?"both":"forwards"};o&&(c.easing=o);const l=new Map,d=s.filter(f=>f instanceof Kx);(function XU(e,n){return 0===e||0===n})(i,r)&&d.forEach(f=>{f.currentSnapshot.forEach((m,p)=>l.set(p,m))});let u=function KU(e){return e.length?e[0]instanceof Map?e:e.map(n=>new Map(Object.entries(n))):[]}(t).map(f=>new Map(f));u=function JU(e,n,t){if(t.size&&n.length){let i=n[0],r=[];if(t.forEach((o,s)=>{i.has(s)||r.push(s),i.set(s,o)}),r.length)for(let o=1;os.set(a,Yp(e,a)))}}return n}(n,u,l);const h=function j3(e,n){let t=null,i=null;return Array.isArray(n)&&n.length?(t=ag(n[0]),n.length>1&&(i=ag(n[n.length-1]))):n instanceof Map&&(t=ag(n)),t||i?new La(e,t,i):null}(n,u);return new Kx(n,u,c,h)}}const Qx="@.disabled";class Xx{constructor(n,t,i,r){this.namespaceId=n,this.delegate=t,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,t){return this.delegate.createElement(n,t)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,t){this.delegate.appendChild(n,t),this.engine.onInsert(this.namespaceId,t,n,!1)}insertBefore(n,t,i,r=!0){this.delegate.insertBefore(n,t,i),this.engine.onInsert(this.namespaceId,t,n,r)}removeChild(n,t,i){this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(n,t){return this.delegate.selectRootElement(n,t)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,t,i,r){this.delegate.setAttribute(n,t,i,r)}removeAttribute(n,t,i){this.delegate.removeAttribute(n,t,i)}addClass(n,t){this.delegate.addClass(n,t)}removeClass(n,t){this.delegate.removeClass(n,t)}setStyle(n,t,i,r){this.delegate.setStyle(n,t,i,r)}removeStyle(n,t,i){this.delegate.removeStyle(n,t,i)}setProperty(n,t,i){"@"==t.charAt(0)&&t==Qx?this.disableAnimations(n,!!i):this.delegate.setProperty(n,t,i)}setValue(n,t){this.delegate.setValue(n,t)}listen(n,t,i){return this.delegate.listen(n,t,i)}disableAnimations(n,t){this.engine.disableAnimations(n,t)}}class U3 extends Xx{constructor(n,t,i,r,o){super(t,i,r,o),this.factory=n,this.namespaceId=t}setProperty(n,t,i){"@"==t.charAt(0)?"."==t.charAt(1)&&t==Qx?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,t.slice(1),i):this.delegate.setProperty(n,t,i)}listen(n,t,i){if("@"==t.charAt(0)){const r=function z3(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}(n);let o=t.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function $3(e){const n=e.indexOf(".");return[e.substring(0,n),e.slice(n+1)]}(o)),this.engine.listen(this.namespaceId,r,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(n,t,i)}}class G3{constructor(n,t,i){this.delegate=n,this.engine=t,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=(r,o)=>{o?.removeChild(null,r)}}createRenderer(n,t){const r=this.delegate.createRenderer(n,t);if(!n||!t?.data?.animation){const l=this._rendererCache;let d=l.get(r);return d||(d=new Xx("",r,this.engine,()=>l.delete(r)),l.set(r,d)),d}const o=t.id,s=t.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=l=>{Array.isArray(l)?l.forEach(a):this.engine.registerTrigger(o,s,n,l.name,l)};return t.data.animation.forEach(a),new U3(this,s,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,t,i){if(n>=0&&nt(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),r.push([t,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}let q3=(()=>{class e extends Pa{constructor(t,i,r){super(t,i,r)}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||e)(N(lt),N(zp),N($p))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac})}}return e})();const Jx=[{provide:$p,useFactory:function W3(){return new Ox}},{provide:Pa,useClass:q3},{provide:bl,useFactory:function Z3(e,n,t){return new G3(e,n,t)},deps:[Np,Pa,Y]}],cg=[{provide:zp,useFactory:()=>new Yx},{provide:so,useValue:"BrowserAnimations"},...Jx],eM=[{provide:zp,useClass:Up},{provide:so,useValue:"NoopAnimations"},...Jx];let K3=(()=>{class e{static withConfig(t){return{ngModule:e,providers:t.disableAnimations?eM:cg}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({providers:cg,imports:[_x]})}}return e})();function tM(...e){if(1===e.length){const n=e[0];if(ic(n))return jd(n,null);if(yu(n)&&Object.getPrototypeOf(n)===Object.prototype){const t=Object.keys(n);return jd(t.map(i=>n[i]),t)}}if("function"==typeof e[e.length-1]){const n=e.pop();return jd(e=1===e.length&&ic(e[0])?e[0]:e,null).pipe(ht(t=>n(...t)))}return jd(e,null)}function jd(e,n){return new Le(t=>{const i=e.length;if(0===i)return void t.complete();const r=new Array(i);let o=0,s=0;for(let a=0;a{l||(l=!0,s++),r[a]=d},error:d=>t.error(d),complete:()=>{o++,(o===i||!l)&&(s===i&&t.next(n?n.reduce((d,u,h)=>(d[u]=r[h],d),{}):r),t.complete())}}))}})}let nM=(()=>{class e{constructor(t,i){this._renderer=t,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(t,i){this._renderer.setProperty(this._elementRef.nativeElement,t,i)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static{this.\u0275fac=function(i){return new(i||e)(v(ir),v(Ie))}}static{this.\u0275dir=V({type:e})}}return e})(),Er=(()=>{class e extends nM{static{this.\u0275fac=(()=>{let t;return function(r){return(t||(t=function bt(e){return Qn(()=>{const n=e.prototype.constructor,t=n[Xn]||Ch(n),i=Object.prototype;let r=Object.getPrototypeOf(e.prototype).constructor;for(;r&&r!==i;){const o=r[Xn]||Ch(r);if(o&&o!==t)return o;r=Object.getPrototypeOf(r)}return o=>new o})}(e)))(r||e)}})()}static{this.\u0275dir=V({type:e,features:[pe]})}}return e})();const pn=new D(""),Q3={provide:pn,useExisting:be(()=>Hd),multi:!0},J3=new D("");let Hd=(()=>{class e extends nM{constructor(t,i,r){super(t,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function X3(){const e=Ea()?Ea().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static{this.\u0275fac=function(i){return new(i||e)(v(ir),v(Ie),v(J3,8))}}static{this.\u0275dir=V({type:e,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(i,r){1&i&&ne("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},features:[we([Q3]),pe]})}}return e})();function Ni(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}function rM(e){return null!=e&&"number"==typeof e.length}const dt=new D(""),Oi=new D(""),ez=/^(?=.{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 tz{static min(n){return function oM(e){return n=>{if(Ni(n.value)||Ni(e))return null;const t=parseFloat(n.value);return!isNaN(t)&&t{if(Ni(n.value)||Ni(e))return null;const t=parseFloat(n.value);return!isNaN(t)&&t>e?{max:{max:e,actual:n.value}}:null}}(n)}static required(n){return function aM(e){return Ni(e.value)?{required:!0}:null}(n)}static requiredTrue(n){return function cM(e){return!0===e.value?null:{required:!0}}(n)}static email(n){return function lM(e){return Ni(e.value)||ez.test(e.value)?null:{email:!0}}(n)}static minLength(n){return function dM(e){return n=>Ni(n.value)||!rM(n.value)?null:n.value.lengthrM(n.value)&&n.value.length>e?{maxlength:{requiredLength:e,actualLength:n.value.length}}:null}(n)}static pattern(n){return function hM(e){if(!e)return Ud;let n,t;return"string"==typeof e?(t="","^"!==e.charAt(0)&&(t+="^"),t+=e,"$"!==e.charAt(e.length-1)&&(t+="$"),n=new RegExp(t)):(t=e.toString(),n=e),i=>{if(Ni(i.value))return null;const r=i.value;return n.test(r)?null:{pattern:{requiredPattern:t,actualValue:r}}}}(n)}static nullValidator(n){return null}static compose(n){return _M(n)}static composeAsync(n){return vM(n)}}function Ud(e){return null}function fM(e){return null!=e}function mM(e){return Ul(e)?Ia(e):e}function pM(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function gM(e,n){return n.map(t=>t(e))}function bM(e){return e.map(n=>function nz(e){return!e.validate}(n)?n:t=>n.validate(t))}function _M(e){if(!e)return null;const n=e.filter(fM);return 0==n.length?null:function(t){return pM(gM(t,n))}}function lg(e){return null!=e?_M(bM(e)):null}function vM(e){if(!e)return null;const n=e.filter(fM);return 0==n.length?null:function(t){return tM(gM(t,n).map(mM)).pipe(ht(pM))}}function dg(e){return null!=e?vM(bM(e)):null}function yM(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function wM(e){return e._rawValidators}function CM(e){return e._rawAsyncValidators}function ug(e){return e?Array.isArray(e)?e:[e]:[]}function zd(e,n){return Array.isArray(e)?e.includes(n):e===n}function EM(e,n){const t=ug(n);return ug(e).forEach(r=>{zd(t,r)||t.push(r)}),t}function DM(e,n){return ug(n).filter(t=>!zd(e,t))}class xM{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(n){this._rawValidators=n||[],this._composedValidatorFn=lg(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=dg(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Pt extends xM{get formDirective(){return null}get path(){return null}}class mi extends xM{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class MM{constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let IM=(()=>{class e extends MM{constructor(t){super(t)}static{this.\u0275fac=function(i){return new(i||e)(v(mi,2))}}static{this.\u0275dir=V({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Te("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[pe]})}}return e})(),TM=(()=>{class e extends MM{constructor(t){super(t)}static{this.\u0275fac=function(i){return new(i||e)(v(Pt,10))}}static{this.\u0275dir=V({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){2&i&&Te("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},features:[pe]})}}return e})();const Va="VALID",Gd="INVALID",Ko="PENDING",Ba="DISABLED";class Yo{}class kM extends Yo{constructor(n,t){super(),this.value=n,this.source=t}}class mg extends Yo{constructor(n,t){super(),this.pristine=n,this.source=t}}class pg extends Yo{constructor(n,t){super(),this.touched=n,this.source=t}}class qd extends Yo{constructor(n,t){super(),this.status=n,this.source=t}}class az extends Yo{constructor(n){super(),this.source=n}}class cz extends Yo{constructor(n){super(),this.source=n}}function gg(e){return(Wd(e)?e.validators:e)||null}function bg(e,n){return(Wd(n)?n.asyncValidators:e)||null}function Wd(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class _g{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this._status=pr(()=>this.statusReactive()),this.statusReactive=vo(void 0),this._pristine=pr(()=>this.pristineReactive()),this.pristineReactive=vo(!0),this._touched=pr(()=>this.touchedReactive()),this.touchedReactive=vo(!1),this._events=new Ve,this.events=this._events.asObservable(),this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get status(){return Wn(this.statusReactive)}set status(n){Wn(()=>this.statusReactive.set(n))}get valid(){return this.status===Va}get invalid(){return this.status===Gd}get pending(){return this.status==Ko}get disabled(){return this.status===Ba}get enabled(){return this.status!==Ba}get pristine(){return Wn(this.pristineReactive)}set pristine(n){Wn(()=>this.pristineReactive.set(n))}get dirty(){return!this.pristine}get touched(){return Wn(this.touchedReactive)}set touched(n){Wn(()=>this.touchedReactive.set(n))}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(EM(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(EM(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(DM(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(DM(n,this._rawAsyncValidators))}hasValidator(n){return zd(this._rawValidators,n)}hasAsyncValidator(n){return zd(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const t=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsTouched({...n,sourceControl:i}),t&&!1!==n.emitEvent&&this._events.next(new pg(!0,i))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(t=>t.markAllAsTouched(n))}markAsUntouched(n={}){const t=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,i),t&&!1!==n.emitEvent&&this._events.next(new pg(!1,i))}markAsDirty(n={}){const t=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsDirty({...n,sourceControl:i}),t&&!1!==n.emitEvent&&this._events.next(new mg(!1,i))}markAsPristine(n={}){const t=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n,i),t&&!1!==n.emitEvent&&this._events.next(new mg(!0,i))}markAsPending(n={}){this.status=Ko;const t=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new qd(this.status,t)),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.markAsPending({...n,sourceControl:t})}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ba,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new kM(this.value,i)),this._events.next(new qd(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t},this),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Va,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,t){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine({},t),this._parent._updateTouched({},t))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Va||this.status===Ko)&&this._runAsyncValidator(i,n.emitEvent)}const t=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new kM(this.value,t)),this._events.next(new qd(this.status,t)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity({...n,sourceControl:t})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Ba:Va}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,t){if(this.asyncValidator){this.status=Ko,this._hasOwnPendingAsyncValidator={emitEvent:!1!==t};const i=mM(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:t,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent,this,t.shouldHaveEmitted)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((i,r)=>i&&i._find(r),this)}getError(n,t){const i=t?this.get(t):this;return i&&i.errors?i.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n,t,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new qd(this.status,t)),this._parent&&this._parent._updateControlsErrors(n,t,i)}_initObservables(){this.valueChanges=new de,this.statusChanges=new de}_calculateStatus(){return this._allControlsDisabled()?Ba:this.errors?Gd:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ko)?Ko:this._anyControlsHaveStatus(Gd)?Gd:Va}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n,t){const i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!n.onlySelf&&this._parent._updatePristine(n,t),r&&this._events.next(new mg(this.pristine,t))}_updateTouched(n={},t){this.touched=this._anyControlsTouched(),this._events.next(new pg(this.touched,t)),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,t)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Wd(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function lz(e){return Array.isArray(e)?lg(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function dz(e){return Array.isArray(e)?dg(e):e||null}(this._rawAsyncValidators)}}class vg extends _g{constructor(n,t,i){super(gg(t),bg(i,t)),this.controls=n,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,t){return this.controls[n]?this.controls[n]:(this.controls[n]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(n,t,i={}){this.registerControl(n,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,t={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(n,t,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],t&&this.registerControl(n,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,t={}){(function NM(e,n,t){e._forEachChild((i,r)=>{if(void 0===t[r])throw new w(1002,"")})})(this,0,n),Object.keys(n).forEach(i=>{(function AM(e,n,t){const i=e.controls;if(!(n?Object.keys(i):i).length)throw new w(1e3,"");if(!i[t])throw new w(1001,"")})(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(n,t={}){null!=n&&(Object.keys(n).forEach(i=>{const r=this.controls[i];r&&r.patchValue(n[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(n={},t={}){this._forEachChild((i,r)=>{i.reset(n?n[r]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t,this),this._updateTouched(t,this),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(n,t,i)=>(n[i]=t.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(t,i)=>!!i._syncPendingControls()||t);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(t=>{const i=this.controls[t];i&&n(i,t)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[t,i]of Object.entries(this.controls))if(this.contains(t)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,i,r)=>((i.enabled||this.disabled)&&(t[r]=i.value),t))}_reduceChildren(n,t){let i=n;return this._forEachChild((r,o)=>{i=t(i,r,o)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const Qo=new D("CallSetDisabledState",{providedIn:"root",factory:()=>Zd}),Zd="always";function ja(e,n,t=Zd){yg(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function fz(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&OM(e,n)})}(e,n),function pz(e,n){const t=(i,r)=>{n.valueAccessor.writeValue(i),r&&n.viewToModelUpdate(i)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function mz(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&OM(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function hz(e,n){if(n.valueAccessor.setDisabledState){const t=i=>{n.valueAccessor.setDisabledState(i)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Yd(e,n,t=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Xd(e,n),e&&(n._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(()=>{}))}function Qd(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function yg(e,n){const t=wM(e);null!==n.validator?e.setValidators(yM(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const i=CM(e);null!==n.asyncValidator?e.setAsyncValidators(yM(i,n.asyncValidator)):"function"==typeof i&&e.setAsyncValidators([i]);const r=()=>e.updateValueAndValidity();Qd(n._rawValidators,r),Qd(n._rawAsyncValidators,r)}function Xd(e,n){let t=!1;if(null!==e){if(null!==n.validator){const r=wM(e);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==n.validator);o.length!==r.length&&(t=!0,e.setValidators(o))}}if(null!==n.asyncValidator){const r=CM(e);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==n.asyncValidator);o.length!==r.length&&(t=!0,e.setAsyncValidators(o))}}}const i=()=>{};return Qd(n._rawValidators,i),Qd(n._rawAsyncValidators,i),t}function OM(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function FM(e,n){yg(e,n)}function RM(e,n){e._syncPendingControls(),n.forEach(t=>{const i=t.control;"submit"===i.updateOn&&i._pendingChange&&(t.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const yz={provide:Pt,useExisting:be(()=>Ua)},Ha=Promise.resolve();let Ua=(()=>{class e extends Pt{get submitted(){return Wn(this.submittedReactive)}constructor(t,i,r){super(),this.callSetDisabledState=r,this._submitted=pr(()=>this.submittedReactive()),this.submittedReactive=vo(!1),this._directives=new Set,this.ngSubmit=new de,this.form=new vg({},lg(t),dg(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){Ha.then(()=>{const i=this._findContainer(t.path);t.control=i.registerControl(t.name,t.control),ja(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){Ha.then(()=>{const i=this._findContainer(t.path);i&&i.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){Ha.then(()=>{const i=this._findContainer(t.path),r=new vg({});FM(r,t),i.registerControl(t.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){Ha.then(()=>{const i=this._findContainer(t.path);i&&i.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,i){Ha.then(()=>{this.form.get(t.path).setValue(i)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submittedReactive.set(!0),RM(this.form,this._directives),this.ngSubmit.emit(t),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}static{this.\u0275fac=function(i){return new(i||e)(v(dt,10),v(Oi,10),v(Qo,8))}}static{this.\u0275dir=V({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&ne("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[we([yz]),pe]})}}return e})();function PM(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function LM(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const VM=class extends _g{constructor(n=null,t,i){super(gg(t),bg(i,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Wd(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=LM(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){PM(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){PM(this._onDisabledChange,n)}_forEachChild(n){}_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(n){LM(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},Ez={provide:mi,useExisting:be(()=>Dg)},HM=Promise.resolve();let Dg=(()=>{class e extends mi{constructor(t,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new VM,this._registered=!1,this.name="",this.update=new de,this._parent=t,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=function Eg(e,n){if(!n)return null;let t,i,r;return Array.isArray(n),n.forEach(o=>{o.constructor===Hd?t=o:function _z(e){return Object.getPrototypeOf(e.constructor)===Er}(o)?i=o:r=o}),r||i||t||null}(0,o)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const i=t.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Cg(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,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(t){this.viewModel=t,this.update.emit(t)}_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(){ja(this.control,this,this.callSetDisabledState),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(t){HM.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const i=t.isDisabled.currentValue,r=0!==i&&ct(i);HM.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function Kd(e,n){return[...n.path,e]}(t,this._parent):[t]}static{this.\u0275fac=function(i){return new(i||e)(v(Pt,9),v(dt,10),v(Oi,10),v(pn,10),v(Sn,8),v(Qo,8))}}static{this.\u0275dir=V({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[we([Ez]),pe,Bt]})}}return e})(),UM=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=V({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}}return e})();const Sz={provide:Pt,useExisting:be(()=>Jd)};let Ag,Jd=(()=>{class e extends Pt{get submitted(){return Wn(this._submittedReactive)}set submitted(t){this._submittedReactive.set(t)}constructor(t,i,r){super(),this.callSetDisabledState=r,this._submitted=pr(()=>this._submittedReactive()),this._submittedReactive=vo(!1),this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new de,this._setValidators(t),this._setAsyncValidators(i)}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Xd(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const i=this.form.get(t.path);return ja(i,t,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),i}getControl(t){return this.form.get(t.path)}removeControl(t){Yd(t.control||null,t,!1),function vz(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}(this.directives,t)}addFormGroup(t){this._setUpFormContainer(t)}removeFormGroup(t){this._cleanUpFormContainer(t)}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){this._setUpFormContainer(t)}removeFormArray(t){this._cleanUpFormContainer(t)}getFormArray(t){return this.form.get(t.path)}updateModel(t,i){this.form.get(t.path).setValue(i)}onSubmit(t){return this._submittedReactive.set(!0),RM(this.form,this.directives),this.ngSubmit.emit(t),this.form._events.next(new az(this.control)),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this._submittedReactive.set(!1),this.form._events.next(new cz(this.form))}_updateDomValue(){this.directives.forEach(t=>{const i=t.control,r=this.form.get(t.path);i!==r&&(Yd(i||null,t),(e=>e instanceof VM)(r)&&(ja(r,t,this.callSetDisabledState),t.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(t){const i=this.form.get(t.path);FM(i,t),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(t){if(this.form){const i=this.form.get(t.path);i&&function gz(e,n){return Xd(e,n)}(i,t)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){yg(this.form,this),this._oldForm&&Xd(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||e)(v(dt,10),v(Oi,10),v(Qo,8))}}static{this.\u0275dir=V({type:e,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&ne("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[we([Sz]),pe,Bt]})}}return e})(),Wz=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({})}}return e})(),Kz=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Qo,useValue:t.callSetDisabledState??Zd}]}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[Wz]})}}return e})();try{Ag=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ag=!1}let Xo,Fi=(()=>{class e{constructor(t){this._platformId=t,this.isBrowser=this._platformId?function rj(e){return e===I0}(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&&!Ag)&&typeof CSS<"u"&&!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}static{this.\u0275fac=function(i){return new(i||e)(N(ii))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const sI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function aI(){if(Xo)return Xo;if("object"!=typeof document||!document)return Xo=new Set(sI),Xo;let e=document.createElement("input");return Xo=new Set(sI.filter(n=>(e.setAttribute("type",n),e.type===n))),Xo}let za,Ng;function $a(e){return function Yz(){if(null==za&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>za=!0}))}finally{za=za||!1}return za}()?e:!!e.capture}function Jo(e){return e.composedPath?e.composedPath()[0]:e.target}class v8 extends me{constructor(n,t){super()}schedule(n,t=0){return this}}class cI extends v8{constructor(n,t){super(n,t),this.scheduler=n,this.work=t,this.pending=!1}schedule(n,t=0){if(this.closed)return this;this.state=n;const i=this.id,r=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(r,i,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this}requestAsyncId(n,t,i=0){return setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,t,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return t;clearInterval(t)}execute(n,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,t);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,t){let r,i=!1;try{this.work(n)}catch(o){i=!0,r=!!o&&o||new Error(o)}if(i)return this.unsubscribe(),r}_unsubscribe(){const n=this.id,t=this.scheduler,i=t.actions,r=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&i.splice(r,1),null!=n&&(this.id=this.recycleAsyncId(t,n,null)),this.delay=null}}let lI=(()=>{class e{constructor(t,i=e.now){this.SchedulerAction=t,this.now=i}schedule(t,i=0,r){return new this.SchedulerAction(this,t).schedule(r,i)}}return e.now=()=>Date.now(),e})();class pi extends lI{constructor(n,t=lI.now){super(n,()=>pi.delegate&&pi.delegate!==this?pi.delegate.now():t()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(n,t=0,i){return pi.delegate&&pi.delegate!==this?pi.delegate.schedule(n,t,i):super.schedule(n,t,i)}flush(n){const{actions:t}=this;if(this.active)return void t.push(n);let i;this.active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=t.shift());if(this.active=!1,i){for(;n=t.shift();)n.unsubscribe();throw i}}}const dI=new pi(cI);class y8{constructor(n,t){this.dueTime=n,this.scheduler=t}call(n,t){return t.subscribe(new w8(n,this.dueTime,this.scheduler))}}class w8 extends Ce{constructor(n,t,i){super(n),this.dueTime=t,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(n){this.clearDebounce(),this.lastValue=n,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(C8,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:n}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(n)}}clearDebounce(){const n=this.debouncedSubscription;null!==n&&(this.remove(n),n.unsubscribe(),this.debouncedSubscription=null)}}function C8(e){e.debouncedNext()}function hI(e){return n=>n.lift(new E8(e))}class E8{constructor(n){this.total=n}call(n,t){return t.subscribe(new D8(n,this.total))}}class D8 extends Ce{constructor(n,t){super(n),this.total=t,this.count=0}_next(n){++this.count>this.total&&this.destination.next(n)}}class M8{constructor(n,t){this.compare=n,this.keySelector=t}call(n,t){return t.subscribe(new I8(n,this.compare,this.keySelector))}}class I8 extends Ce{constructor(n,t,i){super(n),this.keySelector=i,this.hasKey=!1,"function"==typeof t&&(this.compare=t)}compare(n,t){return n===t}_next(n){let t;try{const{keySelector:r}=this;t=r?r(n):n}catch(r){return this.destination.error(r)}let i=!1;if(this.hasKey)try{const{compare:r}=this;i=r(this.key,t)}catch(r){return this.destination.error(r)}else this.hasKey=!0;i||(this.key=t,this.destination.next(n))}}function qa(e){return n=>n.lift(new T8(e))}class T8{constructor(n){this.notifier=n}call(n,t){const i=new S8(n),r=Cd(this.notifier,new yd(i));return r&&!i.seenValue?(i.add(r),t.subscribe(i)):i}}class S8 extends wd{constructor(n){super(n),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}function tu(e){return null!=e&&"false"!=`${e}`}function mI(e){return Array.isArray(e)?e:[e]}function Mr(e){return e instanceof Ie?e.nativeElement:e}class A8 extends Ce{notifyNext(n,t,i,r,o){this.destination.next(t)}notifyError(n,t){this.destination.error(n)}notifyComplete(n){this.destination.complete()}}class N8 extends Ce{constructor(n,t,i){super(),this.parent=n,this.outerValue=t,this.outerIndex=i,this.index=0}_next(n){this.parent.notifyNext(this.outerValue,n,this.outerIndex,this.index++,this)}_error(n){this.parent.notifyError(n,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function O8(e,n,t,i,r=new N8(e,t,i)){if(!r.closed)return n instanceof Le?n.subscribe(r):bp(n)(r)}const pI={};class R8{constructor(n){this.resultSelector=n}call(n,t){return t.subscribe(new P8(n,this.resultSelector))}}class P8 extends A8{constructor(n,t){super(n),this.resultSelector=t,this.active=0,this.values=[],this.observables=[]}_next(n){this.values.push(pI),this.observables.push(n)}_complete(){const n=this.observables,t=n.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(let i=0;iFg(e,t,n)):t=>Fg(e,t)}const bI=new Set;let Ir,B8=(()=>{class e{constructor(t,i){this._platform=t,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):H8}matchMedia(t){return(this._platform.WEBKIT||this._platform.BLINK)&&function j8(e,n){if(!bI.has(e))try{Ir||(Ir=document.createElement("style"),n&&Ir.setAttribute("nonce",n),Ir.setAttribute("type","text/css"),document.head.appendChild(Ir)),Ir.sheet&&(Ir.sheet.insertRule(`@media ${e} {body{ }}`,0),bI.add(e))}catch(t){console.error(t)}}(t,this._nonce),this._matchMedia(t)}static{this.\u0275fac=function(i){return new(i||e)(N(Fi),N(Fh,8))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function H8(e){return{matches:"all"===e||""===e,media:e,addListener:()=>{},removeListener:()=>{}}}let U8=(()=>{class e{constructor(t,i){this._mediaMatcher=t,this._zone=i,this._queries=new Map,this._destroySubject=new Ve}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return _I(mI(t)).some(r=>this._registerQuery(r).mql.matches)}observe(t){let o=function F8(...e){let n,t;return _d(e[e.length-1])&&(t=e.pop()),"function"==typeof e[e.length-1]&&(n=e.pop()),1===e.length&&ic(e[0])&&(e=e[0]),gp(e,t).lift(new R8(n))}(_I(mI(t)).map(s=>this._registerQuery(s).observable));return o=Fg(o.pipe(cs(1)),o.pipe(hI(1),function uI(e,n=dI){return t=>t.lift(new y8(e,n))}(0))),o.pipe(ht(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:c,query:l})=>{a.matches=a.matches||c,a.breakpoints[l]=c}),a}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const i=this._mediaMatcher.matchMedia(t),o={observable:new Le(s=>{const a=c=>this._zone.run(()=>s.next(c));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(V8(i),ht(({matches:s})=>({query:t,matches:s})),qa(this._destroySubject)),mql:i};return this._queries.set(t,o),o}static{this.\u0275fac=function(i){return new(i||e)(N(B8),N(Y))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function _I(e){return e.map(n=>n.split(",")).reduce((n,t)=>n.concat(t)).map(n=>n.trim())}function xI(e){return 0===e.buttons||0===e.detail}function MI(e){const n=e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const n$=new D("cdk-input-modality-detector-options"),i$={ignoreKeys:[18,17,224,91,16]},es=$a({passive:!0,capture:!0});let r$=(()=>{class e{get mostRecentModality(){return this._modality.value}constructor(t,i,r,o){this._platform=t,this._mostRecentTarget=null,this._modality=new lb(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Jo(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(xI(s)?"keyboard":"mouse"),this._mostRecentTarget=Jo(s))},this._onTouchstart=s=>{MI(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Jo(s))},this._options={...i$,...o},this.modalityDetected=this._modality.pipe(hI(1)),this.modalityChanged=this.modalityDetected.pipe(function x8(e,n){return t=>t.lift(new M8(e,n))}()),t.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,es),r.addEventListener("mousedown",this._onMousedown,es),r.addEventListener("touchstart",this._onTouchstart,es)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,es),document.removeEventListener("mousedown",this._onMousedown,es),document.removeEventListener("touchstart",this._onTouchstart,es))}static{this.\u0275fac=function(i){return new(i||e)(N(Fi),N(Y),N(lt),N(n$,8))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var nu=function(e){return e[e.IMMEDIATE=0]="IMMEDIATE",e[e.EVENTUAL=1]="EVENTUAL",e}(nu||{});const s$=new D("cdk-focus-monitor-default-options"),iu=$a({passive:!0,capture:!0});let a$=(()=>{class e{constructor(t,i,r,o,s){this._ngZone=t,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Ve,this._rootNodeFocusAndBlurListener=a=>{for(let l=Jo(a);l;l=l.parentElement)"focus"===a.type?this._onFocus(a,l):this._onBlur(a,l)},this._document=o,this._detectionMode=s?.detectionMode||nu.IMMEDIATE}monitor(t,i=!1){const r=Mr(t);if(!this._platform.isBrowser||1!==r.nodeType)return Rt();const o=function Xz(e){if(function Qz(){if(null==Ng){const e=typeof document<"u"?document.head:null;Ng=!(!e||!e.createShadowRoot&&!e.attachShadow)}return Ng}()){const n=e.getRootNode?e.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(r)||this._getDocument(),s=this._elementInfo.get(r);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new Ve,rootNode:o};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(t){const i=Mr(t),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(t,i,r){const o=Mr(t);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,c])=>this._originChanged(a,i,c)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(r))}ngOnDestroy(){this._elementInfo.forEach((t,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:t&&this._isLastInteractionFromInputLabel(t)?"mouse":"program"}_shouldBeAttributedToTouch(t){return this._detectionMode===nu.EVENTUAL||!!t?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(t,i){t.classList.toggle("cdk-focused",!!i),t.classList.toggle("cdk-touch-focused","touch"===i),t.classList.toggle("cdk-keyboard-focused","keyboard"===i),t.classList.toggle("cdk-mouse-focused","mouse"===i),t.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(t,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&i,this._detectionMode===nu.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,i){const r=this._elementInfo.get(i),o=Jo(t);!r||!r.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),r)}_onBlur(t,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&t.relatedTarget instanceof Node&&i.contains(t.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(t,i){t.subject.observers.length&&this._ngZone.run(()=>t.subject.next(i))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const i=t.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,iu),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,iu)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(qa(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(t){const i=t.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,iu),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,iu),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,i,r){this._setClasses(t,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(t){const i=[];return this._elementInfo.forEach((r,o)=>{(o===t||r.checkChildren&&o.contains(t))&&i.push([o,r])}),i}_isLastInteractionFromInputLabel(t){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===t||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName||t.disabled)return!1;const o=t.labels;if(o)for(let s=0;s{class e{constructor(t,i){this._platform=t,this._document=i,this._breakpointSubscription=T(U8).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Tr.NONE;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(t):null,o=(r&&r.backgroundColor||"").replace(/ /g,"");switch(t.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Tr.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Tr.BLACK_ON_WHITE}return Tr.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(Rg,TI,SI),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Tr.BLACK_ON_WHITE?t.add(Rg,TI):i===Tr.WHITE_ON_BLACK&&t.add(Rg,SI)}}static{this.\u0275fac=function(i){return new(i||e)(N(Fi),N(lt))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const l$=new D("cdk-dir-doc",{providedIn:"root",factory:function d$(){return T(lt)}}),u$=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let f$=(()=>{class e{constructor(t){this.value="ltr",this.change=new de,t&&(this.value=function h$(e){const n=e?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?u$.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||e)(N(l$,8))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),kI=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({})}}return e})();const m$=["mat-internal-form-field",""],p$=["*"],b$=new D("mat-sanity-checks",{providedIn:"root",factory:function g$(){return!0}});let xt=(()=>{class e{constructor(t,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!function Jz(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}static{this.\u0275fac=function(i){return new(i||e)(N(c$),N(b$,8),N(lt))}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[kI,kI]})}}return e})();class OI{constructor(n,t,i,r,o){this._defaultMatcher=n,this.ngControl=t,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=o,this.errorState=!1}updateErrorState(){const n=this.errorState,t=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(r,t)??!1;o!==n&&(this.errorState=o,this._stateChanges.next())}}let E$=(()=>{class e{isErrorState(t,i){return!!(t&&t.invalid&&(t.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var gn=function(e){return e[e.FADING_IN=0]="FADING_IN",e[e.VISIBLE=1]="VISIBLE",e[e.FADING_OUT=2]="FADING_OUT",e[e.HIDDEN=3]="HIDDEN",e}(gn||{});class D${constructor(n,t,i,r=!1){this._renderer=n,this.element=t,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=gn.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const FI=$a({passive:!0,capture:!0});class x${constructor(){this._events=new Map,this._delegateEventHandler=n=>{const t=Jo(n);t&&this._events.get(n.type)?.forEach((i,r)=>{(r===t||r.contains(t))&&i.forEach(o=>o.handleEvent(n))})}}addHandler(n,t,i,r){const o=this._events.get(t);if(o){const s=o.get(i);s?s.add(r):o.set(i,new Set([r]))}else this._events.set(t,new Map([[i,new Set([r])]])),n.runOutsideAngular(()=>{document.addEventListener(t,this._delegateEventHandler,FI)})}removeHandler(n,t,i){const r=this._events.get(n);if(!r)return;const o=r.get(t);o&&(o.delete(i),0===o.size&&r.delete(t),0===r.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,FI)))}}const RI={enterDuration:225,exitDuration:150},PI=$a({passive:!0,capture:!0}),LI=["mousedown","touchstart"],VI=["mouseup","mouseleave","touchend","touchcancel"];class ru{static{this._eventManager=new x$}constructor(n,t,i,r){this._target=n,this._ngZone=t,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=Mr(i))}fadeInRipple(n,t,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...RI,...i.animation};i.centered&&(n=r.left+r.width/2,t=r.top+r.height/2);const s=i.radius||function I$(e,n,t){const i=Math.max(Math.abs(e-t.left),Math.abs(e-t.right)),r=Math.max(Math.abs(n-t.top),Math.abs(n-t.bottom));return Math.sqrt(i*i+r*r)}(n,t,r),a=n-r.left,c=t-r.top,l=o.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=a-s+"px",d.style.top=c-s+"px",d.style.height=2*s+"px",d.style.width=2*s+"px",null!=i.color&&(d.style.backgroundColor=i.color),d.style.transitionDuration=`${l}ms`,this._containerElement.appendChild(d);const u=window.getComputedStyle(d),f=u.transitionDuration,m="none"===u.transitionProperty||"0s"===f||"0s, 0s"===f||0===r.width&&0===r.height,p=new D$(this,d,i,m);d.style.transform="scale3d(1, 1, 1)",p.state=gn.FADING_IN,i.persistent||(this._mostRecentTransientRipple=p);let b=null;return!m&&(l||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const E=()=>{b&&(b.fallbackTimer=null),clearTimeout(S),this._finishRippleTransition(p)},g=()=>this._destroyRipple(p),S=setTimeout(g,l+100);d.addEventListener("transitionend",E),d.addEventListener("transitioncancel",g),b={onTransitionEnd:E,onTransitionCancel:g,fallbackTimer:S}}),this._activeRipples.set(p,b),(m||!l)&&this._finishRippleTransition(p),p}fadeOutRipple(n){if(n.state===gn.FADING_OUT||n.state===gn.HIDDEN)return;const t=n.element,i={...RI,...n.config.animation};t.style.transitionDuration=`${i.exitDuration}ms`,t.style.opacity="0",n.state=gn.FADING_OUT,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const t=Mr(n);!this._platform.isBrowser||!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,LI.forEach(i=>{ru._eventManager.addHandler(this._ngZone,i,t,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{VI.forEach(t=>{this._triggerElement.addEventListener(t,this,PI)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===gn.FADING_IN?this._startFadeOutTransition(n):n.state===gn.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const t=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=gn.VISIBLE,!i&&(!t||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const t=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=gn.HIDDEN,null!==t&&(n.element.removeEventListener("transitionend",t.onTransitionEnd),n.element.removeEventListener("transitioncancel",t.onTransitionCancel),null!==t.fallbackTimer&&clearTimeout(t.fallbackTimer)),n.element.remove()}_onMousedown(n){const t=xI(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===gn.VISIBLE||n.config.terminateOnPointerUp&&n.state===gn.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(LI.forEach(t=>ru._eventManager.removeHandler(t,n,this)),this._pointerUpEventsRegistered&&(VI.forEach(t=>n.removeEventListener(t,this,PI)),this._pointerUpEventsRegistered=!1))}}const T$=new D("mat-ripple-global-options");let Pg=(()=>{class e{get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}constructor(t,i,r,o,s){this._elementRef=t,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new ru(this,i,t,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,i=0,r){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...t})}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Y),v(Fi),v(T$,8),v(so,8))}}static{this.\u0275dir=V({type:e,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Te("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return e})(),BI=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,xt]})}}return e})(),jI=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Te("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[un],attrs:m$,ngContentSelectors:p$,decls:1,vars:0,template:function(i,r){1&i&&(Mi(),vt(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}}return e})(),k$=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,BI,xt]})}}return e})();const A$=["input"],N$=["label"],O$=["*"],F$=new D("mat-checkbox-default-options",{providedIn:"root",factory:HI});function HI(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Mt=function(e){return e[e.Init=0]="Init",e[e.Checked=1]="Checked",e[e.Unchecked=2]="Unchecked",e[e.Indeterminate=3]="Indeterminate",e}(Mt||{});const R$={provide:pn,useExisting:be(()=>Lg),multi:!0};class P${}let L$=0;const UI=HI();let Lg=(()=>{class e{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(t){const i=new P$;return i.source=this,i.checked=t,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,o,s,a){this._elementRef=t,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=s,this._options=a,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new de,this.indeterminateChange=new de,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=Mt.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||UI,this.color=this._options.color||UI.color,this.tabIndex=parseInt(o)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++L$,this.disabledInteractive=a?.disabledInteractive??!1}ngOnChanges(t){t.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(t){t!=this.checked&&(this._checked=t,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){t!==this.disabled&&(this._disabled=t,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const i=t!=this._indeterminate;this._indeterminate=t,i&&(this._transitionCheckState(this._indeterminate?Mt.Indeterminate:this.checked?Mt.Checked:Mt.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}validate(t){return this.required&&!0!==t.value?{required:!0}:null}registerOnValidatorChange(t){this._validatorChangeFn=t}_transitionCheckState(t){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==t&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const t=this._options?.clickAction;this.disabled||"noop"===t?(this.disabled&&this.disabledInteractive||!this.disabled&&"noop"===t)&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==t&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Mt.Checked:Mt.Unchecked),this._emitChangeEvent())}_onInteractionEvent(t){t.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(t,i){if("NoopAnimations"===this._animationMode)return"";switch(t){case Mt.Init:if(i===Mt.Checked)return this._animationClasses.uncheckedToChecked;if(i==Mt.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Mt.Unchecked:return i===Mt.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Mt.Checked:return i===Mt.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Mt.Indeterminate:return i===Mt.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(t){const i=this._inputElement;i&&(i.nativeElement.indeterminate=t)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(t){t.target&&this._labelElement.nativeElement.contains(t.target)&&t.stopPropagation()}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Sn),v(Y),Zi("tabindex"),v(so,8),v(F$,8))}}static{this.\u0275cmp=ft({type:e,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(Re(A$,5),Re(N$,5),Re(Pg,5)),2&i){let o;ve(o=ye())&&(r._inputElement=o.first),ve(o=ye())&&(r._labelElement=o.first),ve(o=ye())&&(r.ripple=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){2&i&&(la("id",r.id),Fe("tabindex",null)("aria-label",null)("aria-labelledby",null),aa(r.color?"mat-"+r.color:"mat-accent"),Te("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],id:"id",required:[2,"required","required",ct],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ct],tabIndex:[2,"tabIndex","tabIndex",t=>null==t?void 0:Km(t)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ct],checked:[2,"checked","checked",ct],disabled:[2,"disabled","disabled",ct],indeterminate:[2,"indeterminate","indeterminate",ct]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[we([R$,{provide:dt,useExisting:e,multi:!0}]),Js,Bt,un],ngContentSelectors:O$,decls:15,vars:20,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=Dt();Mi(),_(0,"div",3),ne("click",function(a){return B(o),j(r._preventBubblingFromLabel(a))}),_(1,"div",4,0)(3,"div",5),ne("click",function(){return B(o),j(r._onTouchTargetClick())}),y(),_(4,"input",6,1),ne("blur",function(){return B(o),j(r._onBlur())})("click",function(){return B(o),j(r._onInputClick())})("change",function(a){return B(o),j(r._onInteractionEvent(a))}),y(),Z(6,"div",7),_(7,"div",8),mh(),_(8,"svg",9),Z(9,"path",10),y(),function v_(){!function Mk(){q.lFrame.currentNamespace=null}()}(),Z(10,"div",11),y(),Z(11,"div",12),y(),_(12,"label",13,2),vt(14),y()()}if(2&i){const o=Tn(2);I("labelPosition",r.labelPosition),x(4),Te("mdc-checkbox--selected",r.checked),I("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),Fe("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-disabled",!(!r.disabled||!r.disabledInteractive)||null)("name",r.name)("value",r.value),x(7),I("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),x(),I("for",r.inputId)}},dependencies:[Pg,jI],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-app-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-app-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.cdk-high-contrast-active .mdc-checkbox--disabled{opacity:.5}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-app-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-app-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-app-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover .mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.cdk-high-contrast-active .mdc-checkbox--disabled .mdc-checkbox__checkmark,.cdk-high-contrast-active .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__mixedmark{margin:0 1px}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *,.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return e})(),j$=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[Lg,xt,xt]})}}return e})();const $$=new class z$ extends pi{}(class U$ extends cI{constructor(n,t){super(n,t),this.scheduler=n,this.work=t}schedule(n,t=0){return t>0?super.schedule(n,t):(this.delay=t,this.state=n,this.scheduler.flush(this),this)}execute(n,t){return t>0||this.closed?super.execute(n,t):this._execute(n,t)}requestAsyncId(n,t,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(n,t,i):n.flush(this)}});function zI(e,n){return new Le(n?t=>n.schedule(G$,0,{error:e,subscriber:t}):t=>t.error(e))}function G$({error:e,subscriber:n}){n.error(e)}class Gt{constructor(n,t,i){this.kind=n,this.value=t,this.error=i,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,t,i){switch(this.kind){case"N":return n&&n(this.value);case"E":return t&&t(this.error);case"C":return i&&i()}}accept(n,t,i){return n&&"function"==typeof n.next?this.observe(n):this.do(n,t,i)}toObservable(){switch(this.kind){case"N":return Rt(this.value);case"E":return zI(this.error);case"C":return Cu()}throw new Error("unexpected notification kind value")}static createNext(n){return typeof n<"u"?new Gt("N",n):Gt.undefinedValueNotification}static createError(n){return new Gt("E",void 0,n)}static createComplete(){return Gt.completeNotification}}Gt.completeNotification=new Gt("C"),Gt.undefinedValueNotification=new Gt("N",void 0);class ou extends Ce{constructor(n,t,i=0){super(n),this.scheduler=t,this.delay=i}static dispatch(n){const{notification:t,destination:i}=n;t.observe(i),this.unsubscribe()}scheduleMessage(n){this.destination.add(this.scheduler.schedule(ou.dispatch,this.delay,new Z$(n,this.destination)))}_next(n){this.scheduleMessage(Gt.createNext(n))}_error(n){this.scheduleMessage(Gt.createError(n)),this.unsubscribe()}_complete(){this.scheduleMessage(Gt.createComplete()),this.unsubscribe()}}class Z${constructor(n,t){this.notification=n,this.destination=t}}class K$ extends Ve{constructor(n=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=n<1?1:n,this._windowTime=t<1?1:t,t===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(n){if(!this.isStopped){const t=this._events;t.push(n),t.length>this._bufferSize&&t.shift()}super.next(n)}nextTimeWindow(n){this.isStopped||(this._events.push(new Y$(this._getNow(),n)),this._trimBufferThenGetEvents()),super.next(n)}_subscribe(n){const t=this._infiniteTimeWindow,i=t?this._events:this._trimBufferThenGetEvents(),r=this.scheduler,o=i.length;let s;if(this.closed)throw new Li;if(this.isStopped||this.hasError?s=me.EMPTY:(this.observers.push(n),s=new sb(this,n)),r&&n.add(n=new ou(n,r)),t)for(let a=0;at&&(s=Math.max(s,o-t)),s>0&&r.splice(0,s),r}}class Y${constructor(n,t){this.time=n,this.value=t}}class J${constructor(n){this._box=n,this._destroyed=new Ve,this._resizeSubject=new Ve,this._elementObservables=new Map,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(t=>this._resizeSubject.next(t)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new Le(t=>{const i=this._resizeSubject.subscribe(t);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(sc(t=>t.some(i=>i.target===n)),function Q$(e,n,t){let i;return i=e&&"object"==typeof e?e:{bufferSize:e,windowTime:n,refCount:!1,scheduler:t},r=>r.lift(function X$({bufferSize:e=Number.POSITIVE_INFINITY,windowTime:n=Number.POSITIVE_INFINITY,refCount:t,scheduler:i}){let r,s,o=0,a=!1,c=!1;return function(d){let u;o++,!r||a?(a=!1,r=new K$(e,n,i),u=r.subscribe(this),s=d.subscribe({next(h){r.next(h)},error(h){a=!0,r.error(h)},complete(){c=!0,s=void 0,r.complete()}}),c&&(s=void 0)):u=r.subscribe(this),this.add(()=>{o--,u.unsubscribe(),u=void 0,s&&!c&&t&&0===o&&(s.unsubscribe(),s=void 0,r=void 0)})}}(i))}({bufferSize:1,refCount:!0}),qa(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let e4=(()=>{class e{constructor(){this._observers=new Map,this._ngZone=T(Y)}ngOnDestroy(){for(const[,t]of this._observers)t.destroy();this._observers.clear()}observe(t,i){const r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new J$(r)),this._observers.get(r).observe(t)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),t4=(()=>{class e{create(t){return typeof MutationObserver>"u"?null:new MutationObserver(t)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),n4=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({providers:[t4]})}}return e})();const i4=["notch"],r4=["matFormFieldNotchedOutline",""],o4=["*"],s4=["textField"],a4=["iconPrefixContainer"],c4=["textPrefixContainer"],l4=["iconSuffixContainer"],d4=["textSuffixContainer"],u4=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],h4=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function f4(e,n){1&e&&Z(0,"span",21)}function m4(e,n){if(1&e&&(_(0,"label",20),vt(1,1),J(2,f4,1,0,"span",21),y()),2&e){const t=O(2);I("floating",t._shouldLabelFloat())("monitorResize",t._hasOutline())("id",t._labelId),Fe("for",t._control.disableAutomaticLabeling?null:t._control.id),x(2),Ut(!t.hideRequiredMarker&&t._control.required?2:-1)}}function p4(e,n){1&e&&J(0,m4,3,5,"label",20),2&e&&Ut(O()._hasFloatingLabel()?0:-1)}function g4(e,n){1&e&&Z(0,"div",7)}function b4(e,n){}function _4(e,n){1&e&&J(0,b4,0,0,"ng-template",13),2&e&&(O(2),I("ngTemplateOutlet",Tn(1)))}function v4(e,n){if(1&e&&(_(0,"div",9),J(1,_4,1,1,null,13),y()),2&e){const t=O();I("matFormFieldNotchedOutlineOpen",t._shouldLabelFloat()),x(),Ut(t._forceDisplayInfixLabel()?-1:1)}}function y4(e,n){1&e&&(_(0,"div",10,2),vt(2,2),y())}function w4(e,n){1&e&&(_(0,"div",11,3),vt(2,3),y())}function C4(e,n){}function E4(e,n){1&e&&J(0,C4,0,0,"ng-template",13),2&e&&(O(),I("ngTemplateOutlet",Tn(1)))}function D4(e,n){1&e&&(_(0,"div",14,4),vt(2,4),y())}function x4(e,n){1&e&&(_(0,"div",15,5),vt(2,5),y())}function M4(e,n){1&e&&Z(0,"div",16)}function I4(e,n){1&e&&(_(0,"div",18),vt(1,6),y()),2&e&&I("@transitionMessages",O()._subscriptAnimationState)}function T4(e,n){if(1&e&&(_(0,"mat-hint",22),k(1),y()),2&e){const t=O(2);I("id",t._hintLabelId),x(),ai(t.hintLabel)}}function S4(e,n){if(1&e&&(_(0,"div",19),J(1,T4,2,2,"mat-hint",22),vt(2,7),Z(3,"div",23),vt(4,8),y()),2&e){const t=O();I("@transitionMessages",t._subscriptAnimationState),x(),Ut(t.hintLabel?1:-1)}}let Vg=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=V({type:e,selectors:[["mat-label"]],standalone:!0})}}return e})();const k4=new D("MatError");let A4=0,$I=(()=>{class e{constructor(){this.align="start",this.id="mat-mdc-hint-"+A4++}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=V({type:e,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){2&i&&(la("id",r.id),Fe("align",null),Te("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return e})();const N4=new D("MatPrefix"),O4=new D("MatSuffix"),GI=new D("FloatingLabelParent");let qI=(()=>{class e{get floating(){return this._floating}set floating(t){this._floating=t,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(t){this._monitorResize=t,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(t){this._elementRef=t,this._floating=!1,this._monitorResize=!1,this._resizeObserver=T(e4),this._ngZone=T(Y),this._parent=T(GI),this._resizeSubscription=new me}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function F4(e){if(null!==e.offsetParent)return e.scrollWidth;const t=e.cloneNode(!0);t.style.setProperty("position","absolute"),t.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(t);const i=t.scrollWidth;return t.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static{this.\u0275fac=function(i){return new(i||e)(v(Ie))}}static{this.\u0275dir=V({type:e,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&Te("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return e})();const WI="mdc-line-ripple--active",su="mdc-line-ripple--deactivating";let ZI=(()=>{class e{constructor(t,i){this._elementRef=t,this._handleTransitionEnd=r=>{const o=this._elementRef.nativeElement.classList,s=o.contains(su);"opacity"===r.propertyName&&s&&o.remove(WI,su)},i.runOutsideAngular(()=>{t.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const t=this._elementRef.nativeElement.classList;t.remove(su),t.add(WI)}deactivate(){this._elementRef.nativeElement.classList.add(su)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Y))}}static{this.\u0275dir=V({type:e,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return e})(),KI=(()=>{class e{constructor(t,i){this._elementRef=t,this._ngZone=i,this.open=!1}ngAfterViewInit(){const t=this._elementRef.nativeElement.querySelector(".mdc-floating-label");t?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(t.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>t.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(t){this._notch.nativeElement.style.width=this.open&&t?`calc(${t}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Y))}}static{this.\u0275cmp=ft({type:e,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&Re(i4,5),2&i){let o;ve(o=ye())&&(r._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&Te("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[un],attrs:r4,ngContentSelectors:o4,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(Mi(),Z(0,"div",1),_(1,"div",2,0),vt(3),y(),Z(4,"div",3))},encapsulation:2,changeDetection:0})}}return e})();const R4={transitionMessages:wx("transitionMessages",[nU("enter",Wo({opacity:1,transform:"translateY(0%)"})),Pp("void => enter",[Wo({opacity:0,transform:"translateY(-5px)"}),Rp("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let YI=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275dir=V({type:e})}}return e})();const QI=new D("MatFormField"),XI=new D("MAT_FORM_FIELD_DEFAULT_OPTIONS");let JI=0,V4=(()=>{class e{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(t){this._hideRequiredMarker=tu(t)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(t){t!==this._floatLabel&&(this._floatLabel=t,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(t){const i=this._appearance;this._appearance=t||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(t){this._subscriptSizing=t||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(t){this._hintLabel=t,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(t){this._explicitFormFieldControl=t}constructor(t,i,r,o,s,a,c,l){this._elementRef=t,this._changeDetectorRef=i,this._dir=o,this._platform=s,this._defaults=a,this._animationMode=c,this._labelChild=eF(Vg),this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+JI++,this._hintLabelId="mat-mdc-hint-"+JI++,this._subscriptAnimationState="",this._destroyed=new Ve,this._isFocused=null,this._needsOutlineLabelOffsetUpdate=!1,this._previousControl=null,this._injector=T(at),this.getLabelId=pr(()=>this._hasFloatingLabel()?this._labelId:null),this._hasFloatingLabel=pr(()=>!!this._labelChild()),a&&(a.appearance&&(this.appearance=a.appearance),this._hideRequiredMarker=!!a?.hideRequiredMarker,a.color&&(this.color=a.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(t){const i=this._control,r="mat-mdc-form-field-type-";t&&this._elementRef.nativeElement.classList.remove(r+t.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(qa(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(t=>!t._isText),this._hasTextPrefix=!!this._prefixChildren.find(t=>t._isText),this._hasIconSuffix=!!this._suffixChildren.find(t=>!t._isText),this._hasTextSuffix=!!this._suffixChildren.find(t=>t._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),function H$(...e){let n=Number.POSITIVE_INFINITY,t=null,i=e[e.length-1];return _d(i)?(t=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof i&&(n=e.pop()),null===t&&1===e.length&&e[0]instanceof Le?e[0]:gI(n)(gp(e,t))}(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),function Gw(e,n){!n?.injector&&Ku();const t=n?.injector??T(at);return Jt(t)?(Et("NgAfterRender"),qw(e,t,n,!1)):Ww}(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(qa(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_shouldForward(t){const i=this._control?this._control.ngControl:null;return i&&i[t]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let t=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&t.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,r=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?t.push(i.id):this._hintLabel&&t.push(this._hintLabelId),r&&t.push(r.id)}else this._errorChildren&&t.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(t)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;const t=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(t.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdate=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,s=this._textSuffixContainer?.nativeElement,a=i?.getBoundingClientRect().width??0,c=r?.getBoundingClientRect().width??0,l=o?.getBoundingClientRect().width??0,d=s?.getBoundingClientRect().width??0;t.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${a+c}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`,this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${a+c+l+d}px)`)}_isAttachedToDom(){const t=this._elementRef.nativeElement;if(t.getRootNode){const i=t.getRootNode();return i&&i!==t}return document.documentElement.contains(t)}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Sn),v(Y),v(f$),v(Fi),v(XI,8),v(so,8),v(lt))}}static{this.\u0275cmp=ft({type:e,selectors:[["mat-form-field"]],contentQueries:function(i,r,o){if(1&i&&(_E(o,r._labelChild,Vg,5),fr(o,YI,5),fr(o,N4,5),fr(o,O4,5),fr(o,k4,5),fr(o,$I,5)),2&i){let s;(function vE(e=1){Nc(uh()+e)})(),ve(s=ye())&&(r._formFieldControl=s.first),ve(s=ye())&&(r._prefixChildren=s),ve(s=ye())&&(r._suffixChildren=s),ve(s=ye())&&(r._errorChildren=s),ve(s=ye())&&(r._hintChildren=s)}},viewQuery:function(i,r){if(1&i&&(Re(s4,5),Re(a4,5),Re(c4,5),Re(l4,5),Re(d4,5),Re(qI,5),Re(KI,5),Re(ZI,5)),2&i){let o;ve(o=ye())&&(r._textField=o.first),ve(o=ye())&&(r._iconPrefixContainer=o.first),ve(o=ye())&&(r._textPrefixContainer=o.first),ve(o=ye())&&(r._iconSuffixContainer=o.first),ve(o=ye())&&(r._textSuffixContainer=o.first),ve(o=ye())&&(r._floatingLabel=o.first),ve(o=ye())&&(r._notchedOutline=o.first),ve(o=ye())&&(r._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&Te("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===r._animationMode)("mat-form-field-appearance-fill","fill"==r.appearance)("mat-form-field-appearance-outline","outline"==r.appearance)("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary","accent"!==r.color&&"warn"!==r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],standalone:!0,features:[we([{provide:QI,useExisting:e},{provide:GI,useExisting:e}]),un],ngContentSelectors:h4,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const o=Dt();Mi(u4),J(0,p4,1,1,"ng-template",null,0,$t),_(2,"div",6,1),ne("click",function(a){return B(o),j(r._control.onContainerClick(a))}),J(4,g4,1,0,"div",7),_(5,"div",8),J(6,v4,2,2,"div",9)(7,y4,3,0,"div",10)(8,w4,3,0,"div",11),_(9,"div",12),J(10,E4,1,1,null,13),vt(11),y(),J(12,D4,3,0,"div",14)(13,x4,3,0,"div",15),y(),J(14,M4,1,0,"div",16),y(),_(15,"div",17),J(16,I4,2,1,"div",18)(17,S4,5,2,"div",19),y()}if(2&i){let o;x(2),Te("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),x(2),Ut(r._hasOutline()||r._control.disabled?-1:4),x(2),Ut(r._hasOutline()?6:-1),x(),Ut(r._hasIconPrefix?7:-1),x(),Ut(r._hasTextPrefix?8:-1),x(2),Ut(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),x(2),Ut(r._hasTextSuffix?12:-1),x(),Ut(r._hasIconSuffix?13:-1),x(),Ut(r._hasOutline()?-1:14),x(),Te("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),x(),Ut("error"===(o=r._getDisplayedMessages())?16:"hint"===o?17:-1)}},dependencies:[qI,KI,md,ZI,$I],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--disabled .cdk-high-contrast-active .mdc-text-field__input{background-color:Window}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-app-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.cdk-high-contrast-active .mdc-text-field--disabled .mdc-floating-label{z-index:1}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-app-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-app-outline));border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-app-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-app-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-app-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-app-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-app-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-app-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-app-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-app-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-app-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-app-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-app-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-app-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-app-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-app-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-app-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-app-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-app-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-app-body-large-weight))}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-app-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-app-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-app-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[R4.transitionMessages]},changeDetection:0})}}return e})(),Bg=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,br,n4,xt]})}}return e})();class j4{constructor(n){this.selector=n}call(n,t){return t.subscribe(new H4(n,this.selector,this.caught))}}class H4 extends wd{constructor(n,t,i){super(n),this.selector=t,this.caught=i}error(n){if(!this.isStopped){let t;try{t=this.selector(n,this.caught)}catch(o){return void super.error(o)}this._unsubscribeAndRecycle();const i=new yd(this);this.add(i);const r=Cd(t,i);r!==i&&this.add(r)}}}class z4{constructor(n){this.callback=n}call(n,t){return t.subscribe(new $4(n,this.callback))}}class $4 extends Ce{constructor(n,t){super(n),this.add(new me(t))}}function nT(){return function(n){return n.lift(new G4(n))}}class G4{constructor(n){this.connectable=n}call(n,t){const{connectable:i}=this;i._refCount++;const r=new q4(n,i),o=t.subscribe(r);return r.closed||(r.connection=i.connect()),o}}class q4 extends Ce{constructor(n,t){super(n),this.connectable=t}_unsubscribe(){const{connectable:n}=this;if(!n)return void(this.connection=null);this.connectable=null;const t=n._refCount;if(t<=0)return void(this.connection=null);if(n._refCount=t-1,t>1)return void(this.connection=null);const{connection:i}=this,r=n._connection;this.connection=null,r&&(!i||r===i)&&r.unsubscribe()}}class W4 extends Le{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let n=this._connection;return n||(this._isComplete=!1,n=this._connection=new me,n.add(this.source.subscribe(new K4(this.getSubject(),this))),n.closed&&(this._connection=null,n=me.EMPTY)),n}refCount(){return nT()(this)}}const Z4=(()=>{const e=W4.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class K4 extends ab{constructor(n,t){super(n),this.connectable=t}_error(n){this._unsubscribe(),super._error(n)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const n=this.connectable;if(n){this.connectable=null;const t=n._connection;n._refCount=0,n._subject=null,n._connection=null,t&&t.unsubscribe()}}}class X4{constructor(n,t){this.subjectFactory=n,this.selector=t}call(n,t){const{selector:i}=this,r=this.subjectFactory(),o=i(r).subscribe(n);return o.add(t.subscribe(r)),o}}function J4(){return new Ve}const t5=["*"];let au;function Za(e){return function n5(){if(void 0===au&&(au=null,typeof window<"u")){const e=window;void 0!==e.trustedTypes&&(au=e.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return au}()?.createHTML(e)||e}function iT(e){return Error(`Unable to find icon with the name "${e}"`)}function rT(e){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${e}".`)}function oT(e){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${e}".`)}class Sr{constructor(n,t,i){this.url=n,this.svgText=t,this.options=i}}let cu=(()=>{class e{constructor(t,i,r,o){this._httpClient=t,this._sanitizer=i,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=r}addSvgIcon(t,i,r){return this.addSvgIconInNamespace("",t,i,r)}addSvgIconLiteral(t,i,r){return this.addSvgIconLiteralInNamespace("",t,i,r)}addSvgIconInNamespace(t,i,r,o){return this._addSvgIconConfig(t,i,new Sr(r,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,i,r,o){const s=this._sanitizer.sanitize(_t.HTML,r);if(!s)throw oT(r);const a=Za(s);return this._addSvgIconConfig(t,i,new Sr("",a,o))}addSvgIconSet(t,i){return this.addSvgIconSetInNamespace("",t,i)}addSvgIconSetLiteral(t,i){return this.addSvgIconSetLiteralInNamespace("",t,i)}addSvgIconSetInNamespace(t,i,r){return this._addSvgIconSetConfig(t,new Sr(i,null,r))}addSvgIconSetLiteralInNamespace(t,i,r){const o=this._sanitizer.sanitize(_t.HTML,i);if(!o)throw oT(i);const s=Za(o);return this._addSvgIconSetConfig(t,new Sr("",s,r))}registerFontClassAlias(t,i=t){return this._fontCssClassesByAlias.set(t,i),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const i=this._sanitizer.sanitize(_t.RESOURCE_URL,t);if(!i)throw rT(t);const r=this._cachedIconsByUrl.get(i);return r?Rt(lu(r)):this._loadSvgIconFromConfig(new Sr(t,null)).pipe(Ta(o=>this._cachedIconsByUrl.set(i,o)),ht(o=>lu(o)))}getNamedSvgIcon(t,i=""){const r=sT(i,t);let o=this._svgIconConfigs.get(r);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,t),o)return this._svgIconConfigs.set(r,o),this._getSvgFromConfig(o);const s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(t,s):zI(iT(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?Rt(lu(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(ht(i=>lu(i)))}_getSvgFromIconSetConfigs(t,i){const r=this._extractIconWithNameFromAnySet(t,i);if(r)return Rt(r);const o=i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(function B4(e){return function(t){const i=new j4(e),r=t.lift(i);return i.caught=r}}(a=>{const l=`Loading icon set URL: ${this._sanitizer.sanitize(_t.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(l)),Rt(null)})));return tM(o).pipe(ht(()=>{const s=this._extractIconWithNameFromAnySet(t,i);if(!s)throw iT(t);return s}))}_extractIconWithNameFromAnySet(t,i){for(let r=i.length-1;r>=0;r--){const o=i[r];if(o.svgText&&o.svgText.toString().indexOf(t)>-1){const s=this._svgElementFromConfig(o),a=this._extractSvgIconFromSet(s,t,o.options);if(a)return a}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(Ta(i=>t.svgText=i),ht(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?Rt(null):this._fetchIcon(t).pipe(Ta(i=>t.svgText=i))}_extractSvgIconFromSet(t,i,r){const o=t.querySelector(`[id="${i}"]`);if(!o)return null;const s=o.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,r);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),r);const a=this._svgElementFromString(Za(" "));return a.appendChild(s),this._setSvgAttributes(a,r)}_svgElementFromString(t){const i=this._document.createElement("DIV");i.innerHTML=t;const r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(t){const i=this._svgElementFromString(Za(" ")),r=t.attributes;for(let o=0;oZa(l)),function U4(e){return n=>n.lift(new z4(e))}(()=>this._inProgressUrlFetches.delete(s)),function e5(){return e=>nT()(function Q4(e,n){return function(i){let r;if(r="function"==typeof e?e:function(){return e},"function"==typeof n)return i.lift(new X4(r,n));const o=Object.create(i,Z4);return o.source=i,o.subjectFactory=r,o}}(J4)(e))}());return this._inProgressUrlFetches.set(s,c),c}_addSvgIconConfig(t,i,r){return this._svgIconConfigs.set(sT(t,i),r),this}_addSvgIconSetConfig(t,i){const r=this._iconSetConfigs.get(t);return r?r.push(i):this._iconSetConfigs.set(t,[i]),this}_svgElementFromConfig(t){if(!t.svgElement){const i=this._svgElementFromString(t.svgText);this._setSvgAttributes(i,t.options),t.svgElement=i}return t.svgElement}_getIconConfigFromResolvers(t,i){for(let r=0;rn?n.pathname+n.search:""}}}),aT=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],l5=aT.map(e=>`[${e}]`).join(", "),d5=/^url\(['"]?#(.*?)['"]?\)$/;let cT=(()=>{class e{get color(){return this._color||this._defaultColor}set color(t){this._color=t}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const i=this._cleanupFontValue(t);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const i=this._cleanupFontValue(t);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(t,i,r,o,s,a){this._elementRef=t,this._iconRegistry=i,this._location=o,this._errorHandler=s,this.inline=!1,this._previousFontSetClass=[],this._currentIconFetch=me.EMPTY,a&&(a.color&&(this.color=this._defaultColor=a.color),a.fontSet&&(this.fontSet=a.fontSet)),r||t.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];const i=t.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let i=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const r=t.childNodes[i];(1!==r.nodeType||"svg"===r.nodeName.toLowerCase())&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(r=>r.length>0);this._previousFontSetClass.forEach(r=>t.classList.remove(r)),i.forEach(r=>t.classList.add(r)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const i=this._elementsWithExternalReferences;i&&i.forEach((r,o)=>{r.forEach(s=>{o.setAttribute(s.name,`url('${t}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(t){const i=t.querySelectorAll(l5),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{const a=i[o],c=a.getAttribute(s),l=c?c.match(d5):null;if(l){let d=r.get(a);d||(d=[],r.set(a,d)),d.push({name:s,value:l[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[i,r]=this._splitIconName(t);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(cs(1)).subscribe(o=>this._setSvgElement(o),o=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${r}! ${o.message}`))})}}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(cu),Zi("aria-hidden"),v(a5),v(Yt),v(s5,8))}}static{this.\u0275cmp=ft({type:e,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,r){2&i&&(Fe("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet)("fontIcon",r._usingFontIcon()?r.fontIcon:null),aa(r.color?"mat-"+r.color:""),Te("mat-icon-inline",r.inline)("mat-icon-no-color","primary"!==r.color&&"accent"!==r.color&&"warn"!==r.color))},inputs:{color:"color",inline:[2,"inline","inline",ct],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],standalone:!0,features:[Js,un],ngContentSelectors:t5,decls:1,vars:0,template:function(i,r){1&i&&(Mi(),vt(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}}return e})(),u5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,xt]})}}return e})();const lT=$a({passive:!0});let h5=(()=>{class e{constructor(t,i){this._platform=t,this._ngZone=i,this._monitoredElements=new Map}monitor(t){if(!this._platform.isBrowser)return ub;const i=Mr(t),r=this._monitoredElements.get(i);if(r)return r.subject;const o=new Ve,s="cdk-text-field-autofilled",a=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:c.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",a,lT),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",a,lT)}}),o}stopMonitoring(t){const i=Mr(t),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((t,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||e)(N(Fi),N(Y))}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),f5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({})}}return e})();const m5=new D("MAT_INPUT_VALUE_ACCESSOR"),p5=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let g5=0,b5=(()=>{class e{get disabled(){return this._disabled}set disabled(t){this._disabled=tu(t),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(t){this._id=t||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(tz.required)??!1}set required(t){this._required=tu(t)}get type(){return this._type}set type(t){this._type=t||"text",this._validateType(),!this._isTextarea&&aI().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._ensureWheelDefaultBehavior()}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(t){this._errorStateTracker.matcher=t}get value(){return this._inputValueAccessor.value}set value(t){t!==this.value&&(this._inputValueAccessor.value=t,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(t){this._readonly=tu(t)}get errorState(){return this._errorStateTracker.errorState}set errorState(t){this._errorStateTracker.errorState=t}constructor(t,i,r,o,s,a,c,l,d,u){this._elementRef=t,this._platform=i,this.ngControl=r,this._autofillMonitor=l,this._ngZone=d,this._formField=u,this._uid="mat-input-"+g5++,this._webkitBlinkWheelListenerAttached=!1,this.focused=!1,this.stateChanges=new Ve,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(m=>aI().has(m)),this._iOSKeyupListener=m=>{const p=m.target;!p.value&&0===p.selectionStart&&0===p.selectionEnd&&(p.setSelectionRange(1,1),p.setSelectionRange(0,0))},this._webkitBlinkWheelListener=()=>{};const h=this._elementRef.nativeElement,f=h.nodeName.toLowerCase();this._inputValueAccessor=c||h,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&d.runOutsideAngular(()=>{t.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new OI(a,r,s,o,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===f,this._isTextarea="textarea"===f,this._isInFormField=!!u,this._isNativeSelect&&(this.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(t=>{this.autofilled=t.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener),this._webkitBlinkWheelListenerAttached&&this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(t){this._elementRef.nativeElement.focus(t)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(t){t!==this.focused&&(this.focused=t,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const t=this._elementRef.nativeElement.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this.stateChanges.next())}_dirtyCheckPlaceholder(){const t=this._getPlaceholder();if(t!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=t,t?i.setAttribute("placeholder",t):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){p5.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let t=this._elementRef.nativeElement.validity;return t&&t.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const t=this._elementRef.nativeElement,i=t.options[0];return this.focused||t.multiple||!this.empty||!!(t.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(t){t.length?this._elementRef.nativeElement.setAttribute("aria-describedby",t.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const t=this._elementRef.nativeElement;return this._isNativeSelect&&(t.multiple||t.size>1)}_ensureWheelDefaultBehavior(){!this._webkitBlinkWheelListenerAttached&&"number"===this._type&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("wheel",this._webkitBlinkWheelListener)}),this._webkitBlinkWheelListenerAttached=!0),this._webkitBlinkWheelListenerAttached&&"number"!==this._type&&(this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener),this._webkitBlinkWheelListenerAttached=!0)}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Fi),v(mi,10),v(Ua,8),v(Jd,8),v(E$),v(m5,10),v(h5),v(Y),v(QI,8))}}static{this.\u0275dir=V({type:e,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,r){1&i&&ne("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(la("id",r.id)("disabled",r.disabled)("required",r.required),Fe("name",r.name||null)("readonly",r.readonly&&!r._isNativeSelect||null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),Te("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[we([{provide:YI,useExisting:e}]),Bt]})}}return e})(),_5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,Bg,Bg,f5,xt]})}}return e})(),v5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,xt]})}}return e})(),w5=(()=>{class e{constructor(){this._listeners=[]}notify(t,i){for(let r of this._listeners)r(t,i)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(i=>t!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const C5=["input"],E5=["formField"],D5=["*"];let dT=0;class uT{constructor(n,t){this.source=n,this.value=t}}const x5={provide:pn,useExisting:be(()=>fT),multi:!0},hT=new D("MatRadioGroup"),M5=new D("mat-radio-default-options",{providedIn:"root",factory:function I5(){return{color:"accent",disabledInteractive:!1}}});let fT=(()=>{class e{get name(){return this._name}set name(t){this._name=t,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(t){this._labelPosition="before"===t?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(t){this._selected=t,this.value=t?t.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._markRadiosForCheck()}get required(){return this._required}set required(t){this._required=t,this._markRadiosForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(t){this._disabledInteractive=t,this._markRadiosForCheck()}constructor(t){this._changeDetector=t,this._value=null,this._name="mat-radio-group-"+dT++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new de,this._disabledInteractive=!1}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(t=>t===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(t=>{t.name=this.name,t._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new uT(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(t=>t._markForCheck())}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetector.markForCheck()}static{this.\u0275fac=function(i){return new(i||e)(v(Sn))}}static{this.\u0275dir=V({type:e,selectors:[["mat-radio-group"]],contentQueries:function(i,r,o){if(1&i&&fr(o,jg,5),2&i){let s;ve(s=ye())&&(r._radios=s)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:[2,"disabled","disabled",ct],required:[2,"required","required",ct],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ct]},outputs:{change:"change"},exportAs:["matRadioGroup"],standalone:!0,features:[we([x5,{provide:hT,useExisting:e}]),Js]})}}return e})(),jg=(()=>{class e{get checked(){return this._checked}set checked(t){this._checked!==t&&(this._checked=t,t&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!t&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),t&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===t),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(t){this._labelPosition=t}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(t){this._setDisabled(t)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(t){this._required=t}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(t){this._color=t}get disabledInteractive(){return this._disabledInteractive||null!==this.radioGroup&&this.radioGroup.disabledInteractive}set disabledInteractive(t){this._disabledInteractive=t}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,o,s,a,c,l){this._elementRef=i,this._changeDetector=r,this._focusMonitor=o,this._radioDispatcher=s,this._defaultOptions=c,this._ngZone=T(Y),this._uniqueId="mat-radio-"+ ++dT,this.id=this._uniqueId,this.disableRipple=!1,this.tabIndex=0,this.change=new de,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this._injector=T(at),this._onInputClick=d=>{this.disabled&&this.disabledInteractive&&d.preventDefault()},this.radioGroup=t,this._noopAnimations="NoopAnimations"===a,this._disabledInteractive=c?.disabledInteractive??!1,l&&(this.tabIndex=Km(l,0))}focus(t,i){i?this._focusMonitor.focusVia(this._inputElement,i,t):this._inputElement.nativeElement.focus(t)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((t,i)=>{t!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{!t&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._inputElement.nativeElement.addEventListener("click",this._onInputClick)})}ngOnDestroy(){this._inputElement?.nativeElement.removeEventListener("click",this._onInputClick),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new uT(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(t){if(t.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(t){this._onInputInteraction(t),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(t){this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())}_updateTabIndex(){const t=this.radioGroup;let i;if(i=t&&t.selected&&!this.disabled?t.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i,ar(()=>{queueMicrotask(()=>{t&&t.selected&&t.selected!==this&&document.activeElement===r&&(t.selected?._inputElement.nativeElement.focus(),document.activeElement===r&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static{this.\u0275fac=function(i){return new(i||e)(v(hT,8),v(Ie),v(Sn),v(a$),v(w5),v(so,8),v(M5,8),Zi("tabindex"))}}static{this.\u0275cmp=ft({type:e,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(1&i&&(Re(C5,5),Re(E5,7,Ie)),2&i){let o;ve(o=ye())&&(r._inputElement=o.first),ve(o=ye())&&(r._rippleTrigger=o.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,r){1&i&&ne("focus",function(){return r._inputElement.nativeElement.focus()}),2&i&&(Fe("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),Te("mat-primary","primary"===r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("mat-mdc-radio-checked",r.checked)("mat-mdc-radio-disabled",r.disabled)("mat-mdc-radio-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",ct],tabIndex:[2,"tabIndex","tabIndex",t=>null==t?0:Km(t)],checked:[2,"checked","checked",ct],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",ct],required:[2,"required","required",ct],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ct]},outputs:{change:"change"},exportAs:["matRadioButton"],standalone:!0,features:[Js,un],ngContentSelectors:D5,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=Dt();Mi(),_(0,"div",2,0)(2,"div",3)(3,"div",4),ne("click",function(a){return B(o),j(r._onTouchTargetClick(a))}),y(),_(4,"input",5,1),ne("change",function(a){return B(o),j(r._onInputInteraction(a))}),y(),_(6,"div",6),Z(7,"div",7)(8,"div",8),y(),_(9,"div",9),Z(10,"div",10),y()(),_(11,"label",11),vt(12),y()()}2&i&&(I("labelPosition",r.labelPosition),x(2),Te("mdc-radio--disabled",r.disabled),x(2),I("id",r.inputId)("checked",r.checked)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Fe("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),x(5),I("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),x(2),I("for",r.inputId))},dependencies:[Pg,jI],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-app-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-app-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-app-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-app-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size);top:calc(-1*(var(--mdc-radio-state-layer-size) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-app-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-app-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-app-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-app-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-app-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-app-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-app-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-app-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-app-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-app-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-app-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}}return e})(),T5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e})}static{this.\u0275inj=He({imports:[xt,br,BI,jg,xt]})}}return e})();const ts=typeof window<"u",S5_scrollBehavior=ts&&"scrollBehavior"in document.body.style,mT_ios=ts&&!!window.navigator.userAgent.match(/iP(ad|hone|od)/),k5={galleryLabel:"Image Gallery",viewerLabel:"Displayed gallery images."};let pT=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["chevron-icon"]],standalone:!0,features:[un],decls:17,vars:0,consts:[["version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","x","0px","y","0px","viewBox","0 0 407.436 407.436",0,"xml","space","preserve"],["points","112.814,0 91.566,21.178 273.512,203.718 91.566,386.258 112.814,407.436 315.869,203.718 "]],template:function(i,r){1&i&&(mh(),_(0,"svg",0),Z(1,"polygon",1)(2,"g")(3,"g")(4,"g")(5,"g")(6,"g")(7,"g")(8,"g")(9,"g")(10,"g")(11,"g")(12,"g")(13,"g")(14,"g")(15,"g")(16,"g"),y())},styles:["svg[_ngcontent-%COMP%]{width:26px;height:26px}svg[_ngcontent-%COMP%]{fill:#fff;filter:drop-shadow(0 0 1px black);display:block}"],changeDetection:0})}}return e})();const A5=["thumbs"],N5=["thumb"],O5=(e,n,t)=>({index:e,selectedIndex:n,item:t});function F5(e,n){1&e&&(_(0,"div"),Z(1,"chevron-icon"),y())}function R5(e,n){if(1&e){const t=Dt();_(0,"button",7),ne("click",function(){return B(t),j(O().slide(-1))}),J(1,F5,2,0,"div",8),y()}if(2&e){const t=O();x(),I("ngIf",!t.arrowTemplate)("ngIfElse",t.arrowTemplate)}}function P5(e,n){1&e&&Z(0,"li",9)}function L5(e,n){if(1&e&&(_(0,"div",14),Z(1,"div",15),y()),2&e){const t=O(3).$implicit;x(),Te("thumbs-error-icon--video",t.video)}}function V5(e,n){if(1&e&&(dr(0),J(1,L5,2,2,"div",13),ur()),2&e){const t=O(3);x(),I("ngIf",!t.errorTemplate)("ngIfElse",t.errorTemplate)}}function B5(e,n){if(1&e){const t=Dt();dr(0),_(1,"img",11),ne("load",function(){B(t);const r=O().$implicit;return j(O().onLoadChange(r,!0))})("error",function(){B(t);const r=O().$implicit;return j(O().onLoadChange(r,!1))}),y(),J(2,V5,2,2,"ng-container",12),ur()}if(2&e){const t=O().$implicit;x(),I("src",t.thumbSrc||"",ln)("alt",t.alt),x(),I("ngIf",t._thumbFailed)}}function j5(e,n){1&e&&Bo(0)}function H5(e,n){if(1&e&&J(0,j5,1,0,"ng-container",16),2&e){const t=O(),i=t.$implicit,r=t.index,o=O();I("ngTemplateOutlet",o.thumbTemplate)("ngTemplateOutletContext",zE(2,O5,r,o.selectedIndex,i))}}function U5(e,n){if(1&e){const t=Dt();_(0,"li",10,1),ne("click",function(r){const o=B(t),s=o.$implicit,a=o.index,c=O();return j(c.emitEvent(a,s,r,c.thumbClick))})("mouseenter",function(r){const o=B(t),s=o.$implicit,a=o.index,c=O();return j(c.emitEvent(a,s,r,c.thumbHover))}),J(2,B5,3,3,"ng-container",8)(3,H5,1,6,"ng-template",null,2,$t),y()}if(2&e){const t=n.index,i=Tn(4),r=O();Te("thumbs-item--selected",t===r.selectedIndex),x(2),I("ngIf",!r.thumbTemplate)("ngIfElse",i)}}function z5(e,n){1&e&&(_(0,"div"),Z(1,"chevron-icon"),y())}function $5(e,n){if(1&e){const t=Dt();_(0,"button",17),ne("click",function(){return B(t),j(O().slide(1))}),J(1,z5,2,0,"div",8),y()}if(2&e){const t=O();x(),I("ngIf",!t.arrowTemplate)("ngIfElse",t.arrowTemplate)}}let gT=(()=>{class e{get cssClass(){return`thumbs--${this.orientation}`}get hostOffsetAxis(){return this.vertical?this.elRef.nativeElement.offsetHeight:this.elRef.nativeElement.offsetWidth}get scrollKey(){return this.vertical?"scrollTop":"scrollLeft"}get thumbsEmpty(){return!this.thumbsRef||!this.thumbsRef.length}get vertical(){return"left"===this.orientation||"right"===this.orientation}constructor(t,i){this.cd=t,this.elRef=i,this.items=[],this.thumbClick=new de,this.thumbHover=new de,this.showStartArrow=!1,this.showEndArrow=!1,this.onArrowsObserved=r=>{if(this.thumbsEmpty)return;const o=r[0].target,{first:s,last:a}=this.thumbsRef;this.setObservedArrows(o===s.nativeElement?r[0]:r[1],o===a.nativeElement?r[0]:r[1]),this.cd.detectChanges()}}ngOnChanges({arrows:t,items:i}){t&&(t.currentValue?this.observeArrows():t.currentValue||(this.showStartArrow=this.showEndArrow=!1,this.unobserveArrows())),i&&setTimeout(()=>{this.arrows&&this.observeArrows(),this.centerThumbIfNeeded(this.selectedIndex)})}ngOnDestroy(){this.unobserveArrows()}slide(t){let i;if(this.arrowSlideByLength)i=this.arrowSlideByLength;else{const r=this.thumbListRef.nativeElement,s=this.vertical?r.offsetHeight:r.offsetWidth;i=Math.min(s,(this.vertical?r.scrollHeight:r.scrollWidth)-s)}this.scroll(i*t)}centerThumbIfNeeded(t){if(!this.items||this.items.length<=1)return;const i=this.thumbsRef.toArray()[t];if(!i)return;const r=i.nativeElement,{offsetLeft:o,offsetTop:s,offsetWidth:a,offsetHeight:c}=r,l=this.vertical?s:o,d=this.vertical?c:a,u=this.hostOffsetAxis,h=this.thumbListRef.nativeElement[this.scrollKey];(h+ul)&&this.scroll(l+d/2-u/2-h)}select(t){this.selectedIndex=t,this.cd.detectChanges(),this.autoScroll&&setTimeout(()=>this.centerThumbIfNeeded(t))}emitEvent(t,i,r,o){o.emit({index:t,item:i,event:r})}onLoadChange(t,i){t._thumbFailed=!i}scroll(t){if(!ts)return;if(S5_scrollBehavior||"auto"===this.scrollBehavior)return void this.shiftByDelta(t);null!=this.scrollId&&cancelAnimationFrame(this.scrollId);const i=Math.abs(t),r=Date.now();let s=200*(Math.log10(i)-1.1);s<0&&(s=200);let a=0;const c=()=>{const l=Math.ceil((Date.now()-r)/s*i);let d=Math.min(l-a,i-a);d*=Math.sign(t),a=l,this.shiftByDelta(d),a<=i&&(this.scrollId=requestAnimationFrame(c))};this.scrollId=requestAnimationFrame(c)}shiftByDelta(t){this.thumbListRef.nativeElement[this.scrollKey]+=t}observeArrows(){this.thumbsEmpty||!ts||(this.arrowObserver?this.unobserveArrows():this.arrowObserver=new IntersectionObserver(this.onArrowsObserved,{root:this.thumbListRef.nativeElement,threshold:1}),this.arrowObserver.observe(this.thumbsRef.first.nativeElement),this.arrowObserver.observe(this.thumbsRef.last.nativeElement))}setObservedArrows(t,i){this.isRtl&&!this.vertical?(i&&(this.showStartArrow=i.intersectionRatio<1),t&&(this.showEndArrow=t.intersectionRatio<1)):(t&&(this.showStartArrow=t.intersectionRatio<1),i&&(this.showEndArrow=i.intersectionRatio<1))}unobserveArrows(){this.arrowObserver&&this.arrowObserver.disconnect()}static{this.\u0275fac=function(i){return new(i||e)(v(Sn),v(Ie))}}static{this.\u0275cmp=ft({type:e,selectors:[["thumbs"]],viewQuery:function(i,r){if(1&i&&(Re(A5,7),Re(N5,5)),2&i){let o;ve(o=ye())&&(r.thumbListRef=o.first),ve(o=ye())&&(r.thumbsRef=o)}},hostVars:2,hostBindings:function(i,r){2&i&&aa(r.cssClass)},inputs:{items:"items",selectedIndex:"selectedIndex",aria:"aria",orientation:"orientation",arrows:"arrows",arrowSlideByLength:"arrowSlideByLength",autoScroll:"autoScroll",thumbTemplate:"thumbTemplate",arrowTemplate:"arrowTemplate",errorTemplate:"errorTemplate",scrollBehavior:"scrollBehavior",isRtl:"isRtl"},outputs:{thumbClick:"thumbClick",thumbHover:"thumbHover"},standalone:!0,features:[Bt,un],decls:6,vars:8,consts:[["thumbs",""],["thumb",""],["customThumbTemplate",""],["aria-label","Previous thumbnails","class","thumbs-arrow thumbs-arrow-prev",3,"click",4,"ngIf"],["class","thumbs-initial-item",4,"ngIf"],["aria-hidden","true",3,"thumbs-item--selected","click","mouseenter",4,"ngFor","ngForOf"],["aria-label","Next thumbnails","class","thumbs-arrow thumbs-arrow-next",3,"click",4,"ngIf"],["aria-label","Previous thumbnails",1,"thumbs-arrow","thumbs-arrow-prev",3,"click"],[4,"ngIf","ngIfElse"],[1,"thumbs-initial-item"],["aria-hidden","true",3,"click","mouseenter"],[3,"load","error","src","alt"],[4,"ngIf"],["class","thumbs-error",4,"ngIf","ngIfElse"],[1,"thumbs-error"],[1,"thumbs-error-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-label","Next thumbnails",1,"thumbs-arrow","thumbs-arrow-next",3,"click"]],template:function(i,r){1&i&&(J(0,R5,2,2,"button",3),_(1,"ul",null,0),J(3,P5,1,0,"li",4)(4,U5,5,4,"li",5),y(),J(5,$5,2,2,"button",6)),2&i&&(I("ngIf",r.showStartArrow),x(),sa("scroll-behavior",r.scrollBehavior),Te("rtl",r.isRtl),x(2),I("ngIf",!r.items||!r.items.length),x(),I("ngForOf",r.items),x(),I("ngIf",r.showEndArrow))},dependencies:[br,sp,gr,md,pT],styles:['[_nghost-%COMP%]{flex:1 0 auto;position:relative;background-color:#f3f3f3}.thumbs--top[_nghost-%COMP%], .thumbs--bottom[_nghost-%COMP%]{width:100%}.thumbs--top[_nghost-%COMP%] ul[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] ul[_ngcontent-%COMP%]{width:100%;display:flex;overflow-x:scroll;overflow-y:hidden}.thumbs--top[_nghost-%COMP%] ul.rtl[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:first-child, .thumbs--bottom[_nghost-%COMP%] ul.rtl[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:first-child{margin-left:0;margin-right:auto}.thumbs--top[_nghost-%COMP%] ul.rtl[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child, .thumbs--bottom[_nghost-%COMP%] ul.rtl[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{margin-right:0;margin-left:auto}.thumbs--top[_nghost-%COMP%] li[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] li[_ngcontent-%COMP%]{flex:none}.thumbs--top[_nghost-%COMP%] li[_ngcontent-%COMP%]:not(:first-child), .thumbs--bottom[_nghost-%COMP%] li[_ngcontent-%COMP%]:not(:first-child){border-left:0}.thumbs--top[_nghost-%COMP%] li[_ngcontent-%COMP%]:first-child, .thumbs--bottom[_nghost-%COMP%] li[_ngcontent-%COMP%]:first-child{margin-left:auto}.thumbs--top[_nghost-%COMP%] li[_ngcontent-%COMP%]:last-child, .thumbs--bottom[_nghost-%COMP%] li[_ngcontent-%COMP%]:last-child{margin-right:auto}.thumbs--top[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%]{top:0;height:100%}.thumbs--top[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:30px;height:100%}.thumbs--top[_nghost-%COMP%] .thumbs-arrow-prev[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] .thumbs-arrow-prev[_ngcontent-%COMP%]{left:0}.thumbs--top[_nghost-%COMP%] .thumbs-arrow-next[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] .thumbs-arrow-next[_ngcontent-%COMP%]{right:0}.thumbs--top[_nghost-%COMP%] .thumbs-error[_ngcontent-%COMP%], .thumbs--bottom[_nghost-%COMP%] .thumbs-error[_ngcontent-%COMP%]{border-right:1px solid #cecece}.thumbs--left[_nghost-%COMP%], .thumbs--right[_nghost-%COMP%]{height:100%}.thumbs--left[_nghost-%COMP%] ul[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] ul[_ngcontent-%COMP%]{height:100%;overflow-y:scroll;overflow-x:hidden}.thumbs--left[_nghost-%COMP%] li[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] li[_ngcontent-%COMP%]{border-top:0}.thumbs--left[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%]{width:100%}.thumbs--left[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:100%;height:30px}.thumbs--left[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] chevron-icon[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-arrow[_ngcontent-%COMP%] chevron-icon[_ngcontent-%COMP%]{transform:rotate(90deg)}.thumbs--left[_nghost-%COMP%] .thumbs-arrow-prev[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-arrow-prev[_ngcontent-%COMP%]{top:0}.thumbs--left[_nghost-%COMP%] .thumbs-arrow-next[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-arrow-next[_ngcontent-%COMP%]{bottom:0}.thumbs--left[_nghost-%COMP%] .thumbs-error[_ngcontent-%COMP%], .thumbs--right[_nghost-%COMP%] .thumbs-error[_ngcontent-%COMP%]{border-bottom:1px solid #cecece}.thumbs--bottom[_nghost-%COMP%], .thumbs--right[_nghost-%COMP%]{order:1}ul[_ngcontent-%COMP%]{outline:0;scrollbar-width:none;-webkit-overflow-scrolling:touch;transform:translateZ(0)}ul[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}li[_ngcontent-%COMP%]{box-sizing:border-box;width:120px;height:80px;position:relative;cursor:pointer}li.thumbs-initial-item[_ngcontent-%COMP%]{visibility:hidden}li.thumbs-item--selected[_ngcontent-%COMP%]:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:100%;border:10px solid rgba(255,255,255,.8117647059);box-sizing:border-box}img[_ngcontent-%COMP%]{width:100%;height:100%;background-repeat:no-repeat;background-position:center;object-fit:cover;color:transparent}.thumbs-error[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background:#e8e8e8;box-sizing:border-box}.thumbs-error-icon[_ngcontent-%COMP%]:not(.thumbs-error-icon--video){position:relative;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #a5a5a5;margin-left:-8px}.thumbs-error-icon[_ngcontent-%COMP%]:not(.thumbs-error-icon--video):before, .thumbs-error-icon[_ngcontent-%COMP%]:not(.thumbs-error-icon--video):after{content:"";position:absolute}.thumbs-error-icon[_ngcontent-%COMP%]:not(.thumbs-error-icon--video):before{height:10px;width:10px;background-color:#a5a5a5;border-radius:100%;left:14px}.thumbs-error-icon[_ngcontent-%COMP%]:not(.thumbs-error-icon--video):after{border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:17px solid #a5a5a5;top:11px}.thumbs-error-icon--video[_ngcontent-%COMP%]{border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #a5a5a5;margin-left:9px}.thumbs-arrow[_ngcontent-%COMP%]{position:absolute;padding:0;background-color:transparent;cursor:pointer;z-index:10}.thumbs-arrow-prev[_ngcontent-%COMP%]{transform:scale(-1)}.thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;background:#00000080;padding:0;opacity:.7}@media (hover: hover) and (pointer: fine){.thumbs-arrow[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover{opacity:1}}'],changeDetection:0})}}return e})(),G5=(()=>{class e{constructor(t){this.mediaLoadError=new de,this.onLoad=i=>{"error"===i.type&&this.mediaLoadError.emit()},this.nativeEl=t.nativeElement}ngOnInit(){this.nativeEl.addEventListener("error",this.onLoad,!0)}ngOnDestroy(){this.nativeEl.removeEventListener("error",this.onLoad,!0)}static{this.\u0275fac=function(i){return new(i||e)(v(Ie))}}static{this.\u0275dir=V({type:e,selectors:[["","media",""]],outputs:{mediaLoadError:"mediaLoadError"},standalone:!0})}}return e})(),q5=(()=>{class e{constructor(t){this.sanitizer=t}transform(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)}static{this.\u0275fac=function(i){return new(i||e)(v(Md,16))}}static{this.\u0275pipe=Tt({name:"safe",type:e,pure:!0,standalone:!0})}}return e})(),W5=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["counter"]],hostVars:2,hostBindings:function(i,r){2&i&&aa(r.orientation)},inputs:{itemQuantity:"itemQuantity",selectedIndex:"selectedIndex",orientation:"orientation"},standalone:!0,features:[un],decls:2,vars:2,consts:[["aria-hidden","true"]],template:function(i,r){1&i&&(_(0,"span",0),k(1),y()),2&i&&(x(),Cm(" ",r.selectedIndex+1,"/",r.itemQuantity||0," "))},styles:["[_nghost-%COMP%]{position:absolute;left:50%;transform:translate(-50%);background:#0009;padding:.25rem .5rem;font-size:.9rem;color:#f1f5f9;letter-spacing:3px;-webkit-user-select:none;user-select:none}.top[_nghost-%COMP%]{top:0;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.bottom[_nghost-%COMP%]{bottom:0;border-top-left-radius:.375rem;border-top-right-radius:.375rem}"],changeDetection:0})}}return e})();const Z5=["itemList"],K5=["itemsRef"],Y5=e=>({selectedIndex:e}),Q5=(e,n,t,i)=>({index:e,selectedIndex:n,item:t,video:i});function X5(e,n){1&e&&Z(0,"chevron-icon")}function J5(e,n){if(1&e){const t=Dt();_(0,"button",10),ne("mousedown",function(r){return B(t),j(r.stopPropagation())})("click",function(){B(t);const r=O();return j(r.selectByDelta(-r.moveByItems))}),J(1,X5,1,0,"chevron-icon",11),y()}if(2&e){const t=O();x(),I("ngIf",!t.arrowTemplate)("ngIfElse",t.arrowTemplate)}}function eG(e,n){1&e&&Z(0,"li",12)}function tG(e,n){if(1&e&&Z(0,"source",20),2&e){const t=n.$implicit;I("srcset",t.srcset),Fe("media",t.media)("sizes",t.sizes)("type",t.type)}}function nG(e,n){if(1&e&&(_(0,"picture"),J(1,tG,1,4,"source",18),Z(2,"img",19),y()),2&e){const t=O(2).$implicit,i=O();I("@mediaAnimate",void 0),x(),I("ngForOf",t.pictureSources),x(),sa("object-fit",i.objectFit),I("src",t.src,ln)("alt",t.alt),Fe("loading",i.loading)}}function iG(e,n){if(1&e&&Z(0,"video",21),2&e){const t=O(2).$implicit,i=O();sa("object-fit",i.objectFit),I("@mediaAnimate",void 0)("src",t.src,ln)("poster",t.thumbSrc||"",ln),Fe("preload","lazy"===i.loading?"metadata":"auto")}}function rG(e,n){if(1&e&&(Z(0,"iframe",22),Im(1,"safe")),2&e){const t=O(2).$implicit,i=O();I("@mediaAnimate",void 0)("src",Tm(1,3,t.src),Xh),Fe("loading",i.loading)}}function oG(e,n){if(1&e&&(dr(0),J(1,nG,3,7,"picture",14)(2,iG,1,6,"video",16)(3,rG,2,5,"iframe",17),ur()),2&e){const t=O().$implicit,i=O();x(),I("ngIf",!t.video),x(),I("ngIf",!i.isYoutube(t)&&t.video),x(),I("ngIf",i.isYoutube(t))}}function sG(e,n){if(1&e&&(_(0,"div",24)(1,"div",25),k(2,"\u26a0"),y(),_(3,"p",26),k(4),y()()),2&e){const t=O(3);x(4),Ho(" ",t.errorText||"Loading of this media failed"," ")}}function aG(e,n){if(1&e&&(dr(0),J(1,sG,5,1,"div",23),ur()),2&e){const t=O(2);x(),I("ngIf",!t.errorTemplate)("ngIfElse",t.errorTemplate)}}function cG(e,n){1&e&&Bo(0)}function lG(e,n){if(1&e&&J(0,cG,1,0,"ng-container",8),2&e){const t=O().$implicit,i=O();I("ngTemplateOutlet",i.itemTemplate)("ngTemplateOutletContext",$E(2,Q5,null==i.items?null:i.items.indexOf(t),i.selectedIndex,t,t.video))}}function dG(e,n){if(1&e){const t=Dt();_(0,"li",13,1),ne("click",function(r){const o=B(t).$implicit;return j(O().onImageClick(o,r))})("mediaLoadError",function(){const r=B(t).$implicit;return j(O().onItemErrored(r))})("keydown.Tab",function(){const r=B(t).index;return j(O().onTab(r+1))})("keydown.shift.Tab",function(){const r=B(t).index;return j(O().onTab(r-1))}),J(2,oG,4,3,"ng-container",11)(3,aG,2,2,"ng-container",14),Z(4,"span",15),J(5,lG,1,7,"ng-template",null,2,$t),y()}if(2&e){const t=n.$implicit,i=n.index,r=Tn(6),o=O();Te("viewer-fringe-item",o.isItemFringe(i)),Fe("tabindex",o.isItemFringe(i)?-1:0)("aria-label",t.alt)("aria-describedby","viewer-aria-description-"+i),x(2),I("ngIf",!o.itemTemplate)("ngIfElse",r),x(),I("ngIf",o.itemFailedToLoad(t)),x(),I("id","viewer-aria-description-"+i)("innerHTML",t.description,Qh)}}function uG(e,n){1&e&&Z(0,"chevron-icon")}function hG(e,n){if(1&e){const t=Dt();_(0,"button",27),ne("mousedown",function(r){return B(t),j(r.stopPropagation())})("click",function(){B(t);const r=O();return j(r.selectByDelta(r.moveByItems))}),J(1,uG,1,0,"chevron-icon",11),y()}if(2&e){const t=O();x(),I("ngIf",!t.arrowTemplate)("ngIfElse",t.arrowTemplate)}}function fG(e,n){if(1&e&&Z(0,"counter",28),2&e){const t=O();I("itemQuantity",t.items.length)("selectedIndex",t.counterIndex)("orientation",t.counterOrientation)}}function mG(e,n){1&e&&Bo(0)}function pG(e,n){if(1&e){const t=Dt();_(0,"div",31),ne("click",function(r){return B(t),j(O(2).descriptionClick.emit(r))}),y()}2&e&&I("innerHTML",n.ngIf,Qh)}function gG(e,n){if(1&e&&(_(0,"div",29),J(1,pG,1,1,"div",30),y()),2&e){const t=O();Te("viewer-description--above-counter",t.counter&&"bottom"===t.counterOrientation),x(),I("ngIf",null==t.items[t.selectedIndex]?null:t.items[t.selectedIndex].description)}}const ns={passive:!0};let Hg=(()=>{class e{set noAnimation(t){this.itemListRef.nativeElement.style.transitionDuration=t?"0ms":"400ms"}get counterIndex(){return Math.floor(this.selectedIndex/this.moveByItems)}get showArrow(){return this.arrows&&this.items&&this.items.length>1}get showPrevArrow(){return this.showArrow&&(this.selectedIndex>0||this.reallyLoop)}get showNextArrow(){return this.showArrow&&(this.selectedIndex{if(!this.reallyLoop||!this.sliding)return;const{first:a}=this.itemsRef;0!==s.filter(d=>d.isIntersecting).length&&(this.pointerDeltaX+=(s[0].target===a.nativeElement?-1:1)*this.items.length*this._itemWidth)},this.updateDimensions=()=>{this._itemWidth=this._hostRef.nativeElement.querySelector("li").offsetWidth},this.shiftByDelta=s=>{this.pointerDeltaX+=s,this.shift(this.pointerDeltaX)}}ngOnChanges({visibleItems:t,items:i,loop:r}){t&&(this.itemListRef.nativeElement.style.setProperty("--item-width",`calc(100% / ${this.visibleItems})`),setTimeout(this.updateDimensions)),(r||i)&&(this.reallyLoop=this.items.length>1&&this.loop,this.reallyLoop&&setTimeout(()=>this.observeFringes())),(i||t||r)&&(this.fringeCount=this.getFringeCount(),this.displayedItems=this.getItemsToBeDisplayed(this.fringeCount),this.reallyLoop&&(this.noAnimation=!0,this.center()))}ngOnInit(){ts&&(this.handleResizes(),this.mouseGestures&&this.handleMouseSlides(),this.touchGestures&&this.handleTouchSlides(),this._destroyRef.onDestroy(()=>this.fringeObserver?.disconnect()))}ngAfterViewInit(){this.center(),setTimeout(()=>this.noAnimation=!1)}isYoutube(t){return!!t.src.match(/youtube.*\/embed\//)}select(t,i=!0){if(this.selectedIndex===t)return this.center();if(this.items[this.selectedIndex]?.video&&this.stopCurrentVideo(),this.visibleItems>1&&i){const s=this.items.length-this.visibleItems;0!==this.selectedIndex&&t<0?t=0:this.selectedIndexs&&(t=this.items.length)}const r=!this.items[t];if(this.reallyLoop&&r)return this.loopTo(t),this.selection.emit(this.selectedIndex);this.selectedIndex=r?this.correctIndexOutOfBounds(t):t,this.center(),this.selection.emit(this.selectedIndex)}selectByDelta(t){this.select(this.selectedIndex+t)}onImageClick(t,i){this.itemClick.emit({event:i,item:t,index:this.items.indexOf(t)})}onTab(t){(t-=this.fringeCount)>=0&&tthis._hostRef.nativeElement.scrollLeft=0))}onItemErrored(t){this.showErrors&&(t._failed=!0,this._cd.detectChanges())}itemFailedToLoad(t){return t._failed}isItemFringe(t){return(t-=this.fringeCount)<0||t>=this.items.length}center(){this.shift()}correctIndexOutOfBounds(t){return t<0?0:this.items.length-1}getFringeCount(){return this.reallyLoop?Math.min(Math.ceil(this.visibleItems),this.items.length):0}getItemsToBeDisplayed(t){return this.reallyLoop?[...this.items.slice(-t),...this.items,...this.items.slice(0,t)]:this.items}handleMouseSlides(){this._zone.runOutsideAngular(()=>{const t=this._hostRef.nativeElement;let i,r=0,o=0;const s=u=>{i=u,this.noAnimation=this.sliding=!0,document.addEventListener("mousemove",a,ns),document.addEventListener("mouseup",c,ns)},a=u=>{r=Math.max(Math.abs(i.clientX-u.clientX)),o=Math.max(Math.abs(i.clientY-u.clientY)),this.shiftByDelta(u.movementX)},c=()=>{this.noAnimation=this.sliding=!1,this._zone.run(()=>this.selectBySwipeStats(this.pointerDeltaX)),this.pointerDeltaX=0,document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c)},l=u=>{(r>10||o>10)&&(u.stopPropagation(),u.preventDefault()),o=r=0},d=u=>u.preventDefault();t.addEventListener("mousedown",s,ns),t.addEventListener("click",l,{capture:!0}),t.addEventListener("dragstart",d),this._destroyRef.onDestroy(()=>{t.removeEventListener("mousedown",s),t.removeEventListener("click",l),t.removeEventListener("dragstart",d)})})}handleTouchSlides(){this._zone.runOutsideAngular(()=>{const t=this._hostRef.nativeElement;let i,r,o;const s=l=>{r=l,this.noAnimation=this.sliding=!0},a=l=>{if(!r||1!==l.touches.length)return;const d=r.touches[0],u=l.touches[0];if(null==i){const h=Math.abs(u.clientX-d.clientX),f=Math.abs(u.clientY-d.clientY);(h||f)&&(i=1.2*h>=f)}i&&(this.shiftByDelta(u.clientX-(o??r).touches[0].clientX),o=l,mT_ios&&(l.preventDefault(),l.stopPropagation()))},c=()=>{this.noAnimation=this.sliding=!1,this._zone.run(()=>this.selectBySwipeStats(this.pointerDeltaX)),this.pointerDeltaX=0,i=void 0,r=void 0,o=void 0};t.addEventListener("touchstart",s,ns),document.addEventListener("touchmove",a,{passive:!mT_ios}),document.addEventListener("touchend",c,ns),this._destroyRef.onDestroy(()=>{t.removeEventListener("touchstart",s),document.removeEventListener("touchmove",a),document.removeEventListener("touchend",c)})})}handleResizes(){window.addEventListener("resize",this.updateDimensions,ns),this._destroyRef.onDestroy(()=>{window.removeEventListener("resize",this.updateDimensions)})}loopTo(t){this.noAnimation=!0;const i=Math.sign(t)*this.items.length*this._itemWidth;this.shiftByDelta(i),this.selectedIndex=t<0?t+this.items.length:t-this.items.length,requestAnimationFrame(()=>setTimeout(()=>{this.pointerDeltaX=0,this.noAnimation=!1,this.center()}))}observeFringes(){if(!ts)return;this.fringeObserver?.disconnect();const t=new IntersectionObserver(this.repositionOnFringe,{root:this._hostRef.nativeElement,threshold:1});t.observe(this.itemsRef.first.nativeElement),t.observe(this.itemsRef.last.nativeElement),this.fringeObserver=t}selectBySwipeStats(t){const i=Math.round((Math.abs(t)+this._itemWidth/2.25)/this._itemWidth)*-Math.sign(t);this.select(this.selectedIndex+i,!1)}shift(t=0){const i=this.isRtl?1:-1;this.itemListRef.nativeElement.style.transform=`translate3d(calc(${(this.selectedIndex+this.fringeCount)*i} * var(--item-width) + ${t*=-i}px), 0, 0)`}stopCurrentVideo(){const t=this.itemsRef.get(this.selectedIndex)?.nativeElement.querySelector("video");t&&t.pause()}static{this.\u0275fac=function(i){return new(i||e)(v(Ie),v(Sn),v(eo),v(Y))}}static{this.\u0275cmp=ft({type:e,selectors:[["viewer"]],viewQuery:function(i,r){if(1&i&&(Re(Z5,7),Re(K5,5)),2&i){let o;ve(o=ye())&&(r.itemListRef=o.first),ve(o=ye())&&(r.itemsRef=o)}},hostVars:4,hostBindings:function(i,r){2&i&&Te("clip",r.clip)("rtl",r.isRtl)},inputs:{items:"items",selectedIndex:"selectedIndex",arrows:"arrows",descriptions:"descriptions",errorText:"errorText",showErrors:"showErrors",mouseGestures:"mouseGestures",touchGestures:"touchGestures",counter:"counter",counterOrientation:"counterOrientation",loading:"loading",objectFit:"objectFit",itemTemplate:"itemTemplate",errorTemplate:"errorTemplate",arrowTemplate:"arrowTemplate",contentTemplate:"contentTemplate",thumbsOrientation:"thumbsOrientation",aria:"aria",loop:"loop",visibleItems:"visibleItems",moveByItems:"moveByItems",clip:"clip",isRtl:"isRtl"},outputs:{itemClick:"itemClick",descriptionClick:"descriptionClick",selection:"selection"},standalone:!0,features:[Bt,un],decls:9,vars:11,consts:[["itemList",""],["itemsRef",""],["customTemplate",""],["aria-label","Previous image","class","viewer-arrow viewer-arrow-prev",3,"mousedown","click",4,"ngIf"],["class","viewer-initial-item",4,"ngIf"],["media","",3,"viewer-fringe-item","click","mediaLoadError","keydown.Tab","keydown.shift.Tab",4,"ngFor","ngForOf"],["aria-label","Next image","class","viewer-arrow viewer-arrow-next",3,"mousedown","click",4,"ngIf"],[3,"itemQuantity","selectedIndex","orientation",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["class","viewer-description","aria-hidden","true",3,"viewer-description--above-counter",4,"ngIf"],["aria-label","Previous image",1,"viewer-arrow","viewer-arrow-prev",3,"mousedown","click"],[4,"ngIf","ngIfElse"],[1,"viewer-initial-item"],["media","",3,"click","mediaLoadError","keydown.Tab","keydown.shift.Tab"],[4,"ngIf"],[1,"sr-only",3,"id","innerHTML"],["controls","","playsinline","",3,"src","poster","objectFit",4,"ngIf"],["allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture","allowfullscreen","",3,"src",4,"ngIf"],[3,"srcset",4,"ngFor","ngForOf"],[3,"src","alt"],[3,"srcset"],["controls","","playsinline","",3,"src","poster"],["allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture","allowfullscreen","",3,"src"],["class","viewer-error",4,"ngIf","ngIfElse"],[1,"viewer-error"],[1,"viewer-error-icon"],[1,"viewer-error-text"],["aria-label","Next image",1,"viewer-arrow","viewer-arrow-next",3,"mousedown","click"],[3,"itemQuantity","selectedIndex","orientation"],["aria-hidden","true",1,"viewer-description"],["class","viewer-description-inner",3,"innerHTML","click",4,"ngIf"],[1,"viewer-description-inner",3,"click","innerHTML"]],template:function(i,r){1&i&&(J(0,J5,2,2,"button",3),_(1,"ul",null,0),J(3,eG,1,0,"li",4)(4,dG,7,10,"li",5),y(),J(5,hG,2,2,"button",6)(6,fG,1,3,"counter",7)(7,mG,1,0,"ng-container",8)(8,gG,2,3,"div",9)),2&i&&(I("ngIf",r.showPrevArrow),x(),Fe("aria-label",null==r.aria?null:r.aria.viewerLabel),x(2),I("ngIf",!(null!=r.displayedItems&&r.displayedItems.length)),x(),I("ngForOf",r.displayedItems),x(),I("ngIf",r.showNextArrow),x(),I("ngIf",r.counter&&r.items.length),x(),I("ngTemplateOutlet",r.contentTemplate)("ngTemplateOutletContext",function UE(e,n,t,i){return GE(C(),At(),e,n,t,i)}(9,Y5,r.selectedIndex)),x(),I("ngIf",r.descriptions&&r.items))},dependencies:[br,sp,gr,md,W5,pT,G5,q5],styles:["[_nghost-%COMP%]{display:block;position:relative;width:100%;height:100%;outline:none;z-index:1}.clip[_nghost-%COMP%]{overflow:hidden}.rtl[_nghost-%COMP%] .viewer-arrow-next[_ngcontent-%COMP%]{right:auto;left:0;transform:translateY(-50%) scale(-1)}.rtl[_nghost-%COMP%] .viewer-arrow-prev[_ngcontent-%COMP%]{right:0;left:auto;transform:translateY(-50%)}ul[_ngcontent-%COMP%]{--item-width: 100%;display:flex;width:100%;height:100%;transition:transform;scrollbar-width:none}ul[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}li[_ngcontent-%COMP%]{display:flex;align-items:center;flex:none;position:relative;width:var(--item-width);-webkit-user-select:none;user-select:none;outline:0}picture[_ngcontent-%COMP%]{width:100%;height:100%}img[_ngcontent-%COMP%], video[_ngcontent-%COMP%], iframe[_ngcontent-%COMP%]{width:100%;height:100%;background-color:transparent;outline:0;color:transparent}iframe[_ngcontent-%COMP%]{border:0}img[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.viewer-description[_ngcontent-%COMP%]{position:absolute;bottom:.5rem;width:100%;display:flex;justify-content:center;font-size:.9rem}.viewer-description--above-counter[_ngcontent-%COMP%]{bottom:2.5rem}.viewer-description-inner[_ngcontent-%COMP%]{display:inline-block;background:#000000b3;color:#f1f5f9;padding:.5rem .75rem;max-width:80%;text-align:center;border-radius:.5rem}.viewer-error[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background-color:#f5f5f5;color:#7d7d7d}.viewer-error-icon[_ngcontent-%COMP%]{font-size:40px}.viewer-error-text[_ngcontent-%COMP%]{margin-top:10px;letter-spacing:.01em}.viewer-arrow[_ngcontent-%COMP%]{display:flex;position:absolute;top:50%;padding:0;background-color:transparent;transform:translateY(-50%);z-index:100;cursor:pointer}.viewer-arrow-prev[_ngcontent-%COMP%]{left:0;transform:scale(-1) translateY(50%)}.viewer-arrow-next[_ngcontent-%COMP%]{right:0}.viewer-arrow[_ngcontent-%COMP%] chevron-icon[_ngcontent-%COMP%]{margin:15px 6px;opacity:.7}@media (hover: hover) and (pointer: fine){.viewer-arrow[_ngcontent-%COMP%] chevron-icon[_ngcontent-%COMP%]:hover{opacity:1}}.viewer-arrow[_ngcontent-%COMP%] chevron-icon[_ngcontent-%COMP%] svg{height:32px;width:32px}"],data:{animation:[wx("mediaAnimate",[Pp(":leave",Rp("0ms 100ms")),Pp(":enter",[Wo({opacity:0}),Rp("400ms",Wo({opacity:1}))])])]},changeDetection:0})}}return e})();function bG(e,n){if(1&e&&(_(0,"span",3),k(1),y()),2&e){const t=O();x(),Ho(" ",t.aria.galleryLabel,"\n")}}function _G(e,n){if(1&e){const t=Dt();_(0,"thumbs",4),ne("thumbClick",function(r){return B(t),j(O()._onThumbClick(r))})("thumbHover",function(r){return B(t),j(O().thumbHover.emit(r))}),y()}if(2&e){const t=O();I("items",t.items)("selectedIndex",t.selectedIndex)("orientation",t.thumbsOrientation)("arrows",t.thumbsArrows)("arrowSlideByLength",t.thumbsArrowSlideByLength)("autoScroll",t.thumbsAutoScroll)("scrollBehavior",t.thumbsScrollBehavior)("thumbTemplate",t.thumbTemplate)("arrowTemplate",t.thumbsArrowTemplate)("errorTemplate",t.thumbErrorTemplate)("aria",t.aria)("isRtl",t.isRtl)}}let Ka=(()=>{class e{constructor(){this.items=[],this.selectedIndex=0,this.aria=k5,this.arrows=!0,this.descriptions=!1,this.showErrors=!1,this.mouseGestures=!0,this.touchGestures=!0,this.clip=!0,this.counter=!0,this.counterOrientation="bottom",this.loading="lazy",this.loop=!1,this.objectFit="cover",this.isRtl=!1,this.visibleItems=1,this.moveByItems=this.visibleItems,this.thumbs=!0,this.thumbsAutoScroll=!0,this.thumbsOrientation="bottom",this.thumbsArrows=!0,this.thumbsScrollBehavior="smooth",this.itemClick=new de,this.thumbClick=new de,this.thumbHover=new de,this.descriptionClick=new de,this.selection=new de}get _galleryColumn(){return"top"===this.thumbsOrientation||"bottom"===this.thumbsOrientation}get _thumbsOrientationFlag(){return this._galleryColumn?6:24}ngOnChanges({items:t}){t&&!t.currentValue&&(this.items=[])}focus(){this._viewerElRef.nativeElement.focus()}next(){this._viewerRef.selectByDelta(1)}prev(){this._viewerRef.selectByDelta(-1)}select(t){this._viewerRef.select(t),this._thumbsRef?.select(t),this._selectInternal(t)}slideThumbs(t){this._thumbsRef?.slide(t)}_onThumbClick(t){this._viewerRef.select(t.index),this.thumbClick.emit(t),this._selectInternal(t.index)}_selectInternal(t){this.selectedIndex=t,this.selection.emit(this.items[t])}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["gallery"]],viewQuery:function(i,r){if(1&i&&(Re(Hg,5),Re(gT,5),Re(Hg,5,Ie)),2&i){let o;ve(o=ye())&&(r._viewerRef=o.first),ve(o=ye())&&(r._thumbsRef=o.first),ve(o=ye())&&(r._viewerElRef=o.first)}},hostVars:4,hostBindings:function(i,r){1&i&&ne("keydown.arrowright",function(){return r.next()})("keydown.arrowleft",function(){return r.prev()}),2&i&&Te("rtl",r.isRtl)("gallery--column",r._galleryColumn)},inputs:{items:"items",selectedIndex:"selectedIndex",aria:"aria",arrows:"arrows",descriptions:"descriptions",errorText:"errorText",showErrors:"showErrors",mouseGestures:"mouseGestures",touchGestures:"touchGestures",clip:"clip",counter:"counter",counterOrientation:"counterOrientation",loading:"loading",loop:"loop",objectFit:"objectFit",isRtl:"isRtl",visibleItems:"visibleItems",moveByItems:"moveByItems",itemTemplate:"itemTemplate",errorTemplate:"errorTemplate",arrowTemplate:"arrowTemplate",contentTemplate:"contentTemplate",thumbs:"thumbs",thumbsAutoScroll:"thumbsAutoScroll",thumbsOrientation:"thumbsOrientation",thumbsArrows:"thumbsArrows",thumbsArrowSlideByLength:"thumbsArrowSlideByLength",thumbsScrollBehavior:"thumbsScrollBehavior",thumbTemplate:"thumbTemplate",thumbsArrowTemplate:"thumbsArrowTemplate",thumbErrorTemplate:"thumbErrorTemplate"},outputs:{itemClick:"itemClick",thumbClick:"thumbClick",thumbHover:"thumbHover",descriptionClick:"descriptionClick",selection:"selection"},standalone:!0,features:[Bt,un],decls:3,vars:25,consts:[["class","sr-only","tabindex","0",4,"ngIf"],[3,"items","selectedIndex","orientation","arrows","arrowSlideByLength","autoScroll","scrollBehavior","thumbTemplate","arrowTemplate","errorTemplate","aria","isRtl","thumbClick","thumbHover",4,"ngIf"],[3,"itemClick","descriptionClick","selection","items","selectedIndex","arrows","descriptions","errorText","showErrors","mouseGestures","touchGestures","clip","counter","counterOrientation","visibleItems","moveByItems","objectFit","loading","itemTemplate","errorTemplate","contentTemplate","loop","thumbsOrientation","arrowTemplate","aria","isRtl"],["tabindex","0",1,"sr-only"],[3,"thumbClick","thumbHover","items","selectedIndex","orientation","arrows","arrowSlideByLength","autoScroll","scrollBehavior","thumbTemplate","arrowTemplate","errorTemplate","aria","isRtl"]],template:function(i,r){1&i&&(J(0,bG,2,1,"span",0)(1,_G,1,12,"thumbs",1),_(2,"viewer",2),ne("itemClick",function(s){return r.itemClick.emit(s)})("descriptionClick",function(s){return r.descriptionClick.emit(s)})("selection",function(s){return r._selectInternal(s),null==r._thumbsRef?null:r._thumbsRef.select(s)}),y()),2&i&&(I("ngIf",null==r.aria?null:r.aria.galleryLabel),x(),I("ngIf",r.thumbs),x(),I("items",r.items)("selectedIndex",+r.selectedIndex)("arrows",r.arrows)("descriptions",r.descriptions)("errorText",r.errorText)("showErrors",r.showErrors)("mouseGestures",r.mouseGestures)("touchGestures",r.touchGestures)("clip",r.clip)("counter",r.counter)("counterOrientation",r.counterOrientation)("visibleItems",r.visibleItems)("moveByItems",r.moveByItems)("objectFit",r.objectFit)("loading",r.loading)("itemTemplate",r.itemTemplate)("errorTemplate",r.errorTemplate)("contentTemplate",r.contentTemplate)("loop",r.loop)("thumbsOrientation",r._thumbsOrientationFlag)("arrowTemplate",r.arrowTemplate)("aria",r.aria)("isRtl",r.isRtl))},dependencies:[br,gr,gT,Hg],styles:["[_nghost-%COMP%]{display:flex;height:600px;width:500px;outline:0;position:relative}.gallery--column[_nghost-%COMP%]{flex-direction:column}.rtl[_nghost-%COMP%]{direction:ltr}.rtl[_nghost-%COMP%] viewer[_ngcontent-%COMP%], .rtl[_nghost-%COMP%] thumbs[_ngcontent-%COMP%]{direction:rtl}[_nghost-%COMP%] {font-family:Helvetica Neue,Helvetica,Arial,sans-serif}[_nghost-%COMP%] button{border:none}[_nghost-%COMP%] ul{list-style-type:none;margin:0;padding:0}[_nghost-%COMP%] .sr-only{position:absolute!important;clip:rect(1px,1px,1px,1px);top:auto;left:-9999px;width:1px;height:1px;overflow:hidden}"],changeDetection:0})}}return e})();function _T(e,n){return"function"==typeof n?t=>t.pipe(_T((i,r)=>Ia(e(i,r)).pipe(ht((o,s)=>n(i,o,r,s))))):t=>t.lift(new yG(e))}class yG{constructor(n){this.project=n}call(n,t){return t.subscribe(new wG(n,this.project))}}class wG extends wd{constructor(n,t){super(n),this.project=t,this.index=0}_next(n){let t;const i=this.index++;try{t=this.project(n,i)}catch(r){return void this.destination.error(r)}this._innerSub(t)}_innerSub(n){const t=this.innerSubscription;t&&t.unsubscribe();const i=new yd(this),r=this.destination;r.add(i),this.innerSubscription=Cd(n,i),this.innerSubscription!==i&&r.add(this.innerSubscription)}_complete(){const{innerSubscription:n}=this;(!n||n.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(n){this.destination.next(n)}}class DG{constructor(n,t){this.delay=n,this.scheduler=t}call(n,t){return t.subscribe(new Ug(n,this.delay,this.scheduler))}}class Ug extends Ce{constructor(n,t,i){super(n),this.delay=t,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(n){const t=n.source,i=t.queue,r=n.scheduler,o=n.destination;for(;i.length>0&&i[0].time-r.now()<=0;)i.shift().notification.observe(o);if(i.length>0){const s=Math.max(0,i[0].time-r.now());this.schedule(n,s)}else this.unsubscribe(),t.active=!1}_schedule(n){this.active=!0,this.destination.add(n.schedule(Ug.dispatch,this.delay,{source:this,destination:this.destination,scheduler:n}))}scheduleNotification(n){if(!0===this.errored)return;const t=this.scheduler,i=new xG(t.now()+this.delay,n);this.queue.push(i),!1===this.active&&this._schedule(t)}_next(n){this.scheduleNotification(Gt.createNext(n))}_error(n){this.errored=!0,this.queue=[],this.destination.error(n),this.unsubscribe()}_complete(){this.scheduleNotification(Gt.createComplete()),this.unsubscribe()}}class xG{constructor(n,t){this.time=n,this.notification=t}}function MG(e,n){if(1&e){const t=Dt();_(0,"gallery",41),Im(1,"async"),ne("descriptionClick",function(){return B(t),j(O().galleryConfig.descriptions=!1)}),y()}if(2&e){const t=O();I("items",Tm(1,19,t.items))("arrows",t.galleryConfig.arrows)("descriptions",t.galleryConfig.descriptions)("mouseGestures",t.galleryConfig.mouseGestures)("touchGestures",t.galleryConfig.touchGestures)("counter",t.galleryConfig.counter)("counterOrientation",t.galleryConfig.counterOrientation)("visibleItems",t.galleryConfig.visibleItems)("objectFit",t.galleryConfig.objectFit)("loading",t.galleryConfig.loading)("loop",t.galleryConfig.loop)("isRtl",t.galleryConfig.rtl)("selectedIndex",t.galleryConfig.selectedIndex)("thumbs",t.galleryConfig.thumbs)("thumbsAutoScroll",t.galleryConfig.thumbsAutoScroll)("thumbsOrientation",t.galleryConfig.thumbsOrientation)("thumbsArrows",t.galleryConfig.thumbsArrows)("thumbsArrowSlideByLength",t.galleryConfig.thumbsArrowSlideByLength)("thumbsScrollBehavior",t.galleryConfig.thumbsScrollBehavior)}}function IG(e,n){1&e&&(_(0,"div",42),k(1,"Custom Loading ..."),y())}function TG(e,n){1&e&&Bo(0)}function SG(e,n){1&e&&(_(0,"div",42),k(1," Custom item loading ... "),y())}function kG(e,n){if(1&e&&(Z(0,"img",44,8),J(2,SG,2,0,"div",45)),2&e){const t=Tn(1),i=O(),o=i.seen;I("src",o?i.item.src:"",ln),x(2),I("ngIf",o&&t.naturalHeight<=0)}}function AG(e,n){if(1&e&&Z(0,"video",46,9),2&e){const t=O();I("src",t.seen?t.item.src:"",ln)}}function NG(e,n){if(1&e&&J(0,TG,1,0,"ng-container",43)(1,kG,3,2,"ng-template",null,6,$t)(3,AG,2,1,"ng-template",null,7,$t),2&e){const t=n.item,i=Tn(2),r=Tn(4);I("ngIf",t.video)("ngIfThen",r)("ngIfElse",i)}}function OG(e,n){if(1&e&&Z(0,"img",47),2&e){const t=n.item;I("src",t.thumbSrc||t.src,ln)}}function FG(e,n){1&e&&(_(0,"div",48),k(1,"Custom loading error"),y())}function RG(e,n){1&e&&(_(0,"div",49),k(1,"Custom thumb loading error"),y())}function PG(e,n){1&e&&(_(0,"button",50)(1,"mat-icon"),k(2,"arrow_forward_ios"),y()())}let LG=(()=>{class e{constructor(t){this.cd=t,this.displayGallery=!0,this.imageLoadingLatency=0,this.galleryConfig={arrows:!this.mobile,descriptions:!1,mouseGestures:!0,touchGestures:!0,counter:!0,counterOrientation:"bottom",visibleItems:1,objectFit:"cover",loading:"lazy",loop:!1,rtl:!1,selectedIndex:0,thumbs:!0,thumbsAutoScroll:!0,thumbsOrientation:"bottom",thumbsArrows:!0,thumbsArrowSlideByLength:0,thumbsScrollBehavior:"smooth"},this.storeGalleryConfig=()=>{sessionStorage.setItem("galleryConfig",JSON.stringify(this.galleryConfig))},ar({read:()=>{this.galleryConfig=this.getGalleryConfig()||this.galleryConfig,this.mobile=matchMedia("(max-width: 767px)").matches,window.addEventListener("pagehide",this.storeGalleryConfig)}})}ngOnInit(){this.items=Rt(this.images).pipe(_T(t=>function vG(e){return new Le(n=>{let t;try{t=e()}catch(r){return void n.error(r)}return(t?Ia(t):Cu()).subscribe(n)})}(()=>Rt(t).pipe(function EG(e,n=dI){const i=function CG(e){return e instanceof Date&&!isNaN(+e)}(e)?+e-n.now():Math.abs(e);return r=>r.lift(new DG(i,n))}(this.imageLoadingLatency)))))}onConfigChange(t,i){""!==i&&(this.galleryConfig[t]=+i,this.reloadGallery())}reloadGallery(){this.displayGallery=!1,this.cd.detectChanges(),this.displayGallery=!0,this.cd.detectChanges()}getInputValue(t){return t.target.value}getGalleryConfig(){return JSON.parse(sessionStorage.getItem("galleryConfig"))}static{this.\u0275fac=function(i){return new(i||e)(v(Sn))}}static{this.\u0275cmp=ft({type:e,selectors:[["app-demo-whole-config"]],viewQuery:function(i,r){if(1&i&&Re(Ka,5),2&i){let o;ve(o=ye())&&(r.gallery=o.first)}},inputs:{images:"images"},decls:118,vars:20,consts:[["loadingTemplate",""],["itemTemplate",""],["thumbTemplate",""],["errorTemplate",""],["thumbErrorTemplate",""],["arrowTemplate",""],["imgTemplate",""],["videoTemplate",""],["img",""],["video",""],["name","arrows",3,"ngModelChange","ngModel"],["name","descriptions",3,"ngModelChange","ngModel"],["name","mouseGestures",3,"ngModelChange","change","ngModel"],["name","touchGestures",3,"ngModelChange","change","ngModel"],["name","counter",3,"ngModelChange","ngModel"],["name","loop",3,"ngModelChange","change","ngModel"],["name","rtl",3,"ngModelChange","change","ngModel"],["name","counterOrientation",3,"ngModelChange","ngModel"],["value","top"],["value","bottom"],["name","objectFit",3,"ngModelChange","ngModel"],["value","contain"],["value","cover"],["name","loading",3,"ngModelChange","change","ngModel"],["value","auto"],["value","lazy"],["name","visibleItems","matInput","",3,"ngModelChange","change","ngModel"],["name","selectedIndex","type","number","matInput","",3,"input","value"],["name","thumbs",3,"ngModelChange","ngModel"],["name","thumbsAutoScroll",3,"ngModelChange","ngModel"],["name","thumbsArrows",3,"ngModelChange","ngModel"],["name","thumbsOrientation",3,"ngModelChange","ngModel"],["value","left"],["value","right"],["name","thumbsScrollBehavior",3,"ngModelChange","ngModel"],["value","smooth"],["name","thumbsArrowsSlideByLength","matInput","",3,"ngModelChange","ngModel"],[1,"image-loading-latency"],["name","imageLoadingLatency","matInput","",3,"ngModelChange","change","ngModel"],[1,"gallery-container"],[3,"items","arrows","descriptions","mouseGestures","touchGestures","counter","counterOrientation","visibleItems","objectFit","loading","loop","isRtl","selectedIndex","thumbs","thumbsAutoScroll","thumbsOrientation","thumbsArrows","thumbsArrowSlideByLength","thumbsScrollBehavior","descriptionClick",4,"ngIf"],[3,"descriptionClick","items","arrows","descriptions","mouseGestures","touchGestures","counter","counterOrientation","visibleItems","objectFit","loading","loop","isRtl","selectedIndex","thumbs","thumbsAutoScroll","thumbsOrientation","thumbsArrows","thumbsArrowSlideByLength","thumbsScrollBehavior"],[1,"custom-loading"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"custom-media",3,"src"],["class","custom-loading",4,"ngIf"],["controls","",1,"custom-media",3,"src"],[1,"custom-thumb",3,"src"],[1,"custom-error"],[1,"custom-thumb-error"],[1,"custom-arrow"]],template:function(i,r){if(1&i){const o=Dt();_(0,"form")(1,"div")(2,"h4"),k(3,"Gallery viewer properties"),y(),_(4,"section")(5,"mat-checkbox",10),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.arrows,a)||(r.galleryConfig.arrows=a),j(a)}),k(6,"Arrows"),y()(),_(7,"section")(8,"mat-checkbox",11),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.descriptions,a)||(r.galleryConfig.descriptions=a),j(a)}),k(9," Descriptions "),y()(),_(10,"section")(11,"mat-checkbox",12),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.mouseGestures,a)||(r.galleryConfig.mouseGestures=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),k(12," Mouse Gestures "),y()(),_(13,"section")(14,"mat-checkbox",13),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.touchGestures,a)||(r.galleryConfig.touchGestures=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),k(15," Touch Gestures "),y()(),_(16,"section")(17,"mat-checkbox",14),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.counter,a)||(r.galleryConfig.counter=a),j(a)}),k(18,"Counter"),y()(),_(19,"section")(20,"mat-checkbox",15),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.loop,a)||(r.galleryConfig.loop=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),k(21,"Loop"),y()(),_(22,"section")(23,"mat-checkbox",16),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.rtl,a)||(r.galleryConfig.rtl=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),k(24,"Right to left"),y()(),_(25,"section")(26,"mat-label"),k(27,"Counter orientation:"),y(),_(28,"mat-radio-group",17),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.counterOrientation,a)||(r.galleryConfig.counterOrientation=a),j(a)}),_(29,"mat-radio-button",18),k(30,"top"),y(),_(31,"mat-radio-button",19),k(32,"bottom"),y()()(),_(33,"section")(34,"mat-label"),k(35,"Image fit:"),y(),_(36,"mat-radio-group",20),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.objectFit,a)||(r.galleryConfig.objectFit=a),j(a)}),_(37,"mat-radio-button",21),k(38,"contain"),y(),_(39,"mat-radio-button",22),k(40,"cover"),y()()(),_(41,"section")(42,"mat-label"),k(43,"Image loading strategy:"),y(),_(44,"mat-radio-group",23),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.loading,a)||(r.galleryConfig.loading=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),_(45,"mat-radio-button",24),k(46,"auto"),y(),_(47,"mat-radio-button",25),k(48,"lazy"),y()()(),_(49,"section")(50,"mat-form-field")(51,"mat-label"),k(52,"Number of displayed items"),y(),_(53,"input",26),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.visibleItems,a)||(r.galleryConfig.visibleItems=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),y()()(),_(54,"section")(55,"mat-form-field")(56,"mat-label"),k(57,"Selected index"),y(),_(58,"input",27),ne("input",function(a){return B(o),j(r.onConfigChange("selectedIndex",r.getInputValue(a)))}),y()()()(),_(59,"div")(60,"h4"),k(61,"Thumbnails properties"),y(),_(62,"section")(63,"mat-checkbox",28),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbs,a)||(r.galleryConfig.thumbs=a),j(a)}),k(64,"Thumbnails"),y()(),_(65,"section")(66,"mat-checkbox",29),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbsAutoScroll,a)||(r.galleryConfig.thumbsAutoScroll=a),j(a)}),k(67,"Thumbs autoscroll"),y()(),_(68,"section")(69,"mat-checkbox",30),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbsArrows,a)||(r.galleryConfig.thumbsArrows=a),j(a)}),k(70,"Thumbnail arrows"),y()(),_(71,"section")(72,"mat-label"),k(73,"Thumbnails orientation:"),y(),_(74,"mat-radio-group",31),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbsOrientation,a)||(r.galleryConfig.thumbsOrientation=a),j(a)}),_(75,"mat-radio-button",18),k(76,"top"),y(),_(77,"mat-radio-button",19),k(78,"bottom"),y(),_(79,"mat-radio-button",32),k(80,"left"),y(),_(81,"mat-radio-button",33),k(82,"right"),y()()(),_(83,"section")(84,"mat-label"),k(85,"Thumbnails scroll behavior:"),y(),_(86,"mat-radio-group",34),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbsScrollBehavior,a)||(r.galleryConfig.thumbsScrollBehavior=a),j(a)}),_(87,"mat-radio-button",35),k(88,"smooth"),y(),_(89,"mat-radio-button",24),k(90,"auto"),y()()(),_(91,"section")(92,"mat-form-field")(93,"mat-label"),k(94,"Slide thumbnails by length (px)"),y(),_(95,"input",36),Ye("ngModelChange",function(a){return B(o),ot(r.galleryConfig.thumbsArrowSlideByLength,a)||(r.galleryConfig.thumbsArrowSlideByLength=a),j(a)}),y()()(),Z(96,"br"),_(97,"h4"),k(98,"Auxiliary"),y(),_(99,"section",37)(100,"mat-form-field")(101,"mat-label"),k(102,"Items (not images!) loading latency"),y(),_(103,"input",38),Ye("ngModelChange",function(a){return B(o),ot(r.imageLoadingLatency,a)||(r.imageLoadingLatency=a),j(a)}),ne("change",function(){return B(o),j(r.reloadGallery())}),y()()()()(),_(104,"div",39),J(105,MG,2,21,"gallery",40),y(),J(106,IG,2,0,"ng-template",null,0,$t)(108,NG,5,3,"ng-template",null,1,$t)(110,OG,1,1,"ng-template",null,2,$t)(112,FG,2,0,"ng-template",null,3,$t)(114,RG,2,0,"ng-template",null,4,$t)(116,PG,3,0,"ng-template",null,5,$t)}2&i&&(x(5),Ke("ngModel",r.galleryConfig.arrows),x(3),Ke("ngModel",r.galleryConfig.descriptions),x(3),Ke("ngModel",r.galleryConfig.mouseGestures),x(3),Ke("ngModel",r.galleryConfig.touchGestures),x(3),Ke("ngModel",r.galleryConfig.counter),x(3),Ke("ngModel",r.galleryConfig.loop),x(3),Ke("ngModel",r.galleryConfig.rtl),x(5),Ke("ngModel",r.galleryConfig.counterOrientation),x(8),Ke("ngModel",r.galleryConfig.objectFit),x(8),Ke("ngModel",r.galleryConfig.loading),x(9),Ke("ngModel",r.galleryConfig.visibleItems),x(5),I("value",r.galleryConfig.selectedIndex),x(5),Ke("ngModel",r.galleryConfig.thumbs),x(3),Ke("ngModel",r.galleryConfig.thumbsAutoScroll),x(3),Ke("ngModel",r.galleryConfig.thumbsArrows),x(5),Ke("ngModel",r.galleryConfig.thumbsOrientation),x(12),Ke("ngModel",r.galleryConfig.thumbsScrollBehavior),x(9),Ke("ngModel",r.galleryConfig.thumbsArrowSlideByLength),x(8),Ke("ngModel",r.imageLoadingLatency),x(2),I("ngIf",r.displayGallery))},dependencies:[Lg,V4,Vg,cT,b5,fT,jg,gr,UM,Hd,IM,TM,Dg,Ua,Ka,x0],styles:['[_nghost-%COMP%]{display:block;min-height:1000px}form[_ngcontent-%COMP%]{margin:20px;display:flex;justify-content:space-around;flex-flow:row wrap}form[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin-right:auto}section[_ngcontent-%COMP%]{margin-bottom:15px;display:flex;flex-flow:row wrap;align-items:center}mat-checkbox[_ngcontent-%COMP%]{display:block}mat-radio-button[_ngcontent-%COMP%]{margin:2px 0 2px 20px}mat-form-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{white-space:nowrap}mat-form-field[_ngcontent-%COMP%] .mat-form-field-infix{border-top:0}mat-form-field[_ngcontent-%COMP%] .mat-form-field-wrapper{padding-bottom:0}mat-form-field[_ngcontent-%COMP%] .mat-form-field-underline{bottom:0}.gallery-container[_ngcontent-%COMP%]{box-sizing:border-box;height:80vh}gallery[_ngcontent-%COMP%]{width:100%;height:95%;margin:0 auto}section[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:20px}[_nghost-%COMP%] .image-loading-latency .mat-form-field-infix{width:auto}.custom-media[_ngcontent-%COMP%]{object-fit:contain;width:100%;height:100%;outline:0}.custom-media[src=""][_ngcontent-%COMP%]{opacity:0}.custom-loading[_ngcontent-%COMP%], .custom-error[_ngcontent-%COMP%], .custom-thumb-error[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;display:flex;justify-content:center;align-items:center;background-color:#000;color:#fff;opacity:.8}.custom-arrow[_ngcontent-%COMP%]{height:100%;width:36px;background-color:transparent;border:none;display:flex;outline:0;cursor:pointer}'],changeDetection:0})}}return e})(),VG=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["app-header"]],decls:14,vars:0,consts:[[1,"header-inner-container"],[1,"heading-container"],["src","./assets/icons/logo.webp","alt","logo",1,"logo"],[1,"subtitle"],[1,"links"],["href","https://github.com/daelmaak/ngx-gallery",1,"github-link","link"],["src","./assets/icons/GitHub-Mark-64px.png","alt","github link"],["href","https://www.npmjs.com/package/@daelmaak/ngx-gallery","rel","noreferrer",1,"npm-link","link"],["src","./assets/icons/npm-logo.svg","alt","npm link"]],template:function(i,r){1&i&&(_(0,"header")(1,"div",0)(2,"div")(3,"div",1),Z(4,"img",2),_(5,"h1"),k(6,"Ngx Gallery"),y()(),_(7,"div",3),k(8," Performant, mobile first, easy to use Angular 8+ Gallery "),y(),_(9,"div",4)(10,"a",5),Z(11,"img",6),y(),_(12,"a",7),Z(13,"img",8),y()()()()())},styles:["[_nghost-%COMP%]{display:block}header[_ngcontent-%COMP%]{width:100%;height:100%;padding:20px 0;box-shadow:0 1px 1px #bdbdbd;z-index:1;position:relative;box-sizing:border-box}header[_ngcontent-%COMP%] .header-inner-container[_ngcontent-%COMP%]{padding:0 20px;box-sizing:border-box;width:800px;max-width:100vw;margin:0 auto;display:flex;align-items:center;justify-content:center}@media (max-width: 767px){header[_ngcontent-%COMP%] .header-inner-container[_ngcontent-%COMP%]{display:block}header[_ngcontent-%COMP%] .header-inner-container[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:100px;position:static;display:block;margin:0 auto 10px}}header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{text-align:center;margin:0}header[_ngcontent-%COMP%] .subtitle[_ngcontent-%COMP%]{text-align:center;margin-bottom:20px;font-size:1.1em;color:#313131}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%]{margin:0 auto;text-align:center}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]:nth-of-type(1){opacity:.85}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]:nth-last-of-type(1){margin-right:0}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%], header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] img[_ngcontent-%COMP%], header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:36px;height:36px}header[_ngcontent-%COMP%] .links[_ngcontent-%COMP%] .npm-link[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{transform:scale(1.3) translateY(3px)}.heading-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.logo[_ngcontent-%COMP%]{width:3rem}"],changeDetection:0})}}return e})();const BG=[[["","subheading",""]],"*"],jG=["[subheading]","*"];function HG(e,n){1&e&&(_(0,"a",3),Z(1,"img",4),k(2," Edit on StackBlitz"),y()),2&e&&I("href",O().stackblitz,ln)}let UG=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["app-showcase"]],inputs:{heading:"heading",subheading:"subheading",stackblitz:"stackblitz"},ngContentSelectors:jG,decls:8,vars:3,consts:[[1,"heading-section"],[1,"subheading"],["class","stackblitz-demo-link","target","_blank",3,"href",4,"ngIf"],["target","_blank",1,"stackblitz-demo-link",3,"href"],["src","./assets/icons/stackblitz-logo-link.svg"]],template:function(i,r){1&i&&(Mi(BG),_(0,"div",0)(1,"h3"),k(2),y(),_(3,"div",1),k(4),vt(5),y(),J(6,HG,3,1,"a",2),y(),vt(7,1)),2&i&&(x(2),ai(r.heading),x(2),Ho(" ",r.subheading," "),x(2),I("ngIf",r.stackblitz))},dependencies:[gr],styles:["[_nghost-%COMP%]{margin:0 30px 50px;display:block}[_nghost-%COMP%] > *[_ngcontent-%COMP%]{margin:0 auto}[_nghost-%COMP%] gallery{width:100%}.heading-section[_ngcontent-%COMP%]{padding:1em 0}.heading-section[_ngcontent-%COMP%] .stackblitz-demo-link[_ngcontent-%COMP%]{display:inline-block;margin-top:10px;text-decoration:none}.heading-section[_ngcontent-%COMP%] .stackblitz-demo-link[_ngcontent-%COMP%]:visited{color:#00f}.heading-section[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:20px;margin-right:4px;margin-bottom:-4px}h3[_ngcontent-%COMP%]{color:#444;margin:0;padding:0}@media (min-width: 768px){h3[_ngcontent-%COMP%]{font-size:1.6em}}.subheading[_ngcontent-%COMP%]{color:#5b5b5b;margin-left:5px;margin-top:5px}"],changeDetection:0})}}return e})();function zG(e,n){1&e&&Z(0,"img",8),2&e&&I("src",O().item.src,ln)}function $G(e,n){1&e&&Z(0,"video",9),2&e&&I("src",O().item.src,ln)}function GG(e,n){if(1&e){const t=Dt();_(0,"div",3),ne("click",function(){const r=B(t).item;return j(O().selectedItem=r)}),_(1,"div",4),J(2,zG,1,1,"img",5)(3,$G,1,1,"video",6),y(),_(4,"div",7)(5,"p")(6,"strong"),k(7),y()(),_(8,"p"),k(9),y()()()}if(2&e){const t=n.item,i=n.video;Te("custom-item--selected",O().selectedItem===t),x(2),I("ngIf",!i),x(),I("ngIf",i),x(4),ai(t.alt),x(2),ai(t.description)}}function qG(e,n){1&e&&(_(0,"mat-icon",10),k(1,"arrow_forward_ios"),y())}let WG=(()=>{class e{constructor(){this.images=[{src:"./assets/images/mountains-1-lg.jpg",thumbSrc:"./assets/images/mountains-1-sm.jpg",alt:"Mountains",description:"Nothing is better than a hike in the mountains"},{src:"./assets/images/beach-1.mp4",alt:"Beach",description:"Video of a beach taken from drone",video:!0},{src:"./assets/images/cheers-1-lg.jpg",thumbSrc:"./assets/images/cheers-1-sm.jpg",alt:"Cheers",description:"Two guys drinking during sunset"},{src:"./assets/images/laptop-1-lg.jpg",alt:"Laptop",description:"Ideal workplace for computer work"},{src:"./assets/images/non-existing-image.jpg",alt:"Sky",description:"Mysterious sky"},{src:"./assets/images/snowflake-1-lg.jpg",thumbSrc:"./assets/images/snowflake-1-sm.jpg",alt:"Snowflake",description:"Snowflake detail"},{src:"./assets/images/mesh-1-lg.jpg",thumbSrc:"./assets/images/mesh-1-sm.jpg",alt:"City",description:"City at night"}]}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=ft({type:e,selectors:[["app-demo-custom-templates"]],inputs:{mobile:"mobile",tablet:"tablet"},decls:5,vars:9,consts:[["customItem",""],["customArrow",""],["loading","lazy",3,"items","itemTemplate","visibleItems","moveByItems","clip","counter","arrowTemplate","loop","thumbs"],[1,"custom-item",3,"click"],[1,"image-container"],[3,"src",4,"ngIf"],["controls","",3,"src",4,"ngIf"],[1,"info-box"],[3,"src"],["controls","",3,"src"],[1,"custom-arrow"]],template:function(i,r){if(1&i&&(Z(0,"gallery",2),J(1,GG,10,6,"ng-template",null,0,$t)(3,qG,2,0,"ng-template",null,1,$t)),2&i){const o=Tn(2),s=Tn(4);I("items",r.images)("itemTemplate",o)("visibleItems",r.mobile?1:r.tablet?2:3)("moveByItems",r.mobile?1:r.tablet?2:3)("clip",!1)("counter",!1)("arrowTemplate",s)("loop",!0)("thumbs",!1)}},dependencies:[cT,gr,Ka],styles:['[_nghost-%COMP%]{display:block;padding:0 4rem;overflow:hidden;position:relative}[_nghost-%COMP%]:before, [_nghost-%COMP%]:after{content:"";position:absolute;width:3rem;height:100%;z-index:10;top:0}[_nghost-%COMP%]:before{left:0;background:linear-gradient(90deg,#fafafa,#fafafa00),linear-gradient(90deg,#fafafa,#fafafa00)}[_nghost-%COMP%]:after{right:0;background:linear-gradient(270deg,#fafafa,#fafafa00),linear-gradient(270deg,#fafafa,#fafafa00)}gallery[_ngcontent-%COMP%]{height:500px}.custom-item[_ngcontent-%COMP%]{width:100%;height:calc(100% - 2rem);margin:1rem .5rem;padding:1rem;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;border-radius:5px;transition:box-shadow .28s cubic-bezier(.4,0,.2,1),background-color .3s;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;cursor:pointer}.custom-item[_ngcontent-%COMP%]:hover{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.custom-item--selected[_ngcontent-%COMP%]{background-color:#eae0ff}.image-container[_ngcontent-%COMP%]{flex-grow:1}.image-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%], .image-container[_ngcontent-%COMP%] video[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.info-box[_ngcontent-%COMP%]{min-height:5rem}.info-box[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.info-box[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:not(:first-child){margin-top:1rem}.custom-arrow[_ngcontent-%COMP%]{width:40px;height:40px;font-size:40px;color:#fff;text-shadow:0 0 3px black;margin-right:20px;opacity:.8}.custom-arrow[_ngcontent-%COMP%]:hover{opacity:1}'],changeDetection:0})}}return e})(),ZG=(()=>{class e{constructor(t){this.cd=t,this.installScript="\n yarn add @daelmaak/ngx-gallery\n ",this.componentCode="\n import { GalleryComponent, GalleryItem } from '@daelmaak/ngx-gallery';\n\n @Component({\n standalone: true,\n imports: [GalleryComponent]\n })\n export class AppComponent {\n images: GalleryItem[] = [{ src: 'kitten1.jpg' }]\n }\n ",this.componentTemplateCode='\n \n ',this.images=[{src:"./assets/images/mountains-1-lg.jpg",thumbSrc:"./assets/images/mountains-1-sm.jpg",alt:"Mountains",description:"Mighty mountains"},{src:"./assets/images/house-1-lg.jpg",thumbSrc:"./assets/images/house-1-sm.jpg",alt:"House",description:"I just love mysterious houses"},{src:"./assets/images/church-1-lg.jpg",thumbSrc:"./assets/images/church-1-sm.jpg",alt:"Church hallway",description:"Feel the history in this beautiful church"},{src:"./assets/images/lens-1-lg.jpg",thumbSrc:"./assets/images/lens-1-sm.jpg",alt:"Lens",description:"Zoom the world"},{src:"./assets/images/terraces-1-lg.jpg",thumbSrc:"./assets/images/terraces-1-sm.jpg",alt:"Mountains",description:"Sun lit mountains"},{src:"./assets/images/tulip-1-lg.jpg",thumbSrc:"./assets/images/tulip-1-sm.jpg",alt:"Tulip",description:"You didn't forget to buy your better half flowers, did you?"}],this.extendedImages=[...this.images,{src:"./assets/images/forest-1-lg.jpg",thumbSrc:"./assets/images/forest-1-sm.jpg",alt:"Forest",description:"Mysterious forest"},{src:"./assets/images/sky-1-lg.jpg",thumbSrc:"./assets/images/sky-1-sm.jpg",alt:"Sky",description:"Mysterious sky"},{src:"./assets/images/cheers-1-lg.jpg",thumbSrc:"./assets/images/cheers-1-sm.jpg",alt:"Cheers",description:"Two guys drinking during sunset"},{src:"./assets/images/laptop-1-lg.jpg",thumbSrc:"./assets/images/laptop-1-sm.jpg",alt:"Laptop",description:"Ideal workplace for computer work"},{src:"./assets/images/snowflake-1-lg.jpg",thumbSrc:"./assets/images/snowflake-1-sm.jpg",alt:"Snowflake",description:"Snowflake detail"},{src:"./assets/images/mesh-1-lg.jpg",thumbSrc:"./assets/images/mesh-1-sm.jpg",alt:"City",description:"City at night"}],this.erroredImages=[{src:"./assets/images/non-existing-picture.jpg",alt:"Non-existing picture"},{src:"./assets/images/non-existing-video.jpg",alt:"Non-existing video",video:!0},...this.extendedImages.slice(2,4)],this.videos=[{src:"./assets/images/beach-1.mp4",video:!0},{src:"https://www.youtube.com/embed/80_39eAx3z8",video:!0}],ar({read:()=>{const i=matchMedia("(max-width: 768px)"),r=matchMedia("(max-width: 1024px)");i.onchange=o=>{this.mobile=o.matches,this.cd.detectChanges()},r.onchange=o=>{this.tablet=o.matches,this.cd.detectChanges()},this.mobile=i.matches,this.tablet=r.matches}})}static{this.\u0275fac=function(i){return new(i||e)(v(Sn))}}static{this.\u0275cmp=ft({type:e,selectors:[["app-root"]],decls:86,vars:14,consts:[[1,"menu-heading"],["href","#usage"],["href","#demos"],["href","#demo-responsive"],["href","#demo-custom"],["href","#demo-rtl"],["href","#demo-descriptions"],["href","#demo-error-handling"],["href","#demo-videos"],["href","#demo-full-config"],["href","https://github.com/daelmaak/ngx-gallery/blob/master/libs/gallery/src/lib/components/gallery/gallery.component.ts","target","_blank"],["role","main"],[1,"main-content"],["id","usage",1,"usage"],[1,"usage-code"],["id","demos"],["id","demo-responsive","heading","Responsive - resize me!","stackblitz","https://stackblitz.com/edit/ngx-gallery-demo-responsive?file=src%2Fapp%2Fapp.component.html"],["loading","lazy",3,"items"],["id","demo-custom","heading","Custom templates","stackblitz","https://stackblitz.com/edit/ngx-gallery-demo-custom-templates?file=src%2Fapp%2Fapp.component.html"],["subheading",""],[3,"mobile","tablet"],["id","demo-rtl","heading","Right to left"],["loading","lazy",3,"items","isRtl"],["id","demo-descriptions","heading","Descriptions","stackblitz","https://stackblitz.com/edit/ngx-gallery-demo-descriptions?file=src%2Fapp%2Fapp.component.html"],["counterOrientation","top","loading","lazy",3,"items","descriptions"],["id","demo-error-handling","heading","Error handling"],["loading","lazy",3,"items","showErrors"],["id","demo-videos","heading","Videos","subheading","both YouTube and native videos"],["id","demo-full-config","heading","Full configuration"],[3,"images"]],template:function(i,r){1&i&&(Z(0,"app-header"),_(1,"aside")(2,"div",0)(3,"a",1),k(4,"Usage"),y()(),_(5,"div",0)(6,"a",2),k(7,"Showcases"),y()(),_(8,"ul")(9,"li")(10,"a",3),k(11,"Responsive"),y()(),_(12,"li")(13,"a",4),k(14,"Custom templates"),y()(),_(15,"li")(16,"a",5),k(17,"Right to left"),y()(),_(18,"li")(19,"a",6),k(20,"Descriptions"),y()(),_(21,"li")(22,"a",7),k(23,"Error handling"),y()(),_(24,"li")(25,"a",8),k(26,"Videos"),y()(),_(27,"li")(28,"a",9),k(29,"Full configuration"),y()()(),_(30,"div",0),k(31,"Misc"),y(),_(32,"ul")(33,"li")(34,"a",10),k(35,"Documentation"),y()()()(),_(36,"main",11)(37,"div",12)(38,"div",13)(39,"h2"),k(40,"Usage"),y(),_(41,"div",14)(42,"div")(43,"h4"),k(44,"Install"),y(),_(45,"pre")(46,"code"),k(47),y()()(),_(48,"div")(49,"h4"),k(50,"Component"),y(),_(51,"pre")(52,"code"),k(53),y()()(),_(54,"div")(55,"h4"),k(56,"Template"),y(),_(57,"pre")(58,"code"),k(59),y()()()()(),_(60,"h2",15),k(61,"Showcases"),y(),_(62,"app-showcase",16),Z(63,"gallery",17),y(),_(64,"app-showcase",18)(65,"div",19),k(66," You can also use your custom templates for items, loading screen, loading errors, thumbnails and more. Find out which templates can be used to customize in the "),_(67,"a",10),k(68,"documentation."),y()(),Z(69,"app-demo-custom-templates",20),y(),_(70,"app-showcase",21),Z(71,"gallery",22),y(),_(72,"app-showcase",23),Z(73,"gallery",24),y(),_(74,"app-showcase",25),Z(75,"gallery",26),y(),_(76,"app-showcase",27),Z(77,"gallery",17),y(),_(78,"app-showcase",28)(79,"div",19),k(80," Some options like custom templates are missing. Check them out in the "),_(81,"a",10),k(82,"documentation."),y()(),Z(83,"app-demo-whole-config",29),y()()(),_(84,"footer"),k(85,"With care from daelmaak"),y()),2&i&&(x(47),ai(r.installScript),x(6),ai(r.componentCode),x(6),ai(r.componentTemplateCode),x(4),I("items",r.images),x(6),I("mobile",r.mobile)("tablet",r.tablet),x(2),I("items",r.images)("isRtl",!0),x(2),I("items",r.images)("descriptions",!0),x(2),I("items",r.erroredImages)("showErrors",!0),x(2),I("items",r.videos),x(6),I("images",r.images))},dependencies:[Ka,LG,VG,UG,WG],styles:["[_nghost-%COMP%]{display:grid;grid-template-columns:230px calc(100% - 230px);grid-template-rows:auto auto 64px}@media (max-width: 1024px){[_nghost-%COMP%]{grid-template-columns:0px 100%}}app-header[_ngcontent-%COMP%]{grid-column:1/span 2;grid-row:1}aside[_ngcontent-%COMP%]{grid-column:1;grid-row:2/span 2;position:sticky;top:0;max-height:100vh;background-color:#f3f3f3;overflow:auto}@media (max-width: 767px){aside[_ngcontent-%COMP%]{display:none}}aside[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:0;padding:5px 25px}aside[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding:8px 0}aside[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none;color:#5b5b5b}aside[_ngcontent-%COMP%] .menu-heading[_ngcontent-%COMP%]{padding:0 15px 8px;box-sizing:border-box;margin:20px 10px 0;color:#686868;font-weight:700}aside[_ngcontent-%COMP%] .menu-heading[_ngcontent-%COMP%] + ul[_ngcontent-%COMP%]{border-top:1px solid #c1c1c1}main[_ngcontent-%COMP%]{grid-column:2/span 1;margin:0 auto;width:100%;background:#fafafa}@media (max-width: 767px){main[_ngcontent-%COMP%]{max-width:100%}}main[_ngcontent-%COMP%] .main-content[_ngcontent-%COMP%]{max-width:1200px;width:100%;margin:0 auto}main[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], main[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], main[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], main[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], main[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{margin:0 0 0 30px}main[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{padding:.83em 0 .4em}@media (min-width: 768px){main[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:2.3em}}footer[_ngcontent-%COMP%]{grid-column:2/span 1;display:flex;justify-content:center;align-items:center;font-size:.9em;text-align:center;color:#b3b3b3}pre[_ngcontent-%COMP%]{display:flex;margin:0;font-size:1.2em}@media (max-width: 767px){.usage[_ngcontent-%COMP%]{display:none}}.usage-code[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}"],changeDetection:0})}}return e})();const KG=[k$,j$,Bg,u5,_5,T5,v5];let YG=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=qe({type:e,bootstrap:[ZG]})}static{this.\u0275inj=He({providers:[{provide:XI,useValue:{appearance:"outline"}},eU()],imports:[KG,_x,K3,br,Kz,Ka]})}}return e})();ZH().bootstrapModule(YG).catch(e=>console.error(e))}},rs=>{rs(rs.s=374)}]);
+//# sourceMappingURL=main.00e373f336046861.js.map
\ No newline at end of file
diff --git a/browser/main.00e373f336046861.js.map b/browser/main.00e373f336046861.js.map
new file mode 100644
index 00000000..fcb00653
--- /dev/null
+++ b/browser/main.00e373f336046861.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.00e373f336046861.js","mappings":"qFASA,SAASA,GAAcC,EAAGC,GACtB,OAAOC,OAAOC,GAAGH,EAAGC,EACxB,CAOA,IAAIG,GAAiB,KACjBC,IAAsB,EAItBC,GAAQ,EAMZ,MAAMC,GAAyBC,OAAO,UACtC,SAASC,GAAkBC,GACvB,MAAMC,EAAOP,GACbA,UAAiBM,EACVC,CACX,CAUA,MAAMC,GAAgB,CAClBC,QAAS,EACTC,eAAgB,EAChBC,OAAO,EACPC,kBAAcC,EACdC,6BAAyBD,EACzBE,yBAAqBF,EACrBG,kBAAmB,EACnBC,sBAAkBJ,EAClBK,6BAAyBL,EACzBM,2BAA2B,EAC3BC,sBAAsB,EACtBC,sBAAuBA,KAAM,EAC7BC,uBAAwBA,OACxBC,oBAAqBA,OACrBC,qBAAsBA,QAK1B,SAASC,GAAiBC,GACtB,GAAIzB,GACA,MAAM,IAAI0B,MAEJ,IAEV,GAAuB,OAAnB3B,GAEA,OAEJA,GAAewB,qBAAqBE,GAEpC,MAAME,EAAM5B,GAAegB,oBAC3Ba,GAAmB7B,IACf4B,EAAM5B,GAAeY,aAAakB,QAAU9B,GAAeY,aAAagB,KAASF,GAQ7EK,GAAe/B,KAEfgC,GADsBhC,GAAeY,aAAagB,GACD5B,GAAee,oBAAoBa,IAKxF5B,GAAeY,aAAagB,KAASF,IAErC1B,GAAeY,aAAagB,GAAOF,EAGnC1B,GAAee,oBAAoBa,GAAOG,GAAe/B,IACnDiC,GAAwBP,EAAM1B,GAAgB4B,GAC9C,GAEV5B,GAAec,wBAAwBc,GAAOF,EAAKjB,OACvD,CAYA,SAASyB,GAA2BR,GAChC,KAAIK,GAAeL,IAAUA,EAAKf,SAK7Be,EAAKf,OAASe,EAAKhB,iBAAmBR,IAM3C,KAAKwB,EAAKL,sBAAsBK,KAAUS,GAA+BT,GAKrE,OAFAA,EAAKf,OAAQ,OACbe,EAAKhB,eAAiBR,IAG1BwB,EAAKJ,uBAAuBI,GAE5BA,EAAKf,OAAQ,EACbe,EAAKhB,eAAiBR,GAC1B,CAIA,SAASkC,GAAwBV,GAC7B,QAA8Bb,IAA1Ba,EAAKT,iBACL,OAGJ,MAAMV,EAAON,GACbA,IAAsB,EACtB,IACI,UAAWK,KAAYoB,EAAKT,iBACnBX,EAASK,OACV0B,GAAkB/B,EAG9B,SAEIL,GAAsBM,CAC1B,CACJ,CAKA,SAAS+B,KACL,OAAqD,IAA9CtC,IAAgBmB,yBAC3B,CACA,SAASkB,GAAkBX,GACvBA,EAAKf,OAAQ,EACbyB,GAAwBV,GACxBA,EAAKH,sBAAsBG,EAC/B,CAOA,SAASa,GAA0Bb,GAC/BA,WAASA,EAAKV,kBAAoB,GAC3BX,GAAkBqB,EAC7B,CAOA,SAASc,GAAyBd,EAAMe,GAEpC,GADApC,GAAkBoC,GACbf,QACqBb,IAAtBa,EAAKd,mBACwBC,IAA7Ba,EAAKX,0BAC4BF,IAAjCa,EAAKZ,wBAGT,IAAIiB,GAAeL,GAGf,QAASgB,EAAIhB,EAAKV,kBAAmB0B,EAAIhB,EAAKd,aAAakB,OAAQY,IAC/DV,GAAkCN,EAAKd,aAAa8B,GAAIhB,EAAKX,oBAAoB2B,IAMzF,KAAOhB,EAAKd,aAAakB,OAASJ,EAAKV,mBACnCU,EAAKd,aAAa+B,MAClBjB,EAAKZ,wBAAwB6B,MAC7BjB,EAAKX,oBAAoB4B,KAAI,CAErC,CAKA,SAASR,GAA+BT,GACpCG,GAAmBH,GAEnB,QAASgB,EAAI,EAAGA,EAAIhB,EAAKd,aAAakB,OAAQY,IAAK,CAC/C,MAAME,EAAWlB,EAAKd,aAAa8B,GAC7BG,EAAcnB,EAAKZ,wBAAwB4B,GAWjD,GARIG,IAAgBD,EAASnC,UAK7ByB,GAA2BU,GAGvBC,IAAgBD,EAASnC,SACzB,OAAO,CAEf,CACA,OAAO,CACX,CAIA,SAASqC,GAAgBpB,GAErB,GADAG,GAAmBH,GACfK,GAAeL,GAEf,QAASgB,EAAI,EAAGA,EAAIhB,EAAKd,aAAakB,OAAQY,IAC1CV,GAAkCN,EAAKd,aAAa8B,GAAIhB,EAAKX,oBAAoB2B,IAIzFhB,EAAKd,aAAakB,OACdJ,EAAKZ,wBAAwBgB,OACzBJ,EAAKX,oBAAoBe,OACrB,EACRJ,EAAKT,mBACLS,EAAKT,iBAAiBa,OAASJ,EAAKR,wBAAwBY,OAAS,EAE7E,CAOA,SAASG,GAAwBP,EAAMpB,EAAUyC,GAE7C,GADAC,GAAmBtB,GACkB,IAAjCA,EAAKT,iBAAiBa,QAAgBmB,GAAevB,GAErD,QAASgB,EAAI,EAAGA,EAAIhB,EAAKd,aAAakB,OAAQY,IAC1ChB,EAAKX,oBAAoB2B,GAAKT,GAAwBP,EAAKd,aAAa8B,GAAIhB,EAAMgB,GAG1FhB,SAAKR,wBAAwBgC,KAAKH,GAC3BrB,EAAKT,iBAAiBiC,KAAK5C,GAAY,CAClD,CAIA,SAAS0B,GAAkCN,EAAME,GAK7C,GAJAoB,GAAmBtB,GAIkB,IAAjCA,EAAKT,iBAAiBa,QAAgBmB,GAAevB,GAIrD,QAASgB,EAAI,EAAGA,EAAIhB,EAAKd,aAAakB,OAAQY,IAC1CV,GAAkCN,EAAKd,aAAa8B,GAAIhB,EAAKX,oBAAoB2B,IAKzF,MAAMS,EAAUzB,EAAKT,iBAAiBa,OAAS,EAQ/C,GAPAJ,EAAKT,iBAAiBW,GAAOF,EAAKT,iBAAiBkC,GACnDzB,EAAKR,wBAAwBU,GAAOF,EAAKR,wBAAwBiC,GAEjEzB,EAAKT,iBAAiBa,SACtBJ,EAAKR,wBAAwBY,SAGzBF,EAAMF,EAAKT,iBAAiBa,OAAQ,CACpC,MAAMsB,EAAc1B,EAAKR,wBAAwBU,GAC3CtB,EAAWoB,EAAKT,iBAAiBW,GACvCC,GAAmBvB,GACnBA,EAASS,oBAAoBqC,GAAexB,CAChD,CACJ,CACA,SAASG,GAAeL,GACpB,OAAOA,EAAKN,uBAAyBM,GAAMT,kBAAkBa,QAAU,GAAK,CAChF,CACA,SAASD,GAAmBH,GACxBA,EAAKd,eAAiB,GACtBc,EAAKX,sBAAwB,GAC7BW,EAAKZ,0BAA4B,EACrC,CACA,SAASkC,GAAmBtB,GACxBA,EAAKT,mBAAqB,GAC1BS,EAAKR,0BAA4B,EACrC,CACA,SAAS+B,GAAevB,GACpB,YAA6Bb,IAAtBa,EAAKd,YAChB,CAKA,SAASyC,GAAeC,GACpB,MAAM5B,EAAO5B,OAAOyD,OAAOC,IAC3B9B,EAAK4B,YAAcA,EACnB,MAAMG,EAAWA,KAKb,GAHAvB,GAA2BR,GAE3BD,GAAiBC,GACbA,EAAKgC,QAAUC,GACf,MAAMjC,EAAKkC,MAEf,OAAOlC,EAAKgC,OAEhBD,SAAStD,IAAUuB,EACZ+B,CACX,CAKA,MAAMI,GAAwBzD,OAAO,SAM/B0D,GAA4B1D,OAAO,aAMnCuD,GAA0BvD,OAAO,WAIjCoD,GACK,IACAhD,GACHkD,MAAOG,GACPlD,OAAO,EACPiD,MAAO,KACPG,MAAOpE,GACP0B,sBAAsBK,GAGXA,EAAKgC,QAAUG,IAASnC,EAAKgC,QAAUI,GAElDxC,uBAAuBI,GACnB,GAAIA,EAAKgC,QAAUI,GAEf,MAAM,IAAInC,MAAM,mCAEpB,MAAMqC,EAAWtC,EAAKgC,MACtBhC,EAAKgC,MAAQI,GACb,MAAMrB,EAAeF,GAA0Bb,GAC/C,IAAIuC,EACJ,IACIA,EAAWvC,EAAK4B,aACpB,OACOY,GACHD,EAAWN,GACXjC,EAAKkC,MAAQM,CACjB,SAEI1B,GAAyBd,EAAMe,EACnC,CACIuB,IAAaH,IACbG,IAAaL,IACbM,IAAaN,IACbjC,EAAKqC,MAAMC,EAAUC,GAGrBvC,EAAKgC,MAAQM,GAGjBtC,EAAKgC,MAAQO,EACbvC,EAAKjB,UACT,GAOR,IAAI0D,GAHJ,SAASC,KACL,MAAM,IAAIzC,KACd,EAEA,SAAS0C,KACLF,IACJ,CAWA,IAAIG,GAAkB,KAuBtB,SAASC,GAAY7C,EAAMuC,GAClB3B,MACD+B,KAEC3C,EAAKqC,MAAMrC,EAAKgC,MAAOO,KACxBvC,EAAKgC,MAAQO,EAuBrB,SAASO,GAAmB9C,GACxBA,EAAKjB,UAjXT,SAASgE,KACLvE,IACJ,CAgXIuE,GACArC,GAAwBV,GACxB4C,MACJ,CA3BQE,CAAmB9C,GAE3B,CAaA,MAAMgD,GACK,IACAlE,GACHuD,MAAOpE,GACP+D,WAAO7C,GC1dR,SAAS8D,GAAWC,GACvB,MAAoB,mBAANA,CAClB,CCFA,IAAIC,IAAsD,EACnD,MAAMC,GAAS,CAClBC,aAASlE,EACT,yCAAImE,CAAsCtB,GACtC,GAAIA,EAAO,CACP,MAAME,EAAQ,IAAIjC,MAClBsD,QAAQC,KAAK,gGAAkGtB,EAAMuB,MACzH,MACSN,IACLI,QAAQG,IAAI,wDAEhBP,GAAsDnB,CAC1D,EACA,yCAAIsB,GACA,OAAOH,EACX,GCfG,SAASQ,GAAgBnB,GAC5BoB,WAAW,KAAQ,MAAMpB,GAAQ,EACrC,CCAO,MAAMqB,GAAQ,CACjBC,QAAQ,EACRC,KAAK/B,GAAS,EACdE,MAAMM,GACF,GAAIY,GAAOE,sCACP,MAAMd,EAGNmB,GAAgBnB,EAExB,EACAwB,WAAa,GCbJC,GAAiBC,MAAMD,UAAaf,GAAMA,GAAyB,iBAAbA,EAAE9C,QCA9D,SAAS+D,GAASjB,GACrB,OAAa,OAANA,GAA2B,iBAANA,CAChC,CCWO,MAAMkB,SAZT,SAASC,EAAwBC,GAC7BrE,aAAMsE,KAAKC,MACXA,KAAKC,QAAUH,EACX,GAAGA,EAAOlE,kDACpBkE,EAAOI,IAAI,CAAClC,EAAKxB,IAAM,GAAGA,EAAI,MAAMwB,EAAImC,cAAcC,KAAK,UAAY,GACjEJ,KAAKK,KAAO,sBACZL,KAAKF,OAASA,EACPE,IACX,CACAH,SAAwBS,UAAY1G,OAAOyD,OAAO5B,MAAM6E,WACjDT,CACX,EACaD,GCTN,MAAMW,GACTC,YAAYC,GACRT,KAAKV,QAAS,EACdU,KAAKU,iBAAmB,KACxBV,KAAKW,eAAiB,KAClBF,IACAT,KAAKY,kBAAmB,EACxBZ,KAAKa,aAAeJ,EAE5B,CACAA,cACI,IAAIX,EACJ,GAAIE,KAAKV,OACL,OAEJ,IAAMoB,mBAAkBE,mBAAkBC,eAAcF,kBAAmBX,KAI3E,GAHAA,KAAKV,QAAS,EACdU,KAAKU,iBAAmB,KACxBV,KAAKW,eAAiB,KAClBD,aAA4BH,GAC5BG,EAAiBI,OAAOd,WAAI,GAEF,OAArBU,EACL,QAASK,EAAQ,EAAGA,EAAQL,EAAiB9E,SAAUmF,EACpCL,EAAiBK,GACzBD,OAAOd,MAGtB,GAAIvB,GAAWoC,GAAe,CACtBD,IACAZ,KAAKa,kBAAelG,GAExB,IACIkG,EAAad,KAAKC,KACtB,OACOgB,GACHlB,EAASkB,aAAapB,GAAsBqB,GAA4BD,EAAElB,QAAU,CAACkB,EACzF,CACJ,CACA,GAAIvB,GAAQkB,GAAiB,CACzB,IAAII,GAAQ,EACRG,EAAMP,EAAe/E,OACzB,OAASmF,EAAQG,GAAK,CAClB,MAAMC,EAAMR,EAAeI,GAC3B,GAAIpB,GAASwB,GACT,IACIA,EAAIV,aACR,OACOO,GACHlB,EAASA,GAAU,GACfkB,aAAapB,GACbE,EAASA,EAAOsB,OAAOH,GAA4BD,EAAElB,SAGrDA,EAAO9C,KAAKgE,EAEpB,CAER,CACJ,CACA,GAAIlB,EACA,MAAM,IAAIF,GAAoBE,EAEtC,CACAuB,IAAIC,GACA,IAAIC,EAAeD,EACnB,IAAKA,EACD,OAAOf,GAAaiB,MAExB,cAAeF,GACX,IAAK,WACDC,EAAe,IAAIhB,GAAae,GACpC,IAAK,SACD,GAAIC,IAAiBvB,MAAQuB,EAAajC,QAA8C,mBAA7BiC,EAAad,YACpE,OAAOc,EAEN,GAAIvB,KAAKV,OACViC,SAAad,cACNc,EAEN,KAAMA,aAAwBhB,IAAe,CAC9C,MAAMkB,EAAMF,EACZA,EAAe,IAAIhB,GACnBgB,EAAaZ,eAAiB,CAACc,EACnC,CACA,MACJ,QACI,MAAM,IAAIhG,MAAM,yBAA2B6F,EAAW,2BAG9D,IAAMZ,oBAAqBa,EAC3B,GAAyB,OAArBb,EACAa,EAAab,iBAAmBV,UAAA,GAE3BU,aAA4BH,GAAc,CAC/C,GAAIG,IAAqBV,KACrB,OAAOuB,EAEXA,EAAab,iBAAmB,CAACA,EAAkBV,KACvD,UAC4C,IAAnCU,EAAiBgB,QAAQ1B,MAI9B,OAAOuB,EAHPb,EAAiB1D,KAAKgD,KAGfuB,CAEX,MAAMI,EAAgB3B,KAAKW,eAC3B,OAAsB,OAAlBgB,EACA3B,KAAKW,eAAiB,CAACY,GAGvBI,EAAc3E,KAAKuE,GAEhBA,CACX,CACAT,OAAOS,GACH,MAAMI,EAAgB3B,KAAKW,eAC3B,GAAIgB,EAAe,CACf,MAAMC,EAAoBD,EAAcD,QAAQH,IACtB,IAAtBK,GACAD,EAAcE,OAAOD,EAAmB,EAEhD,CACJ,EAEkB,IAAUvC,EAIhC,SAAS4B,GAA4BnB,GACjC,OAAOA,EAAOgC,OAAO,CAACC,EAAM/D,IAAQ+D,EAAKX,OAAQpD,aAAe4B,GAAuB5B,EAAI8B,OAAS9B,GAAM,GAC9G,CANAuC,GAAaiB,QAAmBnC,EAG9B,IAAIkB,IAFIjB,QAAS,EACRD,GCnIJ,MAAM2C,GAAwC,mBAAX9H,OACpCA,OAAO,gBACP,kBAAoB+H,KAAKC,SCIxB,MAAMC,WAAmB5B,GAC5BC,YAAY4B,EAAmB1E,EAAO8B,GAMlC,OALA6C,QACArC,KAAKsC,eAAiB,KACtBtC,KAAKuC,iBAAkB,EACvBvC,KAAKwC,oBAAqB,EAC1BxC,KAAKyC,WAAY,EACTC,UAAU9G,QACd,KAAK,EACDoE,KAAK2C,YAAcC,GACnB,MACJ,KAAK,EACD,IAAKR,EAAmB,CACpBpC,KAAK2C,YAAcC,GACnB,KACJ,CACA,GAAiC,iBAAtBR,EAAgC,CACnCA,aAA6BD,IAC7BnC,KAAKwC,mBAAqBJ,EAAkBI,mBAC5CxC,KAAK2C,YAAcP,EACnBA,EAAkBf,IAAIrB,QAGtBA,KAAKwC,oBAAqB,EAC1BxC,KAAK2C,YAAc,IAAIE,GAAe7C,KAAMoC,IAEhD,KACJ,CACJ,QACIpC,KAAKwC,oBAAqB,EAC1BxC,KAAK2C,YAAc,IAAIE,GAAe7C,KAAMoC,EAAmB1E,EAAO8B,GAGlF,CACA,CAACsD,MAAwB,OAAO9C,IAAM,CACtC,aAAO3C,CAAOkC,EAAM7B,EAAO8B,GACvB,MAAMuD,EAAa,IAAIZ,GAAW5C,EAAM7B,EAAO8B,GAC/CuD,SAAWP,oBAAqB,EACzBO,CACX,CACAxD,KAAK/B,GACIwC,KAAKyC,WACNzC,KAAKgD,MAAMxF,EAEnB,CACAE,MAAMM,GACGgC,KAAKyC,YACNzC,KAAKyC,WAAY,EACjBzC,KAAKiD,OAAOjF,GAEpB,CACAwB,WACSQ,KAAKyC,YACNzC,KAAKyC,WAAY,EACjBzC,KAAKkD,YAEb,CACAzC,cACQT,KAAKV,SAGTU,KAAKyC,WAAY,EACjBJ,MAAM5B,cACV,CACAuC,MAAMxF,GACFwC,KAAK2C,YAAYpD,KAAK/B,EAC1B,CACAyF,OAAOjF,GACHgC,KAAK2C,YAAYjF,MAAMM,GACvBgC,KAAKS,aACT,CACAyC,YACIlD,KAAK2C,YAAYnD,WACjBQ,KAAKS,aACT,CACA0C,yBACI,MAAQzC,oBAAqBV,KAC7B,OAAAA,KAAKU,iBAAmB,KACxBV,KAAKS,cACLT,KAAKV,QAAS,EACdU,KAAKyC,WAAY,EACjBzC,KAAKU,iBAAmBA,EACjBV,IACX,EAEG,MAAM6C,WAAuBV,GAChC3B,YAAY4C,EAAmBC,EAAgB3F,EAAO8B,GAClD6C,QACArC,KAAKoD,kBAAoBA,EACzB,IAAI7D,EACA+D,EAAUtD,KACVvB,GAAW4E,GACX9D,EAAO8D,EAEFA,IACL9D,EAAO8D,EAAe9D,KACtB7B,EAAQ2F,EAAe3F,MACvB8B,EAAW6D,EAAe7D,SACtB6D,IAAmBT,KACnBU,EAAU1J,OAAOyD,OAAOgG,GACpB5E,GAAW6E,EAAQ7C,cACnBT,KAAKqB,IAAIiC,EAAQ7C,YAAY8C,KAAKD,IAEtCA,EAAQ7C,YAAcT,KAAKS,YAAY8C,KAAKvD,QAGpDA,KAAKwD,SAAWF,EAChBtD,KAAKgD,MAAQzD,EACbS,KAAKiD,OAASvF,EACdsC,KAAKkD,UAAY1D,CACrB,CACAD,KAAK/B,GACD,IAAKwC,KAAKyC,WAAazC,KAAKgD,MAAO,CAC/B,MAAQI,qBAAsBpD,KACzBpB,GAAOE,uCAA0CsE,EAAkBZ,mBAG/DxC,KAAKyD,gBAAgBL,EAAmBpD,KAAKgD,MAAOxF,IACzDwC,KAAKS,cAHLT,KAAK0D,aAAa1D,KAAKgD,MAAOxF,EAKtC,CACJ,CACAE,MAAMM,GACF,IAAKgC,KAAKyC,UAAW,CACjB,MAAQW,qBAAsBpD,MACtBlB,yCAA0CF,GAClD,GAAIoB,KAAKiD,OACAnE,GAA0CsE,EAAkBZ,oBAK7DxC,KAAKyD,gBAAgBL,EAAmBpD,KAAKiD,OAAQjF,GACrDgC,KAAKS,gBALLT,KAAK0D,aAAa1D,KAAKiD,OAAQjF,GAC/BgC,KAAKS,oBAIY,GAGf2C,EAAkBZ,mBAQpB1D,GACAsE,EAAkBd,eAAiBtE,EACnCoF,EAAkBb,iBAAkB,GAGpCpD,GAAgBnB,GAEpBgC,KAAKS,kBAfuC,CAE5C,GADAT,KAAKS,cACD3B,EACA,MAAMd,EAEVmB,GAAgBnB,EACpB,CAWJ,CACJ,CACAwB,WACI,IAAKQ,KAAKyC,UAAW,CACjB,MAAQW,qBAAsBpD,KAC9B,GAAIA,KAAKkD,UAAW,CAChB,MAAMS,EAAkBA,IAAM3D,KAAKkD,UAAUnD,KAAKC,KAAKwD,UAClD5E,GAAOE,uCAA0CsE,EAAkBZ,oBAKpExC,KAAKyD,gBAAgBL,EAAmBO,GACxC3D,KAAKS,gBALLT,KAAK0D,aAAaC,GAClB3D,KAAKS,cAMb,MAEIT,KAAKS,aAEb,CACJ,CACAiD,aAAaE,EAAIpG,GACb,IACIoG,EAAG7D,KAAKC,KAAKwD,SAAUhG,EAC3B,OACOQ,GAEH,GADAgC,KAAKS,cACD7B,GAAOE,sCACP,MAAMd,EAGNmB,GAAgBnB,EAExB,CACJ,CACAyF,gBAAgBI,EAAQD,EAAIpG,GACxB,IAAKoB,GAAOE,sCACR,MAAM,IAAIrD,MAAM,YAEpB,IACImI,EAAG7D,KAAKC,KAAKwD,SAAUhG,EAC3B,OACOQ,GACH,OAAIY,GAAOE,uCACP+E,EAAOvB,eAAiBtE,EACxB6F,EAAOtB,iBAAkB,GAClB,IAGPpD,GAAgBnB,IACT,EAEf,CACA,OAAO,CACX,CACA6C,eACI,MAAQuC,qBAAsBpD,KAC9BA,KAAKwD,SAAW,KAChBxD,KAAKoD,kBAAoB,KACzBA,EAAkB3C,aACtB,EC3NG,MAAMqD,GAAsC,mBAAX5J,QAAyBA,OAAO4J,YAAc,eCA/E,SAASC,GAASrF,GACrB,OAAOA,CACX,CCGO,IAAMsF,GAAU,MAAhB,MAAMA,EACTxD,YAAYyD,GACRjE,KAAKkE,WAAY,EACbD,IACAjE,KAAKmE,WAAaF,EAE1B,CACAG,KAAKC,GACD,MAAMP,EAAa,IAAIE,EACvBF,SAAWQ,OAAStE,KACpB8D,EAAWO,SAAWA,EACfP,CACX,CACAG,UAAUZ,EAAgB3F,EAAO8B,GAC7B,MAAQ6E,YAAarE,KACfuE,ECjBP,SAASC,GAAaC,EAAgB/G,EAAO8B,GAChD,GAAIiF,EAAgB,CAChB,GAAIA,aAA0BtC,GAC1B,OAAOsC,EAEX,GAAIA,EAAe3B,IACf,OAAO2B,EAAe3B,KAE9B,CACA,OAAK2B,GAAmB/G,GAAU8B,EAG3B,IAAI2C,GAAWsC,EAAgB/G,EAAO8B,GAFlC,IAAI2C,GAAWS,GAG9B,CDIqB4B,CAAanB,EAAgB3F,EAAO8B,GASjD,GAPI+E,EAAKlD,IADLgD,EACSA,EAAStE,KAAKwE,EAAMvE,KAAKsE,QAGzBtE,KAAKsE,QAAW1F,GAAOE,wCAA0CyF,EAAK/B,mBAC3ExC,KAAKmE,WAAWI,GAChBvE,KAAK0E,cAAcH,IAEvB3F,GAAOE,uCACHyF,EAAK/B,qBACL+B,EAAK/B,oBAAqB,EACtB+B,EAAKhC,iBACL,MAAMgC,EAAKjC,eAIvB,OAAOiC,CACX,CACAG,cAAcH,GACV,IACI,OAAOvE,KAAKmE,WAAWI,EAC3B,OACOvG,GACCY,GAAOE,wCACPyF,EAAKhC,iBAAkB,EACvBgC,EAAKjC,eAAiBtE,GE7C/B,SAAS2G,GAAeC,GAC3B,KAAOA,GAAU,CACb,MAAQtF,SAAQqD,cAAaF,aAAcmC,EAC3C,GAAItF,GAAUmD,EACV,OAAO,EAGPmC,EADKjC,GAAeA,aAAuBR,GAChCQ,EAGA,IAEnB,CACA,OAAO,CACX,CFiCgBgC,CAAeJ,GACfA,EAAK7G,MAAMM,GAGXe,QAAQC,KAAKhB,EAErB,CACJ,CACA6G,QAAQtF,EAAMuF,GACVA,OACO,IADPA,EAAcC,GAAeD,IACN,CAACE,EAASC,KAC7B,IAAI1D,EACJA,EAAevB,KAAKiE,UAAWzG,IAC3B,IACI+B,EAAK/B,EACT,OACOQ,GACHiH,EAAOjH,GACHuD,GACAA,EAAad,aAErB,GACDwE,EAAQD,EAAO,EAE1B,CACAb,WAAWpB,GACP,MAAQuB,UAAWtE,KACnB,OAAOsE,GAAUA,EAAOL,UAAUlB,EACtC,CACA,CAACmC,MACG,OAAOlF,IACX,CACAmF,QAAQC,GACJ,OAA0B,IAAtBA,EAAWxJ,OACJoE,KG9EZ,SAASqF,GAAcC,GAC1B,OAAmB,IAAfA,EAAI1J,OACGmI,GAEQ,IAAfuB,EAAI1J,OACG0J,EAAI,GAER,SAAeC,GAClB,OAAOD,EAAIxD,OAAO,CAACzH,EAAMuJ,IAAOA,EAAGvJ,GAAOkL,EAC9C,CACJ,CHsEeF,CAAcD,EAAdC,CAA0BrF,KACrC,CACAwF,UAAUV,GACNA,OACO,IADPA,EAAcC,GAAeD,IACN,CAACE,EAASC,KAC7B,IAAIzH,EACJwC,KAAKiE,UAAWvF,GAAMlB,EAAQkB,EAAIV,GAAQiH,EAAOjH,GAAM,IAAMgH,EAAQxH,GAAM,EAEnF,EAEJwG,SAAW3G,OAAU4G,GACV,IAAID,EAAWC,GA1FbD,CAAU,KA4FvB,SAASe,GAAeD,GAIpB,GAHKA,IACDA,EAAclG,GAAOC,SAAWA,UAE/BiG,EACD,MAAM,IAAIrJ,MAAM,yBAEpB,OAAOqJ,CACX,CI/FO,MAAMW,SATT,SAASC,IACLjK,aAAMsE,KAAKC,MACXA,KAAKC,QAAU,sBACfD,KAAKK,KAAO,0BACLL,IACX,CACA0F,SAA4BpF,UAAY1G,OAAOyD,OAAO5B,MAAM6E,WACrDoF,CACX,EACaD,GCTN,MAAME,WAA4BpF,GACrCC,YAAYoF,EAAS7C,GACjBV,QACArC,KAAK4F,QAAUA,EACf5F,KAAK+C,WAAaA,EAClB/C,KAAKV,QAAS,CAClB,CACAmB,cACI,GAAIT,KAAKV,OACL,OAEJU,KAAKV,QAAS,EACd,MAAMsG,EAAU5F,KAAK4F,QACfC,EAAYD,EAAQC,UAE1B,GADA7F,KAAK4F,QAAU,MACVC,GAAkC,IAArBA,EAAUjK,QAAgBgK,EAAQnD,WAAamD,EAAQtG,OACrE,OAEJ,MAAMwG,EAAkBD,EAAUnE,QAAQ1B,KAAK+C,aACvB,IAApB+C,GACAD,EAAUhE,OAAOiE,EAAiB,EAE1C,ECjBG,MAAMC,WAA0B5D,GACnC3B,YAAYmC,GACRN,MAAMM,GACN3C,KAAK2C,YAAcA,CACvB,EAEG,IAAMqD,GAAO,MAAb,MAAMA,UAAgBhC,GACzBxD,cACI6B,QACArC,KAAK6F,UAAY,GACjB7F,KAAKV,QAAS,EACdU,KAAKyC,WAAY,EACjBzC,KAAKiG,UAAW,EAChBjG,KAAKkG,YAAc,IACvB,CACA,CAACpD,MACG,OAAO,IAAIiD,GAAkB/F,KACjC,CACAoE,KAAKC,GACD,MAAMuB,EAAU,IAAIO,GAAiBnG,KAAMA,MAC3C4F,SAAQvB,SAAWA,EACZuB,CACX,CACArG,KAAK/B,GACD,GAAIwC,KAAKV,OACL,MAAM,IAAImG,GAEd,IAAKzF,KAAKyC,UAAW,CACjB,MAAQoD,aAAc7F,KAChBkB,EAAM2E,EAAUjK,OAChBwK,EAAOP,EAAUQ,QACvB,QAAS7J,EAAI,EAAGA,EAAI0E,EAAK1E,IACrB4J,EAAK5J,GAAG+C,KAAK/B,EAErB,CACJ,CACAE,MAAMM,GACF,GAAIgC,KAAKV,OACL,MAAM,IAAImG,GAEdzF,KAAKiG,UAAW,EAChBjG,KAAKkG,YAAclI,EACnBgC,KAAKyC,WAAY,EACjB,MAAQoD,aAAc7F,KAChBkB,EAAM2E,EAAUjK,OAChBwK,EAAOP,EAAUQ,QACvB,QAAS7J,EAAI,EAAGA,EAAI0E,EAAK1E,IACrB4J,EAAK5J,GAAGkB,MAAMM,GAElBgC,KAAK6F,UAAUjK,OAAS,CAC5B,CACA4D,WACI,GAAIQ,KAAKV,OACL,MAAM,IAAImG,GAEdzF,KAAKyC,WAAY,EACjB,MAAQoD,aAAc7F,KAChBkB,EAAM2E,EAAUjK,OAChBwK,EAAOP,EAAUQ,QACvB,QAAS7J,EAAI,EAAGA,EAAI0E,EAAK1E,IACrB4J,EAAK5J,GAAGgD,WAEZQ,KAAK6F,UAAUjK,OAAS,CAC5B,CACA6E,cACIT,KAAKyC,WAAY,EACjBzC,KAAKV,QAAS,EACdU,KAAK6F,UAAY,IACrB,CACAnB,cAAc3B,GACV,GAAI/C,KAAKV,OACL,MAAM,IAAImG,GAGV,OAAOpD,MAAMqC,cAAc3B,EAEnC,CACAoB,WAAWpB,GACP,GAAI/C,KAAKV,OACL,MAAM,IAAImG,GAET,OAAIzF,KAAKiG,UACVlD,EAAWrF,MAAMsC,KAAKkG,aACf3F,GAAaiB,OAEfxB,KAAKyC,WACVM,EAAWvD,WACJe,GAAaiB,QAGpBxB,KAAK6F,UAAU7I,KAAK+F,GACb,IAAI4C,GAAoB3F,KAAM+C,GAE7C,CACAuD,eACI,MAAMxC,EAAa,IAAIE,GACvBF,SAAWQ,OAAStE,KACb8D,CACX,EAEJkC,SAAQ3I,OAAS,CAACsF,EAAa2B,IACpB,IAAI6B,GAAiBxD,EAAa2B,GA/FhC0B,CAAO,KAiGb,MAAMG,WAAyBH,GAClCxF,YAAYmC,EAAa2B,GACrBjC,QACArC,KAAK2C,YAAcA,EACnB3C,KAAKsE,OAASA,CAClB,CACA/E,KAAK/B,GACD,MAAQmF,eAAgB3C,KACpB2C,GAAeA,EAAYpD,MAC3BoD,EAAYpD,KAAK/B,EAEzB,CACAE,MAAMM,GACF,MAAQ2E,eAAgB3C,KACpB2C,GAAeA,EAAYjF,OAC3BsC,KAAK2C,YAAYjF,MAAMM,EAE/B,CACAwB,WACI,MAAQmD,eAAgB3C,KACpB2C,GAAeA,EAAYnD,UAC3BQ,KAAK2C,YAAYnD,UAEzB,CACA2E,WAAWpB,GACP,MAAQuB,UAAWtE,KACnB,OAAIsE,EACOtE,KAAKsE,OAAOL,UAAUlB,GAGtBxC,GAAaiB,KAE5B,EC3IG,MAAM+E,WAAwBP,GACjCxF,YAAYgG,GACRnE,QACArC,KAAKwG,OAASA,CAClB,CACA,SAAIhJ,GACA,OAAOwC,KAAKyG,UAChB,CACAtC,WAAWpB,GACP,MAAMxB,EAAec,MAAM8B,WAAWpB,GACtC,OAAIxB,IAAiBA,EAAajC,QAC9ByD,EAAWxD,KAAKS,KAAKwG,QAElBjF,CACX,CACAkF,WACI,GAAIzG,KAAKiG,SACL,MAAMjG,KAAKkG,YAEV,GAAIlG,KAAKV,OACV,MAAM,IAAImG,GAGV,OAAOzF,KAAKwG,MAEpB,CACAjH,KAAK/B,GACD6E,MAAM9C,KAAKS,KAAKwG,OAAShJ,EAC7B,EC7BG,SAAS0C,GAAIwG,EAASC,GACzB,OAAO,SAAsBrC,GACzB,GAAuB,mBAAZoC,EACP,MAAM,IAAIE,UAAU,8DAExB,OAAOtC,EAAOF,KAAK,IAAIyC,GAAYH,EAASC,GAChD,CACJ,CACO,MAAME,GACTrG,YAAYkG,EAASC,GACjB3G,KAAK0G,QAAUA,EACf1G,KAAK2G,QAAUA,CACnB,CACA5G,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAI6C,GAAc/D,EAAY/C,KAAK0G,QAAS1G,KAAK2G,SAC7E,EAEJ,MAAMG,WAAsB3E,GACxB3B,YAAYmC,EAAa+D,EAASC,GAC9BtE,MAAMM,GACN3C,KAAK0G,QAAUA,EACf1G,KAAK+G,MAAQ,EACb/G,KAAK2G,QAAUA,GAAW3G,IAC9B,CACAgD,MAAMxF,GACF,IAAIwJ,EACJ,IACIA,EAAShH,KAAK0G,QAAQ3G,KAAKC,KAAK2G,QAASnJ,EAAOwC,KAAK+G,QACzD,OACO/I,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACAgC,KAAK2C,YAAYpD,KAAKyH,EAC1B,ECzBG,MAAMC,SATT,SAASC,IACLzL,aAAMsE,KAAKC,MACXA,KAAKC,QAAU,0BACfD,KAAKK,KAAO,aACLL,IACX,CACAkH,SAAe5G,UAAY1G,OAAOyD,OAAO5B,MAAM6E,WACxC4G,CACX,EACaD,GCTN,SAASE,GAAOC,EAAWT,GAC9B,OAAO,SAAgCrC,GACnC,OAAOA,EAAOF,KAAK,IAAIiD,GAAeD,EAAWT,GACrD,CACJ,CACA,MAAMU,GACF7G,YAAY4G,EAAWT,GACnB3G,KAAKoH,UAAYA,EACjBpH,KAAK2G,QAAUA,CACnB,CACA5G,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIqD,GAAiBvE,EAAY/C,KAAKoH,UAAWpH,KAAK2G,SAClF,EAEJ,MAAMW,WAAyBnF,GAC3B3B,YAAYmC,EAAayE,EAAWT,GAChCtE,MAAMM,GACN3C,KAAKoH,UAAYA,EACjBpH,KAAK2G,QAAUA,EACf3G,KAAK+G,MAAQ,CACjB,CACA/D,MAAMxF,GACF,IAAIwJ,EACJ,IACIA,EAAShH,KAAKoH,UAAUrH,KAAKC,KAAK2G,QAASnJ,EAAOwC,KAAK+G,QAC3D,OACO/I,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACIgJ,GACAhH,KAAK2C,YAAYpD,KAAK/B,EAE9B,ECxBG,MAAM+J,SATT,SAASC,IACL/L,aAAMsE,KAAKC,MACXA,KAAKC,QAAU,wBACfD,KAAKK,KAAO,0BACLL,IACX,CACAwH,SAA4BlH,UAAY1G,OAAOyD,OAAO5B,MAAM6E,WACrDkH,CACX,EACaD,GCTA/F,GAAQ,IAAIwC,GAAWjB,GAAcA,EAAWvD,YACtD,SAASH,GAAMoI,GAClB,OAAOA,EAEX,SAASC,GAAeD,GACpB,OAAO,IAAIzD,GAAWjB,GAAc0E,EAAUE,SAAS,IAAM5E,EAAWvD,YAC5E,CAJuBkI,CAAeD,GAAajG,EACnD,CCDO,SAASoG,GAAKb,GACjB,OAAQzC,GACU,IAAVyC,EACO1H,KAGAiF,EAAOF,KAAK,IAAIyD,GAAad,GAGhD,CACA,MAAMc,GACFrH,YAAYsH,GAER,GADA9H,KAAK8H,MAAQA,EACT9H,KAAK8H,MAAQ,EACb,MAAM,IAAIP,EAElB,CACAxH,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAI8D,GAAehF,EAAY/C,KAAK8H,OAChE,EAEJ,MAAMC,WAAuB5F,GACzB3B,YAAYmC,EAAamF,GACrBzF,MAAMM,GACN3C,KAAK8H,MAAQA,EACb9H,KAAK+G,MAAQ,CACjB,CACA/D,MAAMxF,GACF,MAAMsK,EAAQ9H,KAAK8H,MACbf,IAAU/G,KAAK+G,MACjBA,GAASe,IACT9H,KAAK2C,YAAYpD,KAAK/B,GAClBuJ,IAAUe,IACV9H,KAAK2C,YAAYnD,WACjBQ,KAAKS,eAGjB,ECpCJ,MAAMuH,GACFxH,YAAYyH,GACRjI,KAAKiI,aAAeA,CACxB,CACAlI,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIiE,GAAyBnF,EAAY/C,KAAKiI,cAC1E,EAEJ,MAAMC,WAAiC/F,GACnC3B,YAAYmC,EAAasF,GACrB5F,MAAMM,GACN3C,KAAKiI,aAAeA,EACpBjI,KAAKmI,SAAU,CACnB,CACAnF,MAAMxF,GACFwC,KAAKmI,SAAU,EACfnI,KAAK2C,YAAYpD,KAAK/B,EAC1B,CACA0F,YACQlD,KAAKmI,SACLnI,KAAK2C,YAAYpD,KAAKS,KAAKiI,cAE/BjI,KAAK2C,YAAYnD,UACrB,ECzBG,SAAS4I,GAAaC,EAAeC,IACxC,OAAQhE,GACGA,EAAOF,KAAK,IAAImE,GAAqBF,GAEpD,CACA,MAAME,GACF/H,YAAY6H,GACRrI,KAAKqI,aAAeA,CACxB,CACAtI,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIuE,GAAuBzF,EAAY/C,KAAKqI,cACxE,EAEJ,MAAMG,WAA+BrG,GACjC3B,YAAYmC,EAAa0F,GACrBhG,MAAMM,GACN3C,KAAKqI,aAAeA,EACpBrI,KAAKyI,UAAW,CACpB,CACAzF,MAAMxF,GACFwC,KAAKyI,UAAW,EAChBzI,KAAK2C,YAAYpD,KAAK/B,EAC1B,CACA0F,YACI,GAAKlD,KAAKyI,SAWN,OAAOzI,KAAK2C,YAAYnD,WAXR,CAChB,IAAIxB,EACJ,IACIA,EAAMgC,KAAKqI,cACf,OACOrH,GACHhD,EAAMgD,CACV,CACAhB,KAAK2C,YAAYjF,MAAMM,EAC3B,CAIJ,EAEJ,SAASsK,KACL,OAAO,IAAIrB,EACf,CCxBA,MAIMyB,GAAmB,+BAkBzB,MAAMC,UAAqBlN,MACvB+E,YAAYoI,EAAM3I,GACdoC,MAQR,SAASwG,GAAmBD,EAAM3I,GAW9B,MANmB,MADIgC,KAAK6G,IAAIF,KACC3I,EAAU,KAAOA,EAAU,IAOhE,CApBc4I,CAAmBD,EAAM3I,IAC/BD,KAAK4I,KAAOA,CAChB,EAyEJ,SAASG,GAAcnF,GACnB,MAAO,CAAEzD,SAAUyD,GAAKzD,UAC5B,CAEA,MACM6I,GAAa,iBA8CnB,SAASC,GAAmB5I,EAAM6I,EAAOC,GACrC,OAAOJ,GAAc,KACjB,MAAMK,EAZd,SAASC,GAAiBH,GACtB,OAAO,YAAiBI,GACpB,GAAIJ,EAAO,CACP,MAAMK,EAASL,KAASI,GACxB,UAAWE,KAAYD,EACnBvJ,KAAKwJ,GAAYD,EAAOC,EAEhC,CACJ,CACJ,CAGyBH,CAAiBH,GAClC,SAASO,KAAyBH,GAC9B,GAAItJ,gBAAgByJ,EAChBL,SAASM,MAAM1J,KAAMsJ,GACdtJ,KAEX,MAAM2J,EAAqB,IAAIF,KAAyBH,GACxDM,SAAeC,WAAaF,EACrBC,EACP,SAASA,EAAeE,EAAKC,EAAWhJ,GAGpC,MAAMiJ,EAAaF,EAAIG,eAAejB,IAChCc,EAAId,IACJpP,OAAOsQ,eAAeJ,EAAKd,GAAY,CAAExL,MAAO,KAAMwL,IAG5D,KAAOgB,EAAWpO,QAAUmF,GACxBiJ,EAAWhN,KAAK,MAEpB,OAACgN,EAAWjJ,GAASiJ,EAAWjJ,IAAU,IAAI/D,KAAK2M,GAC5CG,CACX,CACJ,CACA,OAAIX,IACAM,EAAsBnJ,UAAY1G,OAAOyD,OAAO8L,EAAY7I,YAEhEmJ,EAAsBnJ,UAAU6J,eAAiB9J,EACjDoJ,EAAsBW,cAAgBX,EAC/BA,GAEf,CAsCA,MAAMY,GAAUC,WAkFhB,SAASC,GAAuBC,GAC5B,QAASC,KAAOD,EACZ,GAAIA,EAAyBC,KAASF,GAClC,OAAOE,EAGf,MAAMhP,MAAM,oDAChB,CAOA,SAASiP,GAAeC,EAAQrG,GAC5B,UAAWmG,KAAOnG,EACVA,EAAO2F,eAAeQ,KAASE,EAAOV,eAAeQ,KACrDE,EAAOF,GAAOnG,EAAOmG,GAGjC,CAEA,SAASG,GAAUC,GACf,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAInL,MAAMD,QAAQoL,GACd,MAAO,IAAMA,EAAM3K,IAAI0K,IAAWxK,KAAK,MAAQ,IAEnD,GAAa,MAATyK,EACA,MAAO,GAAKA,EAEhB,GAAIA,EAAMC,eACN,MAAO,GAAGD,EAAMC,iBAEpB,GAAID,EAAMxK,KACN,MAAO,GAAGwK,EAAMxK,OAEpB,MAAM0K,EAAMF,EAAM1K,WAClB,GAAW,MAAP4K,EACA,MAAO,GAAKA,EAEhB,MAAMC,EAAeD,EAAIrJ,QAAQ,MACjC,OAAwB,IAAjBsJ,EAAsBD,EAAMA,EAAIE,UAAU,EAAGD,EACxD,CASA,SAASE,GAAuBC,EAAQC,GACpC,OAAiB,MAAVD,GAA6B,KAAXA,EACT,OAAVC,EACI,GACAA,EACK,MAATA,GAA2B,KAAVA,EACbD,EACAA,EAAS,IAAMC,CAC7B,CAiBA,MAAMC,GAAkBd,GAAuB,CAAEc,gBAAiBd,KAwClE,SAASe,GAAWC,GAChBA,SAAaF,gBAAkBC,GAC/BC,EAAapL,SAAW,WACpB,OAAOyK,GAAU5K,OACrB,EACOuL,CACX,CAcA,SAASC,EAAkBC,GACvB,OAAOC,GAAaD,GAAQA,IAASA,CACzC,CAEA,SAASC,GAAa9H,GAClB,MAAsB,mBAAPA,GACXA,EAAGqG,eAAeoB,KAClBzH,EAAGyH,kBAAoBC,EAC/B,CA2HA,SAASK,EAAmBC,GACxB,MAAO,CACHf,MAAOe,EAAKf,MACZgB,WAAYD,EAAKC,YAAc,KAC/BC,QAASF,EAAKE,QACdtO,WAAO7C,EAEf,CAwBA,SAASoR,GAAiBC,GACtB,MAAO,CAAEC,UAAWD,EAAQC,WAAa,GAAIC,QAASF,EAAQE,SAAW,GAC7E,CAOA,SAASC,GAAiBV,GACtB,OAAOW,GAAiBX,EAAMY,KAAgBD,GAAiBX,EAAMa,GACzE,CAQA,SAASF,GAAiBX,EAAMc,GAC5B,OAAOd,EAAKxB,eAAesC,GAASd,EAAKc,GAAS,IACtD,CA0BA,SAASC,GAAef,GACpB,OAAOA,IAASA,EAAKxB,eAAewC,KAAehB,EAAKxB,eAAeyC,KACjEjB,EAAKgB,IACL,IACV,CACA,MAAMJ,GAAc9B,GAAuB,CAAEoC,WAAOpC,KAC9CkC,GAAalC,GAAuB,CAAEqC,UAAMrC,KAE5C+B,GAAoB/B,GAAuB,CAAEsC,gBAAiBtC,KAC9DmC,GAAkBnC,GAAuB,CAAEuC,cAAevC,KAmDhE,MAAMwC,EAOFvM,YAAYwM,EAAOhB,GACfhM,KAAKgN,MAAQA,EAEbhN,KAAKmK,eAAiB,iBACtBnK,KAAK2M,gBAAQhS,EACS,iBAAXqR,EAKPhM,KAAKiN,kBAAoBjB,OAERrR,IAAZqR,IACLhM,KAAK2M,WAAQhB,EAAmB,CAC5Bd,MAAO7K,KACP6L,WAAYG,EAAQH,YAAc,OAClCC,QAASE,EAAQF,UAG7B,CAIA,SAAIoB,GACA,OAAOlN,IACX,CACAG,WACI,MAAO,kBAAkBH,KAAKgN,OAClC,EAkHJ,SAASG,GAAuB3P,GAC5B,OAAOA,KAAWA,EAAM4P,eAC5B,CAEA,MAAMC,GAAc9C,GAAuB,CAAE+C,UAAM/C,KAC7CgD,GAAahD,GAAuB,CAAEiD,UAAMjD,KAC5CkD,GAAclD,GAAuB,CAAEmD,WAAOnD,KAC9CoD,GAAapD,GAAuB,CAAEqD,UAAMrD,KAC5CsD,GAAiBtD,GAAuB,CAAEuD,UAAMvD,KAOhDwD,GAAgBxD,GAAuB,CAAE0C,kBAAmB1C,KAS5DyD,GAAYzD,GAAuB,CAAE0D,cAAe1D,KAQ1D,SAAS2D,EAAgB1Q,GACrB,MAAqB,iBAAVA,EACAA,EACE,MAATA,EACO,GAGJ2Q,OAAO3Q,EAClB,CAmEA,SAAS4Q,GAA2BvD,EAAOwD,GAGvC,MAAM,IAAI1F,GAAa,KAAgD2F,EAC3E,CAQA,IAAIC,GACH,SAAUA,GAIPA,SAAYA,EAAYC,QAAa,GAAK,UAK1CD,EAAYA,EAAYE,KAAU,GAAK,OAEvCF,EAAYA,EAAYG,KAAU,GAAK,OAEvCH,EAAYA,EAAYI,SAAc,GAAK,WAE3CJ,EAAYA,EAAYK,SAAc,GAAK,WAfpCL,CAgBX,CAhBC,CAgBEA,IAA8B,CAAC,GAWlC,IAAIM,GACJ,SAASC,KACL,OAAOD,EACX,CAIA,SAASE,GAAwBC,GAC7B,MAAMC,EAAWJ,GACjBA,UAAwBG,EACjBC,CACX,CAQA,SAASC,GAAmBrE,EAAOsE,EAAeC,GAC9C,MAAMC,EAAgBlD,GAAiBtB,GACvC,OAAIwE,GAA6C,QAA5BA,EAAcxD,gBACAlR,IAAxB0U,EAAc7R,MACd6R,EAAc7R,MAAQ6R,EAAcvD,UACrCuD,EAAc7R,MAEpB4R,EAAQb,GAAYK,SACb,UACWjU,IAAlBwU,EACOA,OACXf,IACJ,CAcA,MAAMkB,GADsB,CAAC,EAOvBC,GAAoB,iBACpBC,GAAqB,kBAErBC,GAAW,OAEXC,GAAS,WAOf,IAAIC,GAIJ,SAASC,GAAmBC,GACxB,MAAMC,EAASH,GACfA,UAAmBE,EACZC,CACX,CACA,SAASC,GAAmBlF,EAAOuE,EAAQb,GAAYC,SACnD,QAAyB7T,IAArBgV,GACA,MAAM,IAAIhH,GAAa,KAAuDqH,GAG7E,OAAyB,OAArBL,GACET,GAAmBrE,OAAOlQ,EAAWyU,GAG9BO,GAAiBM,IAAIpF,EAAOuE,EAAQb,GAAYK,SAAW,UAAOjU,EAAWyU,EAInG,CACA,SAASc,EAASrF,EAAOuE,EAAQb,GAAYC,SACzC,OAAQM,MAA6BiB,IAAoBvE,EAAkBX,GAAQuE,EACvF,CAkFA,SAASe,EAAOtF,EAAOuE,EAAQb,GAAYC,SAGvC,OAAO0B,EAASrF,EAAOuF,GAAkBhB,GAC7C,CAEA,SAASgB,GAAkBhB,GACvB,cAAWA,EAAU,KAAgC,iBAAVA,EAChCA,GAMNA,EAAMiB,UAAY,IAClBjB,EAAMkB,MAAQ,IACdlB,EAAMmB,MAAQ,IACdnB,EAAMoB,UAAY,EAC3B,CACA,SAASC,GAAWC,GAChB,MAAMpH,EAAO,GACb,QAAS9M,EAAI,EAAGA,EAAIkU,EAAM9U,OAAQY,IAAK,CACnC,MAAMmU,EAAMnF,EAAkBkF,EAAMlU,IACpC,GAAIkD,MAAMD,QAAQkR,GAAM,CACpB,GAAmB,IAAfA,EAAI/U,OACJ,MAAM,IAAI+M,EAAa,KAAiDqH,GAE5E,IAAIvE,EACA2D,EAAQb,GAAYC,QACxB,QAASoC,EAAI,EAAGA,EAAID,EAAI/U,OAAQgV,IAAK,CACjC,MAAMC,EAAOF,EAAIC,GACXE,EAAOC,GAAcF,GACP,iBAATC,GAEM,IAATA,EACArF,EAAOoF,EAAKhG,MAGZuE,GAAS0B,EAIbrF,EAAOoF,CAEf,CACAvH,EAAKtM,KAAKkT,EAASzE,EAAM2D,GAC7B,MAEI9F,EAAKtM,KAAKkT,EAASS,GAE3B,CACA,OAAOrH,CACX,CAWA,SAAS0H,GAAiBC,EAAWH,GACjCG,SAAU1B,IAAqBuB,EAC/BG,EAAU3Q,UAAUiP,IAAqBuB,EAClCG,CACX,CAMA,SAASF,GAAclG,GACnB,OAAOA,EAAM0E,GACjB,CAoCA,MASMX,GAGNoC,GAAiB/H,GAAmB,YAAa,GAiB3C0F,GAGNqC,GAAiB/H,GAAmB,YAAa,GAYjD,SAASiI,GAAczF,EAAM0F,GAKzB,OAJsB1F,EAAKxB,eAAe4D,IAInBpC,EAAKoC,IAAkB,IAClD,CAgCA,SAASuD,GAAY7L,EAAO3B,GACxB2B,EAAMV,QAASrH,GAAWkC,MAAMD,QAAQjC,GAAS4T,GAAY5T,EAAOoG,GAAMA,EAAGpG,GACjF,CACA,SAAS6T,GAAWC,EAAKvQ,EAAOvD,GAExBuD,GAASuQ,EAAI1V,OACb0V,EAAItU,KAAKQ,GAGT8T,EAAIzP,OAAOd,EAAO,EAAGvD,EAE7B,CACA,SAAS+T,GAAgBD,EAAKvQ,GAE1B,OAAIA,GAASuQ,EAAI1V,OAAS,EACf0V,EAAI7U,MAGJ6U,EAAIzP,OAAOd,EAAO,GAAG,EAEpC,CAgHA,SAASyQ,GAAiBC,EAAehH,EAAKjN,GAC1C,IAAIuD,EAAQ2Q,GAAqBD,EAAehH,GAChD,OAAI1J,GAAS,EAET0Q,EAAsB,EAAR1Q,GAAavD,GAG3BuD,GAASA,EAvDjB,SAAS4Q,GAAaC,EAAO7Q,EAAO8Q,EAAQC,GAExC,IAAIC,EAAMH,EAAMhW,OAChB,GAAImW,GAAOhR,EAEP6Q,EAAM5U,KAAK6U,EAAQC,QAAM,GAEZ,IAARC,EAELH,EAAM5U,KAAK8U,EAAQF,EAAM,IACzBA,EAAM,GAAKC,MAEV,CAGD,IAFAE,IACAH,EAAM5U,KAAK4U,EAAMG,EAAM,GAAIH,EAAMG,IAC1BA,EAAMhR,GAET6Q,EAAMG,GAAOH,EADOG,EAAM,GAE1BA,IAEJH,EAAM7Q,GAAS8Q,EACfD,EAAM7Q,EAAQ,GAAK+Q,CACvB,CACJ,CAiCQH,CAAaF,EAAe1Q,EAAO0J,EAAKjN,IAErCuD,CACX,CAQA,SAASiR,GAAiBP,EAAehH,GACrC,MAAM1J,EAAQ2Q,GAAqBD,EAAehH,GAClD,GAAI1J,GAAS,EAET,OAAO0Q,EAAsB,EAAR1Q,EAG7B,CAWA,SAAS2Q,GAAqBD,EAAehH,GACzC,OAqCJ,SAASwH,GAAoBL,EAAOpU,EAAO0U,GAEvC,IAAIC,EAAQ,EACRJ,EAAMH,EAAMhW,QAAUsW,EAC1B,KAAOH,IAAQI,GAAO,CAClB,MAAMC,EAASD,GAAUJ,EAAMI,GAAU,GACnCE,EAAUT,EAAMQ,GAAUF,GAChC,GAAI1U,IAAU6U,EACV,OAAOD,GAAUF,EAEZG,EAAU7U,EACfuU,EAAMK,EAGND,EAAQC,EAAS,CAEzB,CACA,QAASL,GAAOG,EACpB,CAvDWD,CAAoBR,EAAehH,EAAK,EACnD,CA8DA,MAAM6H,GAAY,CAAC,EACbC,GAAc,GAoBdC,GAA0B,IAAIzF,EAAuD,IAUrF0F,GAAa,IAAI1F,EAAwC,IAG/D,GAEM2F,GAAqB,IAAI3F,EAAkD,IAEjF,MAAM4F,GACF1C,IAAIpF,EAAOsE,EAAgBG,IACvB,GAAIH,IAAkBG,GAAoB,CACtC,MAAM5R,EAAQ,IAAIjC,MAAM,sCAAsCmP,GAAUC,OACxEnN,QAAM2C,KAAO,oBACP3C,CACV,CACA,OAAOyR,CACX,EAYJ,IAAIyD,GACH,SAAUA,GAOPA,SAAwBA,EAAwBC,OAAY,GAAK,SAKjED,EAAwBA,EAAwBpE,QAAa,GAAK,UAZ3DoE,CAaX,CAbC,CAaEA,IAAsD,CAAC,GAetDE,GACH,SAAUC,GAUPA,SAAkBA,EAAkBC,SAAc,GAAK,WAOvDD,EAAkBA,EAAkBE,KAAU,GAAK,OAMnDF,EAAkBA,EAAkBG,UAAe,GAAK,YAvBjDH,CAwBX,CAxBC,CAwBED,IAA8C,CAAC,GAG9CK,GACH,SAAUA,GACPA,SAAWA,EAAWF,KAAU,GAAK,OACrCE,EAAWA,EAAWC,YAAiB,GAAK,cAC5CD,EAAWA,EAAWE,2BAAgC,GAAK,6BAHpDF,CAIX,CAJC,CAIEA,IAA4B,CAAC,GAYhC,SAASG,GAAaC,EAAWC,EAAeC,GAE5C,IAAI1B,EAAMwB,EAAU3X,OACpB,OAAa,CACT,MAAM8X,EAAaH,EAAU7R,QAAQ8R,EAAeC,GACpD,IAAmB,IAAfC,EACA,OAAOA,EACX,GAAmB,IAAfA,GAAoBH,EAAUI,WAAWD,EAAa,IAAM,GAAyB,CAErF,MAAM9X,EAAS4X,EAAc5X,OAC7B,GAAI8X,EAAa9X,IAAWmW,GACxBwB,EAAUI,WAAWD,EAAa9X,IAAW,GAE7C,OAAO8X,CAEf,CAEAD,EAAgBC,EAAa,CACjC,CACJ,CA6BA,SAASE,GAAgBC,EAAUC,EAAQC,GACvC,IAAIvX,EAAI,EACR,KAAOA,EAAIuX,EAAMnY,QAAQ,CACrB,MAAM4B,EAAQuW,EAAMvX,GACpB,GAAqB,iBAAVgB,EAAoB,CAG3B,GAAc,IAAVA,EACA,MAIJhB,IACA,MAAMwX,EAAeD,EAAMvX,KACrByX,EAAWF,EAAMvX,KACjB0X,EAAUH,EAAMvX,KAEtBqX,EAASM,aAAaL,EAAQG,EAAUC,EAASF,EACrD,KACK,CAED,MAAMC,EAAWzW,EACX0W,EAAUH,IAAQvX,GAGpB4X,GAAgBH,GAChBJ,EAASQ,YAAYP,EAAQG,EAAUC,GAGvCL,EAASM,aAAaL,EAAQG,EAAUC,GAE5C1X,GACJ,CACJ,CAKA,OAAOA,CACX,CAQA,SAAS8X,GAA0BC,GAC/B,OAAmB,IAAXA,GACO,IAAXA,GACW,IAAXA,CACR,CACA,SAASH,GAAgB/T,GAIrB,OAA8B,KAAvBA,EAAKsT,WAAW,EAC3B,CASA,SAASa,GAAeC,EAAKC,GACzB,GAAY,OAARA,GAA+B,IAAfA,EAAI9Y,OAGnB,GAAY,OAAR6Y,GAA+B,IAAfA,EAAI7Y,OAEzB6Y,EAAMC,EAAIrO,YAET,CACD,IAAIsO,GAAY,EAChB,QAASnY,EAAI,EAAGA,EAAIkY,EAAI9Y,OAAQY,IAAK,CACjC,MAAMoY,EAAOF,EAAIlY,GACG,iBAAToY,EACPD,EAAYC,EAGM,IAAdD,GAMAE,GAAmBJ,EAAKE,EAAWC,EAAM,MAHtB,IAAdD,GACS,IAAdA,EAE+CD,IAAMlY,GAIN,KAG3D,CACJ,CACA,OAAOiY,CACX,CAUA,SAASI,GAAmBJ,EAAKF,EAAQO,EAAMC,EAAMvX,GACjD,IAAIhB,EAAI,EAEJwY,EAAuBP,EAAI7Y,OAE/B,IAAe,IAAX2Y,EACAS,GAAuB,OAGvB,KAAOxY,EAAIiY,EAAI7Y,QAAQ,CACnB,MAAMqZ,EAAWR,EAAIjY,KACrB,GAAwB,iBAAbyY,EAAa,CACpB,GAAIA,IAAaV,EAAQ,CACrBS,GAAuB,EACvB,KACJ,IACSC,EAAWV,EAAQ,CAExBS,EAAuBxY,EAAI,EAC3B,KACJ,EAER,CAGJ,KAAOA,EAAIiY,EAAI7Y,QAAQ,CACnB,MAAMgZ,EAAOH,EAAIjY,GACjB,GAAoB,iBAAToY,EAGP,MAEC,GAAIA,IAASE,GAEd,GAAa,OAATC,EAIA,YAHc,OAAVvX,IACAiX,EAAIjY,EAAI,GAAKgB,IAGrB,GACSuX,IAASN,EAAIjY,EAAI,GAEtB,YADAiY,EAAIjY,EAAI,GAAKgB,EAEjB,CAGJhB,IACa,OAATuY,GACAvY,IACU,OAAVgB,GACAhB,GACR,EAE6B,IAAzBwY,IACAP,EAAI5S,OAAOmT,EAAsB,EAAGT,GACpC/X,EAAIwY,EAAuB,GAE/BP,EAAI5S,OAAOrF,IAAK,EAAGsY,GACN,OAATC,GACAN,EAAI5S,OAAOrF,IAAK,EAAGuY,GAET,OAAVvX,GACAiX,EAAI5S,OAAOrF,IAAK,EAAGgB,EAE3B,CAEA,MAAM0X,GAAuB,cAU7B,SAASC,GAAmBC,EAAOrB,EAAOsB,EAAiBC,GAGvD,IAAI9Y,EAAI,EACR,GAAI8Y,GACA,KAAO9Y,EAAIuX,EAAMnY,QAA8B,iBAAbmY,EAAMvX,GAAiBA,GAAK,EAE1D,GAAiB,UAAbuX,EAAMvX,KAC2D,IAAjE8W,GAAaS,EAAMvX,EAAI,GAAG+Y,cAAeF,EAAiB,GAC1D,OAAO,UAIVG,GAAiBJ,GAItB,OAAO,EAIX,GADA5Y,EAAIuX,EAAMrS,QAAQ,EAAiClF,GAC/CA,GAAI,EAAI,CAER,IAAIoY,EACJ,OAASpY,EAAIuX,EAAMnY,QAAuC,iBAArBgZ,EAAOb,EAAMvX,KAC9C,GAAIoY,EAAKW,gBAAkBF,EACvB,OAAO,CAGnB,CACA,OAAO,CACX,CAMA,SAASG,GAAiBJ,GACtB,OAAsB,IAAfA,EAAM3J,MAAwC2J,EAAM5X,QAAU0X,EACzE,CAYA,SAASO,GAAmBL,EAAOM,EAAiBJ,GAEhD,OAAOI,KADiC,IAAfN,EAAM3J,MAAyC6J,EAA0CF,EAAM5X,MAA7B0X,GAE/F,CAUA,SAASS,GAAuBP,EAAOQ,EAAUN,GAE7C,IAAIO,EAAO,EACX,MAAMC,EAAYV,EAAMrB,MAElBgC,EAAkC,OAAdD,EAqK9B,SAASE,GAAuBF,GAC5B,QAAStZ,EAAI,EAAGA,EAAIsZ,EAAUla,OAAQY,IAElC,GAAI8X,GADawB,EAAUtZ,IAEvB,OAAOA,EAGf,OAAOsZ,EAAUla,MACrB,CA7KmDoa,CAAuBF,GAAa,EAGnF,IAAIG,GAAqB,EACzB,QAASzZ,EAAI,EAAGA,EAAIoZ,EAASha,OAAQY,IAAK,CACtC,MAAM6V,EAAUuD,EAASpZ,GACzB,GAAuB,iBAAZ6V,GAaX,IAAI4D,EAEJ,GAAW,EAAPJ,GAEA,GADAA,EAAO,EAA0C,EAAPA,EACzB,KAAZxD,IAAmBoD,GAAmBL,EAAO/C,EAASiD,IAC1C,KAAZjD,GAAsC,IAApBuD,EAASha,OAAe,CAC3C,GAAIsa,GAAWL,GACX,OAAO,EACXI,GAAqB,CACzB,UAEY,EAAPJ,GACL,GAAkB,OAAdC,IAAuBX,GAAmBC,EAAOU,EAAWzD,EAASiD,GAAmB,CACxF,GAAIY,GAAWL,GACX,OAAO,EACXI,GAAqB,CACzB,MAEC,CACD,MAAME,EAAoBP,IAAWpZ,GAC/B4Z,EAAkBC,GAAoBhE,EAASyD,EAAWN,GAAiBJ,GAAQE,GACzF,IAAwB,IAApBc,EAAwB,CACxB,GAAIF,GAAWL,GACX,OAAO,EACXI,GAAqB,EACrB,QACJ,CACA,GAA0B,KAAtBE,EAA0B,CAC1B,IAAIG,EAYJ,GAVIA,EADAF,EAAkBL,EACF,GAQAD,EAAUM,EAAkB,GAAGb,cAExC,EAAPM,GAA0CM,IAAsBG,EAAe,CAC/E,GAAIJ,GAAWL,GACX,OAAO,EACXI,GAAqB,CACzB,CACJ,CACJ,MA3DA,CAEI,IAAKA,IAAuBC,GAAWL,KAAUK,GAAW7D,GACxD,OAAO,EAIX,GAAI4D,GAAsBC,GAAW7D,GACjC,SACJ4D,GAAqB,EACrBJ,EAAOxD,EAAkB,EAAPwD,CAEtB,CAgDJ,CACA,OAAOK,GAAWL,IAASI,CAC/B,CACA,SAASC,GAAWL,GAChB,QAAe,EAAPA,EACZ,CA8BA,SAASQ,GAAoBhW,EAAM0T,EAAOyB,EAAkBF,GACxD,GAAc,OAAVvB,EACA,OAAO,EACX,IAAIvX,EAAI,EACR,GAAI8Y,IAAqBE,EAAkB,CACvC,IAAIe,GAAe,EACnB,KAAO/Z,EAAIuX,EAAMnY,QAAQ,CACrB,MAAM4a,EAAgBzC,EAAMvX,GAC5B,GAAIga,IAAkBnW,EAClB,OAAO7D,EAEN,GAAsB,IAAlBga,GACa,IAAlBA,EACAD,GAAe,UAEQ,IAAlBC,GACa,IAAlBA,EAAkD,CAClD,IAAIhZ,EAAQuW,IAAQvX,GAGpB,KAAwB,iBAAVgB,GACVA,EAAQuW,IAAQvX,GAEpB,QACJ,CACK,GAAsB,IAAlBga,EAEL,MAEC,GAAsB,IAAlBA,EAAwD,CAE7Dha,GAAK,EACL,QACJ,EAEAA,GAAK+Z,EAAe,EAAI,CAC5B,CAEA,OAAO,CACX,CAEI,OAgCR,SAASE,GAAuB1C,EAAO1T,GACnC,IAAI7D,EAAIuX,EAAMrS,QAAQ,GACtB,GAAIlF,GAAI,EAEJ,IADAA,IACOA,EAAIuX,EAAMnY,QAAQ,CACrB,MAAM8a,EAAO3C,EAAMvX,GAGnB,GAAoB,iBAATka,EACP,OAAO,EACX,GAAIA,IAASrW,EACT,OAAO7D,EACXA,GACJ,CAEJ,OAAO,CACX,CAhDeia,CAAuB1C,EAAO1T,EAE7C,CACA,SAASsW,GAA2BvB,EAAOQ,EAAUN,GAAmB,GACpE,QAAS9Y,EAAI,EAAGA,EAAIoZ,EAASha,OAAQY,IACjC,GAAImZ,GAAuBP,EAAOQ,EAASpZ,GAAI8Y,GAC3C,OAAO,EAGf,OAAO,CACX,CA4CA,SAASsB,GAAyBhB,EAAUiB,GACxCC,EAAkB,QAASta,EAAI,EAAGA,EAAIqa,EAAKjb,OAAQY,IAAK,CACpD,MAAMua,EAAwBF,EAAKra,GACnC,GAAIoZ,EAASha,SAAWmb,EAAsBnb,OAG9C,SAASgV,EAAI,EAAGA,EAAIgF,EAASha,OAAQgV,IACjC,GAAIgF,EAAShF,KAAOmG,EAAsBnG,GACtC,SAASkG,EAGjB,OAAO,EACX,CACA,OAAO,CACX,CACA,SAASE,GAAuBC,EAAgBC,GAC5C,OAAOD,EAAiB,QAAUC,EAAMC,OAAS,IAAMD,CAC3D,CACA,SAASE,GAAqBxB,GAC1B,IAAI5O,EAAS4O,EAAS,GAClBpZ,EAAI,EACJqZ,EAAO,EACPwB,EAAe,GACfJ,GAAiB,EACrB,KAAOza,EAAIoZ,EAASha,QAAQ,CACxB,IAAI0b,EAAgB1B,EAASpZ,GAC7B,GAA6B,iBAAlB8a,EACP,GAAW,EAAPzB,EAAwC,CACxC,MAAM0B,EAAY3B,IAAWpZ,GAC7B6a,GACI,IAAMC,GAAiBC,EAAU3b,OAAS,EAAI,KAAO2b,EAAY,IAAM,IAAM,GACrF,MACgB,EAAP1B,EACLwB,GAAgB,IAAMC,EAEV,EAAPzB,IACLwB,GAAgB,IAAMC,OAqBL,KAAjBD,IAAwBnB,GAAWoB,KACnCtQ,GAAUgQ,GAAuBC,EAAgBI,GACjDA,EAAe,IAEnBxB,EAAOyB,EAGPL,EAAiBA,IAAmBf,GAAWL,GAEnDrZ,GACJ,CACA,MAAqB,KAAjB6a,IACArQ,GAAUgQ,GAAuBC,EAAgBI,IAE9CrQ,CACX,CAwEA,SAASwQ,GAAkBC,GACvB,OAAO1O,GAAc,KAIjB,MAAM2O,EAAUC,GAAkBF,GAC5BG,EAAM,IACLF,EACHG,MAAOJ,EAAoBI,MAC3BC,KAAML,EAAoBK,KAC1BC,SAAUN,EAAoBM,SAC9BC,OAAQP,EAAoBO,QAAU,KACtCC,mBAAoBR,EAAoBQ,mBACxCC,OAAQT,EAAoBU,kBAAoBvF,GAAwBC,OACxEuF,cAAe,KACfC,SAAU,KACVC,aAAeZ,EAAQa,YAAcd,EAAoBa,cAAiB,KAC1EE,sBAAuB,KACvBC,QAAShB,EAAoBgB,UAAW,EACxCC,KAAMjB,EAAoBiB,MAAQ,CAAC,EACnCC,cAAelB,EAAoBkB,eAAiB7F,GAAoBE,SACxE4F,OAAQnB,EAAoBmB,QAAUrG,GACtCsG,EAAG,KACHC,QAASrB,EAAoBqB,SAAW,KACxCC,MAAO,KACPC,GAAI,IAERC,GAAarB,GACb,MAAMU,EAAeb,EAAoBa,aACzCV,SAAIQ,cAAgBc,GAAwBZ,GAA4B,GACxEV,EAAIS,SAAWa,GAAwBZ,GAA4B,GACnEV,EAAIoB,GA8LZ,SAASG,GAAeC,GACpB,IAAIC,EAAO,EAUX,MAAMC,EAAgB,CAClBF,EAAaG,UACbH,EAAanB,mBACbmB,EAAaI,SACbJ,EAAaK,UACbL,EAAapB,OACboB,EAAatB,KACbsB,EAAavB,MACbuB,EAAaT,cACbS,EAAab,WACba,EAAaX,QACbW,EAAaM,SACbC,KAAK/O,UAAUwO,EAAaQ,QAC5BD,KAAK/O,UAAUwO,EAAaS,SAG5BjgB,OAAOkgB,oBAAoBV,EAAa3N,KAAKnL,aAC3C8Y,EAAaW,iBACbX,EAAaY,WACjB5Z,KAAK,KACP,UAAW6Z,KAAQX,EACfD,EAAQpX,KAAKiY,KAAK,GAAIb,GAAQY,EAAKtG,WAAW,GAAO,EAIzD0F,UAAQ,WACO,IAAMA,CAazB,CAhPiBF,CAAevB,GACjBA,GAEf,CACA,SAASuC,GAAoB1O,GACzB,OAAO2O,GAAgB3O,IAAS4O,GAAgB5O,EACpD,CACA,SAAS6O,GAAQ9c,GACb,OAAiB,OAAVA,CACX,CAIA,SAAS+c,GAAiB3C,GACtB,OAAO7O,GAAc,MAEb0C,KAAMmM,EAAInM,KACV+O,UAAW5C,EAAI4C,WAAajI,GAC5BkI,aAAc7C,EAAI6C,cAAgBlI,GAClCrG,QAAS0L,EAAI1L,SAAWqG,GACxBmI,QAAS9C,EAAI8C,SAAWnI,GACxBoI,wBAAyB,KACzB7B,QAASlB,EAAIkB,SAAW,KACxBE,GAAIpB,EAAIoB,IAAM,OAI1B,CACA,SAAS4B,GAAqCC,EAAKC,GAC/C,GAAW,MAAPD,EACA,OAAOvI,GACX,MAAMyI,EAAY,CAAC,EACnB,UAAWC,KAAeH,EACtB,GAAIA,EAAI5Q,eAAe+Q,GAAc,CACjC,MAAMxd,EAAQqd,EAAIG,GAClB,IAAIC,EACAC,EACAC,EAAahI,GAAWF,KACxBvT,MAAMD,QAAQjC,IACd2d,EAAa3d,EAAM,GACnByd,EAAazd,EAAM,GACnB0d,EAAe1d,EAAM,IAAMyd,IAG3BA,EAAazd,EACb0d,EAAe1d,GAGfsd,GAEAC,EAAUE,GACNE,IAAehI,GAAWF,KAAO,CAAC+H,EAAaG,GAAcH,EACjEF,EAAeG,GAAcC,GAG7BH,EAAUE,GAAcD,CAEhC,CAEJ,OAAOD,CACX,CAiBA,SAASK,EAAkBC,GACvB,OAAOtS,GAAc,KACjB,MAAM6O,EAAMD,GAAkB0D,GAC9BpC,UAAarB,GACNA,GAEf,CAiBA,SAAS0D,GAAaC,GAClB,MAAO,CACH9P,KAAM8P,EAAQ9P,KACdpL,KAAMkb,EAAQlb,KACdyL,QAAS,KACT0P,MAAuB,IAAjBD,EAAQC,KACdjD,YAAmC,IAAvBgD,EAAQhD,WACpBkD,UAAWF,EAAQ9P,KAAKnL,UAAUob,aAAe,KAEzD,CAMA,SAAStB,GAAgB3O,GACrB,OAAOA,EAAK4B,KAAgB,IAChC,CACA,SAASgN,GAAgB5O,GACrB,OAAOA,EAAK8B,KAAe,IAC/B,CACA,SAASoO,GAAalQ,GAClB,OAAOA,EAAKgC,KAAgB,IAChC,CAoBA,SAASkK,GAAkB0D,GACvB,MAAMP,EAAiB,CAAC,EACxB,MAAO,CACHrP,KAAM4P,EAAoB5P,KAC1BmQ,kBAAmB,KACnB9P,QAAS,KACT+P,aAAcR,EAAoBQ,cAAgB,KAClDrC,SAAU6B,EAAoB7B,UAAY,EAC1CC,UAAW4B,EAAoB5B,WAAa,KAC5CM,eAAgBsB,EAAoBtB,gBAAkB,KACtDe,eAAgBA,EAChBgB,gBAAiB,KACjBC,YAAaV,EAAoBzB,QAAUtH,GAC3CoH,SAAU2B,EAAoB3B,UAAY,KAC1CnB,YAA+C,IAAnC8C,EAAoB9C,WAChCE,SAAyC,IAAhC4C,EAAoB5C,QAC7Bc,UAAW8B,EAAoB9B,WAAahH,GAC5CyH,UAAWqB,EAAoBrB,WAAa,KAC5CgC,SAAUX,EAAoBW,UAAY,KAC1CC,SAAU,KACVC,sBAAuB,KACvBC,eAAgB,KAChBvC,OAAQgB,GAAqCS,EAAoBzB,OAAQkB,GACzEjB,QAASe,GAAqCS,EAAoBxB,SAClEuC,UAAW,KAEnB,CACA,SAASnD,GAAaoD,GAClBA,EAAWL,UAAUnX,QAASjB,GAAOA,EAAGyY,GAC5C,CACA,SAASnD,GAAwBZ,EAAciD,GAC3C,IAAKjD,EACD,OAAO,KAEX,MAAMgE,EAAef,EAAUI,GAAexB,GAC9C,MAAO,KAA+B,mBAAjB7B,EAA8BA,IAAiBA,GAC/DpY,IAAKqc,GAAQD,EAAaC,IAC1BpV,OAAOmT,GAChB,CAiEA,SAASkC,GAAyBvQ,GAC9B,MAAO,CACHmB,gBAAYnB,EAEpB,CAyCA,SAASwQ,MAAuBC,GAC5B,MAAO,CACHtP,gBAAYuP,GAA4B,EAAMD,GAC9CE,oBAAe,EAEvB,CACA,SAASD,GAA4BE,KAA0BH,GAC3D,MAAMI,EAAe,GACfC,EAAQ,IAAIC,IAClB,IAAIC,EACJ,MAAMC,EAAoBC,IACtBL,EAAa9f,KAAKmgB,EAAQ,EAE9B/L,UAAYsL,EAAUpY,IAQlB,MAAM8Y,EAAiB9Y,EACnB+Y,GAAiBD,EAAgBF,EAAkB,GAAIH,KACvDE,IAA+B,GAC/BA,EAA2BjgB,KAAKogB,GAAc,QAInBziB,IAA/BsiB,GACAK,GAAkCL,EAA4BC,GAE3DJ,CACX,CAKA,SAASQ,GAAkCC,EAAoBC,GAC3D,QAAShhB,EAAI,EAAGA,EAAI+gB,EAAmB3hB,OAAQY,IAAK,CAChD,MAAQihB,WAAUxR,aAAcsR,EAAmB/gB,GACnDkhB,GAAoBzR,EAAYkR,IAE5BK,EAAQL,EAAUM,EAAQ,EAElC,CACJ,CAUA,SAASJ,GAAiBM,EAAWH,EAASI,EAASb,GAEnD,KADAY,EAAYnS,EAAkBmS,IAE1B,OAAO,EAGX,IAAIE,EAAU,KACVC,EAAStR,GAAemR,GAC5B,MAAMI,GAAUD,GAAU1D,GAAgBuD,GAC1C,GAAKG,GAAWC,EAiBX,IAAIA,IAAWA,EAAOxF,WACvB,OAAO,EAGPsF,EAAUF,MArBU,CAMpB,MAAMF,EAAWE,EACZF,SAEL,GADAK,EAAStR,GAAeiR,IACpBK,EAKA,OAAO,EAJPD,EAAUJ,CAMlB,CAcA,MAAMO,EAAcjB,EAAMkB,IAAIJ,GAC9B,GAAIE,EAAQ,CACR,GAAIC,EAEA,OAAO,EAGX,GADAjB,EAAM1b,IAAIwc,GACNE,EAAOzF,aAAc,CACrB,MAAM4F,EAAsC,mBAAxBH,EAAOzF,aAA8ByF,EAAOzF,eAAiByF,EAAOzF,aACxF,UAAWiE,KAAO2B,EACdb,GAAiBd,EAAKiB,EAASI,EAASb,EAEhD,CACJ,UACSe,EAwDL,OAAO,EAxDM,CAEb,GAAsB,MAAlBA,EAAO5R,UAAoB8R,EAAa,CAMxC,IAAIG,EADJpB,EAAM1b,IAAIwc,GAEV,IACIzM,GAAY0M,EAAO5R,QAAUkS,IACrBf,GAAiBe,EAAUZ,EAASI,EAASb,KAC7CoB,IAA6B,GAG7BA,EAAyBnhB,KAAKohB,GAAQ,EAGlD,SAIA,MAIiCzjB,IAA7BwjB,GACAb,GAAkCa,EAA0BX,EAEpE,CACA,IAAKQ,EAAa,CAGd,MAAMlS,EAAUoF,GAAc2M,IAAO,KAAY,IAAIA,GAKrDL,EAAQ,CAAEa,QAASR,EAASS,WAAYxS,EAASoS,KAAM3L,IAAesL,GAEtEL,EAAQ,CAAEa,QAAS3L,GAAoB6L,SAAUV,EAAS3Q,OAAO,GAAQ2Q,GAEzEL,EAAQ,CAAEa,QAAS7L,GAAyB+L,SAAUA,IAAMrO,EAAS2N,GAAU3Q,OAAO,GAAQ2Q,EAClG,CAEA,MAAMW,EAAeV,EAAO7R,UAC5B,GAAoB,MAAhBuS,IAAyBR,EAAa,CACtC,MAAMS,EAAed,EACrBD,GAAoBc,EAAerB,IAE/BK,EAAQL,EAAUsB,EAAY,EAEtC,CACJ,CAGW,CAEX,OAAQZ,IAAYF,QAAqChjB,IAAxBgjB,EAAU1R,SAC/C,CAcA,SAASyR,GAAoBzR,EAAWrI,GACpC,QAASuZ,KAAYlR,EACbkB,GAAuBgQ,KACvBA,EAAWA,EAAS/P,iBAEpB1N,MAAMD,QAAQ0d,GACdO,GAAoBP,EAAUvZ,GAG9BA,EAAGuZ,EAGf,CACA,MAAMuB,GAAcnU,GAAuB,CACvC8T,QAASlQ,OACToQ,SAAUhU,KAEd,SAASoU,GAAgBnhB,GACrB,OAAiB,OAAVA,GAAkC,iBAATA,GAAqBkhB,MAAelhB,CACxE,CAOA,SAASohB,GAAephB,GACpB,MAAwB,mBAAVA,CAClB,CAUA,MAAMqhB,GAAiB,IAAI9R,EAAmD,IAKxE+R,GAAU,CAAC,EAQXC,GAAW,CAAC,EAIlB,IAAIC,GACJ,SAASC,KACL,YAAsBtkB,IAAlBqkB,KACAA,GAAgB,IAAIrM,IAEjBqM,EACX,CAKA,MAAME,IAEN,MAAMC,WAAmBD,GAIrB,aAAIE,GACA,OAAOpf,KAAKqf,UAChB,CACA7e,YAAYyL,EAAWpI,EAAQS,EAAQgb,GACnCjd,QACArC,KAAK6D,OAASA,EACd7D,KAAKsE,OAASA,EACdtE,KAAKsf,OAASA,EAMdtf,KAAKuf,QAAU,IAAIC,IAInBxf,KAAKyf,kBAAoB,IAAIzC,IAC7Bhd,KAAK0f,gBAAkB,GACvB1f,KAAKqf,YAAa,EAElBM,GAAsB1T,EAAYkR,GAAand,KAAK4f,gBAAgBzC,IAEpEnd,KAAKuf,QAAQM,IAAIpN,GAAYqN,QAAWnlB,EAAWqF,OAE/Csf,EAAOrB,IAAI,gBACXje,KAAKuf,QAAQM,IAAIX,GAAqBY,QAAWnlB,EAAWqF,OAIhE,MAAM+f,EAAS/f,KAAKuf,QAAQtP,IAAI4O,IAClB,MAAVkB,GAA0C,iBAAjBA,EAAOviB,OAChCwC,KAAKsf,OAAOje,IAAI0e,EAAOviB,OAE3BwC,KAAKggB,iBAAmB,IAAIhD,IAAIhd,KAAKiQ,IAAIyC,GAAoBH,GAAahE,GAAYG,MAC1F,CAOAuR,UACIjgB,KAAKkgB,qBAELlgB,KAAKqf,YAAa,EAClB,MAAM9iB,EAAe4jB,GAAoB,MACzC,IAEI,UAAWC,KAAWpgB,KAAKyf,kBACvBW,EAAQ1E,cAEZ,MAAM2E,EAAiBrgB,KAAK0f,gBAG5B1f,KAAK0f,gBAAkB,GACvB,UAAWY,KAAQD,EACfC,GAER,SAGItgB,KAAKuf,QAAQgB,QACbvgB,KAAKyf,kBAAkBc,QACvBvgB,KAAKggB,iBAAiBO,QACtBJ,GAAoB5jB,EACxB,CACJ,CACAkf,UAAU+E,GACN,OAAAxgB,KAAKkgB,qBACLlgB,KAAK0f,gBAAgB1iB,KAAKwjB,GACnB,IAAMxgB,KAAKygB,gBAAgBD,EACtC,CACAE,aAAa9c,GACT5D,KAAKkgB,qBACL,MAAMS,EAAmB/Q,GAAmB5P,MACtC4gB,EAA+B7R,QAAwBpU,GAK7D,IACI,OAAOiJ,GACX,SAEIgM,GAAmB+Q,GACnB5R,GAAwB6R,EAE5B,CACJ,CACA3Q,IAAIpF,EAAOsE,EAAgBG,GAAoBF,EAAQb,GAAYC,SAE/D,GADAxO,KAAKkgB,qBACDrV,EAAMZ,eAAe+D,IACrB,OAAOnD,EAAMmD,IAAWhO,MAE5BoP,EAAQgB,GAAkBhB,GAM1B,MAAMuR,EAAmB/Q,GAAmB5P,MACtC4gB,EAA+B7R,QAAwBpU,GAC7D,IAEI,KAAMyU,EAAQb,GAAYI,UAAW,CAEjC,IAAIoR,EAAS/f,KAAKuf,QAAQtP,IAAIpF,GAC9B,QAAelQ,IAAXolB,EAAsB,CAGtB,MAAMnI,EAuS1B,SAASiJ,GAAsBrjB,GAC3B,MAAyB,mBAAVA,GAA0C,iBAAVA,GAAsBA,aAAiBuP,CAC1F,CAzSgC8T,CAAsBhW,IAAUsB,GAAiBtB,GASzDkV,EARAnI,GAAO5X,KAAK8gB,qBAAqBlJ,GAQxBkI,GAAWiB,GAAkClW,GAAQiU,IAGrD,KAEb9e,KAAKuf,QAAQM,IAAIhV,EAAOkV,EAC5B,CAEA,GAAc,MAAVA,EACA,OAAO/f,KAAKghB,QAAQnW,EAAOkV,EAEnC,CAMA5Q,OAHuBC,EAAQb,GAAYG,KAAsBuQ,KAAdjf,KAAK6D,QAKpCoM,IAAIpF,EAFxBsE,EACIC,EAAQb,GAAYK,UAAYO,IAAkBG,GAAqB,KAAOH,EAEtF,OACOnO,GACH,GAAe,sBAAXA,EAAEX,KAA8B,CAGhC,IAFcW,EAAEwO,IAAsBxO,EAAEwO,KAAuB,IAC1DyR,QAAQrW,GAAUC,IACnB8V,EAEA,MAAM3f,EAIN,OAzzDpB,SAASkgB,GAAmBlgB,EAAG6J,EAAOsW,EAAmB7c,GACrD,MAAM8c,EAAYpgB,EAAEwO,IACpB,MAAI3E,EAAM6E,KACN0R,EAAUH,QAAQpW,EAAM6E,KAE5B1O,EAAEf,QAKN,SAASohB,GAAYC,EAAMzG,EAAKsG,EAAmB7c,EAAS,MACxDgd,EAAOA,GAA2B,OAAnBA,EAAKC,OAAO,IA1MX,UA0M0BD,EAAKC,OAAO,GAAoBD,EAAKjb,MAAM,GAAKib,EAC1F,IAAIhe,EAAUsH,GAAUiQ,GACxB,GAAInb,MAAMD,QAAQob,GACdvX,EAAUuX,EAAI3a,IAAI0K,IAAWxK,KAAK,aAAM,GAEpB,iBAARya,EAAkB,CAC9B,IAAI2G,EAAQ,GACZ,QAAS/W,KAAOoQ,EACZ,GAAIA,EAAI5Q,eAAeQ,GAAM,CACzB,IAAIjN,EAAQqd,EAAIpQ,GAChB+W,EAAMxkB,KAAKyN,EAAM,KAAwB,iBAAVjN,EAAqBmc,KAAK/O,UAAUpN,GAASoN,GAAUpN,IAC1F,CAEJ8F,EAAU,IAAIke,EAAMphB,KAAK,QAC7B,CACA,MAAO,GAAG+gB,IAAoB7c,EAAS,IAAMA,EAAS,IAAM,MAAMhB,OAAage,EAAKG,QAAQhS,GAAU,SAC1G,CAtBgB4R,CAAY,KAAOrgB,EAAEf,QAASmhB,EAAWD,EAAmB7c,GACxEtD,EAAe,YAAIogB,EACnBpgB,EAAEwO,IAAsB,KAClBxO,CACV,CAgzD2BkgB,CAAmBlgB,EAAG6J,EAAO,kBAAmB7K,KAAKsE,OAEpE,CAEI,MAAMtD,CAEd,SAGI+N,GAAwB6R,GACxBhR,GAAmB+Q,EAEvB,CACJ,CAEAe,8BACI,MAAMnlB,EAAe4jB,GAAoB,MACnCQ,EAAmB/Q,GAAmB5P,MACtC4gB,EAA+B7R,QAAwBpU,GAK7D,IACI,MAAMgnB,EAAe3hB,KAAKiQ,IAAIuC,GAAyBD,GAAahE,GAAYG,MAOhF,UAAWkT,KAAeD,EACtBC,GAER,SAEIhS,GAAmB+Q,GACnB5R,GAAwB6R,GAExBT,GAAoB5jB,EACxB,CACJ,CACA4D,WACI,MAAM0hB,EAAS,GACTtC,EAAUvf,KAAKuf,QACrB,UAAW1U,KAAS0U,EAAQuC,OACxBD,EAAO7kB,KAAK4N,GAAUC,IAE1B,MAAO,cAAcgX,EAAOzhB,KAAK,QACrC,CACA8f,qBACI,GAAIlgB,KAAKqf,WACL,MAAM,IAAI1W,EAAa,KAAuDqH,EAEtF,CAIA4P,gBAAgBzC,GAIZ,IAAItS,EAAQ+T,GADZzB,EAAW3R,EAAkB2R,IAEvBA,EACA3R,EAAkB2R,GAAYA,EAASkB,SAE7C,MAAM0B,EA6Hd,SAASgC,GAAiB5E,GACtB,OAAIwB,GAAgBxB,GACT2C,QAAWnlB,EAAWwiB,EAASoB,UAI/BuB,GADSkC,GAAkB7E,GACP2B,GAEnC,CArIuBiD,CAAiB5E,GAYhC,IAAKyB,GAAezB,KAAgC,IAAnBA,EAASjQ,MAAgB,CAGtD,IAAI+U,EAAcjiB,KAAKuf,QAAQtP,IAAIpF,GAC/BoX,IAOAA,EAAcnC,QAAWnlB,EAAWmkB,IAAS,GAC7CmD,EAAYnW,QAAU,IAAM2E,GAAWwR,EAAY/U,OACnDlN,KAAKuf,QAAQM,IAAIhV,EAAOoX,IAE5BpX,EAAQsS,EACR8E,EAAY/U,MAAMlQ,KAAKmgB,EAC3B,CASAnd,KAAKuf,QAAQM,IAAIhV,EAAOkV,EAC5B,CACAiB,QAAQnW,EAAOkV,GACX,MAAMxjB,EAAe4jB,GAAoB,MACzC,IAIS,OAAIJ,EAAOviB,QAAUshB,KACtBiB,EAAOviB,MAAQuhB,GAQXgB,EAAOviB,MAAQuiB,EAAOjU,WAGF,iBAAjBiU,EAAOviB,OAAsBuiB,EAAOviB,OA8H3D,SAAS0kB,GAAa1kB,GAClB,OAAkB,OAAVA,GACa,iBAAVA,GACsB,mBAAtBA,EAAMke,WACrB,CAlIoEwG,CAAanC,EAAOviB,QACxEwC,KAAKyf,kBAAkBpe,IAAI0e,EAAOviB,OAE/BuiB,EAAOviB,KAClB,SAEI2iB,GAAoB5jB,EACxB,CACJ,CACAukB,qBAAqBlJ,GACjB,IAAKA,EAAI/L,WACL,OAAO,EAEX,MAAMA,EAAaL,EAAkBoM,EAAI/L,YACzC,MAA0B,iBAAfA,EACe,QAAfA,GAAwB7L,KAAKsf,OAAOrB,IAAIpS,GAGxC7L,KAAKggB,iBAAiB/B,IAAIpS,EAEzC,CACA4U,gBAAgBD,GACZ,MAAM2B,EAAeniB,KAAK0f,gBAAgBhe,QAAQ8e,IAC7B,IAAjB2B,GACAniB,KAAK0f,gBAAgB7d,OAAOsgB,EAAc,EAElD,EAEJ,SAASpB,GAAkClW,GAEvC,MAAMwE,EAAgBlD,GAAiBtB,GACjCiB,EAA4B,OAAlBuD,EAAyBA,EAAcvD,QAAUoF,GAAcrG,GAC/E,GAAgB,OAAZiB,EACA,OAAOA,EAIX,GAAIjB,aAAiBkC,EACjB,MAAM,IAAIpE,EAAa,KAAoDqH,GAG/E,GAAInF,aAAiBuX,SACjB,OAKR,SAASC,GAAgCxX,GAGrC,GADoBA,EAAMjP,OACR,EACd,MAAM,IAAI+M,EAAa,KAAoDqH,GAQ/E,MAAMsS,EA3lFV,SAASC,GAA0B9W,GAE/B,OADYA,IAASA,EAAKY,KAAgBZ,EAAKa,MAQpC,IAEf,CAglFmCiW,CAA0B1X,GACzD,OAA+B,OAA3ByX,EACO,IAAMA,EAAuBxW,QAAQjB,GAGrC,IAAM,IAAIA,CAEzB,CAxBewX,CAAgCxX,GAG3C,MAAM,IAAIlC,EAAa,KAAoDqH,EAC/E,CAmCA,SAASgS,GAAkB7E,EAAUqF,EAAcvW,GAC/C,IAAIH,EAIJ,GAAI8S,GAAezB,GAAW,CAC1B,MAAMsF,EAAoBjX,EAAkB2R,GAC5C,OAAOjM,GAAcuR,IAAsB1B,GAAkC0B,EACjF,IAEQ9D,GAAgBxB,GAChBrR,EAAUA,IAAMN,EAAkB2R,EAASoB,eAAQ,GAha/D,SAASmE,GAAkBllB,GACvB,SAAUA,IAASA,EAAM8gB,WAC7B,CAgaiBoE,CAAkBvF,GACvBrR,EAAUA,IAAMqR,EAASmB,cAAc7N,GAAW0M,EAASe,MAAQ,UAAG,GAtalF,SAASyE,GAAmBnlB,GACxB,SAAUA,IAASA,EAAMolB,YAC7B,CAsaiBD,CAAmBxF,GACxBrR,EAAUA,IAAMoE,EAAS1E,EAAkB2R,EAASyF,kBAEnD,CACD,MAAMC,EAAWrX,EAAkB2R,IAC9BA,EAAS2F,UAAY3F,EAASkB,UAInC,IAiBZ,SAAS0E,GAAQvlB,GACb,QAASA,EAAM0gB,IACnB,CAnBgB6E,CAAQ5F,GAIR,OAAOjM,GAAc2R,IAAa9B,GAAkC8B,GAHpE/W,EAAUA,IAAM,IAAI+W,KAAYpS,GAAW0M,EAASe,MAK5D,CAEJ,OAAOpS,CACX,CACA,SAASgU,GAAWhU,EAAStO,EAAO0P,GAAQ,GACxC,MAAO,CACHpB,QAASA,EACTtO,MAAOA,EACP0P,MAAOA,EAAQ,QAAKvS,EAE5B,CAYA,SAASglB,GAAsB1T,EAAWrI,GACtC,UAAWuZ,KAAYlR,EACfvM,MAAMD,QAAQ0d,GACdwC,GAAsBxC,EAAUvZ,GAE3BuZ,GAAYhQ,GAAuBgQ,GACxCwC,GAAsBxC,EAAS/P,gBAAYxJ,GAG3CA,EAAGuZ,EAGf,CAsCA,SAAS6F,KACL,YAAqCroB,IAA9BmU,MAAmE,MApyE9E,SAASmU,KACL,OAAOtT,EACX,CAkyEsDsT,EACtD,CASA,SAASC,GAAyBC,GAG9B,IAAKH,KACD,MAAM,IAAIra,GAAa,KAAuDqH,EAItF,CA+UA,MAAMoT,GAAO,EACPC,EAAQ,EAERC,EAAQ,EACRC,GAAS,EACTC,GAAO,EACPC,GAAS,EAETC,GAAY,EACZC,GAAU,EACVC,GAAU,EACVC,GAAW,EACXC,GAAc,GACdC,EAAW,GACXC,GAAa,GACbC,GAAa,GAEbC,GAAmB,GACnBC,GAA6B,GAC7BC,GAAyB,GACzBC,GAAsB,GACtBC,GAAU,GACVC,GAAK,GACLC,GAAyB,GACzBC,GAAmB,GACnBC,GAAsB,GACtBC,GAA6B,GAQ7BC,EAAgB,GAOhBC,GAAO,EAQPC,GAAmB,EACnBC,GAAS,EAETC,GAAc,EAOdC,GAA0B,GAEhC,IAAIC,GACH,SAAUA,GACPA,SAAgBA,EAAgBjS,KAAU,GAAK,OAO/CiS,EAAgBA,EAAgBC,qBAA0B,GAAK,uBARxDD,CASX,CATC,CASEA,IAAsC,CAAC,GAM1C,SAASE,GAAQ5nB,GACb,OAAOkC,MAAMD,QAAQjC,IAAiC,iBAAhBA,EAAMqnB,GAChD,CAKA,SAASQ,GAAa7nB,GAClB,OAAOkC,MAAMD,QAAQjC,KAA0B,IAAhBA,EAAMqnB,GACzC,CACA,SAASS,GAAmBlQ,GACxB,SAAsB,EAAdA,EAAMhG,MAClB,CACA,SAASmW,GAAgBnQ,GACrB,OAAOA,EAAMoQ,iBAAkB,CACnC,CACA,SAASC,GAAgBrQ,GACrB,QAA8D,GAAtDA,EAAMhG,MAClB,CACA,SAASsW,GAAe9N,GACpB,QAASA,EAAIG,QACjB,CACA,SAAS4N,GAAWhb,GAChB,SAAwB,IAAhBA,EAAO2Y,GACnB,CAiJA,MAAMsC,GACFplB,YAAYqlB,EAAeC,EAAcC,GACrC/lB,KAAK6lB,cAAgBA,EACrB7lB,KAAK8lB,aAAeA,EACpB9lB,KAAK+lB,YAAcA,CACvB,CAIAC,gBACI,OAAOhmB,KAAK+lB,WAChB,EAGJ,SAASE,GAAuBC,EAAUC,EAAiBC,EAAa5oB,GAC5C,OAApB2oB,EACAA,EAAgBE,wBAAwBF,EAAiB3oB,GAGzD0oB,EAASE,GAAe5oB,CAEhC,CAwBA,SAAS8oB,KACL,OAAOC,EACX,CACA,SAASA,GAAuBlK,GAC5B,OAAIA,EAAW5Q,KAAKnL,UAAUkmB,cAC1BnK,EAAWJ,SAAWwK,IAEnBC,EACX,CAgBA,SAASA,KACL,MAAMC,EAAqBC,GAAsB5mB,MAC3CqS,EAAUsU,GAAoBtU,QACpC,GAAIA,EAAS,CACT,MAAMpD,EAAW0X,EAAmB1X,SACpC,GAAIA,IAAaqD,GACbqU,EAAmB1X,SAAWoD,OAK9B,QAAS5H,KAAO4H,EACZpD,EAASxE,GAAO4H,EAAQ5H,GAGhCkc,EAAmBtU,QAAU,KAC7BrS,KAAKwmB,YAAYnU,EACrB,CACJ,CACA,SAASoU,GAAoBP,EAAUC,EAAiB3oB,EAAOyd,EAAYmL,GACvE,MAAMlL,EAAelb,KAAK8a,eAAeG,GAEnC0L,EAAqBC,GAAsBV,IAYrD,SAASW,GAAsBX,EAAUY,GACrC,OAAQZ,EAASa,IAAwBD,CAC7C,CAbQD,CAAsBX,EAAU,CAAEjX,SAAUqD,GAAWD,QAAS,OAC9DA,EAAUsU,EAAmBtU,UAAYsU,EAAmBtU,QAAU,CAAC,GACvEpD,EAAW0X,EAAmB1X,SAC9B+X,EAAiB/X,EAASiM,GAChC7I,EAAQ6I,GAAgB,IAAI0K,GAAaoB,GAAkBA,EAAelB,aAActoB,EAAOyR,IAAaqD,IAC5G2T,GAAuBC,EAAUC,EAAiBC,EAAa5oB,EACnE,CAxCA8oB,GAAqBW,WAAY,EAyCjC,MAAMF,GAAuB,sBAC7B,SAASH,GAAsBV,GAC3B,OAAOA,EAASa,KAAyB,IAC7C,CAgBA,MAYMG,GAAW,SAAUC,EAAOjB,EAAUkB,GAI5C,EAyBA,SAASC,GAAY7pB,GACjB,KAAOkC,MAAMD,QAAQjC,IACjBA,EAAQA,EAAM4lB,IAElB,OAAO5lB,CACX,CAmBA,SAAS8pB,GAAiBvmB,EAAOwmB,GAG7B,OAAOF,GAAYE,EAAMxmB,GAC7B,CASA,SAASymB,GAAiBpS,EAAOmS,GAI7B,OADaF,GAAYE,EAAMnS,EAAMrU,OAEzC,CAmBA,SAAS0mB,GAAS1O,EAAOhY,GAKrB,OAFcgY,EAAML,KAAK3X,EAG7B,CAEA,SAAS2mB,GAAKC,EAAM5mB,GAEhB,OAAO4mB,EAAK5mB,EAChB,CACA,SAAS6mB,GAAyBC,EAAWC,GAGzC,MAAMC,EAAYD,EAASD,GAE3B,OADczC,GAAQ2C,GAAaA,EAAYA,EAAU3E,GAE7D,CAWA,SAAS4E,GAA6BL,GAClC,QAAyD,KAAjDA,EAAKrE,GACjB,CAKA,SAAS2E,GAAYjQ,EAAQjX,GACzB,OAAc,MAAVA,EACO,KAEJiX,EAAOjX,EAClB,CAKA,SAASmnB,GAAuBX,GAC5BA,EAAMlD,IAAuB,CACjC,CAKA,SAAS8D,GAAmBZ,GACL,KAAfA,EAAMjE,KAGViE,EAAMjE,IAAU,KACZ0E,GAA6BT,IAC7Ba,GAA0Bb,GAElC,CAeA,SAASc,GAA2Bd,GAChC,SAA0B,KAAhBA,EAAMjE,IACZiE,EAAM5C,KAA6BlqB,MAC3C,CAKA,SAAS6tB,GAAqCf,GAC1CA,EAAMzD,IAAayE,0BAA0BC,OAAO,GACjC,GAAfjB,EAAMjE,KACNiE,EAAMjE,IAAU,MAEhB+E,GAA2Bd,IAC3Ba,GAA0Bb,EAElC,CAQA,SAASa,GAA0Bb,GAC/BA,EAAMzD,IAAayE,0BAA0BC,OAAO,GACpD,IAAI3kB,EAAS4kB,GAAelB,GAC5B,KAAkB,OAAX1jB,KAGiB,KAAhBA,EAAOyf,MAGXzf,EAAOyf,IAAU,KACZ0E,GAA6BnkB,KAGlCA,EAAS4kB,GAAe5kB,EAEhC,CAIA,SAAS6kB,GAAoBnB,EAAOoB,GAChC,KAAwD,KAAnDpB,EAAMjE,IACP,MAAM,IAAI3a,EAAa,KAAmDqH,GAE9C,OAA5BuX,EAAM9C,MACN8C,EAAM9C,IAAoB,IAE9B8C,EAAM9C,IAAkBznB,KAAK2rB,EACjC,CAiBA,SAASF,GAAelB,GAEpB,MAAM1jB,EAAS0jB,EAAMhE,IACrB,OAAO8B,GAAaxhB,GAAUA,EAAO0f,IAAU1f,CACnD,CAEA,MAAM+kB,EAAmB,CACrBC,OAAQC,GAAa,MACrBC,iBAAiB,EACjBC,uBAAwB,MAgB5B,IAMIC,IAAqB,EAkBzB,SAASC,KACL,OAAON,EAAiBG,eAC5B,CAKA,SAASI,KACL,OAAmD,OAA5CP,EAAiBI,sBAC5B,CAqEA,SAASI,IACL,OAAOR,EAAiBC,OAAOtB,KACnC,CAIA,SAAS8B,KACL,OAAOT,EAAiBC,OAAO9P,KACnC,CAaA,SAASuQ,EAAcC,GACnBX,SAAiBC,OAAOW,aAAeD,EAChCA,EAAc3F,GACzB,CAOA,SAAS6F,EAAYjsB,GACjBorB,SAAiBC,OAAOW,aAAe,KAChChsB,CACX,CACA,SAASksB,KACL,IAAIC,EAAeC,KACnB,KAAwB,OAAjBD,GAA+C,KAAtBA,EAAale,MACzCke,EAAeA,EAAa9lB,OAEhC,OAAO8lB,CACX,CACA,SAASC,KACL,OAAOhB,EAAiBC,OAAOc,YACnC,CAMA,SAASE,GAAgBzU,EAAO0U,GAE5B,MAAMjB,EAASD,EAAiBC,OAChCA,EAAOc,aAAevU,EACtByT,EAAOiB,SAAWA,CACtB,CACA,SAASC,KACL,OAAOnB,EAAiBC,OAAOiB,QACnC,CACA,SAASE,KACLpB,EAAiBC,OAAOiB,UAAW,CACvC,CAkBA,SAASG,KACL,OAAOhB,EACX,CACA,SAASiB,GAAqBrU,GAC1BoT,GAAqBpT,CACzB,CAEA,SAASsU,KACL,MAAMtB,EAASD,EAAiBC,OAChC,IAAI9nB,EAAQ8nB,EAAOuB,iBACnB,OAAc,IAAVrpB,IACAA,EAAQ8nB,EAAOuB,iBAAmBvB,EAAO9P,MAAMsR,mBAE5CtpB,CACX,CAOA,SAASupB,KACL,OAAO1B,EAAiBC,OAAO0B,cACnC,CACA,SAASC,GAAsBzjB,GAC3B,MAAM8hB,EAASD,EAAiBC,OAC1B9nB,EAAQ8nB,EAAO0B,aACrB1B,SAAO0B,aAAe1B,EAAO0B,aAAexjB,EACrChG,CACX,CAkBA,SAAS0pB,GAA8BL,EAAkBM,GACrD,MAAM7B,EAASD,EAAiBC,OAChCA,EAAO0B,aAAe1B,EAAOuB,iBAAmBA,EAChDO,GAAyBD,EAC7B,CAcA,SAASC,GAAyBD,GAC9B9B,EAAiBC,OAAO6B,sBAAwBA,CACpD,CAWA,SAASE,KACL,OAAOhC,EAAiBC,OAAOgC,iBACnC,CACA,SAASC,GAAqBttB,GAC1BorB,EAAiBC,OAAOgC,kBAAoBrtB,CAChD,CAMA,SAASutB,GAAoBxD,GACzB,MAAMxO,EAAQwO,EAAMlE,GAEpB,OAAmB,IAAftK,EAAMtN,KAECsN,EAAMiS,UAKE,IAAfjS,EAAMtN,KACC8b,EAAM9D,IAGV,IACX,CAcA,SAASwH,GAAQ1D,EAAOnS,EAAOhG,GAE3B,GAAIA,EAAQb,GAAYI,SAAU,CAE9B,IAAIuc,EAAc9V,EACd+V,EAAc5D,EAClB,OAEI2D,EAAcA,EAAYrnB,OACN,OAAhBqnB,GAA0B9b,EAAQb,GAAYE,OAC9Cyc,EAAcH,GAAoBI,GACd,OAAhBD,IAKJC,EAAcA,EAAYjH,IAIF,GAApBgH,EAAYzf,UAQxB,GAAoB,OAAhByf,EAEA,OAAO,EAGP9V,EAAQ8V,EACR3D,EAAQ4D,CAEhB,CAEA,MAAMtC,EAAUD,EAAiBC,OAASuC,KAC1CvC,SAAOc,aAAevU,EACtByT,EAAOtB,MAAQA,GACR,CACX,CAYA,SAAS8D,GAAUC,GAGf,MAAMC,EAAYH,KAYZrS,EAAQuS,EAAQjI,GACtBuF,EAAiBC,OAAS0C,EAE1BA,EAAU5B,aAAe5Q,EAAMyS,WAC/BD,EAAUhE,MAAQ+D,EAClBC,EAAUxS,MAAQA,EAClBwS,EAAU/B,aAAe8B,EACzBC,EAAUhB,aAAexR,EAAMsR,kBAC/BkB,EAAUE,QAAS,CACvB,CAIA,SAASL,KACL,MAAMM,EAAgB9C,EAAiBC,OACjC8C,EAAgC,OAAlBD,EAAyB,KAAOA,EAAcE,MAElE,OADkC,OAAhBD,EAAuB7C,GAAa4C,GAAiBC,CAE3E,CACA,SAAS7C,GAAajlB,GAClB,MAAMglB,EAAS,CACXc,aAAc,KACdG,UAAU,EACVvC,MAAO,KACPxO,MAAO,KACP8S,eAAe,EACfrC,aAAc,KACdsC,kBAAmB,EACnBC,iBAAkB,KAClBrB,uBAAuB,EACvBN,kBAAkB,EAClBG,cAAc,EACdM,kBAAmB,EACnBhnB,OAAQA,EACR+nB,MAAO,KACPH,QAAQ,GAEZ5nB,OAAW,OAAXA,IAAoBA,EAAO+nB,MAAQ/C,GAC5BA,CACX,CAUA,SAASmD,KACL,MAAMC,EAAYrD,EAAiBC,OACnCD,SAAiBC,OAASoD,EAAUpoB,OACpCooB,EAAUtC,aAAe,KACzBsC,EAAU1E,MAAQ,KACX0E,CACX,CAOA,MAAMC,GAAUF,GAShB,SAASG,KACL,MAAMF,EAAYD,KAClBC,EAAUnC,UAAW,EACrBmC,EAAUlT,MAAQ,KAClBkT,EAAUJ,eAAgB,EAC1BI,EAAUzC,aAAe,KACzByC,EAAUH,kBAAoB,EAC9BG,EAAUvB,uBAAwB,EAClCuB,EAAUF,iBAAmB,KAC7BE,EAAU7B,kBAAmB,EAC7B6B,EAAU1B,cAAe,EACzB0B,EAAUpB,kBAAoB,CAClC,CAWA,SAASuB,KACL,OAAOxD,EAAiBC,OAAOgD,aACnC,CAUA,SAASQ,GAAiBtrB,GAMtB6nB,EAAiBC,OAAOgD,cAAgB9qB,CAC5C,CAIA,SAASurB,KACL,MAAMzD,EAASD,EAAiBC,OAChC,OAAOpB,GAASoB,EAAO9P,MAAO8P,EAAOgD,cACzC,CAMA,SAASU,KACL3D,EAAiBC,OAAOkD,iBA5uBN,KA6uBtB,CAyBA,SAASS,KACL,OAAO5D,EAAiBC,OAAOkD,gBACnC,CACA,IAAIU,IAAsB,EAK1B,SAASC,KACL,OAAOD,EACX,CAKA,SAASE,GAAmB7b,GACxB2b,GAAsB3b,CAC1B,CAgDA,SAAS8b,GAAuB7T,EAAO3D,GAKnC,QAAS5Y,EAAI4Y,EAAMyX,eAAgB9a,EAAMqD,EAAM0X,aAActwB,EAAIuV,EAAKvV,IAAK,CAGvE,MAAMuwB,EAFehU,EAAML,KAAKlc,GAEIiP,KAAKnL,WACjC0sB,qBAAoBC,wBAAuBC,kBAAiBC,qBAAoBzR,eAAiBqR,EACrGC,IACCjU,EAAMqU,eAAiB,IAAIpwB,MAAMR,EAAGwwB,GAErCC,KACClU,EAAMqU,eAAiB,IAAIpwB,KAAKR,EAAGywB,IACnClU,EAAMsU,oBAAsB,IAAIrwB,KAAKR,EAAGywB,IAEzCC,IACCnU,EAAMuU,YAAc,IAAItwB,MAAMR,EAAG0wB,GAElCC,KACCpU,EAAMuU,YAAc,IAAItwB,KAAKR,EAAG2wB,IAChCpU,EAAMwU,iBAAmB,IAAIvwB,KAAKR,EAAG2wB,IAEvB,MAAfzR,IACC3C,EAAMyU,eAAiB,IAAIxwB,KAAKR,EAAGkf,EAE5C,CACJ,CAiCA,SAAS+R,GAAkBlG,EAAOmG,EAAO7F,GACrC8F,GAAUpG,EAAOmG,EAAO,EAA2C7F,EACvE,CAcA,SAAS+F,GAAyBrG,EAAOmG,EAAOG,EAAWhG,IAGnC,EAAfN,EAAMjE,MAAoDuK,GAC3DF,GAAUpG,EAAOmG,EAAOG,EAAWhG,EAE3C,CACA,SAASiG,GAAwBvG,EAAOsG,GAGpC,IAAIze,EAAQmY,EAAMjE,IACL,EAARlU,KAAmDye,IACpDze,GAAS,MACTA,GAAS,EACTmY,EAAMjE,GAASlU,EAEvB,CAeA,SAASue,GAAUI,EAAazc,EAAKuc,EAAWG,GAG5C,MAGMC,EAAiBD,IAA8C,EAC/DE,EAAM5c,EAAI1V,OAAS,EACzB,IAAIuyB,EAAqB,EACzB,QAAS3xB,OAN+B7B,IAArBqzB,EACsB,MAAnCD,EAAY1J,IACZ,EAImB7nB,EAAI0xB,EAAK1xB,IAE9B,GAAoB,iBADP8U,EAAI9U,EAAI,IAGjB,GADA2xB,EAAqB7c,EAAI9U,GACD,MAApBwxB,GAA4BG,GAAsBH,EAClD,WAIe1c,EAAI9U,GAAK,IAExBuxB,EAAY1J,KAAwB,QAEpC8J,EAAqBF,IAAoC,GAAlBA,KACvCG,GAASL,EAAaF,EAAWvc,EAAK9U,GACtCuxB,EAAY1J,KAC4B,WAAnC0J,EAAY1J,KACT7nB,EACA,GAEZA,GAGZ,CAMA,SAAS6xB,GAAiBC,EAAWhO,GACjC4G,GAAS,EAA0CoH,EAAWhO,GAC9D,MAAM/jB,EAAe4jB,GAAoB,MACzC,IACIG,EAAKvgB,KAAKuuB,EACd,SAEInO,GAAoB5jB,GACpB2qB,GAAS,EAAwCoH,EAAWhO,EAChE,CACJ,CASA,SAAS8N,GAASL,EAAaF,EAAWvc,EAAK9U,GAC3C,MAAM+xB,EAAajd,EAAI9U,GAAK,EACtB8jB,EAAOhP,EAAI9U,EAAI,GAEf8xB,EAAYP,EADKQ,GAAcjd,EAAI9U,GAAK8U,EAAI9U,IAE9C+xB,EAC8BR,EAAYzK,IAAU,GAGhDyK,EAAY1J,KAAwB,KACd,EAArB0J,EAAYzK,MAAoDuK,IACjEE,EAAYzK,IAAU,MACtB+K,GAAiBC,EAAWhO,IAIhC+N,GAAiBC,EAAWhO,EAEpC,CAEA,MAAMkO,IAAqB,EA+F3B,MAAMC,GACFjuB,YAIAsL,EAIA4iB,EAAgBC,GACZ3uB,KAAK8L,QAAUA,EAKf9L,KAAK4uB,WAAY,EAGjB5uB,KAAK6uB,oBAAsBH,EAC3B1uB,KAAK8uB,WAAaH,CACtB,EA+HJ,MAAMI,GAAwC,CAAC,EAM/C,MAAMC,GACFxuB,YAAYqP,EAAUof,GAClBjvB,KAAK6P,SAAWA,EAChB7P,KAAKivB,eAAiBA,CAC1B,CACAhf,IAAIpF,EAAOsE,EAAeC,GACtBA,EAAQgB,GAAkBhB,GAC1B,MAAM5R,EAAQwC,KAAK6P,SAASI,IAAIpF,EAAOkkB,GAAuC3f,GAC9E,OAAI5R,IAAUuxB,IACV5f,IAAkB4f,GAMXvxB,EAEJwC,KAAKivB,eAAehf,IAAIpF,EAAOsE,EAAeC,EACzD,EAIJ,SAAS8f,GAAkBC,GACvB,OAAOA,IAAmBX,EAC9B,CACA,SAASY,GAAuBD,GAO5B,OAAwB,MAAjBA,CACX,CAaA,SAASE,GAAsBC,EAAUC,GACrC,IAAIC,EAbR,SAASC,GAA4BN,GACjC,OAAOA,GAAkB,EAC7B,CAWqBM,CAA4BH,GACzCI,EAAaH,EAKjB,KAAOC,EAAa,GAChBE,EAAaA,EAAWxL,IACxBsL,IAEJ,OAAOE,CACX,CA8CA,IAAIC,IAAuB,EAC3B,SAASC,GAAwBC,GAC7B,MAAM/xB,EAAW6xB,GACjBA,UAAuBE,EAChB/xB,CACX,CAOA,MAAMgyB,GADa,IAObC,GAAoB,EAE1B,IAAIC,GAAkB,EAEtB,MAAMC,GAAY,CAAC,EA0CnB,SAASC,GAA+B9a,EAAOmS,GAC3C,MAAM4I,EAAwBC,GAAiBhb,EAAOmS,GACtD,IAA8B,IAA1B4I,EACA,OAAOA,EAEX,MAAMpX,EAAQwO,EAAMlE,GAChBtK,EAAMsX,kBACNjb,EAAMkb,cAAgB/I,EAAM3rB,OAC5B20B,GAAYxX,EAAML,KAAMtD,GACxBmb,GAAYhJ,EAAO,MACnBgJ,GAAYxX,EAAMyX,UAAW,OAEjC,MAAMC,EAAYC,GAA0Btb,EAAOmS,GAC7C+I,EAAgBlb,EAAMkb,cAG5B,GAAIpB,GAAkBuB,GAAY,CAC9B,MAAME,EAAcvB,GAAuBqB,GACrCtF,EAAckE,GAAsBoB,EAAWlJ,GAC/CqJ,EAAazF,EAAY9H,GAAO3K,KAGtC,QAASlc,EAAI,EAAGA,EAAI,EAAuCA,IACvD+qB,EAAM+I,EAAgB9zB,GAAK2uB,EAAYwF,EAAcn0B,GAAKo0B,EAAWD,EAAcn0B,EAE3F,CACA+qB,SAAM+I,EAAgB,GAAqCG,EACpDH,CACX,CACA,SAASC,GAAYjf,EAAKuf,GACtBvf,EAAItU,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG6zB,EACrC,CACA,SAAST,GAAiBhb,EAAOmS,GAC7B,OAA4B,IAAxBnS,EAAMkb,eAGLlb,EAAMvR,QAAUuR,EAAMvR,OAAOysB,gBAAkBlb,EAAMkb,eAGa,OAAnE/I,EAAMnS,EAAMkb,cAAgB,IACrB,EAIAlb,EAAMkb,aAErB,CAQA,SAASI,GAA0Btb,EAAOmS,GACtC,GAAInS,EAAMvR,SAAyC,IAA/BuR,EAAMvR,OAAOysB,cAG7B,OAAOlb,EAAMvR,OAAOysB,cAKxB,IAAIQ,EAAwB,EACxB5F,EAAc,KACd6F,EAAcxJ,EAIlB,KAAuB,OAAhBwJ,GAAsB,CAEzB,GADA7F,EAAc8F,GAAkBD,GACZ,OAAhB7F,EAEA,OAAOsD,GAMX,GAFAsC,IACAC,EAAcA,EAAY7M,KACQ,IAA9BgH,EAAYoF,cAEZ,OAAQpF,EAAYoF,cACfQ,GACG,EAEhB,CACA,OAAOtC,EACX,CAQA,SAASyC,GAAmBX,EAAevX,EAAOlO,IAhIlD,SAASqmB,GAASZ,EAAevX,EAAOtN,GAEpC,IAAIuN,EACgB,iBAATvN,EACPuN,EAAKvN,EAAKkI,WAAW,IAAM,EAEtBlI,EAAKxB,eAAe8D,MACzBiL,EAAKvN,EAAKsC,KAIJ,MAANiL,IACAA,EAAKvN,EAAKsC,IAAiBiiB,MAI/B,MAAMmB,EAAYnY,EAAK8W,GAQvB/W,EAAML,KAAK4X,GAAiBa,GAAapB,MAJ5B,GAAKoB,CAKtB,CAwGID,CAASZ,EAAevX,EAAOlO,EACnC,CA2EA,SAASumB,GAAqBjiB,EAAetE,EAAOuE,GAChD,GAAIA,EAAQb,GAAYK,eAA8BjU,IAAlBwU,EAChC,OAAOA,EAGPf,IAER,CAUA,SAASijB,GAA+B9J,EAAO1c,EAAOuE,EAAOD,GAKzD,GAJIC,EAAQb,GAAYK,eAA8BjU,IAAlBwU,IAEhCA,EAAgB,QAEfC,GAASb,GAAYG,KAAOH,GAAYE,OAAc,CACvD,MAAM6iB,EAAiB/J,EAAM1D,IAIvBjD,EAA+B7R,QAAwBpU,GAC7D,IACI,OAAI22B,EACOA,EAAerhB,IAAIpF,EAAOsE,EAAeC,EAAQb,GAAYK,UAG7DM,GAAmBrE,EAAOsE,EAAeC,EAAQb,GAAYK,SAE5E,SAEIG,GAAwB6R,EAC5B,CACJ,CACA,OAAOwQ,GAAqBjiB,EAAetE,EAAOuE,EACtD,CAiBA,SAASmiB,GAAsBnc,EAAOmS,EAAO1c,EAAOuE,EAAQb,GAAYC,QAASW,GAC7E,GAAc,OAAViG,EAAgB,CAGhB,GAAmB,KAAfmS,EAAMjE,MAGJlU,EAAQb,GAAYG,MAAO,CAC7B,MAAM8iB,EA+WlB,SAASC,GAAiCrc,EAAOmS,EAAO1c,EAAOuE,EAAOD,GAClE,IAAIwa,EAAevU,EACfsc,EAAenK,EAOnB,KAAwB,OAAjBoC,GACc,OAAjB+H,GACsB,KAAtBA,EAAapO,MACW,IAAtBoO,EAAapO,KAAuC,CAKtD,MAAMqO,EAAoBC,GAA6BjI,EAAc+H,EAAc7mB,EAAOuE,EAAQb,GAAYG,KAAMuhB,IACpH,GAAI0B,IAAsB1B,GACtB,OAAO0B,EAGX,IAAIzG,EAAcvB,EAAa9lB,OAG/B,IAAKqnB,EAAa,CAEd,MAAM2G,EAAuBH,EAAalN,IAC1C,GAAIqN,EAAsB,CACtB,MAAMC,EAA4BD,EAAqB5hB,IAAIpF,EAAOolB,GAAW7gB,GAC7E,GAAI0iB,IAA8B7B,GAC9B,OAAO6B,CAEf,CAEA5G,EAAc8F,GAAkBU,GAChCA,EAAeA,EAAaxN,GAChC,CACAyF,EAAeuB,CACnB,CACA,OAAO/b,CACX,CAxZ0CsiB,CAAiCrc,EAAOmS,EAAO1c,EAAOuE,EAAO6gB,IAC3F,GAAIuB,IAA0BvB,GAC1B,OAAOuB,CAEf,CAEA,MAAMh0B,EAAQo0B,GAA6Bxc,EAAOmS,EAAO1c,EAAOuE,EAAO6gB,IACvE,GAAIzyB,IAAUyyB,GACV,OAAOzyB,CAEf,CAEA,OAAO6zB,GAA+B9J,EAAO1c,EAAOuE,EAAOD,EAC/D,CAWA,SAASyiB,GAA6Bxc,EAAOmS,EAAO1c,EAAOuE,EAAOD,GAC9D,MAAMgiB,EA2OV,SAASY,GAAsBlnB,GAE3B,GAAqB,iBAAVA,EACP,OAAOA,EAAM8I,WAAW,IAAM,EAElC,MAAMqe,EAENnnB,EAAMZ,eAAe8D,IAAiBlD,EAAMkD,SAAiBpT,EAE7D,MAAuB,iBAAZq3B,EACHA,GAAW,EACJA,EAAUlC,GAKVmC,GAIJD,CAEf,CAjQsBD,CAAsBlnB,GAGxC,GAAyB,mBAAdsmB,EAA0B,CACjC,IAAKlG,GAAQ1D,EAAOnS,EAAOhG,GAGvB,OAAOA,EAAQb,GAAYE,KACrB2iB,GAAqBjiB,EAAetE,EAAOuE,GAC3CiiB,GAA+B9J,EAAO1c,EAAOuE,EAAOD,GAE9D,IACI,IAAI3R,EAYJ,GAFIA,EAAQ2zB,EAAU/hB,GAET,MAAT5R,GAAmB4R,EAAQb,GAAYK,SAIvC,OAAOpR,EAHP4Q,IAKR,SAEI8d,IACJ,CACJ,SAC8B,iBAAdiF,EAAwB,CAIpC,IAAIe,EAAgB,KAChB5B,EAAgBF,GAAiBhb,EAAOmS,GACxC4H,EAAiBX,GACjB2D,EAAmB/iB,EAAQb,GAAYE,KAAO8Y,EAAMpD,IAA4BV,IAAU,KAmB9F,MAhBsB,IAAlB6M,GAAwBlhB,EAAQb,GAAYI,YAC5CwgB,GACsB,IAAlBmB,EACMI,GAA0Btb,EAAOmS,GACjCA,EAAM+I,EAAgB,GAC5BnB,IAAmBX,IAAuB4D,GAAmBhjB,GAAO,IAIpE8iB,EAAgB3K,EAAMlE,GACtBiN,EAAgBlB,GAAuBD,GACvC5H,EAAQ8H,GAAsBF,EAAgB5H,IAL9C+I,GAAgB,IAUC,IAAlBA,GAAsB,CAGzB,MAAMvX,EAAQwO,EAAMlE,GAGpB,GAAIgP,GAAclB,EAAWb,EAAevX,EAAML,MAAO,CAIrD,MAAMwN,EAAWoM,GAAuBhC,EAAe/I,EAAO1c,EAAOqnB,EAAe9iB,EAAO+iB,GAC3F,GAAIjM,IAAa+J,GACb,OAAO/J,CAEf,CACAiJ,EAAiB5H,EAAM+I,EAAgB,GACnCnB,IAAmBX,IACnB4D,GAAmBhjB,EAAOmY,EAAMlE,GAAO3K,KAAK4X,EAAgB,KAAsC6B,IAClGE,GAAclB,EAAWb,EAAe/I,IAGxC2K,EAAgBnZ,EAChBuX,EAAgBlB,GAAuBD,GACvC5H,EAAQ8H,GAAsBF,EAAgB5H,IAM9C+I,GAAgB,CAExB,CACJ,CACA,OAAOnhB,CACX,CACA,SAASmjB,GAAuBhC,EAAe/I,EAAO1c,EAAOqnB,EAAe9iB,EAAO+iB,GAC/E,MAAMI,EAAehL,EAAMlE,GACrBjO,EAAQmd,EAAa7Z,KAAK4X,EAAgB,GAsB1CkC,EAAgBC,GAA0Brd,EAAOmd,EAAc1nB,EAnBrB,MAAjBqnB,EAQvB3M,GAAgBnQ,IAAUua,GAO1BuC,GAAiBK,MAA8B,EAAbnd,EAAM3J,MAGtB2D,EAAQb,GAAYE,MAAQ0jB,IAAqB/c,GAE3E,OAAsB,OAAlBod,EACOE,GAAkBnL,EAAOgL,EAAcC,EAAepd,GAGtD6a,EAEf,CAWA,SAASwC,GAA0Brd,EAAO2D,EAAOlO,EAAO8nB,EAAwBC,GAC5E,MAAMC,EAAsBzd,EAAM0d,gBAC5BC,EAAeha,EAAML,KACrBsa,EAAyC,QAAtBH,EACnBI,EAAkB7d,EAAMyX,eAExBqG,EAAwBL,GAAuB,GAK/CM,EAAWP,EAAoBI,EAAmBE,EANnC9d,EAAM0X,aAO3B,QAAStwB,EALam2B,EAChBK,EACAA,EAAmBE,EAGG12B,EAAI22B,EAAU32B,IAAK,CAC3C,MAAM42B,EAAqBL,EAAav2B,GACxC,GAAKA,EAAIy2B,GAAmBpoB,IAAUuoB,GACjC52B,GAAKy2B,GAAmBG,EAAmB3nB,OAASZ,EACrD,OAAOrO,CAEf,CACA,GAAIo2B,EAAmB,CACnB,MAAMS,EAASN,EAAaE,GAC5B,GAAII,GAAU3N,GAAe2N,IAAWA,EAAO5nB,OAASZ,EACpD,OAAOooB,CAEf,CACA,OAAO,IACX,CAQA,SAASP,GAAkBnL,EAAOxO,EAAOhY,EAAOqU,GAC5C,IAAI5X,EAAQ+pB,EAAMxmB,GAClB,MAAMuyB,EAAQva,EAAML,KACpB,GAjuBJ,SAAS6a,GAAU1Y,GACf,OAAOA,aAAe4T,EAC1B,CA+tBQ8E,CAAU/1B,GAAQ,CAClB,MAAMsO,EAAUtO,EACZsO,EAAQ8iB,WA59JpB,SAAS4E,GAA2B3oB,EAAO4oB,GAEvC,MADgBA,GAA6BA,EAAKrzB,KAAK,OACjD,IAAIuI,GAAa,IAA4HkC,EACvJ,CA09JY2oB,CAhgKZ,SAASE,GAAkBl2B,GACvB,MAAqB,mBAAVA,EACAA,EAAM6C,MAAQ7C,EAAM2C,WACV,iBAAV3C,GAA+B,MAATA,GAAuC,mBAAfA,EAAMiO,KACpDjO,EAAMiO,KAAKpL,MAAQ7C,EAAMiO,KAAKtL,WAElC+N,EAAgB1Q,EAC3B,CAy/JuCk2B,CAAkBJ,EAAMvyB,KAEvD,MAAM4yB,EAA+B/D,GAAwB9jB,EAAQ+iB,qBACrE/iB,EAAQ8iB,WAAY,EAWpB,MAAMhO,EAA+B9U,EAAQgjB,WACvC/f,GAAwBjD,EAAQgjB,YAChC,KACU7D,GAAQ1D,EAAOnS,EAAO7G,GAAYC,SAGlD,IACIhR,EAAQ+pB,EAAMxmB,GAAS+K,EAAQA,aAAQnR,EAAW24B,EAAO/L,EAAOnS,GAQ5D2D,EAAMsX,iBAAmBtvB,GAASqU,EAAMyX,gBAjlCxD,SAAS+G,GAAsBC,EAAgBC,EAAc/a,GAEzD,MAAQyN,cAAauN,WAAUC,aAAcF,EAAaroB,KAAKnL,UAC/D,GAAIkmB,EAAa,CACb,MAAMyN,EAAmB1N,GAAuBuN,IAC/C/a,EAAMmb,gBAAkB,IAAIl3B,KAAK62B,EAAgBI,IACjDlb,EAAMob,qBAAuB,IAAIn3B,KAAK62B,EAAgBI,EAC3D,CACIF,IACChb,EAAMmb,gBAAkB,IAAIl3B,KAAK,EAAI62B,EAAgBE,GAEtDC,KACCjb,EAAMmb,gBAAkB,IAAIl3B,KAAK62B,EAAgBG,IACjDjb,EAAMob,qBAAuB,IAAIn3B,KAAK62B,EAAgBG,GAE/D,CAokCgBJ,CAAsB7yB,EAAOuyB,EAAMvyB,GAAQgY,EAEnD,SAGqC,OAAjC6H,GACI7R,GAAwB6R,GAC5BgP,GAAwB+D,GACxB7nB,EAAQ8iB,WAAY,EACpB1C,IACJ,CACJ,CACA,OAAO1uB,CACX,CAoCA,SAAS60B,GAAclB,EAAWb,EAAe8D,GAW7C,SAHcA,EAAa9D,GAAiBa,GAAapB,KAJ5C,GAAKoB,EAQtB,CAEA,SAASiB,GAAmBhjB,EAAOilB,GAC/B,QAASjlB,EAAQb,GAAYG,MAAWU,EAAQb,GAAYE,MAAQ4lB,EACxE,CAOA,MAAMC,GACF9zB,YAAY+zB,EAAQC,GAChBx0B,KAAKu0B,OAASA,EACdv0B,KAAKw0B,OAASA,CAClB,CACAvkB,IAAIpF,EAAOsE,EAAeC,GACtB,OAAOmiB,GAAsBvxB,KAAKu0B,OAAQv0B,KAAKw0B,OAAQ3pB,EAAOuF,GAAkBhB,GAAQD,EAC5F,EAGJ,SAAS8iB,KACL,OAAO,IAAIqC,GAAa5K,KAAmBN,IAC/C,CA8BA,SAASqL,GAAahpB,GAClB,OAAIC,GAAaD,GACN,KACH,MAAMK,EAAU2oB,GAAajpB,EAAkBC,IAC/C,OAAOK,GAAWA,GAAQ,EAG3BoF,GAAczF,EACzB,CAsDA,SAASulB,GAAkBzJ,GACvB,MAAMxO,EAAQwO,EAAMlE,GACdqR,EAAY3b,EAAMtN,KAExB,OAAkB,IAAdipB,EAEO3b,EAAMiS,UAEM,IAAd0J,EAGEnN,EAAM9D,IAEV,IACX,CAOA,SAASkR,GAAkBC,GACvB,OA7hBJ,SAASC,GAAoBzf,EAAOwf,GAGhC,GAAyB,UAArBA,EACA,OAAOxf,EAAM0f,QAEjB,GAAyB,UAArBF,EACA,OAAOxf,EAAMwD,OAEjB,MAAM7E,EAAQqB,EAAMrB,MACpB,GAAIA,EAAO,CACP,MAAMghB,EAAchhB,EAAMnY,OAC1B,IAAIY,EAAI,EACR,KAAOA,EAAIu4B,GAAa,CACpB,MAAMv3B,EAAQuW,EAAMvX,GAEpB,GAAI8X,GAA0B9W,GAC1B,MAEJ,GAAc,IAAVA,EAKAhB,GAAQ,UAEc,iBAAVgB,EAGZ,IADAhB,IACOA,EAAIu4B,GAAmC,iBAAbhhB,EAAMvX,IACnCA,QAGH,IAAIgB,IAAUo3B,EACf,OAAO7gB,EAAMvX,EAAI,GAGjBA,GAAQ,EAEhB,CACJ,CACA,OAAO,IACX,CAmfWq4B,CAAoBnL,KAAmBkL,EAClD,CAkLA,SAASI,GAAenX,EAASha,EAAS,KAAMoxB,EAAsB,KAAM50B,GACxE,MAAMwP,EAAWqlB,GAAuCrX,EAASha,EAAQoxB,EAAqB50B,GAC9FwP,SAAS6R,8BACF7R,CACX,CAMA,SAASqlB,GAAuCrX,EAASha,EAAS,KAAMoxB,EAAsB,KAAM50B,EAAMif,EAAS,IAAItC,KACnH,MAAM/Q,EAAY,CAACgpB,GAAuB1iB,GAAakK,GAAoBoB,IAC3Exd,SAAOA,IAA4B,iBAAZwd,OAAuBljB,EAAYiQ,GAAUiT,IAC7D,IAAIsB,GAAWlT,EAAWpI,GAAUob,KAAmB5e,GAAQ,KAAMif,EAChF,CA0BA,MAAM6V,UACOn1B,KAAKsP,mBAAqBA,EAAoB,QAC9CtP,KAAKo1B,KAAO,IAAIziB,EAAgB,CACzC,aAAOtV,CAAO2O,EAASnI,GACnB,GAAInE,MAAMD,QAAQuM,GACd,OAAOgpB,GAAe,CAAE30B,KAAM,IAAMwD,EAAQmI,EAAS,IAEpD,CACD,MAAM3L,EAAO2L,EAAQ3L,MAAQ,GAC7B,OAAO20B,GAAe,CAAE30B,QAAQ2L,EAAQnI,OAAQmI,EAAQC,UAAW5L,EACvE,CACJ,QAESL,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAOsqB,GACPtpB,WAAY,MACZC,QAASA,IAAMoE,EAASuC,KACxB,QAKKzS,KAAKiN,mBAAoB,CAAmC,EA+DnD,IAAIF,EAA6C,IAIzDE,kBAAqBmC,IAC/B,MAAMgG,EAAQsU,KACd,GAAc,OAAVtU,EACA,MAAM,IAAIzM,EAAa,KAAoDqH,GAI/E,GAAiB,EAAboF,EAAM3J,KACN,OAAO2J,EAAM5X,MAEjB,GAAI4R,EAAQb,GAAYK,SACpB,OAAO,KAEX,MAAM,IAAIjG,EAAa,KAAoDqH,EAEG,EA+ClF,SAASqlB,GAAiB33B,GACtB,OAAOA,EAA0B,eACrC,CAEA,MAAM43B,IAAgC,EAEtC,IAQMC,GAAU,MAAhB,MAAMA,SAKOv1B,KAAKiN,kBAAoBuoB,EAAkB,QAK3Cx1B,KAAKiO,cAAiB4B,GAAaA,CAAU,EACzD,OAXK0lB,CAAU,KAYhB,MAAME,WAA+BF,GACjC/0B,YAAYg0B,GACRnyB,QACArC,KAAKw0B,OAASA,CAClB,CACA/Y,UAAU+E,GACNkI,UAAoB1oB,KAAKw0B,OAAQhU,GAC1B,IA1vEf,SAASkV,GAAqBnO,EAAOoB,GACjC,GAAgC,OAA5BpB,EAAM9C,IACN,OACJ,MAAMtC,EAAeoF,EAAM9C,IAAkB/iB,QAAQinB,IAChC,IAAjBxG,GACAoF,EAAM9C,IAAkB5iB,OAAOsgB,EAAc,EAErD,CAmvEqBuT,CAAqB11B,KAAKw0B,OAAQhU,EACnD,EAEJ,SAASgV,KACL,OAAO,IAAIC,GAAuBrM,IACtC,CAEA,IAGMuM,GAAY,MAAlB,MAAMA,EACFn1B,cACIR,KAAK41B,OAAS,EACd51B,KAAK61B,aAAe,IAAI7Y,IACxBhd,KAAK81B,gBAAkB,IAAIvvB,IAAgB,EAC/C,CACA,oBAAIwvB,GACA,OAAO/1B,KAAK81B,gBAAgBt4B,KAChC,CACA6D,MACSrB,KAAK+1B,kBACN/1B,KAAK81B,gBAAgBv2B,MAAK,GAE9B,MAAMq2B,EAAS51B,KAAK41B,SACpB,OAAA51B,KAAK61B,aAAax0B,IAAIu0B,GACfA,CACX,CACA90B,OAAO80B,GACH51B,KAAK61B,aAAaG,OAAOJ,GACM,IAA3B51B,KAAK61B,aAAaI,MAAcj2B,KAAK+1B,kBACrC/1B,KAAK81B,gBAAgBv2B,MAAK,EAElC,CACAmc,cACI1b,KAAK61B,aAAatV,QACdvgB,KAAK+1B,kBACL/1B,KAAK81B,gBAAgBv2B,MAAK,EAElC,QAESS,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAO8qB,EACP9pB,WAAY,OACZC,QAASA,IAAM,IAAI6pB,GACnB,EACP,OAnCKA,CAAY,KAmJlB,MAAMO,GAjEN,MAAMC,WAAsBnwB,GACxBxF,YAAY41B,GAAU,GAClB/zB,QACArC,KAAKq2B,gBAAa17B,EAClBqF,KAAK61B,kBAAel7B,EACpBqF,KAAKs2B,UAAYF,EAGbpT,OAIAhjB,KAAKq2B,WAAalmB,EAAOolB,GAAY,CAAEllB,UAAU,UAAW1V,EAC5DqF,KAAK61B,aAAe1lB,EAAOwlB,GAAc,CAAEtlB,UAAU,UAAW1V,EAExE,CACA47B,KAAK/4B,GACD,MAAMjB,EAAe4jB,GAAoB,MACzC,IACI9d,MAAM9C,KAAK/B,EACf,SAEI2iB,GAAoB5jB,EACxB,CACJ,CACA0H,UAAUZ,EAAgB3F,EAAO8B,GAC7B,IAAIg3B,EAASnzB,EACTozB,EAAU/4B,QAAgB,MAC1Bg5B,EAAal3B,EACjB,GAAI6D,GAA4C,iBAAnBA,EAA6B,CACtD,MAAMuB,EAAWvB,EACjBmzB,EAAS5xB,EAASrF,MAAMgE,KAAKqB,GAC7B6xB,EAAU7xB,EAASlH,OAAO6F,KAAKqB,GAC/B8xB,EAAa9xB,EAASpF,UAAU+D,KAAKqB,EACzC,CACI5E,KAAKs2B,YACLG,EAAUz2B,KAAK22B,cAAcF,GACzBD,IACAA,EAASx2B,KAAK22B,cAAcH,IAE5BE,IACAA,EAAa12B,KAAK22B,cAAcD,KAGxC,MAAMnyB,EAAOlC,MAAM4B,UAAU,CAAE1E,KAAMi3B,EAAQ94B,MAAO+4B,EAASj3B,SAAUk3B,IACvE,OAAIrzB,aAA0B9C,IAC1B8C,EAAehC,IAAIkD,GAEhBA,CACX,CACAoyB,cAAc/yB,GACV,OAAQpG,IACJ,MAAMo4B,EAAS51B,KAAK61B,cAAcx0B,MAClCjC,WAAW,KACPwE,EAAGpG,QACY7C,IAAXi7B,GACA51B,KAAK61B,cAAc/0B,OAAO80B,EAAM,EAEvC,CAET,GAOJ,SAASgB,MAAQttB,GACb,CA6BJ,SAASutB,GAA4BrW,GACjC,IAAIsW,EACAC,EACJ,SAASC,IACLxW,EAAWoW,GACX,SAC6Bj8B,IAArBo8B,GAAkE,mBAAzBE,sBACzCA,qBAAqBF,QAEPp8B,IAAdm8B,GACAI,aAAaJ,EAErB,OAGI,CAER,CACAA,SAAY13B,WAAW,KACnBohB,IACAwW,GAAQ,GAEyB,mBAA1BG,wBACPJ,EAAmBI,sBAAsB,KACrC3W,IACAwW,GAAQ,IAGT,IAAMA,GACjB,CACA,SAASI,GAA8B5W,GACnC6W,sBAAe,IAAM7W,KACd,KACHA,EAAWoW,GAEnB,CAuBA,MAAMU,GAAwB,gBACxBC,GAAgCD,GAAwB,MAC9D,IAAIE,GAAmB,EA2EvB,MAAMC,EACFj3B,YAAYwL,GACRhM,KAAK03B,sBAAuB,EAC5B13B,KAAK23B,sBAAuB,EAI5B33B,KAAK43B,UAAW,EAIhB53B,KAAK63B,WAAa,IAAI3B,IAAa,GAMnCl2B,KAAK83B,iBAAmB,IAAI5B,IAAa,GAMzCl2B,KAAK+3B,SAAW,IAAI7B,IAAa,GAIjCl2B,KAAKg4B,QAAU,IAAI9B,IAAa,GAChC,MAAQ+B,wBAAuB,EAAOC,sCAAqC,EAAOC,oCAAmC,EAAOC,qBAAqB9C,IAAmCtpB,EACpL,UAAWqsB,KAAQ,IACf,MAAM,IAAI1vB,EAAa,KAA2CqH,GAEtEqoB,KAAKC,oBACL,MAAM/nB,EAAOvQ,KACbuQ,EAAKgoB,SAAW,EAChBhoB,EAAKioB,OAASjoB,EAAKkoB,OAASJ,KAAKhmB,QAS7BgmB,KAAKK,uBACLnoB,EAAKkoB,OAASloB,EAAKkoB,OAAOE,KAAK,IAAIN,KAAKK,uBAExCT,GAAwBI,KAAKO,yBAC7BroB,EAAKkoB,OAASloB,EAAKkoB,OAAOE,KAAKN,KAAKO,yBAIxCroB,EAAK2nB,oCACAC,GAAoCD,EACzC3nB,EAAK4nB,iCAAmCA,EACxC5nB,EAAKsoB,mBAAoB,EACzBtoB,EAAK6nB,mBAAqBA,EAiKlC,SAASU,GAAiCC,GACtC,MAAMC,EAAwCA,MAxClD,SAASC,GAA8BF,GAkBnC,SAASG,IACLrC,GAA4B,KACxBkC,EAAKF,mBAAoB,EACzBM,GAAsBJ,GACtBA,EAAKK,sBAAuB,EAC5BC,GAAYN,GACZA,EAAKK,sBAAuB,GAEpC,CAZIL,EAAKK,sBAAwBL,EAAKF,oBAGtCE,EAAKF,mBAAoB,EAUrBE,EAAKX,mBACLC,KAAKiB,KAAKC,IAAI,KACVL,GAAoB,GAIxBH,EAAKP,OAAOe,IAAI,KACZL,GAAoB,GAG5BC,GAAsBJ,GAC1B,CAGQE,CAA8BF,EAAI,EAEhCS,EAAahC,KACnBuB,EAAKN,OAASM,EAAKN,OAAOE,KAAK,CAC3Bt4B,KAAM,UACNo5B,WAAY,CACRC,CAACpC,KAAwB,EACzBqC,CAACpC,IAAgCiC,EACjC,CAACjC,GAAgCiC,IAAa,GAElDI,aAAcA,CAACC,EAAUxnB,EAAS1H,EAAQmvB,EAAMC,EAAWC,KAEvD,GA4GZ,SAASC,GAAsBD,GAC3B,OAAOE,GAAiBF,EAAW,qBACvC,CA9GgBC,CAAsBD,GACtB,OAAOH,EAASM,WAAWxvB,EAAQmvB,EAAMC,EAAWC,GAExD,IACII,UAAQrB,GACDc,EAASM,WAAWxvB,EAAQmvB,EAAMC,EAAWC,EACxD,UAESjB,EAAKb,oCAAoD,cAAd4B,EAAKruB,MACjDstB,EAAKZ,mCACLa,IAEJqB,GAAQtB,EACZ,GAEJuB,SAAUA,CAACT,EAAUxnB,EAAS1H,EAAQ6V,EAAUuZ,EAAWC,EAAW11B,KAClE,IACI81B,UAAQrB,GACDc,EAASU,OAAO5vB,EAAQ6V,EAAUuZ,EAAWC,EAAW11B,EACnE,SAEQy0B,EAAKZ,mCAUJY,EAAKF,oBAgF1B,SAAS2B,GAAgBR,GACrB,OAAOE,GAAiBF,EAAW,qBACvC,CAjFqBQ,CAAgBR,IACjBhB,IAEJqB,GAAQtB,EACZ,GAEJ0B,UAAWA,CAACZ,EAAUxnB,EAAS1H,EAAQ+vB,KACnCb,EAASc,QAAQhwB,EAAQ+vB,GACrBroB,IAAY1H,IAGe,aAAvB+vB,EAAaE,QACb7B,EAAK8B,sBAAwBH,EAAaI,UAC1C3B,GAAsBJ,GACtBM,GAAYN,IAEgB,aAAvB2B,EAAaE,SAClB7B,EAAKrB,qBAAuBgD,EAAaK,aAIrDC,cAAeA,CAACnB,EAAUxnB,EAAS1H,EAAQjN,KACvCm8B,EAASoB,YAAYtwB,EAAQjN,GAC7Bq7B,EAAKmC,kBAAkB,IAAMnC,EAAKf,QAAQzB,KAAK74B,KACxC,IAGnB,CAzOQo7B,CAAiCvoB,EACrC,CAIA,sBAAO4qB,GAEH,cAAc9C,KAAS,MAA2D,IAA5CA,KAAKhmB,QAAQpC,IAAIqnB,GAC3D,CAIA,0BAAO8D,GACH,IAAK3D,EAAO0D,kBACR,MAAM,IAAIxyB,EAAa,KAAkDqH,EAEjF,CAIA,6BAAOqrB,GACH,GAAI5D,EAAO0D,kBACP,MAAM,IAAIxyB,EAAa,KAAkDqH,EAEjF,CAaAupB,IAAI31B,EAAIm2B,EAAWC,GACf,OAAOh6B,KAAKy4B,OAAOc,IAAI31B,EAAIm2B,EAAWC,EAC1C,CAaAsB,QAAQ13B,EAAIm2B,EAAWC,EAAW35B,GAC9B,MAAM04B,EAAO/4B,KAAKy4B,OACZqB,EAAOf,EAAKwC,kBAAkB,gBAAkBl7B,EAAMuD,EAAI43B,GAAe5E,GAAMA,IACrF,IACI,OAAOmC,EAAKuC,QAAQxB,EAAMC,EAAWC,EACzC,SAEIjB,EAAK0C,WAAW3B,EACpB,CACJ,CAKA4B,WAAW93B,EAAIm2B,EAAWC,GACtB,OAAOh6B,KAAKy4B,OAAOiD,WAAW93B,EAAIm2B,EAAWC,EACjD,CAcAkB,kBAAkBt3B,GACd,OAAO5D,KAAKw4B,OAAOe,IAAI31B,EAC3B,EAEJ,MAAM43B,GAAgB,CAAC,EACvB,SAASnC,GAAYN,GAgBjB,GAAqB,GAAjBA,EAAKR,WAAkBQ,EAAKpB,uBAAyBoB,EAAKnB,SAC1D,IACImB,EAAKR,WACLQ,EAAKjB,iBAAiBvB,KAAK,KAC/B,SAGI,GADAwC,EAAKR,YACAQ,EAAKpB,qBACN,IACIoB,EAAKmC,kBAAkB,IAAMnC,EAAKhB,SAASxB,KAAK,MACpD,SAEIwC,EAAKnB,UAAW,CACpB,CAER,CAER,CAkHA,SAASuB,GAAsBJ,GAIvBA,EAAKpB,wBAHLoB,EAAK8B,wBACH9B,EAAKb,oCAAsCa,EAAKZ,oCACnB,IAA3BY,EAAKF,kBAMjB,CACA,SAASuB,GAAQrB,GACbA,EAAKR,WACDQ,EAAKnB,WACLmB,EAAKnB,UAAW,EAChBmB,EAAKlB,WAAWtB,KAAK,MAE7B,CACA,SAAS8D,GAAQtB,GACbA,EAAKR,WACLc,GAAYN,EAChB,CAKA,MAAM4C,GACFn7B,cACIR,KAAK23B,sBAAuB,EAC5B33B,KAAK03B,sBAAuB,EAC5B13B,KAAK43B,UAAW,EAChB53B,KAAK63B,WAAa,IAAI3B,GACtBl2B,KAAK83B,iBAAmB,IAAI5B,GAC5Bl2B,KAAK+3B,SAAW,IAAI7B,GACpBl2B,KAAKg4B,QAAU,IAAI9B,EACvB,CACAqD,IAAI31B,EAAIm2B,EAAWC,GACf,OAAOp2B,EAAG8F,MAAMqwB,EAAWC,EAC/B,CACA0B,WAAW93B,EAAIm2B,EAAWC,GACtB,OAAOp2B,EAAG8F,MAAMqwB,EAAWC,EAC/B,CACAkB,kBAAkBt3B,GACd,OAAOA,GACX,CACA03B,QAAQ13B,EAAIm2B,EAAWC,EAAW35B,GAC9B,OAAOuD,EAAG8F,MAAMqwB,EAAWC,EAC/B,EAQJ,SAASE,GAAiBF,EAAWvvB,GAMjC,SALK/K,MAAMD,QAAQu6B,IAKM,IAArBA,EAAUp+B,UAGuB,IAA9Bo+B,EAAU,IAAIthB,OAAOjO,EAChC,CAsCA,MAAMmxB,GACFp7B,cAIIR,KAAK67B,SAAW98B,OACpB,CACAk8B,YAAYv9B,GACR,MAAMo+B,EAAgB97B,KAAK+7B,mBAAmBr+B,GAC9CsC,KAAK67B,SAASn+B,MAAM,QAASA,GACzBo+B,GACA97B,KAAK67B,SAASn+B,MAAM,iBAAkBo+B,EAE9C,CAEAC,mBAAmBr+B,GACf,IAAIsD,EAAItD,GAAS23B,GAAiB33B,GAClC,KAAOsD,GAAKq0B,GAAiBr0B,IACzBA,EAAIq0B,GAAiBr0B,GAEzB,OAAOA,GAAK,IAChB,EAQJ,MAAMg7B,GAAqC,IAAIjvB,EAA0F,GAAI,CACzIlB,WAAY,OACZC,QAASA,KACL,MAAMitB,EAAO5oB,EAAOsnB,GACdwE,EAAmB9rB,EAAOyrB,IAChC,OAAQ56B,GAAM+3B,EAAKmC,kBAAkB,IAAMe,EAAiBhB,YAAYj6B,GAAE,IAkMlF,SAASk7B,KACL,OAAOC,GAAiBzS,KAAmBN,IAC/C,CAQA,SAAS+S,GAAiB/mB,EAAOmS,GAC7B,OAAO,IAAI6U,GAAW5U,GAAiBpS,EAAOmS,GAClD,CAeA,IACM6U,GAAU,MAAhB,MAAMA,EACF57B,YAAY67B,GACRr8B,KAAKq8B,cAAgBA,CACzB,QAKSr8B,KAAKiN,kBAAoBivB,EAAkB,EACvD,OATKE,CAAU,KAgBhB,SAASE,GAAiB9+B,GACtB,OAAOA,aAAiB4+B,GAAa5+B,EAAM6+B,cAAgB7+B,CAC/D,CAEA,SAAS++B,KAEL,OAAOv8B,KAAKw8B,SAAStiC,OAAOuiC,WAChC,CA2BA,MAAMC,GAKF,WAAIC,GACA,OAAQ38B,KAAK48B,WAAa,IAAI1G,EAClC,CAMA11B,YAAYq8B,GAA2B,GACnC78B,KAAK68B,yBAA2BA,EAChC78B,KAAKvF,OAAQ,EACbuF,KAAK88B,cAAWniC,EAChBqF,KAAKw8B,SAAW,GAChBx8B,KAAK+8B,kBAAmB,EACxB/8B,KAAK48B,cAAWjiC,EAChBqF,KAAKpE,OAAS,EACdoE,KAAKg9B,WAAQriC,EACbqF,KAAKi9B,UAAOtiC,EAKZ,MAAMuiC,EAAQR,GAAUp8B,UACnB48B,EAAMhjC,OAAOuiC,YACdS,EAAMhjC,OAAOuiC,UAAYF,GACjC,CAIAtsB,IAAIlP,GACA,OAAOf,KAAKw8B,SAASz7B,EACzB,CAKAb,IAAI0D,GACA,OAAO5D,KAAKw8B,SAASt8B,IAAI0D,EAC7B,CACAuD,OAAOvD,GACH,OAAO5D,KAAKw8B,SAASr1B,OAAOvD,EAChC,CAKAu5B,KAAKv5B,GACD,OAAO5D,KAAKw8B,SAASW,KAAKv5B,EAC9B,CAKA9B,OAAO8B,EAAIw5B,GACP,OAAOp9B,KAAKw8B,SAAS16B,OAAO8B,EAAIw5B,EACpC,CAKAv4B,QAAQjB,GACJ5D,KAAKw8B,SAAS33B,QAAQjB,EAC1B,CAKAy5B,KAAKz5B,GACD,OAAO5D,KAAKw8B,SAASa,KAAKz5B,EAC9B,CAIA05B,UACI,OAAOt9B,KAAKw8B,SAASn2B,OACzB,CACAlG,WACI,OAAOH,KAAKw8B,SAASr8B,UACzB,CAaAo9B,MAAMC,EAAaC,GACfz9B,KAAKvF,OAAQ,EACb,MAAMijC,EA7wMd,SAASC,GAAQ9mB,GACb,OAAOA,EAAK+mB,KAAKC,OAAOC,kBAC5B,CA2wM8BH,CAAQH,IACzBx9B,KAAK+8B,kBAjyMlB,SAASgB,GAAYrkC,EAAGC,EAAG8jC,GACvB,GAAI/jC,EAAEkC,SAAWjC,EAAEiC,OACf,OAAO,EACX,QAASY,EAAI,EAAGA,EAAI9C,EAAEkC,OAAQY,IAAK,CAC/B,IAAIwhC,EAAStkC,EAAE8C,GACXyhC,EAAStkC,EAAE6C,GAKf,GAJIihC,IACAO,EAASP,EAAiBO,GAC1BC,EAASR,EAAiBQ,IAE1BA,IAAWD,EACX,OAAO,CAEf,CACA,OAAO,CACX,CAkxMsCD,CAAY/9B,KAAKw8B,SAAUkB,EAAeD,MACpEz9B,KAAKw8B,SAAWkB,EAChB19B,KAAKpE,OAAS8hC,EAAc9hC,OAC5BoE,KAAKi9B,KAAOS,EAAc19B,KAAKpE,OAAS,GACxCoE,KAAKg9B,MAAQU,EAAc,GAEnC,CAIAQ,uBAC0BvjC,IAAlBqF,KAAK48B,WAA2B58B,KAAK+8B,mBAAqB/8B,KAAK68B,2BAC/D78B,KAAK48B,SAASrG,KAAKv2B,KAC3B,CAEAm+B,QAAQC,GACJp+B,KAAK88B,SAAWsB,CACpB,CAEAC,WACIr+B,KAAKvF,OAAQ,EACbuF,KAAK88B,YACT,CAEA7c,eAC0BtlB,IAAlBqF,KAAK48B,WACL58B,KAAK48B,SAASp9B,WACdQ,KAAK48B,SAASn8B,cAEtB,EAOJ,MAAM69B,GAA2B,kBAE3BC,GAAsC,kBAI5C,SAASC,GAA4BppB,GACjC,MAAMrB,EAAQqB,EAAMqpB,YACpB,GAAc,OAAV1qB,EACA,OAAO,EAEX,QAASvX,EAAI,EAAGA,EAAIuX,EAAMnY,OAAQY,GAAK,EAAG,CACtC,MAAMgB,EAAQuW,EAAMvX,GAGpB,GAAqB,iBAAVgB,EACP,OAAO,EACX,GAAqB,iBAAVA,GAAsBA,EAAM+X,gBAAkBgpB,GACrD,OAAO,CAEf,CACA,OAAO,CACX,CAIA,SAASG,GAA+BC,GACpC,OAAOA,EAAMC,aAAaN,GAC9B,CAKA,SAASO,GAA4BzpB,GACjC,QAAqE,KAA7DA,EAAMhG,MAClB,CA+BA,MAAM0vB,GAAiB,IAAItf,IAE3B,IAAIuf,GAAkB,EAgBtB,SAASC,GAAgBzX,GAErBuX,GAAe9I,OAAOzO,EAAMhD,IAChC,CA8KA,MAAM0a,GAAwB,gBAmB9B,SAASC,GAAgBv0B,EAAQ+N,GAKzB0M,GAAQ1M,IACR/N,EAAOs0B,IAAyBvmB,EAAK6L,IApN7C,SAAS4a,GAAc5X,GAEnBuX,GAAejf,IAAI0H,EAAMhD,IAAKgD,EAClC,CAkNQ4X,CAAczmB,IAGd/N,EAAOs0B,IAAyBvmB,CAExC,CAiLA,SAAS0mB,GAAmB7X,GACxB,OAAO8X,GAAqB9X,EAAMvD,IACtC,CAIA,SAASsb,GAAkB3hB,GACvB,OAAO0hB,GAAqB1hB,EAAU6F,IAC1C,CACA,SAAS6b,GAAqBE,GAC1B,KAA2B,OAApBA,IAA6Bla,GAAaka,IAC7CA,EAAkBA,EAAgB/b,IAEtC,OAAO+b,CACX,CA8aA,IAAIC,GAiBJ,SAASC,KACL,QAAiB9kC,IAAb6kC,GACA,OAAOA,GAEN,UAAWE,SAAa,IACzB,OAAOA,SAEX,MAAM,IAAI/2B,EAAa,KAAkFqH,EAO7G,CAgCA,MAAM2vB,GAAS,IAAI5yB,EAAqC,GAAI,CACxDlB,WAAY,OACZC,QAASA,IAAM8zB,KAGbA,GAAiB,KAKjBC,GAAuB,IAAI9yB,EAAoD,IAK/E+yB,GAAc,IAAI/yB,EAA2C,GAAI,CACnElB,WAAY,WACZC,QAASA,IAAM,YAiBbi0B,GAAwB,IAAIhzB,EAAmD,IAS/EizB,GAAY,IAAIjzB,EAAyC,GAAI,CAC/DlB,WAAY,OACZC,QAASA,IAkBE2zB,KAAcQ,MAAMC,cAAc,iBAAiBC,aAAa,eAAiB,OAwChG,SAASC,KACL,MAAMC,EAAgB,IAAIC,GAC1B,MAA4B,YAAxBnwB,EAAO2vB,MACPO,EAAcvZ,MAuFtB,SAASyZ,GAAyBC,EAAKC,GAGnC,MAAMC,EAASF,EAAIG,eAAeF,EAAQ,UAC1C,GAAIC,GAAQE,YACR,IAII,OAAOjnB,KAAKknB,MAAMH,EAAOE,YAC7B,OACO5/B,GACHjC,QAAQC,KAAK,mDAAqDyhC,EAAOz/B,EAC7E,CAEJ,MAAO,CAAC,CACZ,CAvG8Bu/B,CAAyBd,KAAetvB,EAAOwvB,MAElEU,CACX,CACA,IAeMC,GAAa,MAAnB,MAAMA,EACF9/B,cAEIR,KAAK8mB,MAAQ,CAAC,EACd9mB,KAAK8gC,qBAAuB,CAAC,CACjC,QAES9gC,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAOy1B,EACPz0B,WAAY,OACZC,QAASs0B,IACT,CAIJnwB,IAAIxF,EAAKxC,GACL,YAA2BtN,IAApBqF,KAAK8mB,MAAMrc,GAAqBzK,KAAK8mB,MAAMrc,GAAOxC,CAC7D,CAIA4X,IAAIpV,EAAKjN,GACLwC,KAAK8mB,MAAMrc,GAAOjN,CACtB,CAIAsD,OAAO2J,UACIzK,KAAK8mB,MAAMrc,EACtB,CAIAs2B,OAAOt2B,GACH,OAAOzK,KAAK8mB,MAAM7c,eAAeQ,EACrC,CAIA,WAAItC,GACA,OAA0C,IAAnCvO,OAAOkoB,KAAK9hB,KAAK8mB,OAAOlrB,MACnC,CAIAolC,YAAYv2B,EAAK+V,GACbxgB,KAAK8gC,qBAAqBr2B,GAAO+V,CACrC,CAIAygB,SAEI,UAAWx2B,KAAOzK,KAAK8gC,qBACnB,GAAI9gC,KAAK8gC,qBAAqB72B,eAAeQ,GACzC,IACIzK,KAAK8mB,MAAMrc,GAAOzK,KAAK8gC,qBAAqBr2B,IAChD,OACOzJ,GACHjC,QAAQC,KAAK,sCAAuCgC,EACxD,CAKR,OAAO2Y,KAAK/O,UAAU5K,KAAK8mB,OAAOrF,QAAQ,KAAM,UACpD,EACH,OAnEK6e,CAAa,KAuFnB,MAAMY,GAAsB,IAEtBC,GAAsB,IAK5B,IAAIC,GACH,SAAUA,GACPA,SAAmBC,WAAgB,IACnCD,EAAmBE,YAAiB,IAF7BF,CAGX,CAHC,CAGEA,IAA4C,CAAC,GAKhD,MAAMG,GAAqB,IACrBC,GAAY,IACZC,GAAa,IACbC,GAAa,IACbC,GAAiB,IACjBC,GAAc,IACdC,GAAQ,IACRC,GAAqB,IAWrBC,GAJ0B,cAU1BC,GAAgB,MAIhBC,GAA+B,OAUrC,IAAIC,GAA6BA,IAAM,KACvC,SAASC,GAA0BxD,EAAO9uB,EAAU8V,GAAa,GAC7D,IAAIyc,EAAezD,EAAMwB,aAAa6B,IACtC,GAAoB,MAAhBI,EACA,OAAO,KAWX,MAAOC,EAAkBC,GAAeF,EAAaG,MAAM,KAE3D,GADAH,EAAezc,EAAa2c,EAAcD,GACrCD,EACD,OAAO,KAGX,MACMI,EAAe7c,EAAa0c,EADlBC,EAAc,IAAIA,IAAgB,GAElD,IAAI5pB,EAAO,CAAC,EAIZ,GAAqB,KAAjB0pB,EAAqB,CACrB,MAAM/B,EAAgBxwB,EAASI,IAAIqwB,GAAe,KAAM,CAAEjwB,UAAU,IAC9C,OAAlBgwB,IAIA3nB,EAHgB2nB,EAAcpwB,IAAI8xB,GAAc,IAGjClE,OAAOuE,IAM9B,CACA,MAAMK,EAAiB,CACnB/pB,OACA8S,WAAYmT,EAAMnT,YAAc,MAEpC,OAAI7F,IAQA8c,EAAejX,WAAamT,EAG5B+D,GAAeD,EAAgB,EAAG9D,EAAMgE,cAExCH,EAGA7D,EAAMxqB,aAAa6tB,GAAeQ,GAKlC7D,EAAMiE,gBAAgBZ,IAOnBS,CACX,CAWA,SAASI,GAAsBlE,EAAO9uB,EAAU8V,GAAa,GACzD,OAAOuc,GAA2BvD,EAAO9uB,EAAU8V,EACvD,CAOA,SAASmd,GAAqBC,GAE1B,IAAIxb,EAAQwb,EAAQvO,OAIpB,OAAmB,IAHLjN,EAAMlE,GAGV5X,KACC,MAIPka,GAAW4B,KACXA,EAAQA,EAAM3C,IAEX2C,EACX,CAwGA,SAASmb,GAAeM,EAAejiC,EAAOvF,GAC1CwnC,EAAcC,eAAiB,CAAC,EAChCD,EAAcC,aAAaliC,GAASvF,CACxC,CACA,SAAS0nC,GAAeF,EAAejiC,GACnC,OAAOiiC,EAAcC,eAAeliC,IAAU,IAClD,CAuBA,SAASoiC,GAA4BH,EAAejiC,GAChD,OAAOiiC,EAActqB,KAAK+oB,MAAc1gC,IAAU,IACtD,CAKA,SAASqiC,GAA4BJ,EAAejiC,GAChD,MAAMsiC,EAAQF,GAA4BH,EAAejiC,IAAU,GACnE,IAAIuiC,EAAW,EACf,QAAS3b,KAAQ0b,EACbC,GAAY3b,EAAKga,KAAmBha,EAAK+Z,KAAe,GAE5D,OAAO4B,CACX,CAkBA,SAASC,GAAqBP,EAAejiC,GAEzC,UAAWiiC,EAAcQ,kBAAsB,IAAa,CACxD,MAAMC,EAAUT,EAActqB,KAAKopB,IACnCkB,EAAcQ,kBAAoBC,EAAU,IAAIzmB,IAAIymB,GAAW,IACnE,CACA,QAnBJ,SAASC,GAAsBV,GAE3B,UAAWA,EAAcQ,kBAAsB,IAAa,CACxD,MAAMC,EAAUT,EAActqB,KAAKopB,IACnCkB,EAAcQ,kBAAoBC,EAAU,IAAIzmB,IAAIymB,GAAW,IACnE,CACA,OAAOT,EAAcQ,iBACzB,CAYaE,CAAsBV,IAAgB/kB,IAAIld,EACvD,CAkDA,MAAM4iC,GAAiC,IAAI52B,EAAoG,IAQzI62B,GAAwB,IAAI72B,EAA2F,GAAI,CAC7HlB,WAAY,OACZC,QAASA,KAPyB,IAkCtC,IAAI+3B,GA2HAC,GAxFJ,SAASC,GAAsBC,GAC3B,OA/BJ,SAASC,KACL,QAAiBtpC,IAAbkpC,KACAA,GAAW,KACPx5B,GAAQ65B,cACR,IACIL,GAAWx5B,GAAQ65B,aAAaC,aAAa,UAAW,CACpDC,WAAaC,GAAMA,EACnBC,aAAeD,GAAMA,EACrBE,gBAAkBF,GAAMA,GAEhC,OAKI,CAIZ,OAAOR,EACX,CAWWI,IAAeG,WAAWJ,IAASA,CAC9C,CA2FA,SAASQ,KACL,QAAe7pC,IAAXmpC,KACAA,GAAS,KACLz5B,GAAQ65B,cACR,IACIJ,GAASz5B,GAAQ65B,aAAaC,aAAa,wBAAyB,CAChEC,WAAaC,GAAMA,EACnBC,aAAeD,GAAMA,EACrBE,gBAAkBF,GAAMA,GAEhC,OAKI,CAIZ,OAAOP,EACX,CASA,SAASW,GAA4BT,GACjC,OAAOQ,MAAaJ,WAAWJ,IAASA,CAC5C,CAoBA,SAASU,GAAiCC,GACtC,OAAOH,MAAaD,gBAAgBI,IAAQA,CAChD,CAEA,MAAMC,GACFpkC,YAAYqkC,GACR7kC,KAAK6kC,sCAAwCA,CACjD,CACA1kC,WACI,MAAQ,0CAA0CH,KAAK6kC,8CAC1Cn8B,KACjB,EAEJ,MAAMo8B,WAAqBF,GACvBG,cACI,MAAO,MACX,EAEJ,MAAMC,WAAsBJ,GACxBG,cACI,MAAO,OACX,EAEJ,MAAME,WAAuBL,GACzBG,cACI,MAAO,QACX,EAEJ,MAAMG,WAAoBN,GACtBG,cACI,MAAO,KACX,EAEJ,MAAMI,WAA4BP,GAC9BG,cACI,MAAO,aACX,EAEJ,SAASK,GAAgB5nC,GACrB,OAAOA,aAAiBonC,GAClBpnC,EAAMqnC,sCACNrnC,CACV,CACA,SAAS6nC,GAAgC7nC,EAAOiO,GAC5C,MAAM65B,EASV,SAASC,GAA0B/nC,GAC/B,OAAQA,aAAiBonC,IAAiBpnC,EAAMunC,eAAkB,IACtE,CAXuBQ,CAA0B/nC,GAC7C,GAAkB,MAAd8nC,GAAsBA,IAAe75B,EAAM,CAE3C,GAAmB,gBAAf65B,GAAsE,QAAT75B,EAC7D,OAAO,EACX,MAAM,IAAIhQ,MAAM,mBAAmBgQ,YAAe65B,UAAmB58B,MACzE,CACA,OAAO48B,IAAe75B,CAC1B,CAgFA,MAAM+5B,GACFhlC,YAAYilC,GACRzlC,KAAKylC,oBAAsBA,CAC/B,CACAC,oBAAoB1B,GAKhBA,EAAO,0BAA4BA,EACnC,IACI,MAAM/D,GAAO,IAAI0F,OAAOC,WAAYC,gBAAgB9B,GAAsBC,GAAO,aAAa/D,KAC9F,OAAa,OAATA,EAIOjgC,KAAKylC,oBAAoBC,oBAAoB1B,IAExD/D,EAAKzU,YAAY1qB,SACVm/B,EACX,OAEI,OAAO,IACX,CACJ,EAMJ,MAAM6F,GACFtlC,YAAYulC,GACR/lC,KAAK+lC,WAAaA,EAClB/lC,KAAKgmC,cAAgBhmC,KAAK+lC,WAAWE,eAAeC,mBAAmB,qBAC3E,CACAR,oBAAoB1B,GAChB,MAAMmC,EAAanmC,KAAKgmC,cAAcI,cAAc,YACpDD,SAAWE,UAAYtC,GAAsBC,GACtCmC,CACX,EA6CJ,MAAMG,GAAmB,4DACzB,SAASC,GAAa5B,GAElB,OADAA,EAAMx2B,OAAOw2B,IACL6B,MAAMF,IACH3B,EAIJ,UAAYA,CACvB,CAEA,SAAS8B,GAAOC,GACZ,MAAM37B,EAAM,CAAC,EACb,UAAW47B,KAAKD,EAAKnE,MAAM,KACvBx3B,EAAI47B,IAAK,EACb,OAAO57B,CACX,CACA,SAAS67B,MAASC,GACd,MAAM97B,EAAM,CAAC,EACb,UAAWs5B,KAAKwC,EACZ,UAAWhX,KAAKwU,EACRA,EAAEp6B,eAAe4lB,KACjB9kB,EAAI8kB,IAAK,GAGrB,OAAO9kB,CACX,CAMA,MAAM+7B,GAAgBL,GAAO,0BAGvBM,GAAkCN,GAAO,kDACzCO,GAAmCP,GAAO,SAU1CQ,GAAiBL,GAAME,GAPNF,GAAMG,GAAiCN,GAAO,oMAI7CG,GAAMI,GAAkCP,GAAO,+LANrCG,GAAMI,GAAkCD,KAWpEG,GAAYT,GAAO,gEAoBnBU,GAAcP,GAAMM,GAnBPT,GAAO,wdAMPA,GAAO,6qBAmBpBW,GAA8CX,GAAO,yBAK3D,MAAMY,GACF7mC,cAGIR,KAAKsnC,oBAAqB,EAC1BtnC,KAAKunC,IAAM,EACf,CACAC,iBAAiBC,GAIb,IAAIp1B,EAAUo1B,EAAGjc,WACbkc,GAAkB,EAClBC,EAAc,GAClB,KAAOt1B,GAWH,GAVIA,EAAQu1B,WAAaC,KAAKC,aAC1BJ,EAAkB1nC,KAAK+nC,aAAa11B,GAE/BA,EAAQu1B,WAAaC,KAAKG,UAC/BhoC,KAAKioC,MAAM51B,EAAQ61B,WAInBloC,KAAKsnC,oBAAqB,EAE1BI,GAAmBr1B,EAAQmZ,WAE3Bmc,EAAY3qC,KAAKqV,GACjBA,EAAU81B,GAAc91B,QAG5B,KAAOA,GAAS,CAGRA,EAAQu1B,WAAaC,KAAKC,cAC1B9nC,KAAKooC,WAAW/1B,GAEpB,IAAI9S,EAAO8oC,GAAeh2B,GAC1B,GAAI9S,EAAM,CACN8S,EAAU9S,EACV,KACJ,CAEA8S,EAAUs1B,EAAYlrC,KAC1B,CAEJ,OAAOuD,KAAKunC,IAAInnC,KAAK,GACzB,CASA2nC,aAAaO,GACT,MAAMC,EAAUC,GAAYF,GAAS/yB,cACrC,IAAK0xB,GAAeh9B,eAAes+B,GAC/B,OAAAvoC,KAAKsnC,oBAAqB,GAClBF,GAA4Cn9B,eAAes+B,GAEvEvoC,KAAKunC,IAAIvqC,KAAK,KACdgD,KAAKunC,IAAIvqC,KAAKurC,GACd,MAAME,EAAUH,EAAQI,WACxB,QAASlsC,EAAI,EAAGA,EAAIisC,EAAQ7sC,OAAQY,IAAK,CACrC,MAAMmsC,EAASF,EAAQ7zB,KAAKpY,GACtByX,EAAW00B,EAAOtoC,KAClBuoC,EAAQ30B,EAASsB,cACvB,IAAK4xB,GAAYl9B,eAAe2+B,GAAQ,CACpC5oC,KAAKsnC,oBAAqB,EAC1B,QACJ,CACA,IAAI9pC,EAAQmrC,EAAOnrC,MAEf0pC,GAAU0B,KACVprC,EAAQ+oC,GAAa/oC,IACzBwC,KAAKunC,IAAIvqC,KAAK,IAAKiX,EAAU,KAAM40B,GAAerrC,GAAQ,IAC9D,CACA,OAAAwC,KAAKunC,IAAIvqC,KAAK,MACP,CACX,CACAorC,WAAW/1B,GACP,MAAMk2B,EAAUC,GAAYn2B,GAASkD,cACjC0xB,GAAeh9B,eAAes+B,KAAazB,GAAc78B,eAAes+B,KACxEvoC,KAAKunC,IAAIvqC,KAAK,MACdgD,KAAKunC,IAAIvqC,KAAKurC,GACdvoC,KAAKunC,IAAIvqC,KAAK,KAEtB,CACAirC,MAAMA,GACFjoC,KAAKunC,IAAIvqC,KAAK6rC,GAAeZ,GACjC,EAeJ,SAASI,GAAe7sC,GACpB,MAAMmnC,EAAcnnC,EAAKmnC,YAIzB,GAAIA,GAAennC,IAASmnC,EAAYmG,gBACpC,MAAMC,GAAsBpG,GAEhC,OAAOA,CACX,CAKA,SAASwF,GAAc3sC,GACnB,MAAMgwB,EAAahwB,EAAKgwB,WACxB,GAAIA,GAxBR,SAASwd,GAAmBC,EAAYC,GACpC,OAASD,EAAWE,wBAAwBD,GAAarB,KAAKuB,kCAC1DvB,KAAKuB,8BACb,CAqBsBJ,CAAmBxtC,EAAMgwB,GACvC,MAAMud,GAAsBvd,GAEhC,OAAOA,CACX,CAEA,SAASgd,GAAYhtC,GACjB,MAAM6tC,EAAW7tC,EAAK6tC,SAEtB,MAA2B,iBAAbA,EAAwBA,EAAW,MACrD,CACA,SAASN,GAAsBvtC,GAC3B,OAAO,IAAIC,MAAM,6DAA6DD,EAAK8tC,YACvF,CAEA,MAAMC,GAAwB,kCAExBC,GAA0B,gBAOhC,SAASX,GAAerrC,GACpB,OAAOA,EACFikB,QAAQ,KAAM,SACdA,QAAQ8nB,GAAuB,SAAU/C,GAG1C,MAAO,MAAwB,MAFpBA,EAAM7yB,WAAW,GAEP,QADT6yB,EAAM7yB,WAAW,GACiB,OAAU,OAAW,GACvE,GACK8N,QAAQ+nB,GAAyB,SAAUhD,GAC5C,MAAO,KAAOA,EAAM7yB,WAAW,GAAK,GACxC,GACK8N,QAAQ,KAAM,QACdA,QAAQ,KAAM,OACvB,CACA,IAAIgoB,GAKJ,SAASC,GAAc3D,EAAY4D,GAC/B,IAAIC,EAAmB,KACvB,IACIH,GAAkBA,IApV1B,SAASI,GAAmB9D,GACxB,MAAMN,EAAsB,IAAIK,GAAoBC,GACpD,OAsDJ,SAAS+D,KACL,IACI,SAAS,IAAInE,OAAOC,WAAYC,gBAAgB9B,GAAsB,IAAK,YAC/E,OAEI,OAAO,CACX,CACJ,CA7DW+F,GAAyB,IAAItE,GAAgBC,GAAuBA,CAC/E,CAiV6CoE,CAAmB9D,GAExD,IAAIgE,EAAaJ,EAAkBx7B,OAAOw7B,GAAmB,GAC7DC,EAAmBH,GAAgB/D,oBAAoBqE,GAGvD,IAAIC,EAAe,EACfC,EAAaF,EACjB,EAAG,CACC,GAAqB,IAAjBC,EACA,MAAM,IAAIvuC,MAAM,yDAEpBuuC,IACAD,EAAaE,EACbA,EAAaL,EAAiBvD,UAC9BuD,EAAmBH,GAAgB/D,oBAAoBqE,EAC3D,OAASA,IAAeE,GAMxB,OAAOlG,IALW,IAAIsD,IACKG,iBAAiB0C,GAAmBN,IAAqBA,GAKxF,SAGI,GAAIA,EAAkB,CAClB,MAAM/lC,EAASqmC,GAAmBN,IAAqBA,EACvD,KAAO/lC,EAAO2nB,YACV3nB,EAAO2nB,WAAW1qB,QAE1B,CACJ,CACJ,CACA,SAASopC,GAAmBzC,GACxB,MAAO,YAAaA,GAIxB,SAAS0C,GAAkB1C,GACvB,OAAOA,EAAGG,WAAaC,KAAKC,cAAgC,aAAhBL,EAAG4B,QACnD,CANgEc,CAAkB1C,GACxEA,EAAG2C,QACH,IACV,CAcA,IAAIC,GACH,SAAUA,GACPA,SAAgBA,EAAgBC,KAAU,GAAK,OAC/CD,EAAgBA,EAAgBE,KAAU,GAAK,OAC/CF,EAAgBA,EAAgBG,MAAW,GAAK,QAChDH,EAAgBA,EAAgBI,OAAY,GAAK,SACjDJ,EAAgBA,EAAgBK,IAAS,GAAK,MAC9CL,EAAgBA,EAAgBM,aAAkB,GAAK,eANhDN,CAOX,CAPC,CAOEA,IAAsC,CAAC,GAiB1C,SAASO,GAAeb,GACpB,MAAMc,EAAYC,KAClB,OAAID,EACOpG,GAA4BoG,EAAUE,SAASV,GAAgBE,KAAMR,IAAe,IAE3F1E,GAAgC0E,EAAY,QACrCtF,GAA4BW,GAAgB2E,IAEhDL,GAAcjK,KAAevxB,EAAgB67B,GACxD,CAsCA,SAASiB,GAAcC,GACnB,MAAMJ,EAAYC,KAClB,OAAID,EACOA,EAAUE,SAASV,GAAgBK,IAAKO,IAAc,GAE7D5F,GAAgC4F,EAAW,OACpC7F,GAAgB6F,GAEpB1E,GAAar4B,EAAgB+8B,GACxC,CAYA,SAASC,GAAsBC,GAC3B,MAAMN,EAAYC,KAClB,GAAID,EACA,OAAOnG,GAAiCmG,EAAUE,SAASV,GAAgBM,aAAcQ,IAAsB,IAEnH,GAAI9F,GAAgC8F,EAAmB,eACnD,OAAOzG,GAAiCU,GAAgB+F,IAE5D,MAAM,IAAIxiC,EAAa,KAAyDqH,EACpF,CA8HA,SAAS86B,KACL,MAAMvjB,EAAQ6B,IACd,OAAO7B,GAASA,EAAMzD,IAAa+mB,SACvC,CAOA,MAAMO,GAAqB,6BAIrBC,GAAoB,SACpBC,GAA4B,iBAwYlC,SAASC,GAAkB17B,GACvB,MAA2D,aAAnDA,GAAYM,EAAOglB,KAAWllB,IAAI6vB,GAC9C,CA+GA,IAAI0L,GACH,SAAUA,GAOPA,SAAoBA,EAAoBC,UAAe,GAAK,YAI5DD,EAAoBA,EAAoBE,SAAc,GAAK,WAXpDF,CAYX,CAZC,CAYEA,IAA8C,CAAC,GAElD,IAAIG,GAIJ,SAASC,GAAoBC,EAAmBtkB,GAC5C,OAAOokB,GAAqBE,EAAmBtkB,EACnD,CAmBA,SAASukB,GAA0BC,EAAQl4B,EAAUhQ,EAAQmoC,EAAeC,GAKxE,GAAqB,MAAjBD,EAAuB,CACvB,IAAIE,EACAC,GAAc,EAId9mB,GAAa2mB,GACbE,EAAaF,EAER5mB,GAAQ4mB,KACbG,GAAc,EAEdH,EAAgBA,EAAc5oB,KAElC,MAAMub,EAAQtX,GAAY2kB,GACX,IAAXD,GAA4D,OAAXloC,EAC/B,MAAdooC,EACAG,GAAkBv4B,EAAUhQ,EAAQ86B,GAGpC0N,GAAmBx4B,EAAUhQ,EAAQ86B,EAAOsN,GAAc,MAAM,GAGpD,IAAXF,GAA4D,OAAXloC,EACtDwoC,GAAmBx4B,EAAUhQ,EAAQ86B,EAAOsN,GAAc,MAAM,GAEhD,IAAXF,EACLO,GAAiBz4B,EAAU8qB,EAAOwN,GAElB,IAAXJ,GAELl4B,EAAS04B,YAAY5N,GAEP,MAAduN,GA4xBZ,SAASM,GAAe34B,EAAUk4B,EAAQG,EAAYO,EAAgBR,GAElE,MAAMS,EAASR,EAAWnnB,IAQtB2nB,IAPWrlB,GAAY6kB,IAYvBJ,GAA0BC,EAAQl4B,EAAU44B,EAAgBC,EAAQT,GAExE,QAASzvC,EAAIyoB,GAAyBzoB,EAAI0vC,EAAWtwC,OAAQY,IAAK,CAC9D,MAAM+qB,EAAQ2kB,EAAW1vC,GACzBmwC,GAAUplB,EAAMlE,GAAQkE,EAAO1T,EAAUk4B,EAAQU,EAAgBC,EACrE,CACJ,CAhzBYF,CAAe34B,EAAUk4B,EAAQG,EAAYroC,EAAQooC,EAE7D,CACJ,CACA,SAASW,GAAe/4B,EAAUrW,GAG9B,OAAOqW,EAASg5B,WAAWrvC,EAC/B,CAKA,SAASsvC,GAAkBj5B,EAAUrW,GAEjC,OAAOqW,EAASk5B,cA3jBpB,SAASC,GAAkBxvC,GACvB,OAAOA,EAAMikB,QAAQ2pB,GAAqB9pB,GAASA,EAAKG,QAAQ4pB,GAAmBC,IACvF,CAyjBkC0B,CAAkBxvC,GACpD,CAQA,SAASyvC,GAAkBp5B,EAAUxT,EAAM6sC,GAEvC,OAAOr5B,EAASuyB,cAAc/lC,EAAM6sC,EACxC,CAyCA,SAASC,GAAkBp0B,EAAOwO,GAI9BA,EAAMzD,IAAayE,0BAA0BC,OAAO,GACpDmkB,GAAU5zB,EAAOwO,EAAOA,EAAMxD,GAAW,EAAoC,KAAM,KACvF,CAqGA,SAASqpB,GAAeC,EAAsB9lB,GAG1C,MAAM+lB,EAAaD,EAAqBroB,IAClCnhB,EAAS0jB,EAAMhE,KAEjB6B,GAAQvhB,IAMuB0jB,EAAMpD,MAFNtgB,EAAO0f,IAAQY,OAH9CkpB,EAAqB/pB,IAAU4B,GAAgBC,sBAchC,OAAfmoB,EACAD,EAAqBroB,IAAe,CAACuC,GAGrC+lB,EAAWtwC,KAAKuqB,EAExB,CACA,SAASgmB,GAAgBF,EAAsB9lB,GAI3C,MAAM+lB,EAAaD,EAAqBroB,IAClCwoB,EAAuBF,EAAW5rC,QAAQ6lB,GAChD+lB,EAAWzrC,OAAO2rC,EAAsB,EAC5C,CAWA,SAASC,GAAWvB,EAAYwB,GAC5B,GAAIxB,EAAWtwC,QAAUqpB,GACrB,OACJ,MAAM0oB,EAAmB1oB,GAA0ByoB,EAC7CE,EAAe1B,EAAWyB,GAChC,GAAIC,EAAc,CACd,MAAMC,EAAwBD,EAAaxpB,IACb,OAA1BypB,GAAkCA,IAA0B3B,GAC5DqB,GAAgBM,EAAuBD,GAEvCF,EAAc,IACdxB,EAAWyB,EAAmB,GAAGnqB,IAAQoqB,EAAapqB,KAE1D,MAAMsqB,EAAev8B,GAAgB26B,EAAYjnB,GAA0ByoB,IApMnF,SAASK,GAAkBh1B,EAAOwO,GAC9B4lB,GAAkBp0B,EAAOwO,GACzBA,EAAMnE,IAAQ,KACdmE,EAAM9D,IAAU,IACpB,CAiMQsqB,CAAkBH,EAAavqB,GAAQuqB,GAEvC,MAAMI,EAAWF,EAAaxpB,IACb,OAAb0pB,GACAA,EAASP,WAAWK,EAAazqB,IAErCuqB,EAAarqB,IAAU,KACvBqqB,EAAapqB,IAAQ,KAErBoqB,EAAatqB,KAAU,GAC3B,CACA,OAAOsqB,CACX,CAQA,SAASK,GAAal1B,EAAOwO,GACzB,KAAqB,IAAfA,EAAMjE,IAA0C,CAClD,MAAMzP,EAAW0T,EAAMxD,GACnBlQ,EAAS04B,aACTI,GAAU5zB,EAAOwO,EAAO1T,EAAU,EAAqC,KAAM,MA3KzF,SAASq6B,GAAgBC,GAErB,IAAIC,EAAoBD,EAASnqB,IACjC,IAAKoqB,EACD,OAAOC,GAAYF,EAAS9qB,GAAQ8qB,GAExC,KAAOC,GAAmB,CACtB,IAAI7uC,EAAO,KACX,GAAI6lB,GAAQgpB,GAER7uC,EAAO6uC,EAAkBpqB,QAExB,CAGD,MAAMsqB,EAAYF,EAAkBnpB,IAChCqpB,IACA/uC,EAAO+uC,EACf,CACA,IAAK/uC,EAAM,CAGP,KAAO6uC,IAAsBA,EAAkB5qB,KAAS4qB,IAAsBD,GACtE/oB,GAAQgpB,IACRC,GAAYD,EAAkB/qB,GAAQ+qB,GAE1CA,EAAoBA,EAAkB7qB,IAEhB,OAAtB6qB,IACAA,EAAoBD,GACpB/oB,GAAQgpB,IACRC,GAAYD,EAAkB/qB,GAAQ+qB,GAE1C7uC,EAAO6uC,GAAqBA,EAAkB5qB,GAClD,CACA4qB,EAAoB7uC,CACxB,CACJ,CAwIQ2uC,CAAgB3mB,EACpB,CACJ,CASA,SAAS8mB,GAAYt1B,EAAOwO,GACxB,GAAmB,IAAfA,EAAMjE,GACN,OAEJ,MAAM/mB,EAAe4jB,GAAoB,MACzC,IAGIoH,EAAMjE,KAAU,IAMhBiE,EAAMjE,IAAU,IAChBiE,EAAM5C,KAA+B4pB,GAAkBhnB,EAAM5C,KAyErE,SAAS6pB,GAAkBz1B,EAAOwO,GAE9B,IAAIiG,EACJ,GAAa,MAATzU,GAAwD,OAAtCyU,EAAezU,EAAMyU,cACvC,QAAShxB,EAAI,EAAGA,EAAIgxB,EAAa5xB,OAAQY,GAAK,EAAG,CAC7C,MAAM8G,EAAUikB,EAAMiG,EAAahxB,IAEnC,KAAM8G,aAAmBmrB,IAAsB,CAC3C,MAAMggB,EAASjhB,EAAahxB,EAAI,GAChC,GAAIkD,MAAMD,QAAQgvC,GACd,QAAS79B,EAAI,EAAGA,EAAI69B,EAAO7yC,OAAQgV,GAAK,EAAG,CACvC,MAAM89B,EAAcprC,EAAQmrC,EAAO79B,IAC7B0P,EAAOmuB,EAAO79B,EAAI,GACxBsW,GAAS,EAA0CwnB,EAAapuB,GAChE,IACIA,EAAKvgB,KAAK2uC,EACd,SAEIxnB,GAAS,EAAwCwnB,EAAapuB,EAClE,CACJ,KAEC,CACD4G,GAAS,EAA0C5jB,EAASmrC,GAC5D,IACIA,EAAO1uC,KAAKuD,EAChB,SAEI4jB,GAAS,EAAwC5jB,EAASmrC,EAC9D,CACJ,CACJ,CACJ,CAER,CA1GQD,CAAkBz1B,EAAOwO,GA4BjC,SAASonB,GAAgB51B,EAAOwO,GAE5B,MAAMqnB,EAAW71B,EAAMie,QACjB6X,EAAWtnB,EAAM5D,IACvB,GAAiB,OAAbirB,EACA,QAASpyC,EAAI,EAAGA,EAAIoyC,EAAShzC,OAAS,EAAGY,GAAK,EAC1C,GAA2B,iBAAhBoyC,EAASpyC,GAAiB,CAGjC,MAAMsyC,EAAYF,EAASpyC,EAAI,GAE3BsyC,GAAa,EAEbD,EAASC,KAITD,GAAUC,GAAWruC,cAEzBjE,GAAK,CACT,MAIIoyC,EAASpyC,GAAGuD,KADI8uC,EAASD,EAASpyC,EAAI,KAKjC,OAAbqyC,IACAtnB,EAAM5D,IAAW,MAErB,MAAM6J,EAAejG,EAAM9C,IAC3B,GAAqB,OAAjB+I,EAAuB,CAGvBjG,EAAM9C,IAAoB,KAC1B,QAASjoB,EAAI,EAAGA,EAAIgxB,EAAa5xB,OAAQY,KAGrCuyC,EAFuBvhB,EAAahxB,KAI5C,CACJ,CArEQmyC,CAAgB51B,EAAOwO,GAEG,IAAtBA,EAAMlE,GAAO5X,MAEb8b,EAAMxD,GAAU9D,UAEpB,MAAMotB,EAAuB9lB,EAAMnD,IAEnC,GAA6B,OAAzBipB,GAAiChoB,GAAakC,EAAMhE,KAAU,CAE1D8pB,IAAyB9lB,EAAMhE,KAC/BgqB,GAAgBF,EAAsB9lB,GAG1C,MAAMymB,EAAWzmB,EAAMjD,IACN,OAAb0pB,GACAA,EAASP,WAAW10B,EAE5B,CAEAimB,GAAgBzX,EACpB,SAEIpH,GAAoB5jB,EACxB,CACJ,CAiGA,SAASyyC,GAAkBj2B,EAAO3D,EAAOmS,GACrC,OAiBJ,SAAS0nB,GAAmBl2B,EAAO3D,EAAOmS,GACtC,IAAI2D,EAAc9V,EAIlB,KAAuB,OAAhB8V,GACiB,IAApBA,EAAYzf,MAEZyf,GADA9V,EAAQ8V,GACYrnB,OAIxB,GAAoB,OAAhBqnB,EAGA,OAAO3D,EAAMnE,IAEZ,CAED,MAAQoC,mBAAoB0F,EAC5B,GAAI1F,GAAkB,EAAI,CAEtB,MAAQ7M,iBAAkBI,EAAML,KAAKwS,EAAY2B,eAAiBrH,GAOlE,GAAI7M,IAAkB7F,GAAoBG,MACtC0F,IAAkB7F,GAAoBE,SACtC,OAAO,IAEf,CACA,OAAOwU,GAAiB0D,EAAa3D,EACzC,CACJ,CArDW0nB,CAAmBl2B,EAAO3D,EAAMvR,OAAQ0jB,EACnD,CAyDA,SAAS8kB,GAAmBx4B,EAAUhQ,EAAQ+nB,EAAOqgB,EAAYiD,GAE7Dr7B,EAASs7B,aAAatrC,EAAQ+nB,EAAOqgB,EAAYiD,EACrD,CACA,SAAS9C,GAAkBv4B,EAAUhQ,EAAQ+nB,GAGzC/X,EAASu7B,YAAYvrC,EAAQ+nB,EACjC,CACA,SAASyjB,GAA2Bx7B,EAAUhQ,EAAQ+nB,EAAOqgB,EAAYiD,GAClD,OAAfjD,EACAI,GAAmBx4B,EAAUhQ,EAAQ+nB,EAAOqgB,EAAYiD,GAGxD9C,GAAkBv4B,EAAUhQ,EAAQ+nB,EAE5C,CAIA,SAAS0jB,GAAiBz7B,EAAUrY,GAChC,OAAOqY,EAASo1B,WAAWztC,EAC/B,CAiBA,SAAS+zC,GAAwBrkB,EAAavB,EAAcpC,GACxD,OAAOioB,GAAiCtkB,EAAavB,EAAcpC,EACvE,CAuBA,IAMIkoB,GANAD,GAXJ,SAASE,GAAkCxkB,EAAavB,EAAcpC,GAClE,OAAwB,GAApB2D,EAAYzf,KACL+b,GAAiB0D,EAAa3D,GAElC,IACX,EAyBA,SAAS6nB,GAAYr2B,EAAOwO,EAAOooB,EAAYC,GAC3C,MAAMC,EAAcb,GAAkBj2B,EAAO62B,EAAYroB,GACnD1T,EAAW0T,EAAMxD,GAEjB+rB,EAAaP,GADCK,EAAW/rC,QAAU0jB,EAAM9D,IACSmsB,EAAYroB,GACpE,GAAmB,MAAfsoB,EACA,GAAInwC,MAAMD,QAAQkwC,GACd,QAASnzC,EAAI,EAAGA,EAAImzC,EAAW/zC,OAAQY,IACnC6yC,GAA2Bx7B,EAAUg8B,EAAaF,EAAWnzC,GAAIszC,GAAY,QAIjFT,GAA2Bx7B,EAAUg8B,EAAaF,EAAYG,GAAY,QAGrDn1C,IAA7B80C,IACIA,GAAyB57B,EAAU+7B,EAAYroB,EAAOooB,EAAYE,EAC1E,CAMA,SAASE,GAAmBxoB,EAAOnS,GAC/B,GAAc,OAAVA,EAAgB,CAOhB,MAAM46B,EAAY56B,EAAM3J,KACxB,GAAgB,EAAZukC,EACA,OAAOxoB,GAAiBpS,EAAOmS,GAE9B,GAAgB,EAAZyoB,EACL,OAAOC,IAAqB,EAAI1oB,EAAMnS,EAAMrU,QAE3C,GAAgB,EAAZivC,EAAgD,CACrD,MAAME,EAAsB96B,EAAMwW,MAClC,GAA4B,OAAxBskB,EACA,OAAOH,GAAmBxoB,EAAO2oB,GAEhC,CACD,MAAMC,EAAoB5oB,EAAMnS,EAAMrU,OACtC,OAAIskB,GAAa8qB,GACNF,IAAqB,EAAIE,GAGzB9oB,GAAY8oB,EAE3B,CACJ,CACK,GAAgB,IAAZH,EACL,OAAOD,GAAmBxoB,EAAOnS,EAAM7V,MAEtC,GAAgB,GAAZywC,EAIL,OAHgBpE,GAAoBx2B,EAAOmS,EAA3BqkB,IAGAvkB,GAAYE,EAAMnS,EAAMrU,QAEvC,CACD,MAAMqvC,EAAkBC,GAAmB9oB,EAAOnS,GAClD,OAAwB,OAApBg7B,EACI1wC,MAAMD,QAAQ2wC,GACPA,EAAgB,GAIpBL,GAFYtnB,GAAelB,EAAMpD,KAEFisB,GAG/BL,GAAmBxoB,EAAOnS,EAAM7V,KAE/C,CACJ,CACA,OAAO,IACX,CACA,SAAS8wC,GAAmB9oB,EAAOnS,GAC/B,OAAc,OAAVA,EACsBmS,EAAMpD,IACQV,IAGf6sB,WAFLl7B,EAAMk7B,YAInB,IACX,CACA,SAASL,GAAqBM,EAAsBrE,GAChD,MAAMsE,EAAgBvrB,GAA0BsrB,EAAuB,EACvE,GAAIC,EAAgBtE,EAAWtwC,OAAQ,CACnC,MAAM2rB,EAAQ2kB,EAAWsE,GACnBC,EAAmBlpB,EAAMlE,GAAOmI,WACtC,GAAyB,OAArBilB,EACA,OAAOV,GAAmBxoB,EAAOkpB,EAEzC,CACA,OAAOvE,EAAWnnB,GACtB,CAUA,SAASunB,GAAiBz4B,EAAU8qB,EAAO+R,GAEvC78B,EAAS88B,YAAY,KAAMhS,EAAO+R,EACtC,CAMA,SAASE,GAAqBC,GAC1BA,EAASjQ,YAAc,EAC3B,CAKA,SAASkQ,GAAWj9B,EAAUk4B,EAAQ32B,EAAOmS,EAAOklB,EAAgBR,EAAY8E,GAC5E,KAAgB,MAAT37B,GAAe,CAGlB,GAAmB,MAAfA,EAAM3J,KAA6C,CACnD2J,EAAQA,EAAM7V,KACd,QACJ,CAGA,MAAMyxC,EAAezpB,EAAMnS,EAAMrU,OAC3BivC,EAAY56B,EAAM3J,KAOxB,GANIslC,GACe,IAAXhF,IACAiF,GAAgB9R,GAAgB7X,GAAY2pB,GAAezpB,GAC3DnS,EAAMhG,OAAS,GAGgC,IAAlDgG,EAAMhG,MACP,GAAgB,EAAZ4gC,EACAc,GAAWj9B,EAAUk4B,EAAQ32B,EAAMwW,MAAOrE,EAAOklB,EAAgBR,GAAY,GAC7EH,GAA0BC,EAAQl4B,EAAU44B,EAAgBuE,EAAc/E,QAAU,GAEnE,GAAZ+D,EAAoC,CACzC,MAAMiB,EAAYrF,GAAoBx2B,EAAOmS,GAC7C,IAAIoX,EACJ,KAAQA,EAAQsS,KACZnF,GAA0BC,EAAQl4B,EAAU44B,EAAgB9N,EAAOsN,GAEvEH,GAA0BC,EAAQl4B,EAAU44B,EAAgBuE,EAAc/E,EAC9E,MACqB,GAAZ+D,EACLkB,GAAyBr9B,EAAUk4B,EAAQxkB,EAAOnS,EAAOq3B,EAAgBR,GAIzEH,GAA0BC,EAAQl4B,EAAU44B,EAAgBuE,EAAc/E,GAGlF72B,EAAQ27B,EAAe37B,EAAM+7B,eAAiB/7B,EAAM7V,IACxD,CACJ,CACA,SAASotC,GAAU5zB,EAAOwO,EAAO1T,EAAUk4B,EAAQU,EAAgBR,GAC/D6E,GAAWj9B,EAAUk4B,EAAQhzB,EAAMyS,WAAYjE,EAAOklB,EAAgBR,GAAY,EACtF,CAgCA,SAASiF,GAAyBr9B,EAAUk4B,EAAQxkB,EAAO6pB,EAAiB3E,EAAgBR,GACxF,MAAMoF,EAAiB9pB,EAAMpD,IAIvBmtB,EAHgBD,EAAe5tB,IAGO6sB,WAAWc,EAAgBd,YACvE,GAAI5wC,MAAMD,QAAQ6xC,GAMd,QAAS90C,EAAI,EAAGA,EAAI80C,EAAsB11C,OAAQY,IAE9CsvC,GAA0BC,EAAQl4B,EAAU44B,EAD9B6E,EAAsB90C,GAC+ByvC,OAGtE,CACD,IAAIsF,EAAgBD,EACpB,MAAME,EAA0BH,EAAe9tB,IAG3Csb,GAA4BuS,KAC5BG,EAAcniC,OAAS,KAE3B0hC,GAAWj9B,EAAUk4B,EAAQwF,EAAeC,EAAyB/E,EAAgBR,GAAY,EACrG,CACJ,CAuGA,SAASwF,GAAiB59B,EAAUy0B,EAASvqC,GAExB,KAAbA,EAEA8V,EAAS+uB,gBAAgB0F,EAAS,SAGlCz0B,EAASM,aAAam0B,EAAS,QAASvqC,EAGhD,CAEA,SAAS2zC,GAAsB79B,EAAUy0B,EAASlzB,GAC9C,MAAQqpB,cAAa3J,UAASlc,UAAWxD,EACrB,OAAhBqpB,GACA7qB,GAAgBC,EAAUy0B,EAAS7J,GAEvB,OAAZ3J,GACA2c,GAAiB59B,EAAUy0B,EAASxT,GAEzB,OAAXlc,GAnCR,SAAS+4B,GAAiB99B,EAAUy0B,EAASvqC,GAEzC8V,EAASM,aAAam0B,EAAS,QAASvqC,EAE5C,CAgCQ4zC,CAAiB99B,EAAUy0B,EAAS1vB,EAE5C,CAGA,MAAMg5B,EAAyF,CAAC,EAyBhG,SAASC,EAAUC,EAAQ,GAEvBC,GAAoB1oB,KAAYD,IAAYgD,KAAqB0lB,GAAO,EAC5E,CACA,SAASC,GAAoBh5B,EAAOwO,EAAOxmB,EAAOixC,GAI9C,IAAKA,EAED,GAD2F,GAA1DzqB,EAAMjE,GAOlC,CACD,MAAM4Q,EAAgBnb,EAAMmb,cACN,OAAlBA,GACAtG,GAAyBrG,EAAO2M,EAAe,EAA2CnzB,EAElG,KAX6B,CACzB,MAAMozB,EAAqBpb,EAAMob,mBACN,OAAvBA,GACA1G,GAAkBlG,EAAO4M,EAAoBpzB,EAErD,CAYJsrB,GAAiBtrB,EACrB,CAEA,SAASkxC,EAAkBpnC,EAAOuE,EAAQb,GAAYC,SAClD,MAAM+Y,EAAQ6B,IAGd,OAAc,OAAV7B,EAGOrX,EAASrF,EAAOuE,GAGbmiB,GADA7H,KAC6BnC,EAAO/b,EAAkBX,GAAQuE,EAGhF,CAoBA,SAAS8iC,GAAsBt6B,EAAKsO,EAAUjL,EAAYmL,EAAahX,EAAO5R,GAC1E,MAAMjB,EAAe4jB,GAAoB,MACzC,IAKI,IAAIgG,EAAkB,KACjB/W,EAAQ+D,GAAWC,cAEpB+S,EADcD,EAASE,GACC+rB,KAIJ,OAApBhsB,QAA4DxrB,IAAhCwrB,EAAgBisB,cAC5C50C,EAAQ2oB,EAAgBisB,YAAY50C,IAGnC4R,EAAQ+D,GAAWE,6BACpB7V,EAAQoa,EAAIkE,gBAAgBsK,GAAarmB,KAAKmmB,EAAU1oB,IAEvC,OAAjBoa,EAAIqE,SACJrE,EAAIqE,SAASiK,EAAUC,EAAiB3oB,EAAOyd,EAAYmL,GAG3DH,GAAuBC,EAAUC,EAAiBC,EAAa5oB,EAEvE,SAEI2iB,GAAoB5jB,EACxB,CACJ,CAqCA,SAAS81C,GAAYlnB,EAAapS,EAAOzV,EAAS8L,EAAOkB,EAAMgiC,EAAWC,EAAa1+B,EAAUhE,EAAUgiB,EAAsBmR,GAC7H,MAAMzb,EAAQxO,EAAMyX,UAAUnqB,QAC9BkhB,SAAMnE,IAAQ9S,EACdiX,EAAMjE,GAEE,IADJlU,GAKyB,OAAzByiB,GACC1G,GAAoC,KAArBA,EAAY7H,MAC5BiE,EAAMjE,IAAU,MAEpB4E,GAAuBX,GAEvBA,EAAMhE,IAAUgE,EAAMrD,IAAoBiH,EAC1C5D,EAAM3D,IAAWtgB,EACjBikB,EAAMzD,IAAgByuB,GAAgBpnB,GAAeA,EAAYrH,IAEjEyD,EAAMxD,GAAalQ,GAAasX,GAAeA,EAAYpH,GAE3DwD,EAAM1D,IAAYhU,GAAasb,GAAeA,EAAYtH,KAAc,KACxE0D,EAAM9D,IAAU6uB,EAChB/qB,EAAMhD,IAtjIV,SAASiuB,KACL,OAAOzT,IACX,CAojIgByT,GACZjrB,EAAM7D,IAAasf,EACnBzb,EAAM/C,IAA0BqN,EAGhCtK,EAAMpD,IACY,GAAdpL,EAAMtN,KAAqC0f,EAAYhH,IAA8BoD,EAClFA,CACX,CACA,SAASkrB,GAAiB15B,EAAOhY,EAAO0K,EAAMpL,EAAM0T,GAOhD,IAAIqB,EAAQ2D,EAAML,KAAK3X,GACvB,GAAc,OAAVqU,EACAA,EAqBR,SAASs9B,GAAmB35B,EAAOhY,EAAO0K,EAAMpL,EAAM0T,GAClD,MAAM4V,EAAeC,KACfE,EAAWC,KAGX3U,EAAS2D,EAAML,KAAK3X,GAsT9B,SAAS4xC,GAAY55B,EAAO65B,EAASnnC,EAAM1K,EAAOvD,EAAOuW,GAQrD,IAAIuc,EAAgBsiB,EAAUA,EAAQtiB,eAAgB,EAClDlhB,EAAQ,EACZ,OAAI+Z,OACA/Z,GAAS,KAEC,CACV3D,OACA1K,QACA8xC,kBAAmB,KACnBviB,gBACAzD,gBAAgB,EAChBC,cAAc,EACdgmB,sBAAsB,EACtBttB,iBAAiB,EACjButB,iBAAkB,KAClB3jC,QACA0jB,gBAAiB,EACjBt1B,MAAOA,EACPuW,MAAOA,EACP0qB,YAAa,KACbuU,WAAY,KACZC,mBAAet4C,EACfif,OAAQ,KACRC,QAAS,KACTd,MAAO,KACPxZ,KAAM,KACNlF,KAAM,KACN82C,eAAgB,KAChBvlB,MAAO,KACP/nB,OAAQ+uC,EACRtC,WAAY,KACZ13B,OAAQ,KACRs6B,kBAAmB,KACnBC,oBAAgBx4C,EAChBm6B,QAAS,KACTse,mBAAoB,KACpBC,qBAAiB14C,EACjB24C,cAAe,EACfC,cAAe,EASvB,CA7WuCZ,CAAY55B,EAFhC+Q,EAAWH,EAAeA,GAAgBA,EAAa9lB,OAER4H,EAAM1K,EAAOV,EAAM0T,GAIjF,OAAyB,OAArBgF,EAAMyS,aACNzS,EAAMyS,WAAapW,GAEF,OAAjBuU,IACIG,EAE0B,MAAtBH,EAAaiC,OAAkC,OAAjBxW,EAAMvR,SAEpC8lB,EAAaiC,MAAQxW,GAIC,OAAtBuU,EAAapqB,OAGboqB,EAAapqB,KAAO6V,EACpBA,EAAM/a,KAAOsvB,IAIlBvU,CACX,CAnDgBs9B,CAAmB35B,EAAOhY,EAAO0K,EAAMpL,EAAM0T,GArxO7D,SAASy/B,KACL,OAAO5qB,EAAiBC,OAAO4C,MACnC,CAoxOY+nB,KAKAp+B,EAAMhG,OAAS,YAGD,GAAbgG,EAAM3J,KAAuC,CAClD2J,EAAM3J,KAAOA,EACb2J,EAAM5X,MAAQ6C,EACd+U,EAAMrB,MAAQA,EACd,MAAMlQ,EAl2Od,SAAS4vC,KACL,MAAM5qB,EAASD,EAAiBC,OAC1Bc,EAAed,EAAOc,aAC5B,OAAOd,EAAOiB,SAAWH,EAAeA,EAAa9lB,MACzD,CA81OuB4vC,GACfr+B,EAAMkb,cAA2B,OAAXzsB,GAAkB,EAAKA,EAAOysB,aAGxD,CACAzG,UAAgBzU,GAAO,GAChBA,CACX,CA0CA,SAASs+B,GAAa36B,EAAOwO,EAAOosB,EAAiBC,GACjD,GAAwB,IAApBD,EACA,OAAO,EAQX,MAAME,EAAWtsB,EAAM3rB,OACvB,QAASY,EAAI,EAAGA,EAAIm3C,EAAiBn3C,IACjC+qB,EAAMvqB,KAAK42C,GACX76B,EAAMyX,UAAUxzB,KAAK42C,GACrB76B,EAAML,KAAK1b,KAAK,MAEpB,OAAO62C,CACX,CACA,SAASC,GAAgB/6B,EAAOwO,EAAOwsB,EAAYC,EAAI1wC,GACnD,MAAM2wC,EAAoB7nB,KACpB8nB,EAAqB,EAALF,EACtB,IACI3nB,IAAiB,GACb6nB,GAAiB3sB,EAAM3rB,OAASgpB,GAGhCmtB,GAAoBh5B,EAAOwO,EAAO3C,GAAe,GAKrDsC,GAHoBgtB,EACd,EACA,EACgB5wC,GACtBywC,EAAWC,EAAI1wC,EACnB,SAEI+oB,GAAiB4nB,GAIjB/sB,GAHqBgtB,EACf,EACA,EACiB5wC,EAC3B,CACJ,CAIA,SAAS6wC,GAAsBp7B,EAAO3D,EAAOmS,GACzC,GAAIjC,GAAmBlQ,GAAQ,CAC3B,MAAM7Y,EAAe4jB,GAAoB,MACzC,IACI,MACMpO,EAAMqD,EAAM0X,aAClB,QAAS+G,EAFKze,EAAMyX,eAEagH,EAAiB9hB,EAAK8hB,IAAkB,CACrE,MAAMjc,EAAMmB,EAAML,KAAKmb,GACnBjc,EAAImC,gBAIJnC,EAAImC,eAAe,EAHOwN,EAAMsM,GAGkCA,EAE1E,CACJ,SAEI1T,GAAoB5jB,EACxB,CACJ,CACJ,CAIA,SAAS63C,GAA0Br7B,EAAOwO,EAAOnS,GACxC8T,OA8kBT,SAASmrB,GAAyBt7B,EAAOwO,EAAOnS,EAAOtB,GACnD,MAAM3B,EAAQiD,EAAMyX,eACd9a,EAAMqD,EAAM0X,aAGdvH,GAAgBnQ,IAsMxB,SAASk/B,GAAkB/sB,EAAOgtB,EAAW38B,GACzC,MAAM9D,EAAS0T,GAAiB+sB,EAAWhtB,GACrCxO,EAAQy7B,GAA0B58B,GAIxC,IAAI68B,EAAa,GACb78B,EAAIa,QACJg8B,EAAa,KAER78B,EAAIM,SACTu8B,EAAa,IAEjB,MAAMC,EAAgBC,GAAcptB,EAAO8qB,GAAY9qB,EAAOxO,EAAO,KAAM07B,EAAY3gC,EAAQygC,EAAW,KARlFhtB,EAAMzD,IAAa8wB,gBAQqFC,eAAe/gC,EAAQ8D,GAAM,KAAM,KAAM,OAGzK2P,EAAMgtB,EAAUxzC,OAAS2zC,CAC7B,CArNQJ,CAAkB/sB,EAAOnS,EAAO2D,EAAML,KAAKvG,EAAQiD,EAAMoQ,kBAExDzM,EAAMsX,iBACPH,GAA+B9a,EAAOmS,GAE1C2X,GAAgBprB,EAAQyT,GACxB,MAAM0rB,EAAgB79B,EAAM69B,cAC5B,QAASz2C,EAAI2V,EAAO3V,EAAIuV,EAAKvV,IAAK,CAC9B,MAAMob,EAAMmB,EAAML,KAAKlc,GACjB8xB,EAAYoE,GAAkBnL,EAAOxO,EAAOvc,EAAG4Y,GACrD8pB,GAAgB5Q,EAAW/G,GACL,OAAlB0rB,GACA6B,GAAmBvtB,EAAO/qB,EAAI2V,EAAOmc,EAAW1W,EAAKxC,EAAO69B,GAE5DvtB,GAAe9N,KACOgQ,GAAyBxS,EAAMrU,MAAOwmB,GAC9C3D,IAAW8O,GAAkBnL,EAAOxO,EAAOvc,EAAG4Y,GAEpE,CACJ,CAtmBIi/B,CAAyBt7B,EAAOwO,EAAOnS,EAAOoS,GAAiBpS,EAAOmS,MACV,IAAvDnS,EAAMhG,QACP2lC,GAA6Bh8B,EAAOwO,EAAOnS,GAEnD,CAKA,SAAS4/B,GAAyBC,EAAU7/B,EAAO8/B,EAAoB1tB,IACnE,MAAMwrB,EAAa59B,EAAM49B,WACzB,GAAmB,OAAfA,EAAqB,CACrB,IAAImC,EAAa//B,EAAMrU,MAAQ,EAC/B,QAASvE,EAAI,EAAGA,EAAIw2C,EAAWp3C,OAAQY,GAAK,EAAG,CAC3C,MAAMuE,EAAQiyC,EAAWx2C,EAAI,GACvBgB,GAAkB,IAAVuD,EACRm0C,EAAkB9/B,EAAO6/B,GACzBA,EAASl0C,GACfk0C,EAASE,KAAgB33C,CAC7B,CACJ,CACJ,CAQA,SAASg3C,GAA0B58B,GAC/B,MAAMmB,EAAQnB,EAAImB,MAGlB,OAAc,OAAVA,GAAkBA,EAAMq8B,oBAIhBx9B,EAAImB,MAAQs8B,GAAY,EAA6BrqB,KAAWpT,EAAIG,SAAUH,EAAIC,MAAOD,EAAIE,KAAMF,EAAIQ,cAAeR,EAAIS,SAAUT,EAAIoC,UAAWpC,EAAIkB,QAASlB,EAAII,OAAQJ,EAAIoB,IAErLD,CACX,CAcA,SAASs8B,GAAY5pC,EAAMuf,EAAW+oB,EAAYl8B,EAAOC,EAAMw9B,EAAYC,EAAOv7B,EAAWlB,EAAS08B,EAAiBC,GAEnH,MAAMprB,EAAoBzF,EAAgB/M,EAIpC69B,EAAoBrrB,EAAoBvS,EACxC0Y,EA2CV,SAASmlB,GAAoBtrB,EAAmBqrB,GAC5C,MAAMllB,EAAY,GAClB,QAASh0B,EAAI,EAAGA,EAAIk5C,EAAmBl5C,IACnCg0B,EAAUxzB,KAAKR,EAAI6tB,EAAoB,KAAOunB,GAElD,OAAOphB,CACX,CAjDsBmlB,CAAoBtrB,EAAmBqrB,GACnD19B,EAAoC,mBAApBw9B,EAAiCA,IAAoBA,EAwC3E,OAvCehlB,EAAUnN,GAAS,CAC9B5X,KAAMA,EACN+kB,UAAWA,EACXzY,SAAUg8B,EACV6B,QAAS,KACT57B,UAAWA,EACXgR,UAAWA,EACXtS,KAAM8X,EAAUnqB,QAAQwvC,KAAK,KAAMxrB,GACnCA,kBAAmBA,EACnByrB,kBAAmBJ,EACnBK,mBAAoB,KACpB1lB,iBAAiB,EACjB2lB,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBhiB,cAAe,KACfC,mBAAoB,KACpB/G,aAAc,KACdC,kBAAmB,KACnBC,UAAW,KACXC,eAAgB,KAChBC,aAAc,KACdwJ,QAAS,KACTjd,eAAgB,KAChBo8B,WAAY,KACZC,kBAAyC,mBAAfd,EAA4BA,IAAeA,EACrEe,aAA+B,mBAAVd,EAAuBA,IAAUA,EACtD/pB,WAAY,KACZ1S,QAASA,EACTd,OAAQA,EACRo9B,qBAAqB,EACrBK,QASR,CA+CA,IAAIa,GAAiCA,IAAM,KAQ3C,SAASC,GAA8BC,GAC/B9X,GAA+B8X,GAI/B5F,GAAqB4F,GApmG7B,SAASC,GAAsCj7C,GAC3C,MAAMglC,EAAMf,KACNiX,EAAuBlW,EAAImW,mBAAmBn7C,EAAMo7C,WAAWC,aAAc,CAC/EC,WAAWt7C,GACP,MAAM4uC,EAhBlB,SAAS2M,GAAmBv7C,GACxB,OAAOA,EAAKolC,aAAanf,QAAQ,OAAQ,GAC7C,CAc4Bs1B,CAAmBv7C,GAEnC,MADqC,UAAZ4uC,GAAkE,UAAZA,EACrDwM,WAAWI,cAAgBJ,WAAWK,aACpE,IAEJ,IAAIC,EAMJ,MAAMC,EAAQ,GACd,KAAQD,EAAcR,EAAqBU,YACvCD,EAAMn6C,KAAKk6C,GAEf,UAAW17C,KAAQ27C,EACU,UAArB37C,EAAKolC,YACLplC,EAAK67C,YAAY7W,EAAIoM,eAAe,KAGpCpxC,EAAKsF,QAGjB,CA4kGQ21C,CAAsCD,EAE9C,CA0FA,SAASc,GAAoBzhC,EAAM0hC,EAAU1jB,EAAgB2jB,EAAgBC,GACzE,QAASx8B,KAAcs8B,EAAU,CAC7B,IAAKA,EAASttC,eAAegR,GACzB,SAEJ,MAAMzd,EAAQ+5C,EAASt8B,GACvB,QAActgB,IAAV6C,EACA,SAEJg6C,IAAmB,CAAC,EACpB,IAAIE,EACAv8B,EAAahI,GAAWF,KAGxBvT,MAAMD,QAAQjC,IACdk6C,EAAel6C,EAAM,GACrB2d,EAAa3d,EAAM,IAGnBk6C,EAAel6C,EAQnB,IAAIm6C,EAAkB18B,EACtB,GAA8B,OAA1Bw8B,EAAgC,CAGhC,IAAKA,EAAsBxtC,eAAegR,GACtC,SAEJ08B,EAAkBF,EAAsBx8B,EAC5C,CACa,IAATpF,EACA+hC,GAAmBJ,EAAgB3jB,EAAgB8jB,EAAiBD,EAAcv8B,GAGlFy8B,GAAmBJ,EAAgB3jB,EAAgB8jB,EAAiBD,EAE5E,CACA,OAAOF,CACX,CACA,SAASI,GAAmBC,EAAUhkB,EAAgB5Y,EAAYy8B,EAAcv8B,GAC5E,IAAI5R,EACAsuC,EAAS5tC,eAAegR,IACvB1R,EAASsuC,EAAS58B,IAAaje,KAAK62B,EAAgB6jB,GAGrDnuC,EAASsuC,EAAS58B,GAAc,CAAC4Y,EAAgB6jB,QAElC/8C,IAAfwgB,GACA5R,EAAOvM,KAAKme,EAEpB,CAqEA,SAAS28B,GAAwB/+B,EAAO3D,EAAOmS,EAAO/d,EAAUhM,EAAOqW,EAAUg3B,EAAWkN,GAExF,MAAMzP,EAAU9gB,GAAiBpS,EAAOmS,GACxC,IACIywB,EADAC,EAAY7iC,EAAMwE,QAEjBm+B,GAA2B,MAAbE,IAAsBD,EAAYC,EAAUzuC,KAC3D0uC,GAAqBn/B,EAAOwO,EAAOywB,EAAWxuC,EAAUhM,GACpD+nB,GAAgBnQ,IA6B5B,SAAS+iC,GAAkB5wB,EAAO6wB,GAE9B,MAAMC,EAAsBzwB,GAAyBwwB,EAAW7wB,GAC7B,GAA7B8wB,EAAoB/0B,KACtB+0B,EAAoB/0B,IAAU,GAEtC,CAlCY60B,CAAkB5wB,EAAOnS,EAAMrU,QAKjB,EAAbqU,EAAM3J,OACXjC,EA7BR,SAAS8uC,GAAYj4C,GACjB,MAAa,UAATA,EACO,YACE,QAATA,EACO,UACE,eAATA,EACO,aACE,cAATA,EACO,YACE,aAATA,EACO,WACE,aAATA,EACO,WACJA,CACX,CAemBi4C,CAAY9uC,GAUvBhM,EAAqB,MAAbqtC,EAAoBA,EAAUrtC,EAAO4X,EAAM5X,OAAS,GAAIgM,GAAYhM,EAC5EqW,EAASQ,YAAYi0B,EAAS9+B,EAAUhM,GAShD,CA4CA,SAAS+6C,GAAkBx/B,EAAOwO,EAAOnS,EAAOojC,GAI5C,GAAItvB,KAAsB,CACtB,MAAMuvB,EAA2B,OAAdD,EAAqB,KAAO,CAAE,IAAI,GAC/CE,EAwLd,SAASC,GAAwB5/B,EAAO3D,GAGpC,MAAMwjC,EAAW7/B,EAAMq9B,kBACvB,IAAIyC,EAAU,KACVC,EAAoB,KACxB,GAAIF,EACA,QAASp8C,EAAI,EAAGA,EAAIo8C,EAASh9C,OAAQY,IAAK,CACtC,MAAMob,EAAMghC,EAASp8C,GACrB,GAAIma,GAA2BvB,EAAOwC,EAAI2B,WAAkC,GAExE,GADAs/B,IAAYA,EAAU,IAClBnzB,GAAe9N,GAkBf,GAAkC,OAA9BA,EAAIsE,sBAAgC,CACpC,MAAM68B,EAAuB,GAC7BD,EAAoBA,GAAqB,IAAIt5B,IAC7C5H,EAAIsE,sBAAsBtE,EAAKmhC,EAAsBD,GAIrDD,EAAQ53B,WAAW83B,EAAsBnhC,GAGzCohC,GAAoBjgC,EAAO3D,EADH2jC,EAAqBn9C,OAEjD,MAIIi9C,EAAQ53B,QAAQrJ,GAChBohC,GAAoBjgC,EAAO3D,EAAO,QAKtC0jC,EAAoBA,GAAqB,IAAIt5B,IAC7C5H,EAAIsE,wBAAwBtE,EAAKihC,EAASC,GAC1CD,EAAQ77C,KAAK4a,EAGzB,CAGJ,OAAmB,OAAZihC,EAAmB,KAAO,CAACA,EAASC,EAC/C,CAnP4BH,CAAwB5/B,EAAO3D,GACnD,IAAIgD,EACA0gC,EACgB,OAAhBJ,EACAtgC,EAAgB0gC,EAAoB,MAGnC1gC,EAAe0gC,GAAqBJ,EAEnB,OAAlBtgC,GACA6gC,GAAqBlgC,EAAOwO,EAAOnS,EAAOgD,EAAeqgC,EAAYK,GAErEL,GAoPZ,SAASS,GAAwB9jC,EAAOojC,EAAWC,GAC/C,GAAID,EAAW,CACX,MAAMxF,EAAc59B,EAAM49B,WAAa,GAIvC,QAASx2C,EAAI,EAAGA,EAAIg8C,EAAU58C,OAAQY,GAAK,EAAG,CAC1C,MAAMuE,EAAQ03C,EAAWD,EAAUh8C,EAAI,IACvC,GAAa,MAATuE,EACA,MAAM,IAAI4H,GAAa,KAA8CqH,GACzEgjC,EAAWh2C,KAAKw7C,EAAUh8C,GAAIuE,EAClC,CACJ,CACJ,CAhQYm4C,CAAwB9jC,EAAOojC,EAAWC,EAClD,CAEArjC,EAAMqpB,YAAcjqB,GAAeY,EAAMqpB,YAAarpB,EAAMrB,MAChE,CAEA,SAASklC,GAAqBlgC,EAAOwO,EAAOnS,EAAOkgC,EAAYmD,EAAYK,GAIvE,QAASt8C,EAAI,EAAGA,EAAI84C,EAAW15C,OAAQY,IACnCy0B,GAAmBf,GAA+B9a,EAAOmS,GAAQxO,EAAOu8B,EAAW94C,GAAGiP,OA0Q9F,SAAS0tC,GAAe/jC,EAAOrU,EAAOq4C,GAGlChkC,EAAMhG,OAAS,EAEfgG,EAAMyX,eAAiB9rB,EACvBqU,EAAM0X,aAAe/rB,EAAQq4C,EAC7BhkC,EAAM0d,gBAAkB/xB,CAC5B,CAhRIo4C,CAAe/jC,EAAO2D,EAAML,KAAK9c,OAAQ05C,EAAW15C,QAOpD,QAASY,EAAI,EAAGA,EAAI84C,EAAW15C,OAAQY,IAAK,CACxC,MAAMob,EAAM09B,EAAW94C,GACnBob,EAAIgE,mBACJhE,EAAIgE,kBAAkBhE,EAC9B,CACA,IAAIyhC,GAAqB,EACrBC,GAA0B,EAC1BC,EAAe7F,GAAa36B,EAAOwO,EAAO+tB,EAAW15C,OAAQ,MAGjE,QAASY,EAAI,EAAGA,EAAI84C,EAAW15C,OAAQY,IAAK,CACxC,MAAMob,EAAM09B,EAAW94C,GAGvB4Y,EAAMqpB,YAAcjqB,GAAeY,EAAMqpB,YAAa7mB,EAAI6B,WAC1D+/B,GAA2BzgC,EAAO3D,EAAOmS,EAAOgyB,EAAc3hC,GAC9D6hC,GAAoBF,EAAc3hC,EAAK6gC,GACZ,OAAvB7gC,EAAImC,iBACJ3E,EAAMhG,OAAS,IACM,OAArBwI,EAAIiE,cAA2C,OAAlBjE,EAAI6B,WAAuC,IAAjB7B,EAAI4B,YAC3DpE,EAAMhG,OAAS,IACnB,MAAMsqC,EAAiB9hC,EAAInM,KAAKnL,WAG3B+4C,IACAK,EAAelzB,aAAekzB,EAAe3lB,UAAY2lB,EAAe1lB,cAIxEjb,EAAMmb,gBAAkB,IAAIl3B,KAAKoY,EAAMrU,OACxCs4C,GAAqB,IAEpBC,IAA4BI,EAAelzB,aAAekzB,EAAe1lB,cACzEjb,EAAMob,qBAAuB,IAAIn3B,KAAKoY,EAAMrU,OAC7Cu4C,GAA0B,GAE9BC,GACJ,EA1NJ,SAASI,GAAgC5gC,EAAO3D,EAAOwkC,GAEnD,MACM7nC,EAAMqD,EAAM0X,aACZ+sB,EAAY9gC,EAAML,KAClBohC,EAAa1kC,EAAMrB,MACnBgmC,EAAkB,GACxB,IAAIC,EAAc,KACdC,EAAe,KACnB,QAASpmB,EAPKze,EAAMyX,eAOagH,EAAiB9hB,EAAK8hB,IAAkB,CACrE,MAAMC,EAAe+lB,EAAUhmB,GACzBqmB,EAAYN,EACZA,EAA2B3pC,IAAI6jB,GAC/B,KAEAqmB,EAAiBD,EAAYA,EAAUrgC,QAAU,KACvDmgC,EAAc1C,GAAoB,EAAuCxjB,EAAala,OAAQia,EAAgBmmB,EAFxFE,EAAYA,EAAUtgC,OAAS,MAGrDqgC,EAAe3C,GAAoB,EAAwCxjB,EAAaja,QAASga,EAAgBomB,EAAcE,GAK/H,MAAMlH,EAAgC,OAAhB+G,GAAuC,OAAfF,GAAwBtkC,GAAiBJ,GAEjF,KADAglC,GAAsBJ,EAAanmB,EAAgBimB,GAEzDC,EAAgB/8C,KAAKi2C,EACzB,CACoB,OAAhB+G,IACIA,EAAY/vC,eAAe,WAC3BmL,EAAMhG,OAAS,GAEf4qC,EAAY/vC,eAAe,WAC3BmL,EAAMhG,OAAS,KAGvBgG,EAAM69B,cAAgB8G,EACtB3kC,EAAMwE,OAASogC,EACf5kC,EAAMyE,QAAUogC,CACpB,CAqLIN,CAAgC5gC,EAAO3D,EAAO0jC,EAClD,CA4EA,SAAS/D,GAA6Bh8B,EAAOwO,EAAOnS,GAChD,MAAMjD,EAAQiD,EAAMyX,eACd9a,EAAMqD,EAAM0X,aACZutB,EAAejlC,EAAMrU,MACrB2pB,EA3+PV,SAAS4vB,KACL,OAAO1xB,EAAiBC,OAAO6B,qBACnC,CAy+PkC4vB,GAC9B,IACIjuB,GAAiBguB,GACjB,QAASE,EAAWpoC,EAAOooC,EAAWxoC,EAAKwoC,IAAY,CACnD,MAAM3iC,EAAMmB,EAAML,KAAK6hC,GACjBjsB,EAAY/G,EAAMgzB,GACxB5vB,GAAyB4vB,IACA,OAArB3iC,EAAIiE,cAA0C,IAAjBjE,EAAI4B,UAAoC,OAAlB5B,EAAI6B,YACvD+gC,GAAiC5iC,EAAK0W,EAE9C,CACJ,SAEIjC,IAAiB,GACjB1B,GAAyBD,EAC7B,CACJ,CAOA,SAAS8vB,GAAiC5iC,EAAK0W,GAClB,OAArB1W,EAAIiE,cACJjE,EAAIiE,aAAa,EAA4ByS,EAErD,CAsEA,SAAS0qB,GAAoBjgC,EAAOw7B,EAAW/uB,GAG3C+uB,EAAU/uB,gBAAkBA,GAC3BzM,EAAMo9B,aAAe,IAAIn5C,KAAKu3C,EAAUxzC,MAC7C,CAoBA,SAAS04C,GAAoBF,EAAc3hC,EAAK6gC,GAC5C,GAAIA,EAAY,CACZ,GAAI7gC,EAAI8B,SACJ,QAASld,EAAI,EAAGA,EAAIob,EAAI8B,SAAS9d,OAAQY,IACrCi8C,EAAW7gC,EAAI8B,SAASld,IAAM+8C,EAGlC7zB,GAAe9N,KACf6gC,EAAW,IAAMc,EACzB,CACJ,CA2BA,SAASC,GAA2BzgC,EAAO3D,EAAOmS,EAAOsM,EAAgBjc,GAGrEmB,EAAML,KAAKmb,GAAkBjc,EAC7B,MAAM6iC,EAAmB7iC,EAAI9L,UAAY8L,EAAI9L,QAAUoF,GAAc0G,EAAInM,OAInEivC,EAAsB,IAAIjsB,GAAoBgsB,EAAkB/0B,GAAe9N,GAAMq6B,GAC3Fl5B,EAAMyX,UAAUqD,GAAkB6mB,EAClCnzB,EAAMsM,GAAkB6mB,EA/O5B,SAASC,GAA2B5hC,EAAO3D,EAAOmkC,EAAcqB,EAAkBhjC,GAE9E,MAAMiE,EAAejE,EAAIiE,aACzB,GAAIA,EAAc,CACd,IAAIk6B,EAAqBh9B,EAAMg9B,mBACJ,OAAvBA,IACAA,EAAqBh9B,EAAMg9B,mBAAqB,IAEpD,MAAM8E,GAAezlC,EAAMrU,OAkBnC,SAAS+5C,GAAuB/E,GAC5B,IAAIv5C,EAAIu5C,EAAmBn6C,OAC3B,KAAOY,EAAI,GAAG,CACV,MAAMgB,EAAQu4C,IAAqBv5C,GACnC,GAAqB,iBAAVgB,GAAsBA,EAAQ,EACrC,OAAOA,CAEf,CACA,OAAO,CACX,EA1BYs9C,CAAuB/E,IAAuB8E,GAI9C9E,EAAmB/4C,KAAK69C,GAE5B9E,EAAmB/4C,KAAKu8C,EAAcqB,EAAkB/+B,EAC5D,CACJ,CA+NI8+B,CAA2B5hC,EAAO3D,EAAOye,EAAgB6f,GAAa36B,EAAOwO,EAAO3P,EAAI4B,SAAUo4B,GAAYh6B,EAClH,CAmBA,SAASmjC,GAAyB3lC,EAAOmS,EAAOlnB,EAAM7C,EAAOqtC,EAAWqC,GAOpE,MAAM5E,EAAU9gB,GAAiBpS,EAAOmS,IAG5C,SAASyzB,GAAoBnnC,EAAUy0B,EAAS4E,EAAW3E,EAASloC,EAAM7C,EAAOqtC,GAC7E,GAAa,MAATrtC,EAEAqW,EAAS+uB,gBAAgB0F,EAASjoC,EAAM6sC,OAEvC,CAED,MAAM+N,EAAwB,MAAbpQ,EAAoB38B,EAAgB1Q,GAASqtC,EAAUrtC,EAAO+qC,GAAW,GAAIloC,GAC9FwT,EAASM,aAAam0B,EAASjoC,EAAM46C,EAAU/N,EACnD,CACJ,CAZI8N,CAAoBzzB,EAAMxD,GAAWukB,EAAS4E,EAAW93B,EAAM5X,MAAO6C,EAAM7C,EAAOqtC,EACvF,CAqBA,SAASiK,GAAmBvtB,EAAOsM,EAAgB3N,EAAUtO,EAAKxC,EAAO8lC,GACrE,MAAMjI,EAAgBiI,EAAiBrnB,GACvC,GAAsB,OAAlBof,EACA,QAASz2C,EAAI,EAAGA,EAAIy2C,EAAcr3C,QAK9Bs2C,GAAsBt6B,EAAKsO,EAJR+sB,EAAcz2C,KACby2C,EAAcz2C,KACpBy2C,EAAcz2C,KACdy2C,EAAcz2C,KAQxC,CAgBA,SAAS49C,GAAsBxgC,EAAQia,EAAgB9f,GACnD,IAAIonC,EAAgB,KAChB3+C,EAAI,EACR,KAAOA,EAAIuX,EAAMnY,QAAQ,CACrB,MAAMqY,EAAWF,EAAMvX,GACvB,GAAiB,IAAbyX,EAIJ,GACsB,IAAbA,EADT,CAOA,GAAwB,iBAAbA,EACP,MACJ,GAAI2F,EAAO3P,eAAegK,GAAW,CACX,OAAlBknC,IACAA,EAAgB,IAIpB,MAAMp/B,EAAcnC,EAAO3F,GAC3B,QAASrD,EAAI,EAAGA,EAAImL,EAAYngB,OAAQgV,GAAK,EACzC,GAAImL,EAAYnL,KAAOijB,EAAgB,CACnCsnB,EAAcn+C,KAAKiX,EAAU8H,EAAYnL,EAAI,GAAImL,EAAYnL,EAAI,GAAImD,EAAMvX,EAAI,IAE/E,KACJ,CAER,CACAA,GAAK,CAnBL,MAFIA,GAAK,OALLA,GAAK,CA2Bb,CACA,OAAO2+C,CACX,CAcA,SAASC,GAAiBC,EAAYttB,EAAaja,EAAQsB,GAgBvD,MAdmB,CACfimC,GACA,EACA,EACAttB,EACA,KACA3Y,EACA,KACAtB,EACA,KACA,KAKR,CAEA,SAASwnC,GAAsBviC,EAAOwO,GAClC,MAAMxN,EAAiBhB,EAAMgB,eAC7B,GAAuB,OAAnBA,EAAyB,CACzB,MAAMxd,EAAe4jB,GAAoB,MACzC,IACI,QAAS3jB,EAAI,EAAGA,EAAIud,EAAene,OAAQY,GAAK,EAAG,CAC/C,MACM++C,EAAkBxhC,EAAevd,EAAI,GAC3C,IAAwB,IAApB++C,EAAwB,CACxB,MAAMznB,EAAe/a,EAAML,KAAK6iC,GAIhCzwB,GAPkB/Q,EAAevd,IAQjCs3B,EAAa/Z,eAAe,EAA4BwN,EAAMg0B,GAAkBA,EACpF,CACJ,CACJ,SAEIp7B,GAAoB5jB,EACxB,CACJ,CACJ,CAYA,SAASo4C,GAAcptB,EAAO6mB,GAK1B,OAAI7mB,EAAMvD,IACNuD,EAAMtD,IAAYT,IAAQ4qB,EAG1B7mB,EAAMvD,IAAcoqB,EAExB7mB,EAAMtD,IAAcmqB,EACbA,CACX,CAIA,SAASoN,GAAmBpsC,EAAOqsC,EAAaC,GAE5C5wB,GAAqB,GACrB,MAAMvuB,EAAe4jB,GAAoB,MACzC,IACIs7B,EAAYrsC,EAAOssC,EACvB,SAEIv7B,GAAoB5jB,EACxB,CACJ,CA0CA,SAASo/C,GAAwBh0B,GAE7B,OAAQA,EAAKhE,MAAa,EAC9B,CACA,SAASi4B,GAAwB7iC,GAC7B,OAAQA,EAAMie,UAAY,EAC9B,CAkBA,SAASiE,GAAY1T,EAAO7pB,GACxB,MAAMmS,EAAW0X,EAAM1D,IACjBg4B,EAAehsC,EAAWA,EAASI,IAAI2rB,GAAc,MAAQ,KACnEigB,GAAgBA,EAAa5gB,YAAYv9B,EAC7C,CAUA,SAASw6C,GAAqBn/B,EAAOwO,EAAO3N,EAAQqB,EAAYzd,GAC5D,QAAShB,EAAI,EAAGA,EAAIod,EAAOhe,QAAS,CAChC,MAAMmF,EAAQ6Y,EAAOpd,KACf4pB,EAAcxM,EAAOpd,KACrB4S,EAAQwK,EAAOpd,KAIrB01C,GADYn5B,EAAML,KAAK3X,GAFNwmB,EAAMxmB,GAGcka,EAAYmL,EAAahX,EAAO5R,EACzE,CACJ,CAIA,SAASs+C,GAAoBv0B,EAAOxmB,EAAOvD,GAIvC,MAAM8qC,EAAUhhB,GAAiBvmB,EAAOwmB,IA1xE5C,SAASw0B,GAAeloC,EAAU8qB,EAAOnhC,GAErCqW,EAASmoC,SAASrd,EAAOnhC,EAC7B,CAyxEIu+C,CAAex0B,EAAMxD,GAAWukB,EAAS9qC,EAC7C,CAEA,SAASy+C,GAAgBC,EAAWC,GAEhC,MAAMzH,EAAgB9sB,GAAyBu0B,EAAkBD,GAC3DE,EAAiB1H,EAAcrxB,IAoCzC,SAASg5B,GAAsBtjC,EAAOwO,GAClC,QAAS/qB,EAAI+qB,EAAM3rB,OAAQY,EAAIuc,EAAMyX,UAAU50B,OAAQY,IACnD+qB,EAAMvqB,KAAK+b,EAAMyX,UAAUh0B,GAEnC,CAvCI6/C,CAAsBD,EAAgB1H,GACtC,MAAM4H,EAAY5H,EAActxB,IAEd,OAAdk5B,GAAmD,OAA7B5H,EAAchxB,MACpCgxB,EAAchxB,IAAamf,GAAsByZ,EAAW5H,EAAc7wB,MAE9E04B,GAAWH,EAAgB1H,EAAeA,EAAc9wB,IAC5D,CAwCA,SAAS24B,GAAWxjC,EAAOwO,EAAOjkB,GAG9B+nB,GAAU9D,GACV,IACI,MAAMvN,EAAYjB,EAAMiB,UACN,OAAdA,GACAwhC,GAAmB,EAA4BxhC,EAAW1W,GAI9D,MAAMywC,EAAah7B,EAAMhB,SACN,OAAfg8B,GACAD,GAAgB/6B,EAAOwO,EAAOwsB,EAAY,EAA4BzwC,GAOtEyV,EAAMsX,kBACNtX,EAAMsX,iBAAkB,GAI5B9I,EAAMjD,KAAUk4B,mBAAmBzjC,GAI/BA,EAAMm9B,sBACNoF,GAAsBviC,EAAOwO,GAK7BxO,EAAMk9B,mBACNuF,GAAmB,EAA4BziC,EAAMiB,UAAW1W,GAGpE,MAAM6yC,EAAap9B,EAAMo9B,WACN,OAAfA,GAmBZ,SAASsG,GAAsBP,EAAW/F,GACtC,QAAS35C,EAAI,EAAGA,EAAI25C,EAAWv6C,OAAQY,IACnCy/C,GAAgBC,EAAW/F,EAAW35C,GAE9C,CAtBYigD,CAAsBl1B,EAAO4uB,EAErC,OACOz4C,GAGH,MAAIqb,EAAMsX,kBACNtX,EAAMq8B,qBAAsB,EAC5Br8B,EAAMsX,iBAAkB,GAEtB3yB,CACV,SAEI6pB,EAAMjE,KAAU,EAChB6I,IACJ,CACJ,CAQA,SAASuwB,GAA6BC,EAAkBC,EAAet5C,EAAS0I,GAC5E,MAAMzP,EAAe4jB,GAAoB,MACzC,IACI,MAAM08B,EAAgBD,EAAc7jC,MAM9B+jC,EAAgBzK,GAAYsK,EAAkBE,EAAev5C,EAFpB,KAA1Bq5C,EAAiBr5B,GACL,KAAmC,GACmB,KAAMs5B,EAAe,KAAM,KAAM5wC,GAAS6D,UAAY,KAAM7D,GAAS6lB,sBAAwB,KAAM7lB,GAASy2B,gBAAkB,MAGrNqa,EAAc14B,IAFgBu4B,EAAiBC,EAAc77C,OAG7D,MAAMg8C,EAA0BJ,EAAiBr4B,IACjD,OAAgC,OAA5By4B,IACAD,EAAcx4B,IAAWy4B,EAAwBC,mBAAmBH,IAGxEN,GAAWM,EAAeC,EAAex5C,GAClCw5C,CACX,SAEI38B,GAAoB5jB,EACxB,CACJ,CAkBA,SAAS0gD,GAAmB7nC,EAAOqtB,GAC/B,OAASA,GAAgD,OAA9BA,EAAejX,YAAuBqT,GAA4BzpB,EACjG,CACA,SAAS8nC,GAAqBhR,EAAY3kB,EAAOxmB,EAAOo8C,GAAW,GAC/D,MAAMpkC,EAAQwO,EAAMlE,GAIpB,GAn0EJ,SAAS+5B,GAAWrkC,EAAOwO,EAAO2kB,EAAYnrC,GAG1C,MAAM4sC,EAAmB1oB,GAA0BlkB,EAC7Cs8C,EAAkBnR,EAAWtwC,OAC/BmF,EAAQ,IAERmrC,EAAWyB,EAAmB,GAAGnqB,IAAQ+D,GAEzCxmB,EAAQs8C,EAAkBp4B,IAC1BsC,EAAM/D,IAAQ0oB,EAAWyB,GACzBt8B,GAAW66B,EAAYjnB,GAA0BlkB,EAAOwmB,KAGxD2kB,EAAWlvC,KAAKuqB,GAChBA,EAAM/D,IAAQ,MAElB+D,EAAMhE,IAAU2oB,EAEhB,MAAM2B,EAAwBtmB,EAAMnD,IACN,OAA1BypB,GAAkC3B,IAAe2B,GACjDT,GAAeS,EAAuBtmB,GAG1C,MAAMymB,EAAWzmB,EAAMjD,IACN,OAAb0pB,GACAA,EAASoP,WAAWrkC,GAExBuP,GAAqCf,GAErCA,EAAMjE,IAAU,GACpB,CAkyEI85B,CAAWrkC,EAAOwO,EAAO2kB,EAAYnrC,GAEjCo8C,EAAU,CACV,MAAMlR,EAAagE,GAAqBlvC,EAAOmrC,GACzCr4B,EAAW0T,EAAMxD,GACjB8rB,EAAcP,GAAiBz7B,EAAUq4B,EAAWnnB,KACtC,OAAhB8qB,GAz5EZ,SAASyN,GAAavkC,EAAOmS,EAAarX,EAAU0T,EAAOg2B,EAAkBtR,GACzE1kB,EAAMnE,IAAQm6B,EACdh2B,EAAM9D,IAAUyH,EAChByhB,GAAU5zB,EAAOwO,EAAO1T,EAAU,EAAoC0pC,EAAkBtR,EAC5F,CAs5EYqR,CAAavkC,EAAOmzB,EAAWzoB,IAAS5P,EAAU0T,EAAOsoB,EAAa5D,EAE9E,CAIA,MAAMjJ,EAAgBzb,EAAM7D,IACN,OAAlBsf,GAAuD,OAA7BA,EAAcxX,aACxCwX,EAAcxX,WAAa,KAEnC,CASA,SAASgyB,GAAmBzkC,EAAOwO,EAAOnS,EAAOpO,EAAQ+pC,GAAe,GACpE,KAAiB,OAAV37B,GAAgB,CAEnB,GAAmB,MAAfA,EAAM3J,KAA6C,CACnD2J,EAAQ27B,EAAe37B,EAAM+7B,eAAiB/7B,EAAM7V,KACpD,QACJ,CAGA,MAAMk+C,EAAQl2B,EAAMnS,EAAMrU,OACZ,OAAV08C,GACAz2C,EAAOhK,KAAKqqB,GAAYo2B,IAKxBp4B,GAAao4B,IACbC,GAA+BD,EAAOz2C,GAE1C,MAAMgpC,EAAY56B,EAAM3J,KACxB,GAAgB,EAAZukC,EACAwN,GAAmBzkC,EAAOwO,EAAOnS,EAAMwW,MAAO5kB,QAAM,GAEnC,GAAZgpC,EAAoC,CACzC,MAAMiB,EAAYrF,GAAoBx2B,EAAOmS,GAC7C,IAAIoX,EACJ,KAAQA,EAAQsS,KACZjqC,EAAOhK,KAAK2hC,EAEpB,SACqB,GAAZqR,EAA2C,CAChD,MAAM2N,EAActN,GAAmB9oB,EAAOnS,GAC9C,GAAI1V,MAAMD,QAAQk+C,GACd32C,EAAOhK,QAAQ2gD,OAEd,CACD,MAAMjuB,EAAajH,GAAelB,EAAMpD,KAExCq5B,GAAmB9tB,EAAWrM,GAAQqM,EAAYiuB,EAAa32C,GAAQ,EAC3E,CACJ,CACAoO,EAAQ27B,EAAe37B,EAAM+7B,eAAiB/7B,EAAM7V,IACxD,CACA,OAAOyH,CACX,CAIA,SAAS02C,GAA+BxR,EAAYllC,GAChD,QAASxK,EAAIyoB,GAAyBzoB,EAAI0vC,EAAWtwC,OAAQY,IAAK,CAC9D,MAAMohD,EAAoB1R,EAAW1vC,GAC/BqhD,EAAuBD,EAAkBv6B,GAAOmI,WACzB,OAAzBqyB,GACAL,GAAmBI,EAAkBv6B,GAAQu6B,EAAmBC,EAAsB72C,EAE9F,CAcIklC,EAAWnnB,MAAYmnB,EAAW9oB,KAClCpc,EAAOhK,KAAKkvC,EAAWnnB,IAE/B,CAEA,IAAI+4B,GAAgB,GAsBpB,MAAMC,GAA+B,IAC9BC,GACH9iD,sBAAsB,EACtBG,oBAAsBG,IAClB4sB,GAA0B5sB,EAAK+rB,MAAK,EAExCjsB,uBACI0E,KAAKunB,MAAM5C,IAA8B3kB,IAC7C,GAmBEi+C,GAA0B,IACzBD,GACH9iD,sBAAsB,EACtBG,oBAAsBG,IAClB,IAAIqI,EAAS4kB,GAAejtB,EAAK+rB,OACjC,KAAO1jB,IAAWq6C,GAA+Br6C,EAAOwf,KACpDxf,EAAS4kB,GAAe5kB,GAEvBA,GAKLskB,GAAmBtkB,EAAM,EAE7BvI,uBACI0E,KAAKunB,MAAM5C,IAA8B3kB,IAC7C,GAgBJ,SAASk+C,GAA+BnlC,GACpC,OAAsB,IAAfA,EAAMtN,IACjB,CAKA,MAAM0yC,GAA2B,IACjC,SAASC,GAAsB72B,EAAO82B,GAAqB,EAAMxoC,EAAO,GACpE,MAAM08B,EAAchrB,EAAMzD,IACpB8wB,EAAkBrC,EAAYqC,gBAMhCA,EAAgB0J,UAEpB,KAkBJ,SAASC,GAA8Bh3B,EAAO1R,GAC1C,MAAM2oC,EAA6Bv0B,KACnC,IACIC,IAAqB,GACrBu0B,GAAoBl3B,EAAO1R,GAO3B,IAAI6oC,EAAU,EAKd,KAAOr2B,GAA2Bd,IAAQ,CACtC,GAAIm3B,IAAYP,GACZ,MAAM,IAAIx1C,EAAa,KAAsDqH,GAKjF0uC,IAGAD,GAAoBl3B,EAAO,EAC/B,CACJ,SAGI2C,GAAqBs0B,EACzB,CACJ,CAlDQD,CAA8Bh3B,EAAO1R,EACzC,OACOnY,GACH,MAAI2gD,GACApjB,GAAY1T,EAAO7pB,GAEjBA,CACV,SAGQk3C,EAAgB7iC,QAGhBwgC,EAAYoM,oBAAoBC,OAExC,CACJ,CAoDA,SAASC,GAAY9lC,EAAOwO,EAAOwsB,EAAYzwC,GAE3C,MAAM8L,EAAQmY,EAAMjE,GACpB,KAAiD,KAA5ClU,GACD,OAKuBmY,EAAMzD,IAAa66B,oBAAoBC,QAIlEvzB,GAAU9D,GACV,IAAIu3B,GAAuB,EACvBviD,EAAe,KACfwiD,EAAkB,KAEdb,GAA+BnlC,IAC/BgmC,EAtLZ,SAASC,GAAiCz3B,GACtC,OAAOA,EAAM5C,KAEjB,SAASs6B,GAA4B13B,GACjC,MAAMntB,EAAW0jD,GAAcrhD,OAAS7C,OAAOyD,OAAO0gD,IACtD3jD,SAASmtB,MAAQA,EACVntB,CACX,CANgD6kD,CAA4B13B,EAC5E,CAoL8By3B,CAAiCz3B,GACnDhrB,EAAe2iD,GAA4BH,IAEZ,O7Bl6a3C,SAASI,KACL,OAAOrlD,EACX,C6Bg6aiBslD,IAOLN,GAAuB,EACvBC,EA3JZ,SAASM,GAA6B93B,GAClC,MAAMntB,EAAWmtB,EAAM5C,KAA+B/qB,OAAOyD,OAAO4gD,IACpE7jD,SAASmtB,MAAQA,EACVntB,CACX,CAuJ8BilD,CAA6B93B,GAC/ChrB,EAAe2iD,GAA4BH,IAEtCx3B,EAAM5C,MACX4pB,GAAkBhnB,EAAM5C,KACxB4C,EAAM5C,IAA8B,MAG5C,IACIuD,GAAuBX,GA98R/B,SAAS+3B,GAAgB9hD,GACrB,OAAQorB,EAAiBC,OAAO0B,aAAe/sB,CACnD,CA68RQ8hD,CAAgBvmC,EAAMsR,mBACH,OAAf0pB,GACAD,GAAgB/6B,EAAOwO,EAAOwsB,EAAY,EAA4BzwC,GAE1E,MAAMi8C,IAA8E,GAAnDnwC,GAI7B,GAAImwC,EAAyB,CACzB,MAAMprB,EAAqBpb,EAAMob,mBACN,OAAvBA,GACA1G,GAAkBlG,EAAO4M,EAAoB,KAErD,KACK,CACD,MAAMD,EAAgBnb,EAAMmb,cACN,OAAlBA,GACAtG,GAAyBrG,EAAO2M,EAAe,EAA2C,MAE9FpG,GAAwBvG,EAAO,EACnC,CAkBA,GA4GZ,SAASi4B,GAAgCj4B,GACrC,QAAS2kB,EAAa9M,GAAmB7X,GAAuB,OAAf2kB,EAAqBA,EAAa5M,GAAkB4M,GAAa,CAC9G,KAAMA,EAAW5oB,GAAS4B,GAAgBC,sBACtC,SACJ,MAAMmoB,EAAapB,EAAWlnB,IAE9B,QAASxoB,EAAI,EAAGA,EAAI8wC,EAAW1xC,OAAQY,IAEnC2rB,GADmBmlB,EAAW9wC,GAGtC,CACJ,CAjIYgjD,CAAgCj4B,GAEpCk4B,GAA6Bl4B,EAAO,GAEP,OAAzBxO,EAAMgB,gBACNuhC,GAAsBviC,EAAOwO,GAKzBg4B,EAAyB,CACzB,MAAMlyB,EAAoBtU,EAAMsU,kBACN,OAAtBA,GACAI,GAAkBlG,EAAO8F,EAEjC,KACK,CACD,MAAMD,EAAerU,EAAMqU,aACN,OAAjBA,GACAQ,GAAyBrG,EAAO6F,EAAc,GAElDU,GAAwBvG,EAAO,EACnC,EAnyDZ,SAASm4B,GAA0B3mC,EAAOwO,GACtC,MAAMwuB,EAAqBh9B,EAAMg9B,mBACjC,GAA2B,OAAvBA,EAEJ,IACI,QAASv5C,EAAI,EAAGA,EAAIu5C,EAAmBn6C,OAAQY,IAAK,CAChD,MAAMmjD,EAAS5J,EAAmBv5C,GAClC,GAAImjD,EAAS,EAETtzB,IAAkBszB,OAEjB,CAED,MAAMpG,EAAeoG,EACfC,EAAkB7J,IAAqBv5C,GACvCqjD,EAAgB9J,IAAqBv5C,GAC3CiuB,GAA8Bm1B,EAAiBrG,GAE/CsG,EAAc,EADEt4B,EAAMgyB,GAE1B,CACJ,CACJ,SAEIltB,IAAiB,EACrB,CACJ,CA4wDQqzB,CAA0B3mC,EAAOwO,GAEjC,MAAM4uB,EAAap9B,EAAMo9B,WACN,OAAfA,GACA2J,GAA+Bv4B,EAAO4uB,EAAY,GAKtD,MAAMn8B,EAAYjB,EAAMiB,UAOpB,GANc,OAAdA,GACAwhC,GAAmB,EAA4BxhC,EAAW1W,GAKtDi8C,EAAyB,CACzB,MAAMhyB,EAAiBxU,EAAMwU,eACN,OAAnBA,GACAE,GAAkBlG,EAAOgG,EAEjC,KACK,CACD,MAAMD,EAAYvU,EAAMuU,UACN,OAAdA,GACAM,GAAyBrG,EAAO+F,EAAW,GAE/CQ,GAAwBvG,EAAO,EACnC,CAYJ,IAV8B,IAA1BxO,EAAMi9B,kBAONj9B,EAAMi9B,iBAAkB,GAGxBzuB,EAAM7C,IAAsB,CAC5B,UAAWq7B,KAAgBx4B,EAAM7C,IAC7Bq7B,IAGJx4B,EAAM7C,IAAuB,IACjC,CAQI6C,EAAMjE,KAAU,EAExB,OACOtiB,GACH,MAKIonB,GAA0Bb,GAExBvmB,CACV,SAE4B,OAApB+9C,IACAiB,GAA2BjB,EAAiBxiD,GACxCuiD,GA7ThB,SAASmB,GAAiC7lD,GAClCA,EAASmtB,MAAM5C,MAAgCvqB,IAInDA,EAASmtB,MAAQ,KACjBu2B,GAAc9gD,KAAK5C,GACvB,CAuTgB6lD,CAAiClB,IAGzC5yB,IACJ,CACJ,CAKA,SAASszB,GAA6Bl4B,EAAO1R,GACzC,QAASq2B,EAAa9M,GAAmB7X,GAAuB,OAAf2kB,EAAqBA,EAAa5M,GAAkB4M,GACjG,QAAS1vC,EAAIyoB,GAAyBzoB,EAAI0vC,EAAWtwC,OAAQY,IAEzD0jD,GADsBhU,EAAW1vC,GACYqZ,EAGzD,CAwBA,SAASsqC,GAAyBjE,EAAWC,EAAkBtmC,GAG3DqqC,GADsBt4B,GAAyBu0B,EAAkBD,GACpBrmC,EACjD,CAMA,SAASqqC,GAA8B34B,EAAO1R,GACrCmS,GAA6BT,IAGlCk3B,GAAoBl3B,EAAO1R,EAC/B,CAWA,SAAS4oC,GAAoBl3B,EAAO1R,GAEhC,MAAMkD,EAAQwO,EAAMlE,GACdjU,EAAQmY,EAAMjE,GACdlpB,EAAWmtB,EAAM5C,IAEvB,IAAIy7B,KAAgC,IAATvqC,GAAuD,GAARzG,GAqB1E,GAdAgxC,OAAiC,GAARhxC,GACZ,IAATyG,GAGJuqC,OAAiC,KAARhxC,GAEzBgxC,OAAyBhmD,GAAUK,QAAS4lD,GAAiCjmD,IAC7EgmD,KAAsB,EAGlBhmD,IACAA,EAASK,OAAQ,GAErB8sB,EAAMjE,KAAU,KACZ88B,EACAvB,GAAY9lC,EAAOwO,EAAOxO,EAAMhB,SAAUwP,EAAM3D,UAAQ,GAE3C,KAARxU,EAAsD,CAC3DqwC,GAA6Bl4B,EAAO,GACpC,MAAM4uB,EAAap9B,EAAMo9B,WACN,OAAfA,GACA2J,GAA+Bv4B,EAAO4uB,EAAY,EAE1D,CACJ,CAEA,SAAS2J,GAA+B5D,EAAW/F,EAAYtgC,GAC3D,QAASrZ,EAAI,EAAGA,EAAI25C,EAAWv6C,OAAQY,IACnC2jD,GAAyBjE,EAAW/F,EAAW35C,GAAIqZ,EAE3D,CAaA,SAASyqC,GAAc/4B,EAAOjjB,GAC1B,MAAMi8C,EAAiBt2B,KAAkB,GAEjC,KAQR,IADA1C,EAAMzD,IAAayE,0BAA0BC,OAAOlkB,GAC7CijB,GAAO,CACVA,EAAMjE,IAAUi9B,EAChB,MAAM18C,EAAS4kB,GAAelB,GAE9B,GAAI5B,GAAW4B,KAAW1jB,EACtB,OAAO0jB,EAGXA,EAAQ1jB,CACZ,CACA,OAAO,IACX,CAEA,MAAM28C,GACF,aAAIC,GACA,MAAMl5B,EAAQvnB,KAAKw0B,OACbzb,EAAQwO,EAAMlE,GACpB,OAAOm6B,GAAmBzkC,EAAOwO,EAAOxO,EAAMyS,WAAY,GAC9D,CACAhrB,YAYAg0B,EAOAksB,EAAqBrC,GAAqB,GACtCr+C,KAAKw0B,OAASA,EACdx0B,KAAK0gD,oBAAsBA,EAC3B1gD,KAAKq+C,mBAAqBA,EAC1Br+C,KAAK2gD,QAAU,KACf3gD,KAAK4gD,0BAA2B,CACpC,CACA,WAAIt9C,GACA,OAAOtD,KAAKw0B,OAAO5Q,GACvB,CAMA,WAAItgB,CAAQ9F,GAMRwC,KAAKw0B,OAAO5Q,IAAWpmB,CAC3B,CACA,aAAI4hB,GACA,QAAiE,KAAzDpf,KAAKw0B,OAAOlR,GACxB,CACArD,UACI,GAAIjgB,KAAK2gD,QACL3gD,KAAK2gD,QAAQlT,WAAWztC,WAAI,GAEvBA,KAAK4gD,yBAA0B,CACpC,MAAM/8C,EAAS7D,KAAKw0B,OAAOjR,IAC3B,GAAI8B,GAAaxhB,GAAS,CACtB,MAAMg9C,EAAWh9C,EAtiUf,GAuiUI9C,EAAQ8/C,EAAWA,EAASn/C,QAAQ1B,OAAQ,EAC9Ce,GAAQ,IAGR0sC,GAAW5pC,EAAQ9C,GACnBwQ,GAAgBsvC,EAAU9/C,GAElC,CACAf,KAAK4gD,0BAA2B,CACpC,CACA3S,GAAajuC,KAAKw0B,OAAOnR,GAAQrjB,KAAKw0B,OAC1C,CACA/Y,UAAU+E,GACNkI,GAAoB1oB,KAAKw0B,OAAQhU,EACrC,CAgCAsgC,eACIR,GAActgD,KAAK0gD,qBAAuB1gD,KAAKw0B,OAAQ,EAC3D,CAsDAusB,SACI/gD,KAAKw0B,OAAOlR,KAAU,GAC1B,CAyDA09B,WACI14B,GAAqCtoB,KAAKw0B,QAC1Cx0B,KAAKw0B,OAAOlR,IAAU,GAC1B,CAsBA29B,gBAMIjhD,KAAKw0B,OAAOlR,IAAU,KACtB86B,GAAsBp+C,KAAKw0B,OAAQx0B,KAAKq+C,mBAC5C,CAOA6C,iBAIA,CACAC,2BACI,GAAInhD,KAAK2gD,QACL,MAAM,IAAIh4C,EAAa,KAAkDqH,GAE7EhQ,KAAK4gD,0BAA2B,CACpC,CACAQ,mBACIphD,KAAK2gD,QAAU,KACf,MAAMU,EAAS17B,GAAW3lB,KAAKw0B,QACzB6Y,EAAuBrtC,KAAKw0B,OAAOpQ,IACZ,OAAzBipB,IAAkCgU,GAClC9T,GAAgBF,EAAsBrtC,KAAKw0B,QAE/C2Y,GAAkBntC,KAAKw0B,OAAOnR,GAAQrjB,KAAKw0B,OAC/C,CACA8sB,eAAeC,GACX,GAAIvhD,KAAK4gD,yBACL,MAAM,IAAIj4C,EAAa,KAAkDqH,GAE7EhQ,KAAK2gD,QAAUY,EACf,MAAMF,EAAS17B,GAAW3lB,KAAKw0B,QACzB6Y,EAAuBrtC,KAAKw0B,OAAOpQ,IACZ,OAAzBipB,IAAkCgU,GAClCjU,GAAeC,EAAsBrtC,KAAKw0B,QAE9ClM,GAAqCtoB,KAAKw0B,OAC9C,EAGJ,IAiBMgtB,GAAW,MAAjB,MAAMA,SAKOxhD,KAAKiN,kBAAoBw0C,EAAmB,EACxD,OANKD,CAAW,KAOjB,MAAME,GAAwBF,GAGxBG,GAAgB,cAA0BD,GAC5ClhD,YAAYohD,EAAmBC,EAAwBC,GACnDz/C,QACArC,KAAK4hD,kBAAoBA,EACzB5hD,KAAK6hD,uBAAyBA,EAC9B7hD,KAAK8hD,WAAaA,CACtB,CAOA,SAAIrM,GACA,OAAOz1C,KAAK6hD,uBAAuB9oC,OAAO08B,OAAS,IACvD,CACAuH,mBAAmB15C,EAASuM,GACxB,OAAO7P,KAAK+hD,uBAAuBz+C,EAASuM,EAChD,CAIAkyC,uBAAuBz+C,EAASuM,EAAU4yB,GACtC,MAAMqa,EAAgBJ,GAA6B18C,KAAK4hD,kBAAmB5hD,KAAK6hD,uBAAwBv+C,EAAS,CAAEuuB,qBAAsBhiB,EAAU4yB,mBACnJ,OAAO,IAAI+d,GAAU1D,EACzB,GAOJ,SAAS2E,KACL,OAAOO,GAAkBt4B,KAAmBN,IAChD,CAQA,SAAS44B,GAAkBzN,EAAW2H,GAClC,OAAqB,EAAjB3H,EAAU9oC,KAEH,IAAIk2C,GAAczF,EAAW3H,EAAWpY,GAAiBoY,EAAW2H,IAExE,IACX,CAwsBA,MAAM+F,GAAuB,IAAIC,OAAO,YAAY/gB,MAAuBD,YA2D3E,SAASihB,GAAiB/sC,GACtB,OAAOA,EAAMrU,MAAQ6jB,CACzB,CAuDA,SAASw9B,GAAgBpf,EAAejqB,EAAOwO,EAAOnS,GAClD,MAAMitC,EAAgBF,GAAiB/sC,GACvC,IAAItB,EA/BR,SAASwuC,GAAuBtf,EAAeqf,GAC3C,MAAME,EAAYvf,EAAcuf,UAChC,GAAIA,EACA,OAAOA,EAAUtyC,IAAIoyC,EAG7B,CAyBiBC,CAAuBtf,EAAeqf,GACnD,QAAe1nD,IAAXmZ,EAAsB,CACtB,MAAMqjC,EAAQnU,EAActqB,KAAKmpB,IACjC,GAAIsV,IAAQkL,GAERvuC,EA0GZ,SAAS0uC,GAAkB/uB,EAAMlM,GAC7B,MAAOk7B,KAAkBC,GA9L7B,SAASC,GAAuBlvB,GAC5B,MAAMolB,EAAUplB,EAAK+S,MAAMyb,KACpBppC,EAAG+pC,EAAWC,EAAaC,GAAQjK,EAEpCkK,EAAMH,EAAYI,SAASJ,EAAW,IAAMC,EAC5CI,EAAQ,GAEd,UAAYpqC,EAAGqqC,EAAMn8C,KAAU+7C,EAAKK,SAAS,eAAgB,CACzD,MAAMC,EAASJ,SAASj8C,EAAO,KAAO,EACtCk8C,EAAMjmD,KAAKkmD,EAAME,EACrB,CACA,MAAO,CAACL,KAAQE,EACpB,CAkLuDN,CAAuBlvB,GAC1E,IAAIsvB,EAEAA,EADAN,IAAkBvhB,GACZ3Z,EAAMpD,IAA4Bf,IAEnCq/B,IAAkBthB,GArhJ/B,SAASkiB,GAAc/a,GACnB,OAAOA,EAAQgb,cAAcrjB,IACjC,CAohJcojB,CAAc97B,EAAMpD,IAA4Bf,KAIhDiE,GAAYE,EADMsW,OAAO4kB,GACW79B,IAE9C,OAzCJ,SAAS2+B,GAAeC,EAAMC,GAC1B,IAAIjoD,EAAOgoD,EACX,QAAShnD,EAAI,EAAGA,EAAIinD,EAAa7nD,OAAQY,GAAK,EAAG,CAC7C,MAAM0mD,EAAOO,EAAajnD,GACpB4mD,EAASK,EAAajnD,EAAI,GAChC,QAASknD,EAAI,EAAGA,EAAIN,EAAQM,IAIxB,OAAQR,GACJ,KAAK9hB,GAAmBC,WACpB7lC,EAAOA,EAAKgwB,WACZ,MACJ,KAAK4V,GAAmBE,YACpB9lC,EAAOA,EAAKmnC,YAI5B,CAIA,OAAOnnC,CACX,CAkBW+nD,CAAeR,EAAKL,EAC/B,CAxHqBF,CAAkBrL,EAAMkL,GAAgB96B,QAAK,GAEjDxO,EAAMyS,aAAepW,EAG1BtB,EAASkvB,EAAcxX,eAEtB,CAED,MAAMm4B,EAAqC,OAAfvuC,EAAM/a,KAC5BupD,EAAiBxuC,EAAM/a,MAAQ+a,EAAMvR,OAI3C,GAlFZ,SAASggD,GAA4BzuC,GACjC,OAAQA,EAAM/a,MAA+B,IAAvB+a,EAAMvR,QAAQ4H,IACxC,CAgFgBo4C,CAA4BzuC,GAE5BtB,EAASovB,GAAeF,EADImf,GAAiB/sC,EAAMvR,aAGlD,CACD,IAAIigD,EAAmBt8B,GAAiBo8B,EAAer8B,GACvD,GAAIo8B,EACA7vC,EAASgwC,EAAiBt4B,eAEzB,CAMD,MAAMu4B,EAA2B5B,GAAiByB,GAC5CI,EAAc9gB,GAAeF,EAAe+gB,GAM9CjwC,EALuB,IAAvB8vC,EAAcn4C,MAAsCu4C,EAK3CC,GAJkB7gB,GAA4BJ,EAAe+gB,GAE7B,EAENC,GAG1BF,EAAiBnhB,WAElC,CACJ,CACJ,CACJ,CACA,OAAO7uB,CACX,CAIA,SAASmwC,GAAaC,EAAMV,GACxB,IAAItM,EAAcsM,EAClB,QAAShnD,EAAI,EAAGA,EAAI0nD,EAAM1nD,IAEtB06C,EAAcA,EAAYvU,YAE9B,OAAOuU,CACX,CAqMA,IAAIiN,IAAiC,EAwbrC,SAASC,GAAyBvwC,EAAU0uC,EAAW8B,GACnD,UAAW7oD,KAAQ6oD,EAAkB7oD,KAAK8oD,MAAMD,EAAkBE,MAAO,CACrE,MAAM5lB,EAAQ4jB,EAAUtyC,IAAIzU,EAAKuF,MAAQ6jB,GACrC+Z,GACA2N,GAAiBz4B,EAAU8qB,GAAO,EAE1C,CACJ,CAOA,SAAS6lB,GAAsBtY,GAC3B,MAAM7I,EAAQ6I,EAAWpnB,KAAqB,GAExCjR,EADcq4B,EAAW3oB,IACFQ,GAC7B,UAAW4D,KAAQ0b,EACfohB,GAAqB98B,EAAM9T,GAO/Bq4B,EAAWpnB,IAAoBvS,EACnC,CAIA,SAASkyC,GAAqBhiB,EAAgB5uB,GAC1C,IAAI6wC,EAAe,EACfC,EAAeliB,EAAejX,WAClC,GAAIm5B,EAAc,CACd,MAAMrhB,EAAWb,EAAe/pB,KAAKipB,IACrC,KAAO+iB,EAAephB,GAAU,CAE5B,MAAMX,EAAcgiB,EAAahiB,YACjC2J,GAAiBz4B,EAAU8wC,GAAc,GACzCA,EAAehiB,EACf+hB,GACJ,CACJ,CACJ,CAKA,SAASE,GAAkB1Y,GACvBsY,GAAsBtY,GAItB,MAAMgQ,EAAYhQ,EAAW9oB,IACzBgC,GAAQ82B,IACR2I,GAAa3I,GAEjB,QAAS1/C,EAAIyoB,GAAyBzoB,EAAI0vC,EAAWtwC,OAAQY,IACzDqoD,GAAa3Y,EAAW1vC,GAEhC,CAKA,SAASqoD,GAAat9B,IAhFtB,SAASu9B,GAAyBv9B,GAC9B,MAAMyb,EAAgBzb,EAAM7D,IAC5B,GAAIsf,EAAe,CACf,MAAQuf,YAAW8B,kBAAmBU,GAAyB/hB,EAC/D,GAAIuf,GAAawC,EAAsB,CACnC,MAAMlxC,EAAW0T,EAAMxD,GACvB,UAAWsgC,KAAqBU,EAAqBx7C,SACjD66C,GAAyBvwC,EAAU0uC,EAAW8B,EAEtD,CACArhB,EAAcuf,eAAY5nD,EAC1BqoC,EAAcqhB,uBAAoB1pD,CACtC,CACJ,CAoEImqD,CAAyBv9B,GACzB,MAAMxO,EAAQwO,EAAMlE,GACpB,QAAS7mB,EAAIooB,EAAepoB,EAAIuc,EAAMsR,kBAAmB7tB,IACjD6oB,GAAakC,EAAM/qB,IAEnBooD,GADmBr9B,EAAM/qB,IAGpB4oB,GAAQmC,EAAM/qB,KAEnBqoD,GAAat9B,EAAM/qB,GAG/B,CA0DA,IAAIwoD,GAAkCA,IAAM,KAU5C,SAASC,GAA+B/Y,EAAYn0B,GAChD,MAAMsrB,EAAQ6I,EAAWpnB,IACzB,OAAK/M,GAAsB,OAAVsrB,GAAmC,IAAjBA,EAAMznC,OAG5BynC,EAAM,GAIV3qB,KAAKkpB,MAAiB7pB,EAEpBsrB,EAAMnxB,SAObsyC,GAAsBtY,GACf,MAhBA,IAkBf,CAIA,SAASgZ,GAA2BhZ,EAAYn0B,GAC5C,OAAOitC,GAAgC9Y,EAAYn0B,EACvD,CAKA,MAAMotC,IAGN,MAAMC,GAAmB,IAAIr4C,EAAoF,GAAI,CAAElB,WAAY,OAAQC,QAASA,KAAM,IAGpJu5C,GAA8B,IAAIt4C,EAAsF,IAExHu4C,GAAwB,IAAIv4C,EAAoG,IAStI,MAAMw4C,IAYN,MAAMC,IAYN,MAAMC,GACFC,wBAAwBhK,GACpB,MAXR,SAASiK,GAAwBjK,GAC7B,MAAMh+C,EAAQjC,MAAM,kCAAkCmP,GAAU8wC,OAChEh+C,SAAqB,YAAIg+C,EAClBh+C,CACX,CAOcioD,CAAwBjK,EAClC,EAiBJ,MAAMkK,UACO5lD,KAAKo1B,KAAO,IAAIqwB,EAAiC,EAQ9D,MAAMI,IAEN,IAeMC,GAAS,MAAf,MAAMA,EACFtlD,cAKIR,KAAKusC,YAAc,IACvB,QAKSvsC,KAAKiN,kBAAoB,IAGtC,SAAS84C,KAGL,MAAMx+B,EAAQ6B,IAER48B,EAAcp+B,GADN8B,KACqC3oB,MAAOwmB,GAC1D,OAAQnC,GAAQ4gC,GAAeA,EAAcz+B,GAAOxD,EACxD,CAV4CgiC,EAAmB,EAC9D,OAbKD,CAAS,KA6BTG,GAAS,MAAf,MAAMA,SAEOjmD,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAOo7C,EACPp6C,WAAY,OACZC,QAASA,IAAM,MACf,EACP,OAPKm6C,CAAS,KAmUf,SAASC,GAAqB9wC,EAAOrB,EAAOoyC,GAGxC,IAAIvtC,EAASutC,EAAc/wC,EAAMwD,OAAS,KACtCkc,EAAUqxB,EAAc/wC,EAAM0f,QAAU,KACxCjf,EAAO,EACX,GAAc,OAAV9B,EACA,QAASvX,EAAI,EAAGA,EAAIuX,EAAMnY,OAAQY,IAAK,CACnC,MAAMgB,EAAQuW,EAAMvX,GACC,iBAAVgB,EACPqY,EAAOrY,EAEM,GAARqY,EACLif,EAAU5pB,GAAuB4pB,EAASt3B,GAE7B,GAARqY,IAGL+C,EAAS1N,GAAuB0N,EAFlBpb,EAEkC,KAD7BuW,IAAQvX,GACyC,KAE5E,CAEJ2pD,EAAe/wC,EAAMwD,OAASA,EAAWxD,EAAM89B,kBAAoBt6B,EACnEutC,EAAe/wC,EAAM0f,QAAUA,EAAY1f,EAAMg+B,mBAAqBte,CAC1E,CAEA,MAAMsxB,WAAiCR,GAInCplD,YAAYid,GACRpb,QACArC,KAAKyd,SAAWA,CACpB,CACAioC,wBAAwBhK,GAEpB,MAAMtiC,EAAegB,GAAgBshC,GACrC,OAAO,IAAI2K,GAAiBjtC,EAAcpZ,KAAKyd,SACnD,EAEJ,SAAS6oC,GAAWpmD,EAAKqmD,GACrB,MAAM30C,EAAQ,GACd,UAAWqJ,KAAc/a,EAAK,CAC1B,IAAKA,EAAI+J,eAAegR,GACpB,SAEJ,MAAMzd,EAAQ0C,EAAI+a,GAClB,QAActgB,IAAV6C,EACA,SAEJ,MAAMiC,EAAUC,MAAMD,QAAQjC,GACxBgM,EAAW/J,EAAUjC,EAAM,GAAKA,EAGlCoU,EAAM5U,KADNupD,EACW,CACP/8C,SAAUA,EACVg9C,aAAcvrC,EACdwrC,aALMhnD,EAAUjC,EAAM,GAAK2V,GAAWF,MAKnBE,GAAWC,cAIvB,CACP5J,SAAUA,EACVg9C,aAAcvrC,GAG1B,CACA,OAAOrJ,CACX,CAQA,MAAMy0C,WAAyBb,GAC3B,UAAI5rC,GACA,MAAMR,EAAepZ,KAAKoZ,aACpB0C,EAAkB1C,EAAa0C,gBAC/B4qC,EAAWJ,GAAWltC,EAAaQ,QAAQ,GACjD,GAAwB,OAApBkC,EACA,UAAWvW,KAASmhD,EACZ5qC,EAAgB7R,eAAe1E,EAAMiE,YACrCjE,EAAMohD,UAAY7qC,EAAgBvW,EAAMiE,WAIpD,OAAOk9C,CACX,CACA,WAAI7sC,GACA,OAAOysC,GAAWtmD,KAAKoZ,aAAaS,SAAS,EACjD,CAKArZ,YAAY4Y,EAAcqE,GACtBpb,QACArC,KAAKoZ,aAAeA,EACpBpZ,KAAKyd,SAAWA,EAChBzd,KAAK4mD,cAAgBxtC,EAAa3N,KAClCzL,KAAK4V,SAhgcb,SAASixC,GAAyBC,GAC9B,OAAOA,EAAa5mD,IAAIkX,IAAsBhX,KAAK,IACvD,CA8/bwBymD,CAAyBztC,EAAaG,WACtDvZ,KAAKiY,mBAAqBmB,EAAanB,mBACjCmB,EAAanB,mBACb,GACNjY,KAAK+mD,kBAAoBtpC,CAC7B,CACApgB,OAAOwS,EAAUm3C,EAAkBC,EAAoBC,GACnD,MAAM3qD,EAAe4jB,GAAoB,MACzC,IAUI,IAAIgnC,GADJD,EAAsBA,GAAuBlnD,KAAKyd,oBACWyB,GACvDgoC,EACAA,GAAqBr3C,SACvBs3C,GAAuE,OAA5CnnD,KAAKoZ,aAAaZ,wBAC7C2uC,EACInnD,KAAKoZ,aAAaZ,sBAAsB2uC,IACpCA,GAEZ,MAAMC,EAAmBD,EACnB,IAAIn4B,GAAgBnf,EAAUs3C,GAC9Bt3C,EACA+kC,EAAkBwS,EAAiBn3C,IAAI41C,GAAkB,MAC/D,GAAwB,OAApBjR,EACA,MAAM,IAAIjsC,EAAa,KAA+CqH,GAK1E,MAEMuiC,EAAc,CAChBqC,kBACA/J,UAJcuc,EAAiBn3C,IAAIg2C,GAAW,MAM9CtH,mBAAoB,KACpBp2B,yBAN6B6+B,EAAiBn3C,IAAIk1C,GAA0B,OAQ1EkC,EAAezS,EAAgBC,eAAe,KAAM70C,KAAKoZ,cAIzDkuC,EAActnD,KAAKoZ,aAAaG,UAAU,GAAG,IAAM,MACnD+iC,EAAY2K,EA3yI9B,SAASM,GAAkB1zC,EAAU2zC,EAAmB7uC,EAAe9I,GAUnE,MAAM43C,EAHsB53C,EAASI,IAAI2zB,IA32FP,IA82FajrB,IAAkB7F,GAAoBI,UAC/EsjC,EAAc3iC,EAAS6zC,kBAAkBF,EAAmBC,GAClEE,OASJ,SAASA,GAA0BnR,GAC/BF,GAA+BE,EACnC,CAXImR,CAA0BnR,GACnBA,CACX,CA8xIkB+Q,CAAkBF,EAAcJ,EAAoBjnD,KAAKoZ,aAAaT,cAAeyuC,GACrFna,GAAkBoa,EAAcC,EArFlD,SAASM,GAAaN,GAClB,MAAMjnD,EAAOinD,EAAY/xC,cACzB,MAAgB,QAATlV,EA5rYW,MA4rY+B,SAATA,EA3rYlB,OA2rYwD,IAClF,CAkF+DunD,CAAaN,IAChE,IAAIO,EAAY,IACZ7nD,KAAKoZ,aAAaX,QAClBovC,GAAa,KAEP7nD,KAAKoZ,aAAalB,SACxB2vC,GAAa,IAEjB,IAAI7kB,EAAgB,KACF,OAAdsZ,IACAtZ,EAAgBH,GAAsByZ,EAAW8K,GAAkB,IAGvE,MAAMU,EAAYzS,GAAY,EAAwB,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,MAChG0S,EAAY1V,GAAY,KAAMyV,EAAW,KAAMD,EAAW,KAAM,KAAMtV,EAAa8U,EAAcD,EAAkB,KAAMpkB,GAM/H3X,GAAU08B,GACV,IAAIrM,EACAsM,EACAtT,EAAgB,KACpB,IACI,MAAMuT,GAAmBjoD,KAAKoZ,aAC9B,IAAI8uC,GACApP,GAAoB,KACpBmP,GAAiB/rC,uBACjBgsC,GAAiB,GACjBpP,GAAoB,IAAIt5B,IACxByoC,GAAiB/rC,sBAAsB+rC,GAAkBC,GAAgBpP,IACzEoP,GAAelrD,KAAKirD,KAIpBC,GAAiB,CAACD,IAEtB,MAAM1T,GA4FtB,SAAS4T,GAAyB5gC,EAAOoX,GACrC,MAAM5lB,EAAQwO,EAAMlE,GACdtiB,EAAQ6jB,EAEd2C,SAAMxmB,GAAS49B,EAIR8T,GAAiB15B,EAAOhY,EAAO,EAA2B,QAAS,KAC9E,CArGkConD,CAAyBJ,EAAWzL,GACtD5H,EAiHhB,SAAS0T,GAAwBhzC,EAAOknC,EAAW2L,EAAkBC,EAAgB/Z,EAAUoE,EAAa8U,GACxG,MAAMtuC,EAAQo1B,EAAS9qB,IAyB3B,SAASglC,GAA0BH,EAAgB9yC,EAAOupB,EAAO0oB,GAC7D,UAAWzvC,KAAOswC,EACd9yC,EAAMqpB,YAAcjqB,GAAeY,EAAMqpB,YAAa7mB,EAAI6B,WAEpC,OAAtBrE,EAAMqpB,cACNynB,GAAqB9wC,EAAOA,EAAMqpB,aAAa,GACjC,OAAVE,GACA+S,GAAsB2V,EAAc1oB,EAAOvpB,GAGvD,CAlCIizC,CAA0BH,EAAgB9yC,EAAOknC,EAAW+K,GAG5D,IAAIrkB,EAAgB,KACF,OAAdsZ,IACAtZ,EAAgBH,GAAsByZ,EAAWnO,EAAStqB,MAE9D,MAAMykC,EAAe/V,EAAYqC,gBAAgBC,eAAeyH,EAAW2L,GAC3E,IAAIxT,EAAa,GACbwT,EAAiBxvC,QACjBg8B,EAAa,KAERwT,EAAiB/vC,SACtBu8B,EAAa,IAEjB,MAAMC,EAAgBrC,GAAYlE,EAAUqG,GAA0ByT,GAAmB,KAAMxT,EAAYtG,EAAS/4B,EAAMrU,OAAQqU,EAAOm9B,EAAa+V,EAAc,KAAM,KAAMtlB,GAChL,OAAIjqB,EAAMsX,iBACN2oB,GAAoBjgC,EAAO3D,EAAO8yC,EAAetsD,OAAS,GAE9D+4C,GAAcxG,EAAUuG,GAEhBvG,EAAS/4B,EAAMrU,OAAS2zC,CACpC,CAzIgC0T,CAAwB7T,GAAW+H,EAAW2L,GAAkBC,GAAgBH,EAAWxV,EAAa8U,GACxHW,EAAevgC,GAASqgC,EAAWljC,GAI/B03B,GAqLpB,SAASiM,GAAsBlB,EAAcjuC,EAAckjC,EAAW2K,GAClE,GAAIA,EAEArzC,GAAgByzC,EAAc/K,EAAW,CAAC,aAAc,eAEvD,CAID,MAAQvoC,QAAO+gB,WAjxcvB,SAAS0zB,GAAmC5yC,GACxC,MAAM7B,EAAQ,GACR+gB,EAAU,GAChB,IAAIt4B,EAAI,EACJqZ,EAAO,EACX,KAAOrZ,EAAIoZ,EAASha,QAAQ,CACxB,IAAI0b,EAAgB1B,EAASpZ,GAC7B,GAA6B,iBAAlB8a,EACM,IAATzB,EACsB,KAAlByB,GACAvD,EAAM/W,KAAKsa,EAAe1B,IAAWpZ,IAG3B,IAATqZ,GACLif,EAAQ93B,KAAKsa,OAGhB,CAID,IAAKpB,GAAWL,GACZ,MACJA,EAAOyB,CACX,CACA9a,GACJ,CACA,MAAO,CAAEuX,QAAO+gB,UACpB,CAqvcmC0zB,CAAmCpvC,EAAaG,UAAU,IACjFxF,GACAH,GAAgByzC,EAAc/K,EAAWvoC,GAEzC+gB,GAAWA,EAAQl5B,OAAS,GAC5B61C,GAAiB4V,EAAc/K,EAAWxnB,EAAQ10B,KAAK,KAE/D,CACJ,CArMoBmoD,CAAsBlB,EAAcY,GAAkB3L,EAAW2K,QAE5CtsD,IAArBqsD,GAqMpB,SAASyB,GAAarzC,EAAO6C,EAAoB+uC,GAC7C,MAAM1W,EAAcl7B,EAAMk7B,WAAa,GACvC,QAAS9zC,EAAI,EAAGA,EAAIyb,EAAmBrc,OAAQY,IAAK,CAChD,MAAMksD,EAAe1B,EAAiBxqD,GAMtC8zC,EAAWtzC,KAAqB,MAAhB0rD,EAAuBhpD,MAAM8jD,KAAKkF,GAAgB,KACtE,CACJ,CA/MoBD,CAAaT,EAAchoD,KAAKiY,mBAAoB+uC,GAIxDtL,EA6IhB,SAASiN,GAAoBjU,EAAeuT,EAAkBC,EAAgBpP,EAAmBiP,EAAWa,GACxG,MAAMC,EAAYn/B,KAEZ3Q,EAAQgvC,EAAU1kC,GAClBvP,EAAS0T,GAAiBqhC,EAAWd,GAC3C9O,GAAqBlgC,EAAOgvC,EAAWc,EAAWX,EAAgB,KAAMpP,GACxE,QAASt8C,EAAI,EAAGA,EAAI0rD,EAAetsD,OAAQY,IAGvC0iC,GAD0BxM,GAAkBq1B,EAAWhvC,EADhC8vC,EAAUh8B,eAAiBrwB,EAC4BqsD,GAC3Cd,GAEvChT,GAA6Bh8B,EAAOgvC,EAAWc,GAC3C/0C,GACAorB,GAAgBprB,EAAQi0C,GAM5B,MAAMrM,EAAYhpB,GAAkBq1B,EAAWhvC,EAAO8vC,EAAUh8B,eAAiBg8B,EAAUrjC,gBAAiBqjC,GAE5G,GADAnU,EAAc9wB,IAAWmkC,EAAUnkC,IAAW83B,EACzB,OAAjBkN,EACA,UAAWE,KAAWF,EAClBE,EAAQpN,EAAWuM,GAK3B9T,UAAsBp7B,EAAO8vC,EAAWd,GACjCrM,CACX,CA3K4BiN,CAAoBjU,EAAeuT,GAAkBC,GAAgBpP,GAAmBiP,EAAW,CAACgB,KAChHxM,GAAWuL,EAAWC,EAAW,KACrC,OACO/mD,IAGH,MAAsB,OAAlB0zC,GACA1V,GAAgB0V,GAEpB1V,GAAgB+oB,GACV/mD,EACV,SAEImrB,IACJ,CACA,OAAO,IAAI68B,GAAahpD,KAAK4mD,cAAelL,EAAWvf,GAAiB6rB,EAAcD,GAAYA,EAAWC,EACjH,SAEI7nC,GAAoB5jB,EACxB,CACJ,EAUJ,MAAMysD,WAAqBzD,GACvB/kD,YAAYomD,EAAe1gC,EAAUoJ,EAAU25B,EAAY10B,GACvDlyB,QACArC,KAAKsvB,SAAWA,EAChBtvB,KAAKipD,WAAaA,EAClBjpD,KAAKu0B,OAASA,EACdv0B,KAAKkpD,oBAAsB,KAC3BlpD,KAAKkmB,SAAWA,EAChBlmB,KAAK8nB,SAAW9nB,KAAKmpD,kBAAoB,IAAI3I,GAAUyI,OAAYtuD,GAAqC,GACxGqF,KAAK4mD,cAAgBA,CACzB,CACA3qC,SAAS5b,EAAM7C,GACX,MAAMy6C,EAAYj4C,KAAKu0B,OAAO3a,OAC9B,IAAIo+B,EACJ,GAAkB,OAAdC,IAAuBD,EAAYC,EAAU53C,IAAQ,CAIrD,GAHAL,KAAKkpD,sBAAwB,IAAI1pC,IAG7Bxf,KAAKkpD,oBAAoBjrC,IAAI5d,IAC7BzG,OAAOC,GAAGmG,KAAKkpD,oBAAoBj5C,IAAI5P,GAAO7C,GAC9C,OAEJ,MAAM+pB,EAAQvnB,KAAKipD,WACnB/Q,GAAqB3wB,EAAMlE,GAAQkE,EAAOywB,EAAW33C,EAAM7C,GAC3DwC,KAAKkpD,oBAAoBrpC,IAAIxf,EAAM7C,GAEnC8iD,GAD4B14B,GAAyB5nB,KAAKu0B,OAAOxzB,MAAOwmB,GACrC,EACvC,CASJ,CACA,YAAI1X,GACA,OAAO,IAAIykB,GAAat0B,KAAKu0B,OAAQv0B,KAAKipD,WAC9C,CACAhpC,UACIjgB,KAAK8nB,SAAS7H,SAClB,CACAxE,UAAU+E,GACNxgB,KAAK8nB,SAASrM,UAAU+E,EAC5B,EA8IJ,SAASuoC,KACL,MAAM3zC,EAAQsU,KAEdkD,GAAuBxD,IAAW/F,GAAQjO,EAC9C,CAEA,IAiDMg0C,GAAgB,MAAtB,MAAMA,SAKOppD,KAAKiN,kBAAoBo8C,EAAwB,EAC7D,OANKD,CAAgB,KAatB,SAASC,KAEL,OAAOC,GADe5/B,KACmBN,IAC7C,CACA,MAAMmgC,GAAsBH,GAGtBI,GAAqB,cAA+BD,GACtD/oD,YAAYipD,EAAaC,EAAYC,GACjCtnD,QACArC,KAAKypD,YAAcA,EACnBzpD,KAAK0pD,WAAaA,EAClB1pD,KAAK2pD,WAAaA,CACtB,CACA,WAAIrhB,GACA,OAAOnM,GAAiBn8B,KAAK0pD,WAAY1pD,KAAK2pD,WAClD,CACA,YAAI95C,GACA,OAAO,IAAIykB,GAAat0B,KAAK0pD,WAAY1pD,KAAK2pD,WAClD,CAEA,kBAAI16B,GACA,MAAME,EAAiBuB,GAA0B1wB,KAAK0pD,WAAY1pD,KAAK2pD,YACvE,GAAIz6B,GAAkBC,GAAiB,CACnC,MAAMO,EAAaL,GAAsBF,EAAgBnvB,KAAK2pD,YACxDr5B,EAAgBlB,GAAuBD,GAG7C,OAAO,IAAImF,GADS5E,EAAWrM,GAAO3K,KAAK4X,EAAgB,GACtBZ,EACzC,CAEI,OAAO,IAAI4E,GAAa,KAAMt0B,KAAK2pD,WAE3C,CACAppC,QACI,KAAOvgB,KAAKpE,OAAS,GACjBoE,KAAKc,OAAOd,KAAKpE,OAAS,EAElC,CACAqU,IAAIlP,GACA,MAAM8/C,EAAW+I,GAAY5pD,KAAKypD,aAClC,OAAqB,OAAb5I,GAAqBA,EAAS9/C,IAAW,IACrD,CACA,UAAInF,GACA,OAAOoE,KAAKypD,YAAY7tD,OAASqpB,EACrC,CACA+3B,mBAAmB6M,EAAavmD,EAASwmD,GACrC,IAAI/oD,EACA8O,EAC0B,iBAAnBi6C,EACP/oD,EAAQ+oD,EAEe,MAAlBA,IACL/oD,EAAQ+oD,EAAe/oD,MACvB8O,EAAWi6C,EAAej6C,UAE9B,MAAM4yB,EAAiByiB,GAA2BllD,KAAKypD,YAAaI,EAAYpU,OAC1E1S,EAAU8mB,EAAY9H,uBAAuBz+C,GAAW,CAAC,EAAGuM,EAAU4yB,GAC5E,OAAAziC,KAAK+pD,WAAWhnB,EAAShiC,EAAOk8C,GAAmBj9C,KAAK0pD,WAAYjnB,IAC7DM,CACX,CACAinB,gBAAgBC,EAAwBH,EAAgBj6C,EAAUm3C,EAAkBE,GAChF,MAAMgD,EAAqBD,IA/xanC,SAASE,GAAOt6B,GACZ,MAAoB,mBAANA,CAClB,CA6xa8Ds6B,CAAOF,GAC7D,IAAIlpD,EAMJ,GAAImpD,EAQAnpD,EAAQ+oD,MAEP,CASD,MAAM99C,EAAW89C,GAAkB,CAAC,EAIpC/oD,EAAQiL,EAAQjL,MAChB8O,EAAW7D,EAAQ6D,SACnBm3C,EAAmBh7C,EAAQg7C,iBAC3BE,EAAsBl7C,EAAQk7C,qBAAuBl7C,EAAQo+C,WACjE,CACA,MAAMC,EAAmBH,EACnBD,EACA,IAAI5D,GAAiBjsC,GAAgB6vC,IACrCK,EAAkBz6C,GAAY7P,KAAKivB,eAEzC,IAAKi4B,GAAoD,MAA7BmD,EAAiB5sC,SAAkB,CAqB3D,MAAMzW,GAJYkjD,EAAqBI,EAAkBtqD,KAAKivB,gBAIrChf,IAAIiP,GAAqB,MAC9ClY,IACAkgD,EAAsBlgD,EAE9B,CACA,MAAMoS,EAAegB,GAAgBiwC,EAAiBzD,eAAiB,CAAC,GAClEnkB,EAAiByiB,GAA2BllD,KAAKypD,YAAarwC,GAAcJ,IAAM,MAElFuxC,EAAeF,EAAiBhtD,OAAOitD,EAAiBtD,EADhDvkB,GAAgBjX,YAAc,KAC2C07B,GACvF,OAAAlnD,KAAK+pD,WAAWQ,EAAaziC,SAAU/mB,EAAOk8C,GAAmBj9C,KAAK0pD,WAAYjnB,IAC3E8nB,CACX,CACAC,OAAOznB,EAAShiC,GACZ,OAAOf,KAAK+pD,WAAWhnB,EAAShiC,GAAO,EAC3C,CACAgpD,WAAWhnB,EAAShiC,EAAOo8C,GACvB,MAAM51B,EAAQwb,EAAQvO,OAItB,GA1nZR,SAASi2B,GAAwB9iC,GAC7B,OAAOtC,GAAasC,EAAKpE,IAC7B,CAwnZYknC,CAAwBljC,GAAQ,CAEhC,MAAMmjC,EAAU1qD,KAAK0B,QAAQqhC,GAK7B,IAAgB,IAAZ2nB,EACA1qD,KAAK+gD,OAAO2J,OAEX,CACD,MAAMC,EAAiBpjC,EAAMhE,IAKvBqnC,EAAY,IAAIpB,GAAmBmB,EAAgBA,EAAelnC,IAASknC,EAAepnC,KAChGqnC,EAAU7J,OAAO6J,EAAUlpD,QAAQqhC,GACvC,CACJ,CAEA,MAAM8nB,EAAc7qD,KAAK8qD,aAAa/pD,GAChCmrC,EAAalsC,KAAKypD,YACxBvM,UAAqBhR,EAAY3kB,EAAOsjC,EAAa1N,GACrDpa,EAAQoe,2BACR9vC,GAAW05C,GAAoB7e,GAAa2e,EAAa9nB,GAClDA,CACX,CACAioB,KAAKjoB,EAASkoB,GAIV,OAAOjrD,KAAKwqD,OAAOznB,EAASkoB,EAChC,CACAvpD,QAAQqhC,GACJ,MAAMmoB,EAActB,GAAY5pD,KAAKypD,aACrC,OAAuB,OAAhByB,EAAuBA,EAAYxpD,QAAQqhC,IAAW,CACjE,CACAjiC,OAAOC,GACH,MAAM8pD,EAAc7qD,KAAK8qD,aAAa/pD,GAAO,GACvCoqD,EAAe1d,GAAWztC,KAAKypD,YAAaoB,GAC9CM,IAOA55C,GAAgBw5C,GAAoB/qD,KAAKypD,aAAcoB,GACvD5c,GAAakd,EAAa9nC,GAAQ8nC,GAE1C,CACApK,OAAOhgD,GACH,MAAM8pD,EAAc7qD,KAAK8qD,aAAa/pD,GAAO,GACvC4mB,EAAO8lB,GAAWztC,KAAKypD,YAAaoB,GAE1C,OADoBljC,GAA+E,MAAvEpW,GAAgBw5C,GAAoB/qD,KAAKypD,aAAcoB,GAC9D,IAAIrK,GAAU74B,GAAQ,IAC/C,CACAmjC,aAAa/pD,EAAOmR,EAAQ,GACxB,OAAInR,GACOf,KAAKpE,OAASsW,CAQ7B,GAEJ,SAAS03C,GAAY1d,GACjB,OAAOA,EAjoaO,EAkoalB,CACA,SAAS6e,GAAoB7e,GACzB,OAAQA,EApoaM,KAooaoBA,EApoapB,GAooa4C,GAC9D,CAQA,SAASod,GAAmB/U,EAAW2H,GAEnC,IAAIhQ,EACJ,MAAMnkB,EAAYm0B,EAAU3H,EAAUxzC,OACtC,OAAIskB,GAAa0C,GAEbmkB,EAAankB,GAMbmkB,EAAakP,GAAiBrzB,EAAWm0B,EAAW,KAAM3H,GAC1D2H,EAAU3H,EAAUxzC,OAASmrC,EAC7ByI,GAAcuH,EAAWhQ,IAE7Bkf,GAA0Blf,EAAYgQ,EAAW3H,EAAWxsB,GACrD,IAAIyhC,GAAmBtd,EAAYqI,EAAW2H,EACzD,CAiBA,IAAIkP,GAA4BC,GAC5BC,GAAuCA,KAAM,EAqBjD,SAASD,GAAiBnf,EAAYgQ,EAAW3H,EAAWxsB,GAExD,GAAImkB,EAAWnnB,IACX,OACJ,IAAIwmC,EAMAA,EADiB,EAAjBhX,EAAU9oC,KACI4b,GAAYU,GAzClC,SAASyjC,GAAiBtP,EAAW3H,GACjC,MAAM1gC,EAAWqoC,EAAUn4B,GAErBwnC,EAAc13C,EAASk5B,cAAwC,IAC/DsO,EAAa7zB,GAAiB+sB,EAAW2H,GAE/C7P,UAAmBx4B,EADQy7B,GAAiBz7B,EAAUwnC,GACLkQ,EAhuLrD,SAASE,GAAkB53C,EAAUrY,GACjC,OAAOqY,EAAS8uB,YAAYnnC,EAChC,CA8tLkEiwD,CAAkB53C,EAAUwnC,IAAa,GAChGkQ,CACX,CAoCsBC,CAAiBtP,EAAW3H,GAE9CrI,EAAWnnB,IAAUwmC,CACzB,CAUA,SAASG,GAAwCxf,EAAY92B,EAAO8mC,GAIhE,GAAIhQ,EAAWnnB,KAAWmnB,EAAWpnB,IACjC,OAAO,EAEX,MAAMke,EAAgBkZ,EAAUx4B,IAC1B2+B,EAAgBjtC,EAAMrU,MAAQ6jB,EAKpC,IAJ4Boe,GA9xShC,SAAS2oB,GAAuBv2C,GAC5B,GAAIypB,GAA4BzpB,GAC5B,OAAO,EAEX,IAAIuU,EAAevU,EAAMvR,OACzB,KAAO8lB,GAAc,CACjB,GAAIkV,GAA4BzpB,IAAUopB,GAA4B7U,GAClE,OAAO,EAEXA,EAAeA,EAAa9lB,MAChC,CACA,OAAO,CACX,CAmxSQ8nD,CAAuBv2C,IACvBmuB,GAAqBP,EAAeqf,GAGpC,OAAO,EAGX,MAAMsC,EAAezhB,GAAeF,EAAeqf,GAC7CuJ,EAAkB5oB,EAActqB,KAAK+oB,MAAc4gB,IAIlDkJ,EAAaM,GApzCxB,SAASC,GAAiCnH,EAAciH,GACpD,MAAMC,EAAkB,GACxB,UAAWE,KAAkBH,EAGzB,QAASpvD,EAAI,EAAGA,GAAKuvD,EAAerqB,KAAe,GAAIllC,IAAK,CACxD,MAAMmrB,EAAO,CACTjP,KAAMqzC,EACNvgC,WAAY,MAEZugC,EAAepqB,IAAkB,IAGjCha,EAAK6D,WAAam5B,EAIlBA,EAAeV,GAAa8H,EAAepqB,IAAiBgjB,IAEhEkH,EAAgB7uD,KAAK2qB,EACzB,CAEJ,MAAO,CAACg9B,EAAckH,EAC1B,CA6xC2CC,CAAiCnH,EAAciH,GAUtF1f,SAAWnnB,IAAUwmC,EACrBrf,EAAWpnB,IAAoB+mC,GACxB,CACX,CACA,SAASG,GAAyB9f,EAAYgQ,EAAW3H,EAAWxsB,GAC3DujC,GAAqCpf,EAAYqI,EAAW2H,IAI7DmP,GAAiBnf,EAAYgQ,EAAW3H,EAAWxsB,EAE3D,CAMA,MAAMkkC,GACFzrD,YAAY0rD,GACRlsD,KAAKksD,UAAYA,EACjBlsD,KAAK64C,QAAU,IACnB,CACAsT,QACI,OAAO,IAAIF,GAAQjsD,KAAKksD,UAC5B,CACA7tB,WACIr+B,KAAKksD,UAAU7tB,UACnB,EAEJ,MAAM+tB,GACF5rD,YAAYo1C,EAAU,IAClB51C,KAAK41C,QAAUA,CACnB,CACAoH,mBAAmBjkC,GACf,MAAMszC,EAAWtzC,EAAM68B,QACvB,GAAiB,OAAbyW,EAAmB,CACnB,MAAMC,EAAgD,OAAzBvzC,EAAMgB,eAA0BhB,EAAMgB,eAAe,GAAKsyC,EAASzwD,OAC1F2wD,EAAe,GAKrB,QAAS/vD,EAAI,EAAGA,EAAI8vD,EAAsB9vD,IAAK,CAC3C,MAAMgwD,EAASH,EAASI,WAAWjwD,GAEnC+vD,EAAavvD,KADQgD,KAAK41C,QAAQ4W,EAAOE,wBACVP,QACnC,CACA,OAAO,IAAIC,GAAUG,EACzB,CACA,OAAO,IACX,CACAnP,WAAWrkC,GACP/Y,KAAK2sD,wBAAwB5zC,EACjC,CACA00B,WAAW10B,GACP/Y,KAAK2sD,wBAAwB5zC,EACjC,CACAyjC,mBAAmBzjC,GACf/Y,KAAK2sD,wBAAwB5zC,EACjC,CACA4zC,wBAAwB5zC,GACpB,QAASvc,EAAI,EAAGA,EAAIwD,KAAK41C,QAAQh6C,OAAQY,IACD,OAAhCowD,GAAU7zC,EAAOvc,GAAGq8C,SACpB74C,KAAK41C,QAAQp5C,GAAG6hC,UAG5B,EAEJ,MAAMwuB,GACFrsD,YAAY4G,EAAWgI,EAAO09C,EAAO,MACjC9sD,KAAKoP,MAAQA,EACbpP,KAAK8sD,KAAOA,EAGR9sD,KAAKoH,UADgB,iBAAdA,EAmVnB,SAAS2lD,GAAyBC,GAC9B,OAAOA,EAAQzqB,MAAM,KAAKriC,IAAKmkC,GAAMA,EAAEltB,OAC3C,CApV6B41C,CAAyB3lD,GAGzBA,CAEzB,EAEJ,MAAM6lD,GACFzsD,YAAYo1C,EAAU,IAClB51C,KAAK41C,QAAUA,CACnB,CACAsX,aAAan0C,EAAO3D,GAGhB,QAAS5Y,EAAI,EAAGA,EAAIwD,KAAK41C,QAAQh6C,OAAQY,IACrCwD,KAAK41C,QAAQp5C,GAAG0wD,aAAan0C,EAAO3D,EAE5C,CACA+3C,WAAW/3C,GACP,QAAS5Y,EAAI,EAAGA,EAAIwD,KAAK41C,QAAQh6C,OAAQY,IACrCwD,KAAK41C,QAAQp5C,GAAG2wD,WAAW/3C,EAEnC,CACAynC,cAAcznC,GACV,IAAIg4C,EAAwB,KAC5B,QAAS5wD,EAAI,EAAGA,EAAIwD,KAAKpE,OAAQY,IAAK,CAClC,MAAM6wD,EAA4C,OAA1BD,EAAiCA,EAAsBxxD,OAAS,EAClF0xD,EAActtD,KAAKysD,WAAWjwD,GAAGqgD,cAAcznC,EAAOi4C,GACxDC,IACAA,EAAYZ,uBAAyBlwD,EACP,OAA1B4wD,EACAA,EAAsBpwD,KAAKswD,GAG3BF,EAAwB,CAACE,GAGrC,CACA,OAAiC,OAA1BF,EAAiC,IAAIH,GAAUG,GAAyB,IACnF,CACAr1C,SAASgB,EAAO3D,GAGZ,QAAS5Y,EAAI,EAAGA,EAAIwD,KAAK41C,QAAQh6C,OAAQY,IACrCwD,KAAK41C,QAAQp5C,GAAGub,SAASgB,EAAO3D,EAExC,CACAq3C,WAAW1rD,GAEP,OAAOf,KAAK41C,QAAQ70C,EACxB,CACA,UAAInF,GACA,OAAOoE,KAAK41C,QAAQh6C,MACxB,CACA2xD,MAAMC,GACFxtD,KAAK41C,QAAQ54C,KAAKwwD,EACtB,EAEJ,MAAMC,GACFjtD,YAAYktD,EAAU7lC,GAAY,GAC9B7nB,KAAK0tD,SAAWA,EAChB1tD,KAAK64C,QAAU,KACf74C,KAAK0sD,wBAAyB,EAC9B1sD,KAAK2tD,mBAAoB,EAMzB3tD,KAAK4tD,oBAAqB,EAC1B5tD,KAAK6tD,sBAAwBhmC,CACjC,CACAqlC,aAAan0C,EAAO3D,GACZpV,KAAK8tD,iBAAiB14C,IACtBpV,KAAK+tD,WAAWh1C,EAAO3D,EAE/B,CACA+3C,WAAW/3C,GACHpV,KAAK6tD,wBAA0Bz4C,EAAMrU,QACrCf,KAAK4tD,oBAAqB,EAElC,CACA71C,SAASgB,EAAO3D,GACZpV,KAAKktD,aAAan0C,EAAO3D,EAC7B,CACAynC,cAAcznC,EAAOi4C,GACjB,OAAIrtD,KAAK8tD,iBAAiB14C,IACtBpV,KAAK2tD,mBAAoB,EAGzB3tD,KAAKguD,UAAU54C,EAAMrU,MAAOssD,GACrB,IAAII,GAAQztD,KAAK0tD,WAErB,IACX,CACAI,iBAAiB14C,GACb,GAAIpV,KAAK4tD,oBACsD,GAA1D5tD,KAAK0tD,SAASt+C,MAA4E,CAC3F,MAAM6+C,EAAqBjuD,KAAK6tD,sBAChC,IAAIhqD,EAASuR,EAAMvR,OAWnB,KAAkB,OAAXA,GACW,EAAdA,EAAO4H,MACP5H,EAAO9C,QAAUktD,GACjBpqD,EAASA,EAAOA,OAEpB,OAAOoqD,KAAmC,OAAXpqD,EAAkBA,EAAO9C,OAAQ,EACpE,CACA,OAAOf,KAAK4tD,kBAChB,CACAG,WAAWh1C,EAAO3D,GACd,MAAMhO,EAAYpH,KAAK0tD,SAAStmD,UAChC,GAAI1H,MAAMD,QAAQ2H,GACd,QAAS5K,EAAI,EAAGA,EAAI4K,EAAUxL,OAAQY,IAAK,CACvC,MAAM6D,EAAO+G,EAAU5K,GACvBwD,KAAKkuD,yBAAyBn1C,EAAO3D,EAAO+4C,GAAyB/4C,EAAO/U,IAE5EL,KAAKkuD,yBAAyBn1C,EAAO3D,EAAOqd,GAA0Brd,EAAO2D,EAAO1Y,GAAM,GAAO,GACrG,MAGI+G,IAAco6C,GACG,EAAbpsC,EAAM3J,MACNzL,KAAKkuD,yBAAyBn1C,EAAO3D,GAAO,GAIhDpV,KAAKkuD,yBAAyBn1C,EAAO3D,EAAOqd,GAA0Brd,EAAO2D,EAAO3R,GAAW,GAAO,GAGlH,CACA8mD,yBAAyBn1C,EAAO3D,EAAOg5C,GACnC,GAAqB,OAAjBA,EAAuB,CACvB,MAAMtB,EAAO9sD,KAAK0tD,SAASZ,KAC3B,GAAa,OAATA,EACA,GAAIA,IAAS1wB,IACT0wB,IAAS1D,IACR0D,IAAStL,IAA4B,EAAbpsC,EAAM3J,KAC/BzL,KAAKguD,SAAS54C,EAAMrU,OAAO,OAE1B,CACD,MAAMstD,EAAyB57B,GAA0Brd,EAAO2D,EAAO+zC,GAAM,GAAO,GACrD,OAA3BuB,GACAruD,KAAKguD,SAAS54C,EAAMrU,MAAOstD,EAEnC,MAGAruD,KAAKguD,SAAS54C,EAAMrU,MAAOqtD,EAEnC,CACJ,CACAJ,SAASM,EAAUC,GACM,OAAjBvuD,KAAK64C,QACL74C,KAAK64C,QAAU,CAACyV,EAAUC,GAG1BvuD,KAAK64C,QAAQ77C,KAAKsxD,EAAUC,EAEpC,EAUJ,SAASJ,GAAyB/4C,EAAOQ,GACrC,MAAMo9B,EAAa59B,EAAM49B,WACzB,GAAmB,OAAfA,EACA,QAASx2C,EAAI,EAAGA,EAAIw2C,EAAWp3C,OAAQY,GAAK,EACxC,GAAIw2C,EAAWx2C,KAAOoZ,EAClB,OAAOo9B,EAAWx2C,EAAI,GAIlC,OAAO,IACX,CAUA,SAASgyD,GAAoBjnC,EAAOnS,EAAOq5C,EAAa3B,GACpD,OAAoB,IAAhB2B,EAVR,SAASC,GAAwBt5C,EAAO2Y,GACpC,OAAkB,GAAd3Y,EAAM3J,KACC0wB,GAAiB/mB,EAAO2Y,GAEb,EAAb3Y,EAAM3J,KACJu2C,GAAkB5sC,EAAO2Y,GAE7B,IACX,CAIe2gC,CAAwBt5C,EAAOmS,IAEjB,IAAhBknC,EASb,SAASE,GAAmBpnC,EAAOnS,EAAO03C,GACtC,OAAIA,IAAS1wB,GACFD,GAAiB/mB,EAAOmS,GAE1BulC,IAAStL,GACPQ,GAAkB5sC,EAAOmS,GAE3BulC,IAAS1D,GAEPE,GAAmBl0C,EAAOmS,QAFhC,CAQT,CAtBeonC,CAAmBpnC,EAAOnS,EAAO03C,GAIjCp6B,GAAkBnL,EAAOA,EAAMlE,GAAQorC,EAAar5C,EAEnE,CAsBA,SAASw5C,GAAuB71C,EAAOwO,EAAOilC,EAAQqC,GAClD,MAAMC,EAASvnC,EAAMjD,IAASsxB,QAAQiZ,GACtC,GAAuB,OAAnBC,EAAOjW,QAAkB,CACzB,MAAMgB,EAAY9gC,EAAML,KAClBq2C,EAAgBvC,EAAO3T,QACvB7xC,EAAS,GACf,QAASxK,EAAI,EAAqB,OAAlBuyD,GAA0BvyD,EAAIuyD,EAAcnzD,OAAQY,GAAK,EAAG,CACxE,MAAMwyD,EAAiBD,EAAcvyD,GAKjCwK,EAAOhK,KAJPgyD,EAAiB,EAIL,KAKAR,GAAoBjnC,EADlBsyB,EAAUmV,GACsBD,EAAcvyD,EAAI,GAAIgwD,EAAOkB,SAASZ,MAE5F,CACAgC,EAAOjW,QAAU7xC,CACrB,CACA,OAAO8nD,EAAOjW,OAClB,CAKA,SAASoW,GAAoBl2C,EAAOwO,EAAOsnC,EAAY7nD,GACnD,MAAMwlD,EAASzzC,EAAM68B,QAAQ6W,WAAWoC,GAClCE,EAAgBvC,EAAO3T,QAC7B,GAAsB,OAAlBkW,EAAwB,CACxB,MAAMG,EAAeN,GAAuB71C,EAAOwO,EAAOilC,EAAQqC,GAClE,QAASryD,EAAI,EAAGA,EAAIuyD,EAAcnzD,OAAQY,GAAK,EAAG,CAC9C,MAAM8xD,EAAWS,EAAcvyD,GAC/B,GAAI8xD,EAAW,EACXtnD,EAAOhK,KAAKkyD,EAAa1yD,EAAI,QAE5B,CACD,MAAM6wD,EAAkB0B,EAAcvyD,EAAI,GACpCqxC,EAAwBtmB,GAAO+mC,GAGrC,QAAS9xD,EAAIyoB,GAAyBzoB,EAAIqxC,EAAsBjyC,OAAQY,IAAK,CACzE,MAAMsgD,EAAgBjP,EAAsBrxC,GACxCsgD,EAAc14B,MAA4B04B,EAAcv5B,KACxD0rC,GAAoBnS,EAAcz5B,GAAQy5B,EAAeuQ,EAAiBrmD,EAElF,CAGA,GAA2C,OAAvC6mC,EAAsB7oB,IAAuB,CAC7C,MAAMmqC,EAAiBthB,EAAsB7oB,IAC7C,QAASxoB,EAAI,EAAGA,EAAI2yD,EAAevzD,OAAQY,IAAK,CAC5C,MAAMsgD,EAAgBqS,EAAe3yD,GACrCyyD,GAAoBnS,EAAcz5B,GAAQy5B,EAAeuQ,EAAiBrmD,EAC9E,CACJ,CACJ,CACJ,CACJ,CACA,OAAOA,CACX,CACA,SAASooD,GAAkB7nC,EAAOsnC,GAI9B,OAAOtnC,EAAMjD,IAASsxB,QAAQiZ,GAAY3C,SAC9C,CAMA,SAASmD,GAAat2C,EAAOwO,EAAOnY,GAChC,MAAM88C,EAAY,IAAIxvB,KAAmE,GAAxDttB,IACjCkgD,OAnxKJ,SAASA,GAAwBv2C,EAAOwO,EAAOjkB,EAASisD,GACpD,MAAM1gB,EAAW8M,GAAwBp0B,GAOzCsnB,EAAS7xC,KAAKsG,GACVyV,EAAMsX,iBACNurB,GAAwB7iC,GAAO/b,KAAKuyD,EAAW1gB,EAASjzC,OAAS,EASzE,CAgwKI0zD,CAAwBv2C,EAAOwO,EAAO2kC,EAAWA,EAAUjsC,UACzCsH,EAAMjD,MAAa,IAAI8nC,IAAaxW,QACtC54C,KAAK,IAAIivD,GAAQC,IAAc,CACnD,CAYA,SAASsD,GAAmB37B,EAAgBzsB,EAAWgI,EAAO09C,GAE1D,MAAM/zC,EAAQsQ,KACd,GAAItQ,EAAMsX,gBAAiB,CACvB,MAAMjb,EAAQsU,KACd+lC,GAAa12C,EAAO,IAAI8zC,GAAgBzlD,EAAWgI,EAAO09C,GAAO13C,EAAMrU,OAiB/E,SAAS2uD,GAAkC32C,EAAO8a,GAC9C,MAAM87B,EAAsB52C,EAAMgB,iBAAmBhB,EAAMgB,eAAiB,IAIxE8Z,KAH4B87B,EAAoB/zD,OAC9C+zD,EAAoBA,EAAoB/zD,OAAS,IACjD,IAEF+zD,EAAoB3yD,KAAK+b,EAAM68B,QAAQh6C,OAAS,EAAGi4B,EAE3D,CAxBQ67B,CAAkC32C,EAAO8a,KACK,GAAzCzkB,KACD2J,EAAMm9B,sBAAuB,EAErC,CACA,OAAOmZ,GAAat2C,EAAOqQ,IAAYha,EAC3C,CAKA,SAASqgD,GAAa12C,EAAO20C,EAAU7lC,GACb,OAAlB9O,EAAM68B,UACN78B,EAAM68B,QAAU,IAAIqX,IACxBl0C,EAAM68B,QAAQ2X,MAAM,IAAIE,GAAQC,EAAU7lC,GAC9C,CAUA,SAAS+kC,GAAU7zC,EAAOhY,GAEtB,OAAOgY,EAAM68B,QAAQ6W,WAAW1rD,EACpC,CAMA,SAAS6uD,GAAgBroC,EAAOsnC,GAC5B,MAAM91C,EAAQwO,EAAMlE,GACdmpC,EAASI,GAAU7zC,EAAO81C,GAChC,OAAOrC,EAAOmB,kBACRsB,GAAoBl2C,EAAOwO,EAAOsnC,EAAY,IAC9CD,GAAuB71C,EAAOwO,EAAOilC,EAAQqC,EACvD,CAEA,MAAMgB,GAAiB,IAAI7yC,IAS3B,SAAS8yC,GAAuBhH,GACxB+G,GAAe5xC,IAAI6qC,KAGvB+G,GAAexuD,IAAIynD,GACnBiH,aAAaC,OAAO,qBAAsB,CAAEC,OAAQ,CAAEnH,aAC1D,CAuBA,SAASoH,GAAOtc,EAAc5nC,GAC1B8jD,GAAuB,aACvB,MAAMK,E7BjjiBV,SAASC,GAAaxc,GAClB,MAAMp4C,EAAO5B,OAAOyD,OAAOmB,IAC3BhD,EAAKgC,MAAQo2C,EACb,MAAMyc,EAAUA,KACZ90D,GAAiBC,GACVA,EAAKgC,OAEhB6yD,SAAOp2D,IAAUuB,EACV60D,CACX,C6BwiiBqBC,CAAe1c,GAC1Bp4C,EAAO20D,EAAShe,IACtB,OAAInmC,GAASnO,QACTrC,EAAKqC,MAAQmO,EAAQnO,OAEzBsyD,EAAStwC,IAAO9hB,GAAawyD,GAAc/0D,EAAMuC,GACjDoyD,EAASK,OAAUC,G7B3hiBvB,SAASC,GAAel1D,EAAMm1D,GACrBv0D,MACD+B,KAEJE,GAAY7C,EAAMm1D,EAAQn1D,EAAKgC,OACnC,C6BshiBoCozD,CAAiBp1D,EAAMi1D,GACvDN,EAASU,WAAaC,GAAmBvtD,KAAK4sD,GAIvCA,CACX,CACA,SAASW,KACL,MAAMt1D,EAAOwE,KAAKmyC,IAClB,QAAwBx3C,IAApBa,EAAKu1D,WAA0B,CAC/B,MAAMA,EAAaA,IAAM/wD,OACzB+wD,EAAW5e,IAAY32C,EACvBA,EAAKu1D,WAAaA,CACtB,CACA,OAAOv1D,EAAKu1D,UAChB,CAIA,SAASC,GAAiBxzD,GACtB,OA9CJ,SAASipD,GAASjpD,GACd,MAAwB,mBAAVA,QAA4C7C,IAApB6C,EAAM20C,GAChD,CA4CWsU,CAASjpD,IAA+B,mBAAdA,EAAMqiB,GAC3C,CAWA,SAASoxC,GAAoBC,EAAWC,GACpC,IAAI31D,EACJ,MAAM20D,EAAWiB,GAAiB,KAO9B51D,EAAK61D,gBACL,MAAM7zD,EA8Bd,SAAS8zD,GAAmB91D,EAAM01D,GAC9B,MAAM3pC,EAAQ/rB,EAAKg5B,OACbq6B,EAAarzD,EAAK+1D,YAYxB,QAAc52D,IAAV4sB,QAAsC5sB,IAAfk0D,GAA2C,EAAftnC,EAAMjE,GACzD,OAAQ4tC,OAAYv2D,EAAY4X,GAEpC,MAAM25C,EAAYkD,GAAkB7nC,EAAOsnC,GACrC2C,EAAU5B,GAAgBroC,EAAOsnC,GAEvC,OADA3C,EAAU3uB,MAAMi0B,EAASl1B,IACrB40B,EACOhF,EAAUlvB,MAKKkvB,EAAUnvB,uBACSpiC,IAApBa,EAAKi2D,WACdj2D,EAAKi2D,WAAavF,EAAU5uB,UAEjC9hC,EAAKi2D,UAEpB,CA9DsBH,CAAmB91D,EAAM01D,GACvC,GAAIC,QAAsBx2D,IAAV6C,EACZ,MAAM,IAAImL,GAAa,KAAqDqH,GAEhF,OAAOxS,IAEXhC,SAAO20D,EAAShe,IAChB32C,EAAK61D,cAAgBnB,GAAO,GAC5B10D,EAAKi2D,gBAAa92D,EAIXw1D,CACX,CAgHA,SAASuB,GAAe1E,EAASphD,GAE7B,OAjHJ,SAAS+lD,KACL,OAAOV,IAAoC,GAAqB,EACpE,CA+GWU,EACX,CA0BA,MAAMC,IAIFF,GAAeP,SA7BnB,SAASU,GAAuB7E,EAASphD,GAErC,OAlHJ,SAASkmD,KACL,OAAOb,IAAoC,GAAqB,EACpE,CAgHWa,EACX,EA2BWJ,IAiaX,SAASK,GAA2B11C,GAChC,IAAI21C,EAVR,SAASC,GAAaxmD,GAClB,OAAO7R,OAAOs4D,eAAezmD,EAAKnL,WAAWE,WACjD,CAQoByxD,CAAa51C,EAAW5Q,MACpC0mD,GAAsB,EAC1B,MAAMC,EAAmB,CAAC/1C,GAC1B,KAAO21C,GAAW,CACd,IAAIK,EACJ,GAAI3sC,GAAerJ,GAEfg2C,EAAWL,EAAU1kD,WAAQ0kD,EAAUxkD,cAEtC,CACD,GAAIwkD,EAAU1kD,UACV,MAAM,IAAI3E,EAAa,KAAgDqH,GAI3EqiD,EAAWL,EAAUxkD,SACzB,CACA,GAAI6kD,EAAU,CACV,GAAIF,EAAqB,CACrBC,EAAiBp1D,KAAKq1D,GAGtB,MAAMC,EAAej2C,EACrBi2C,EAAa14C,OAAS24C,GAAiBl2C,EAAWzC,QAClD04C,EAAax2C,gBAAkBy2C,GAAiBl2C,EAAWP,iBAC3Dw2C,EAAax3C,eAAiBy3C,GAAiBl2C,EAAWvB,gBAC1Dw3C,EAAaz4C,QAAU04C,GAAiBl2C,EAAWxC,SAEnD,MAAM24C,EAAoBH,EAASx2C,aACnC22C,GAAqBC,GAAoBp2C,EAAYm2C,GAErD,MAAME,EAAiBL,EAASr4C,UAC1B24C,EAAsBN,EAASt4C,eAQrC,GAPA24C,GAAkBE,GAAiBv2C,EAAYq2C,GAC/CC,GAAuBE,GAAsBx2C,EAAYs2C,GAEzDG,GAA0Bz2C,EAAYg2C,GACtC3nD,GAAe2R,EAAWxC,QAASw4C,EAASx4C,SAGxC6L,GAAe2sC,IAAaA,EAAS35C,KAAKq6C,UAAW,CAGrD,MAAMC,EAAU32C,EAAW3D,KAC3Bs6C,EAAQD,WAAaC,EAAQD,WAAa,IAAI3xD,OAAOixD,EAAS35C,KAAKq6C,UACvE,CACJ,CAEA,MAAM/2C,EAAWq2C,EAASr2C,SAC1B,GAAIA,EACA,QAASxf,EAAI,EAAGA,EAAIwf,EAASpgB,OAAQY,IAAK,CACtC,MAAMssD,EAAU9sC,EAASxf,GACrBssD,GAAWA,EAAQ7hC,WACnB6hC,EAAQzsC,GASRysC,IAAYiJ,KACZI,GAAsB,EAE9B,CAER,CACAH,EAAYp4D,OAAOs4D,eAAeF,EACtC,EAuCJ,SAASiB,GAAgCb,GACrC,IAAI54C,EAAW,EACXC,EAAY,KAEhB,QAASjd,EAAI41D,EAAiBx2D,OAAS,EAAGY,GAAK,EAAGA,IAAK,CACnD,MAAMob,EAAMw6C,EAAiB51D,GAE7Bob,EAAI4B,SAAWA,GAAY5B,EAAI4B,SAE/B5B,EAAI6B,UAAYjF,GAAeoD,EAAI6B,UAAYA,EAAYjF,GAAeiF,EAAW7B,EAAI6B,WAC7F,CACJ,CAjDIw5C,CAAgCb,EACpC,CACA,SAASU,GAA0BnoD,EAAQrG,GACvC,UAAWmG,KAAOnG,EAAOsV,OAAQ,CAI7B,IAHKtV,EAAOsV,OAAO3P,eAAeQ,IAG9BE,EAAOiP,OAAO3P,eAAeQ,GAC7B,SAEJ,MAAMjN,EAAQ8G,EAAOsV,OAAOnP,GAC5B,QAAc9P,IAAV6C,IAGJmN,EAAOiP,OAAOnP,GAAOjN,EACrBmN,EAAOmQ,eAAerQ,GAAOnG,EAAOwW,eAAerQ,GAIpB,OAA3BnG,EAAOwX,iBAA0B,CAGjC,MAAMo3C,EAAexzD,MAAMD,QAAQjC,GAASA,EAAM,GAAKA,EACvD,IAAK8G,EAAOwX,gBAAgB7R,eAAeipD,GACvC,SAEJvoD,EAAOmR,kBAAoB,CAAC,EAC5BnR,EAAOmR,gBAAgBo3C,GAAgB5uD,EAAOwX,gBAAgBo3C,EAClE,CACJ,CACJ,CAoBA,SAASX,GAAiB/0D,GACtB,OAAIA,IAAU8U,GACH,CAAC,EAEH9U,IAAU+U,GACR,GAGA/U,CAEf,CACA,SAASo1D,GAAiBv2C,EAAYq2C,GAClC,MAAMS,EAAgB92C,EAAWrC,UAE7BqC,EAAWrC,UADXm5C,EACuB,CAACnf,EAAIof,KACxBV,EAAe1e,EAAIof,GACnBD,EAAcnf,EAAIof,EAAG,EAIFV,CAE/B,CACA,SAASG,GAAsBx2C,EAAYs2C,GACvC,MAAMU,EAAqBh3C,EAAWtC,eAElCsC,EAAWtC,eADXs5C,EAC4B,CAACrf,EAAIof,EAAKv/B,KAClC8+B,EAAoB3e,EAAIof,EAAKv/B,GAC7Bw/B,EAAmBrf,EAAIof,EAAKv/B,EAAc,EAIlB8+B,CAEpC,CACA,SAASF,GAAoBp2C,EAAYm2C,GACrC,MAAMc,EAAmBj3C,EAAWR,aAEhCQ,EAAWR,aADXy3C,EAC0B,CAACtf,EAAIof,KAC3BZ,EAAkBxe,EAAIof,GACtBE,EAAiBtf,EAAIof,EAAG,EAIFZ,CAElC,CA0OA,SAASe,GAAyBl3C,GAC9B,MAAMzC,EAASyC,EAAWN,YACpBD,EAAkB,CAAC,EACzB,UAAWd,KAAepB,EACtB,GAAIA,EAAO3P,eAAe+Q,GAAc,CAGpC,MAAMxd,EAAQoc,EAAOoB,GACjBtb,MAAMD,QAAQjC,IAAUA,EAAM,KAC9Bse,EAAgBd,GAAexd,EAAM,GAE7C,CAEJ6e,EAAWP,gBAAkBA,CACjC,CAQA,MAAM03C,IAYN,MAAMC,IAuBN,MAAMC,WAAoBF,GACtBhzD,YAAYgiB,EAAcmxC,EAAS1+B,EAAqB2+B,GAA0B,GAC9EvxD,QACArC,KAAKwiB,aAAeA,EACpBxiB,KAAK2zD,QAAUA,EAEf3zD,KAAK6zD,qBAAuB,GAC5B7zD,KAAK8zD,WAAa,GAOlB9zD,KAAK+zD,yBAA2B,IAAI3N,GAAyBpmD,MAC7D,MAAMg0D,EAvigBd,SAASC,GAAexoD,EAAM0F,GAC1B,MAAM6iD,EAAcvoD,EAAKkC,KAAe,KACxC,IAAKqmD,IAAiC,IAAlB7iD,EAChB,MAAM,IAAI1V,MAAM,QAAQmP,GAAUa,0CAEtC,OAAOuoD,CACX,CAiigB4BC,CAAezxC,GAGnCxiB,KAAK6zD,qBAliQb,SAASK,GAAc12D,GACnB,OAAIA,aAAiB4kB,SACV5kB,IAGAA,CAEf,CA2hQoC02D,CAAcF,EAAYx5C,WACtDxa,KAAKm0D,YAAcj/B,GAAuC1S,EAAcmxC,EAAS,CAC7E,CAAEt1C,QAASm1C,GAAej1C,SAAUve,MACpC,CACIqe,QAASunC,GACTrnC,SAAUve,KAAK+zD,6BAEhB9+B,GACJrqB,GAAU4X,GAAe,IAAIxF,IAAI,CAAC,iBAIjC42C,GACA5zD,KAAK0hB,6BAEb,CACAA,8BACI1hB,KAAKm0D,YAAYzyC,8BACjB1hB,KAAKkmB,SAAWlmB,KAAKm0D,YAAYlkD,IAAIjQ,KAAKwiB,aAC9C,CACA,YAAI3S,GACA,OAAO7P,KAAKm0D,WAChB,CACAl0C,UAEI,MAAMpQ,EAAW7P,KAAKm0D,aACrBtkD,EAASuP,WAAavP,EAASoQ,UAChCjgB,KAAK8zD,WAAWjvD,QAASjB,GAAOA,KAChC5D,KAAK8zD,WAAa,IACtB,CACAr4C,UAAU+E,GAENxgB,KAAK8zD,WAAW92D,KAAKwjB,EACzB,EAEJ,MAAM4zC,WAAwBX,GAC1BjzD,YAAY6zD,GACRhyD,QACArC,KAAKq0D,WAAaA,CACtB,CACAh3D,OAAO4xB,GACH,OAAO,IAAIykC,GAAY1zD,KAAKq0D,WAAYplC,EAAgB,GAC5D,EAKJ,MAAMqlC,WAAsCd,GACxChzD,YAAY5B,GACRyD,QACArC,KAAK+zD,yBAA2B,IAAI3N,GAAyBpmD,MAC7DA,KAAKkmB,SAAW,KAChB,MAAMrW,EAAW,IAAIsP,GAAW,IACzBvgB,EAAOqN,UACV,CAAEoS,QAASm1C,GAAej1C,SAAUve,MACpC,CAAEqe,QAASunC,GAA4BrnC,SAAUve,KAAK+zD,2BACvDn1D,EAAOiF,QAAUob,KAAmBrgB,EAAO21D,UAAW,IAAIv3C,IAAI,CAAC,iBAClEhd,KAAK6P,SAAWA,EACZjR,EAAO41D,4BACP3kD,EAAS6R,6BAEjB,CACAzB,UACIjgB,KAAK6P,SAASoQ,SAClB,CACAxE,UAAU+E,GACNxgB,KAAK6P,SAAS4L,UAAU+E,EAC5B,EAiEJ,SAASi0C,GAAmB55C,GACxB,QAkCJ,SAAS65C,GAAWC,GAChB,OAAa,OAANA,IAA4B,mBAANA,GAAiC,iBAANA,EAC5D,CApCSD,CAAW75C,KAERnb,MAAMD,QAAQob,MACfA,aAAe2E,MACdtlB,OAAOuiC,YAAY5hB,EAC/B,CAqDA,SAAS+5C,GAAcrtC,EAAOgD,EAAc/sB,GACxC,OAAQ+pB,EAAMgD,GAAgB/sB,CAClC,CAqBA,SAASq3D,GAAettC,EAAOgD,EAAc/sB,GAKzC,OAAI5D,OAAOC,GADM0tB,EAAMgD,GACC/sB,KAkBpB+pB,EAAMgD,GAAgB/sB,GACf,EAEf,CAEA,SAASs3D,GAAgBvtC,EAAOgD,EAAcwqC,EAAMC,GAChD,MAAMC,EAAYJ,GAAettC,EAAOgD,EAAcwqC,GACtD,OAAOF,GAAettC,EAAOgD,EAAe,EAAGyqC,IAASC,CAC5D,CAiBA,SAASC,GAAiB9/C,GACtB,QAA0D,IAAlDA,EAAMhG,MAClB,CAgCA,SAAS+lD,GAAgBxY,EAAkByY,EAAkBr0D,EAAOgzC,EAAYl8B,EAAOC,EAAMywB,EAASx0B,EAAOshD,EAAgBngB,GACzH,MAAMogB,EAAgBv0D,EAAQ6jB,EACxBxP,EAAQggD,EAAiB/kC,gBAhCnC,SAASklC,GAAwBx0D,EAAOgY,EAAOwO,EAAOwsB,EAAYl8B,EAAOC,EAAMywB,EAASx0B,EAAOshD,GAG3F,MAAMG,EAAcz8C,EAAMf,OAEpB5C,EAAQq9B,GAAiB15B,EAAOhY,EAAO,EAA6BwnC,GAAW,KAAMx0B,GAAS,MACpGwkC,GAAkBx/B,EAAOwO,EAAOnS,EAAO6S,GAAYutC,EAAaH,IAChEzoC,GAAuB7T,EAAO3D,GAC9B,MAAMynC,EAAiBznC,EAAM2D,MAAQs8B,GAAY,EAA4BjgC,EAAO2+B,EAAYl8B,EAAOC,EAAMiB,EAAMq9B,kBAAmBr9B,EAAMs9B,aAAc,KAAMt9B,EAAMD,QAAS08C,EAAa,MAC5L,OAAsB,OAAlBz8C,EAAM68B,UACN78B,EAAM68B,QAAQ79B,SAASgB,EAAO3D,GAC9BynC,EAAcjH,QAAU78B,EAAM68B,QAAQiH,cAAcznC,IAEjDA,CACX,CAmBUmgD,CAAwBD,EAAeF,EAAkBzY,EAAkB5I,EAAYl8B,EAAOC,EAAMywB,EAASx0B,EAAOshD,GACpHD,EAAiB18C,KAAK48C,GAC5BzrC,GAAgBzU,GAAO,GACvB,MAAMqgD,EAAUC,GAA+BN,EAAkBzY,EAAkBvnC,EAAOrU,GACtF2rB,MACA0iB,GAAYgmB,EAAkBzY,EAAkB8Y,EAASrgD,GAE7D8pB,GAAgBu2B,EAAS9Y,GACzB,MAAMzQ,EAAakP,GAAiBqa,EAAS9Y,EAAkB8Y,EAASrgD,GACxEunC,SAAiB2Y,GAAiBppB,EAClCyI,GAAcgI,EAAkBzQ,GAx6DpC,SAASypB,GAAoCzpB,EAAY92B,EAAO8mC,GAC5D,OAAOoP,GAAqCpf,EAAY92B,EAAO8mC,EACnE,CA06DIyZ,CAAoCzpB,EAAY92B,EAAOunC,GACnDl3B,GAAgBrQ,IAChBg/B,GAA0BghB,EAAkBzY,EAAkBvnC,GAE5C,MAAlBigD,GACArgB,GAAyB2H,EAAkBvnC,EAAO8/B,GAE/C9/B,CACX,CAoBA,SAASwgD,EAAW70D,EAAOgzC,EAAYl8B,EAAOC,EAAMywB,EAASstB,EAAYR,EAAgBngB,GACrF,MAAM3tB,EAAQ6B,IACRrQ,EAAQsQ,KAEd8rC,UAAgB5tC,EAAOxO,EAAOhY,EAAOgzC,EAAYl8B,EAAOC,EAAMywB,EADhDtgB,GAAYlP,EAAMf,OAAQ69C,GACsCR,EAAgBngB,GACvF0gB,CACX,CACA,IAAIF,GAAiCI,GAIrC,SAASA,GAA0B/8C,EAAOwO,EAAOnS,EAAOrU,GACpD4rB,WAAmB,GACZpF,EAAMxD,GAAUgpB,cAAwC,GACnE,CAMA,SAASgpB,GAAkCh9C,EAAOwO,EAAOnS,EAAOrU,GAC5D,MAAMiiC,EAAgBzb,EAAM7D,IACtBsyC,GAAsBhzB,GACxB7Z,MACA+rC,GAAiB9/C,IACjBmuB,GAAqBP,EAAejiC,GAGxC,GAFA4rB,GAAmBqpC,GAEfA,EACA,OAAOF,GAA0B/8C,EAAOwO,GAE5C,MAAMkuB,EAAQzS,EAActqB,KAAK8oB,MAAazgC,IAAU,KAS1C,OAAV00C,GAAkC,OAAhBrgC,EAAM2D,OACE,OAAtB3D,EAAM2D,MAAM08B,QACZrgC,EAAM2D,MAAM08B,MAAQA,GAQ5B,MAAMkP,EAAevC,GAAgBpf,EAAejqB,EAAOwO,EAAOnS,GASlE,OAPAstB,GAAeM,EAAejiC,EAAO4jD,GAErBV,GADU7gB,GAA4BJ,EAAejiC,GACrB4jD,EAMpD,CA2JA,IAAIsR,GACH,SAAUA,GAePA,SAAiBA,EAAiBC,UAAe,GAAK,YAKtDD,EAAiBA,EAAiBE,MAAW,GAAK,QAalDF,EAAiBA,EAAiBG,eAAoB,GAAK,iBAK3DH,EAAiBA,EAAiBI,KAAU,GAAK,OAtC1CJ,CAuCX,CAvCC,CAuCEA,IAAwC,CAAC,GAxCvB,IA0CfK,GAAkB,MAAxB,MAAMA,EACF91D,cACIR,KAAKgP,KAAO,IAChB,CACAunD,UACIv2D,KAAKgP,MAAMunD,SACf,QAESv2D,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAOyrD,EACPzqD,WAAY,OACZC,QAASA,IAAM,IAAIwqD,GACnB,EACP,OAbKA,CAAkB,KAcxB,MAAME,GACFh2D,cACIR,KAAKy2D,OAAStmD,EAAOsnB,GACrBz3B,KAAKyH,UAAY0I,EAAOg1C,IACxBnlD,KAAK67C,aAAe1rC,EAAOyrB,GAAc,CAAEvrB,UAAU,IAErDrQ,KAAK02D,UAAY,IAAI15C,IAErBhd,KAAK22D,sBAAwB,IAAI35C,IAEjChd,KAAK42D,WAAY,CACrB,QACS52D,KAAK62D,OAAS,CACnBZ,GAAiBC,UACjBD,GAAiBE,MACjBF,GAAiBG,eACjBH,GAAiBI,KAClB,CAKHE,UACIv2D,KAAK42D,WAAY,EACjB,UAAWE,KAASN,GAAgBK,OAChC,UAAWE,KAAY/2D,KAAK02D,UACxB,IAAIK,EAASC,oBAAuBD,EAASrpC,MAAMopC,GAGnD,IACIC,EAASE,eAAiBj3D,KAAKy2D,OAAOv7B,kBAAkB,IAAM67B,EAASrpC,MAAMopC,GAAOC,EAASE,gBACjG,OACOj5D,GACH+4D,EAASC,oBAAqB,EAC9Bh3D,KAAK67C,cAAc5gB,YAAYj9B,EACnC,CAGRgC,KAAK42D,WAAY,EAEjB,UAAWG,KAAY/2D,KAAK02D,UACxBK,EAASG,WACLH,EAASI,OACTn3D,KAAK02D,UAAU1gC,OAAO+gC,GAGtBA,EAAS92C,WAGjB,UAAW82C,KAAY/2D,KAAK22D,sBACxB32D,KAAK02D,UAAUr1D,IAAI01D,GAEnB/2D,KAAK22D,sBAAsB1gC,KAAO,GAClCj2B,KAAKyH,UAAU+gB,OAAO,GAE1BxoB,KAAK22D,sBAAsBp2C,OAC/B,CACA62C,SAASL,GACA/2D,KAAK42D,UAON52D,KAAK22D,sBAAsBt1D,IAAI01D,IAN/B/2D,KAAK02D,UAAUr1D,IAAI01D,GAGnB/2D,KAAKyH,UAAU+gB,OAAO,GAK9B,CACA6uC,WAAWN,GACH/2D,KAAK42D,WAAa52D,KAAK02D,UAAUz4C,IAAI84C,IAIrCA,EAASC,oBAAqB,EAC9BD,EAASE,oBAAiBt8D,EAC1Bo8D,EAASI,MAAO,IAIhBn3D,KAAK02D,UAAU1gC,OAAO+gC,GACtB/2D,KAAK22D,sBAAsB3gC,OAAO+gC,GAE1C,QAES/2D,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAO2rD,GACP3qD,WAAY,OACZC,QAASA,IAAM,IAAI0qD,IACnB,EAER,MAAMc,GACF92D,YAAYwO,EAAM0e,EAAOypC,EAAM9gC,GAC3Br2B,KAAKgP,KAAOA,EACZhP,KAAK0tB,MAAQA,EACb1tB,KAAKm3D,KAAOA,EAKZn3D,KAAKg3D,oBAAqB,EAK1Bh3D,KAAKi3D,oBAAiBt8D,EACtBqF,KAAKu3D,oBAAsBlhC,GAAY5a,UAAU,IAAMzb,KAAKigB,UAChE,CACAi3C,WACIl3D,KAAKg3D,oBAAqB,EAC1Bh3D,KAAKi3D,oBAAiBt8D,CAC1B,CACAslB,UACIjgB,KAAKgP,KAAKqoD,WAAWr3D,MACrBA,KAAKu3D,uBACT,EAeJ,SAASC,GAAgBC,EAAgBzrD,IACpCA,GAAS6D,UAAYqT,KACtB,MAAMrT,EAAW7D,GAAS6D,UAAYM,EAAOglB,IAC7C,OAAKoW,GAAkB17B,IAGvBigD,GAAuB,qBAChB4H,GAAgBD,EAAgB5nD,EAAU7D,GAAoB,IAH1D2rD,EAIf,CAmBA,SAASD,GAAgBD,EAAgB5nD,EAAU7D,EAASmrD,GACxD,MAAMS,EAAU/nD,EAASI,IAAIqmD,IAG7BsB,EAAQ5oD,OAASa,EAASI,IAAIumD,IAC9B,MAAM9oC,EAAQ1hB,GAAS8qD,OAASb,GAAiBG,eAC3C//B,GAAwC,IAA3BrqB,GAAS6rD,cAAyBhoD,EAASI,IAAIslB,IAAc,KAC1EwhC,EAAW,IAAIO,GAAoBM,EAAQ5oD,KAzBrD,SAAS8oD,GAASL,EAAgBX,GAC9B,GAAIW,aAA0Br1C,SAAU,CACpC,MAAMsL,EAAQ,MAAC/yB,OAAWA,OAAWA,OAAWA,GAChD+yB,SAAMopC,GAASW,EACR/pC,CACX,CAEI,MAAO,CACH+pC,EAAeM,UACfN,EAAeO,MACfP,EAAeQ,eACfR,EAAe3K,KAG3B,CAW2DgL,CAASL,EAAgB/pC,GAAQypC,EAAM9gC,GAC9FuhC,SAAQ5oD,KAAKooD,SAASL,GACfA,CACX,CAEA,MAAMY,GAAwB,CAC1B13C,UAAY,GA83ChB,SAASi4C,GAAY73D,EAAM7C,EAAOqtC,EAAWqC,GACzC,MAAM3lB,EAAQ6B,IAQd,OANIyrC,GAAettC,EADE+C,KACmB9sB,KACtB6rB,KAEd0xB,GADczuB,KACkB/E,EAAOlnB,EAAM7C,EAAOqtC,EAAWqC,IAG5DgrB,EACX,CAgDA,SAASC,GAAe5wC,EAAO6wC,EAAQC,EAAIC,EAAIC,EAAIC,GAC/C,MACMvD,EAAYH,GAAgBvtC,EA7ugBtC,SAASkxC,KACL,OAAO7vC,EAAiBC,OAAO0B,YACnC,CA0ugByBkuC,GACkCJ,EAAIE,GAC3D/tC,UAAsB,GACfyqC,EAAYmD,EAASlqD,EAAgBmqD,GAAMC,EAAKpqD,EAAgBqqD,GAAMC,EAAS5mB,CAC1F,CAqgBA,SAAS8mB,GAAgBr+D,EAAMkF,GAG3B,OAASlF,GAAQ,GAAqCkF,GAAQ,CAClE,CACA,SAASo5D,GAAqBC,GAE1B,OAAQA,GAAiB,GAAoC,KACjE,CAWA,SAASC,GAA8BD,GAEnC,OAAwB,EAAhBA,CACZ,CACA,SAASE,GAAqBF,GAE1B,OAAwB,OAAhBA,IAAwD,CACpE,CACA,SAASG,GAAqBH,EAAer5D,GAGzC,OAAyB,OAAhBq5D,EACJr5D,GAAQ,CACjB,CAKA,SAASy5D,GAA8BJ,GAEnC,OAAwB,EAAhBA,CACZ,CAoVA,SAASK,GAAe3lC,EAAO4lC,EAAan4D,EAAOo4D,GAC/C,MAAMC,EAAkB9lC,EAAMvyB,EAAQ,GAChCs4D,EAAwB,OAAhBH,EACd,IAAII,EAASH,EACPR,GAAqBS,GACrBN,GAAqBM,GACvBG,GAAiB,EAMrB,KAAkB,IAAXD,KAAoC,IAAnBC,GAA4BF,IAAQ,CAExD,MACMG,EAAsBlmC,EAAMgmC,EAAS,GACvCG,GAF0BnmC,EAAMgmC,GAEMJ,KACtCK,GAAiB,EACjBjmC,EAAMgmC,EAAS,GAAKH,EACdH,GAA8BQ,GAC9BX,GAA8BW,IAExCF,EAASH,EACHR,GAAqBa,GACrBV,GAAqBU,EAC/B,CACID,IAEAjmC,EAAMvyB,EAAQ,GAAKo4D,EACbN,GAA8BO,GAC9BJ,GAA8BI,GAE5C,CAmBA,SAASK,GAAeC,EAAmBR,GAGvC,OAA0B,OAAtBQ,GAEe,MAAfR,IAECx5D,MAAMD,QAAQi6D,GAAqBA,EAAkB,GAAKA,KAAuBR,MAI7Ex5D,MAAMD,QAAQi6D,IAA6C,iBAAhBR,IAGzCxnD,GAAqBgoD,EAAmBR,IAAgB,CAGvE,CAGA,MAAMS,GAAc,CAChBC,QAAS,EACTnvD,IAAK,EACLovD,OAAQ,EACRr8D,MAAO,EACPs8D,SAAU,GAMd,SAASC,GAAiBz4C,GACtB,OAAOA,EAAKrW,UAAU0uD,GAAYlvD,IAAKkvD,GAAYE,OACvD,CAwCA,SAASG,GAAmB14C,EAAMvgB,GAC9B,MAAMgR,EAAM4nD,GAAYC,QACxB,OAAI7nD,IAAQhR,GACD,GAEXA,EAAQ44D,GAAYE,OAmFxB,SAASI,GAAkB34C,EAAM44C,EAAY/mC,GACzC,KAAO+mC,EAAa/mC,GAAY7R,EAAK3N,WAAWumD,GAAc,IAC1DA,IAEJ,OAAOA,CACX,CAxFiCD,CAAkB34C,EAAOq4C,GAAYlvD,IAAM1J,EAAQgR,GACzEooD,GAAkB74C,EAAMvgB,EAAOgR,GAC1C,CAmEA,SAASooD,GAAkB74C,EAAM44C,EAAY/mC,GACzC,KAAO+mC,EAAa/mC,GAAY7R,EAAK3N,WAAWumD,IAAe,IAC3DA,IAEJ,OAAOA,CACX,CAsJA,SAASE,EAAW5wD,EAAUhM,EAAOqtC,GACjC,MAAMtjB,EAAQ6B,IAQd,OANIyrC,GAAettC,EADE+C,KACmB9sB,IAGpCs6C,GAFczuB,KACAiD,KACwB/E,EAAO/d,EAAUhM,EAAO+pB,EAAMxD,GAAW8mB,GAAW,GAGvFuvB,CACX,CAKA,SAASC,GAAsCthD,EAAO3D,EAAOmS,EAAO/pB,EAAO88D,GACvE,MACMC,EAAWD,EAAe,QAAU,QAE1CpiB,GAAqBn/B,EAAOwO,EAHbnS,EAAMwE,OAGqB2gD,GAAWA,EAAU/8D,EACnE,CAqBA,SAASg9D,GAAYC,EAAMj9D,EAAOg7D,GAC9BkC,UAAqBD,EAAMj9D,EAAOg7D,GAAQ,GACnCgC,EACX,CAgBA,SAASG,GAAYpnD,EAAW/V,GAC5Bk9D,UAAqBnnD,EAAW/V,EAAO,MAAM,GACtCm9D,EACX,CAuDA,SAASC,GAAW9lC,IAkDpB,SAAS+lC,GAAgBrpD,EAAkBspD,EAAct9D,EAAO88D,GAC5D,MAAMvhD,EAAQsQ,KACRkB,EAAeC,GAAsB,GACvCzR,EAAMi9B,iBACN+kB,GAAuBhiD,EAAO,KAAMwR,EAAc+vC,GAEtD,MAAM/yC,EAAQ6B,IACd,GAAI5rB,IAAUo0C,GAAaijB,GAAettC,EAAOgD,EAAc/sB,GAAQ,CAGnE,MAAM4X,EAAQ2D,EAAML,KAAK0T,MACzB,GAAI4uC,GAAsB5lD,EAAOklD,KAAkBW,GAAiBliD,EAAOwR,GAAe,CActF,IAAI2wC,EAAeZ,EAAellD,EAAMg+B,mBAAqBh+B,EAAM89B,kBAK9C,OAAjBgoB,IAEA19D,EAAQ0N,GAAuBgwD,EAAc19D,GAAgB,KAIjE68D,GAAsCthD,EAAO3D,EAAOmS,EAAO/pB,EAAO88D,EACtE,MA0YR,SAASa,GAAiBpiD,EAAO3D,EAAOmS,EAAO1T,EAAUunD,EAAkBC,EAAkBf,EAAc/vC,GACnG6wC,IAAqBxpB,IAErBwpB,EAAmB7oD,IAEvB,IAAI+oD,EAAW,EACXrQ,EAAW,EACXsQ,EAAS,EAAIH,EAAiBx/D,OAASw/D,EAAiB,GAAK,KAC7DI,EAAS,EAAIH,EAAiBz/D,OAASy/D,EAAiB,GAAK,KACjE,KAAkB,OAAXE,GAA8B,OAAXC,GAAiB,CAGvC,MAAM19D,EAAWw9D,EAAWF,EAAiBx/D,OAASw/D,EAAiBE,EAAW,QAAK3gE,EACjFoD,EAAWktD,EAAWoQ,EAAiBz/D,OAASy/D,EAAiBpQ,EAAW,QAAKtwD,EACvF,IACIqhD,EADAyf,EAAS,KAETF,IAAWC,GAEXF,GAAY,EACZrQ,GAAY,EACRntD,IAAaC,IACb09D,EAASD,EACTxf,EAAWj+C,IAGC,OAAXy9D,GAA+B,OAAXD,GAAmBA,EAASC,GAKrDF,GAAY,EACZG,EAASF,IAOTtQ,GAAY,EACZwQ,EAASD,EACTxf,EAAWj+C,GAEA,OAAX09D,GACAC,GAAc3iD,EAAO3D,EAAOmS,EAAO1T,EAAU4nD,EAAQzf,EAAUse,EAAc/vC,GAEjFgxC,EAASD,EAAWF,EAAiBx/D,OAASw/D,EAAiBE,GAAY,KAC3EE,EAASvQ,EAAWoQ,EAAiBz/D,OAASy/D,EAAiBpQ,GAAY,IAC/E,CACJ,CAxbYkQ,CAAiBpiD,EAAO3D,EAAOmS,EAAOA,EAAMxD,GAAWwD,EAAMgD,EAAe,GAAKhD,EAAMgD,EAAe,GA4TlH,SAASoxC,GAAuBnqD,EAAkBspD,EAAct9D,GAC5D,GAAa,MAATA,GAAuD,KAAVA,EAC7C,OAAO+U,GACX,MAAMqpD,EAAqB,GACrBC,EAAiBz2B,GAAgB5nC,GACvC,GAAIkC,MAAMD,QAAQo8D,GACd,QAASr/D,EAAI,EAAGA,EAAIq/D,EAAejgE,OAAQY,IACvCgV,EAAiBoqD,EAAoBC,EAAer/D,IAAI,QAAI,GAGjC,iBAAnBq/D,EACZ,UAAWpxD,KAAOoxD,EACVA,EAAe5xD,eAAeQ,IAC9B+G,EAAiBoqD,EAAoBnxD,EAAKoxD,EAAepxD,QAIlC,iBAAnBoxD,GACZf,EAAac,EAAoBC,GAMrC,OAAOD,CACX,CArVuHD,CAAuBnqD,EAAkBspD,EAAct9D,GAAS88D,EAAc/vC,EAEjM,CACJ,CA3FIswC,CAAgBiB,GAAuBC,GAAmBjnC,GAAS,EACvE,CAUA,SAASinC,GAAkBtqD,EAAe6P,GACtC,QAAS9kB,EA3Xb,SAASw/D,GAAe16C,GACpB26C,OA4EJ,SAASA,GAAiB36C,GACtBq4C,GAAYlvD,IAAM,EAClBkvD,GAAYE,OAAS,EACrBF,GAAYn8D,MAAQ,EACpBm8D,GAAYG,SAAW,EACvBH,GAAYC,QAAUt4C,EAAK1lB,MAC/B,CAlFIqgE,CAAiB36C,GACV04C,GAAmB14C,EAAM64C,GAAkB74C,EAAM,EAAGq4C,GAAYC,SAC3E,CAwXiBoC,CAAe16C,GAAO9kB,GAAK,EAAGA,EAAIw9D,GAAmB14C,EAAM9kB,GACpEgV,GAAiBC,EAAesoD,GAAiBz4C,IAAO,EAEhE,CASA,SAASo5C,GAAqBD,EAAMj9D,EAAOg7D,EAAQ8B,GAC/C,MAAM/yC,EAAQ6B,IACRrQ,EAAQsQ,KAIRkB,EAAeC,GAAsB,GACvCzR,EAAMi9B,iBACN+kB,GAAuBhiD,EAAO0hD,EAAMlwC,EAAc+vC,GAElD98D,IAAUo0C,GAAaijB,GAAettC,EAAOgD,EAAc/sB,IAE3Dk+D,GAAc3iD,EADAA,EAAML,KAAK0T,MACG7E,EAAOA,EAAMxD,GAAW02C,EAAOlzC,EAAMgD,EAAe,GA0nBxF,SAAS2xC,GAAgB1+D,EAAOg7D,GAC5B,OAAa,MAATh7D,GAA2B,KAAVA,IAMM,iBAAXg7D,EACZh7D,GAAgBg7D,EAEM,iBAAVh7D,IACZA,EAAQoN,GAAUw6B,GAAgB5nC,MAE/BA,CACX,CAxoB6F0+D,CAAgB1+D,EAAOg7D,GAAU8B,EAAc/vC,EAE5I,CA4DA,SAAS0wC,GAAiBliD,EAAOwR,GAE7B,OAAOA,GAAgBxR,EAAM+8B,iBACjC,CAUA,SAASilB,GAAuBhiD,EAAOmgD,EAAa3uC,EAAc+vC,GAE9D,MAAMhnC,EAAQva,EAAML,KACpB,GAAgC,OAA5B4a,EAAM/I,EAAe,GAAa,CAMlC,MAAMnV,EAAQke,EAAMlH,MAEd+vC,EAAiBlB,GAAiBliD,EAAOwR,GAC3CywC,GAAsB5lD,EAAOklD,IAAiC,OAAhBpB,IAAyBiD,IAKvEjD,GAAc,GAElBA,EAkBR,SAASkD,GAAuB9oC,EAAOle,EAAOinD,EAAY/B,GACtD,MAAMgC,EAnqjBV,SAASC,GAAuBjpC,GAC5B,MAAM5I,EAAwB9B,EAAiBC,OAAO6B,sBACtD,OAAiC,IAA1BA,EAA+B,KAAO4I,EAAM5I,EACvD,CAgqjB6B6xC,CAAuBjpC,GAChD,IAAIkpC,EAAWlC,EAAellD,EAAMi+B,gBAAkBj+B,EAAM+9B,eAC5D,GAAyB,OAArBmpB,EAK2G,KAA9DhC,EAAellD,EAAMk+B,cAAgBl+B,EAAMm+B,iBAMpF8oB,EAAaI,GADbJ,EAAaK,GAA6B,KAAMppC,EAAOle,EAAOinD,EAAY/B,GACxBllD,EAAMrB,MAAOumD,GAE/DkC,EAAW,UAGd,CAGD,MAAM1pB,EAAuB19B,EAAM09B,qBAEnC,IADwE,IAAzBA,GAA+Bxf,EAAMwf,KAA0BwpB,EAG1G,GADAD,EAAaK,GAA6BJ,EAAkBhpC,EAAOle,EAAOinD,EAAY/B,GACrE,OAAbkC,EAAmB,CAOnB,IAAIG,EAsCpB,SAASC,GAA2BtpC,EAAOle,EAAOklD,GAC9C,MAAMziB,EAAWyiB,EAAellD,EAAMk+B,cAAgBl+B,EAAMm+B,cAC5D,GAAuC,IAAnCulB,GAAqBjhB,GAIzB,OAAOvkB,EAAMqlC,GAAqB9gB,GACtC,CA7CyC+kB,CAA2BtpC,EAAOle,EAAOklD,QACvC3/D,IAAvBgiE,GAAoCj9D,MAAMD,QAAQk9D,KAIlDA,EAAqBD,GAA6B,KAAMppC,EAAOle,EAAOunD,EAAmB,GAAkCrC,GAC3HqC,EAAqBF,GAAyBE,EAAoBvnD,EAAMrB,MAAOumD,GA4FnG,SAASuC,GAA2BvpC,EAAOle,EAAOklD,EAAcpB,GAI5D5lC,EAAMqlC,GAHW2B,EAAellD,EAAMk+B,cAAgBl+B,EAAMm+B,gBAGpB2lB,CAC5C,CAhGoB2D,CAA2BvpC,EAAOle,EAAOklD,EAAcqC,GAE/D,MAOIH,EAkGhB,SAASM,GAAgBxpC,EAAOle,EAAOklD,GACnC,IAAIkC,EACJ,MAAM1vC,EAAe1X,EAAM0X,aAK3B,QAAStwB,EAAI,EAAI4Y,EAAM09B,qBAAsBt2C,EAAIswB,EAActwB,IAE3DggE,EAAWC,GAAyBD,EADtBlpC,EAAM92B,GAAGid,UAC8B6gD,GAEzD,OAAOmC,GAAyBD,EAAUpnD,EAAMrB,MAAOumD,EAC3D,CA9G2BwC,CAAgBxpC,EAAOle,EAAOklD,EAGrD,CACA,YAAiB3/D,IAAb6hE,IACAlC,EAAgBllD,EAAMi+B,gBAAkBmpB,EAAapnD,EAAM+9B,eAAiBqpB,GAEzEH,CACX,CA3EsBD,CAAuB9oC,EAAOle,EAAO8jD,EAAaoB,GAzvBxE,SAASyC,GAAsBzpC,EAAOle,EAAO4nD,EAAuBj8D,EAAOk8D,EAAeC,GAEtF,IAAIC,EAAYD,EAAiB9nD,EAAMk+B,cAAgBl+B,EAAMm+B,cACzD6pB,EAAWzE,GAAqBwE,GAChCE,EAAWvE,GAAqBqE,GACpC7pC,EAAMvyB,GAASi8D,EACf,IACI9D,EADAoE,GAAyB,EAgB7B,GAdI59D,MAAMD,QAAQu9D,IAGd9D,EAD4B8D,EACM,IAEd,OAAhB9D,GACAxnD,GAJwBsrD,EAIkB9D,GAAe,KAEzDoE,GAAyB,IAI7BpE,EAAc8D,EAEdC,EAMA,GAHyC,IAAbI,EAGH,CAErB,MAAME,EAAe5E,GAAqBrlC,EAAM8pC,EAAW,IAC3D9pC,EAAMvyB,EAAQ,GAAK23D,GAAgB6E,EAAcH,GAG5B,IAAjBG,IAEAjqC,EAAMiqC,EAAe,GAAKxE,GAAqBzlC,EAAMiqC,EAAe,GAAIx8D,IAG5EuyB,EAAM8pC,EAAW,GAvP7B,SAASI,GAAqB5E,EAAe3pD,GAGzC,OAAyB,OAAhB2pD,EACJ3pD,GAAY,EACrB,CAkPkCuuD,CAAqBlqC,EAAM8pC,EAAW,GAAIr8D,EACpE,MAEIuyB,EAAMvyB,EAAQ,GAAK23D,GAAgB0E,EAAU,GAG5B,IAAbA,IAEA9pC,EAAM8pC,EAAW,GAAKrE,GAAqBzlC,EAAM8pC,EAAW,GAAIr8D,IAGpEq8D,EAAWr8D,OAMfuyB,EAAMvyB,EAAQ,GAAK23D,GAAgB2E,EAAU,GAG5B,IAAbD,EACAA,EAAWr8D,EAIXuyB,EAAM+pC,EAAW,GAAKtE,GAAqBzlC,EAAM+pC,EAAW,GAAIt8D,GAEpEs8D,EAAWt8D,EAIXu8D,IACAhqC,EAAMvyB,EAAQ,GAAK83D,GAA8BvlC,EAAMvyB,EAAQ,KAEnEk4D,GAAe3lC,EAAO4lC,EAAan4D,GAAO,GAC1Ck4D,GAAe3lC,EAAO4lC,EAAan4D,GAAO,GAoB9C,SAAS08D,GAA+BroD,EAAO8jD,EAAa5lC,EAAOvyB,EAAOm8D,GACtE,MAAMV,EAAWU,EAAiB9nD,EAAMi+B,gBAAkBj+B,EAAM+9B,eAChD,MAAZqpB,GACsB,iBAAftD,GACPxnD,GAAqB8qD,EAAUtD,IAAgB,IAE/C5lC,EAAMvyB,EAAQ,GAAKi4D,GAA8B1lC,EAAMvyB,EAAQ,IAEvE,CA3BI08D,CAA+BroD,EAAO8jD,EAAa5lC,EAAOvyB,EAAOm8D,GACjEC,EAAYzE,GAAgB0E,EAAUC,GAClCH,EACA9nD,EAAMk+B,cAAgB6pB,EAGtB/nD,EAAMm+B,cAAgB4pB,CAE9B,CAuqBQJ,CAAsBzpC,EAAOle,EAAO8jD,EAAa3uC,EAAc4xC,EAAgB7B,EACnF,CACJ,CA2LA,SAASoC,GAA6BJ,EAAkBhpC,EAAOle,EAAOinD,EAAY/B,GAG9E,IAAIoD,EAAmB,KACvB,MAAM5wC,EAAe1X,EAAM0X,aAC3B,IAAIgmB,EAAuB19B,EAAM09B,qBAOjC,KAN6B,IAAzBA,EACAA,EAAuB19B,EAAMyX,eAG7BimB,IAEGA,EAAuBhmB,IAC1B4wC,EAAmBpqC,EAAMwf,GAEzBupB,EAAaI,GAAyBJ,EAAYqB,EAAiBjkD,UAAW6gD,GAC1EoD,IAAqBpB,IAEzBxpB,IAEJ,OAAyB,OAArBwpB,IAIAlnD,EAAM09B,qBAAuBA,GAE1BupB,CACX,CAQA,SAASI,GAAyBJ,EAAYtoD,EAAOumD,GACjD,MAAMqD,EAAgBrD,EAAe,EAAkC,EACvE,IAAIsD,GAAgB,EACpB,GAAc,OAAV7pD,EACA,QAASvX,EAAI,EAAGA,EAAIuX,EAAMnY,OAAQY,IAAK,CACnC,MAAMoY,EAAOb,EAAMvX,GACC,iBAAToY,EACPgpD,EAAgBhpD,EAGZgpD,IAAkBD,IACbj+D,MAAMD,QAAQ48D,KACfA,OAA4B1hE,IAAf0hE,EAA2B,GAAK,CAAC,GAAIA,IAEtD7qD,GAAiB6qD,EAAYznD,IAAM0lD,GAAsBvmD,IAAQvX,IAG7E,CAEJ,YAAsB7B,IAAf0hE,EAA2B,KAAOA,CAC7C,CA4EA,SAASP,GAAsBrqD,EAAehH,EAAKjN,GAM/C,MAAMqgE,EAAY1vD,OAAO1D,GACP,KAAdozD,IAAqBA,EAAUC,SAAS,MACxCtsD,GAAiBC,EAAeosD,EAAWrgE,EAEnD,CAqFA,SAASk+D,GAAc3iD,EAAO3D,EAAOmS,EAAO1T,EAAU4mD,EAAMj9D,EAAO88D,EAAc/vC,GAC7E,KAAmB,EAAbnV,EAAM3J,MAGR,OAEJ,MAAM6nB,EAAQva,EAAML,KACdqlD,EAASzqC,EAAM/I,EAAe,GAC9ByzC,EA71CV,SAASC,GAA8BrF,GAEnC,QAAiE,GAAzDA,EACZ,CA01CgCqF,CAA8BF,GACpDG,GAAiB5qC,EAAOle,EAAOmS,EAAOkzC,EAAM3B,GAAqBiF,GAASzD,QAC1E3/D,EACDwjE,GAAsBH,KAElBG,GAAsB3gE,IA13CnC,SAAS4gE,GAA8BxF,GAEnC,QAAgE,GAAxDA,EACZ,CAy3CgBwF,CAA8BL,KAE9BvgE,EAAQ0gE,GAAiB5qC,EAAO,KAAM/L,EAAOkzC,EAAMlwC,EAAc+vC,IAhnWjF,SAAS+D,GAAaxqD,EAAUymD,EAAc37B,EAAO87B,EAAMj9D,GACvD,GAAI88D,EAEK98D,EAMDqW,EAASyqD,SAAS3/B,EAAO87B,GAJzB5mD,EAAS0qD,YAAY5/B,EAAO87B,OAO/B,CACD,IAAIrrD,GAA8B,IAAtBqrD,EAAK/4D,QAAQ,UAAc/G,EAAY6wC,GAAoBE,SAC1D,MAATluC,EAEAqW,EAAS2qD,YAAY7/B,EAAO87B,EAAMrrD,IAKG,iBAAV5R,GAAqBA,EAAMihE,SAAS,gBAG3DjhE,EAAQA,EAAM6I,MAAM,GAAG,IACvB+I,GAASo8B,GAAoBC,WAGjC53B,EAAS6qD,SAAS//B,EAAO87B,EAAMj9D,EAAO4R,GAE9C,CACJ,CAqlWQivD,CAAaxqD,EAAUymD,EADThzC,GAAiB8E,KAAoB7E,GACPkzC,EAAMj9D,GAE1D,CA6BA,SAAS0gE,GAAiB5qC,EAAOle,EAAOmS,EAAOkzC,EAAM15D,EAAOu5D,GAMxD,MAAMqE,EAA4B,OAAVvpD,EACxB,IAAI5X,EACJ,KAAOuD,EAAQ,GAAG,CACd,MAAM69D,EAAStrC,EAAMvyB,GACf89D,EAAkBn/D,MAAMD,QAAQm/D,GAEhCn0D,EAAMo0D,EAAkBD,EAAO,GAAKA,EACpCE,EAAuB,OAARr0D,EACrB,IAAIs0D,EAAoBx3C,EAAMxmB,EAAQ,GAClCg+D,IAAsBntB,IAQtBmtB,EAAoBD,EAAevsD,QAAc5X,GAErD,IAAImrB,EAAeg5C,EACb9sD,GAAiB+sD,EAAmBtE,GACpChwD,IAAQgwD,EACJsE,OACApkE,EAIV,GAHIkkE,IAAoBV,GAAsBr4C,KAC1CA,EAAe9T,GAAiB4sD,EAAQnE,IAExC0D,GAAsBr4C,KACtBtoB,EAAQsoB,EACJ64C,GACA,OAAOnhE,EAGf,MAAMugE,EAASzqC,EAAMvyB,EAAQ,GAC7BA,EAAQ49D,EAAkBhG,GAAqBoF,GAAUjF,GAAqBiF,EAClF,CACA,GAAc,OAAV3oD,EAAgB,CAGhB,IAAIonD,EAAWlC,EAAellD,EAAMi+B,gBAAkBj+B,EAAM+9B,eAC5C,MAAZqpB,IACAh/D,EAAQwU,GAAiBwqD,EAAU/B,GAE3C,CACA,OAAOj9D,CACX,CAOA,SAAS2gE,GAAsB3gE,GAK3B,YAAiB7C,IAAV6C,CACX,CAgCA,SAASw9D,GAAsB5lD,EAAOklD,GAClC,SAAQllD,EAAMhG,OAASkrD,EAAe,EAAmC,IAC7E,CAqqBA,SAAS0E,GAAcC,EAAuBC,GAC1CpP,GAAuB,iBACvB,MAAM5T,EAAY9yB,IACZmB,EAAeD,KACf60C,EAA4BjjB,EAAU3xB,KAAkBqnB,EAAYsK,EAAU3xB,IAAgB,EAC9F60C,GAA8C,IAA9BD,EAChBE,GAAcnjB,EAAWt3B,EAAgBu6C,QACzCxkE,EAEN,GAAIk6D,GAAe3Y,EAAW3xB,EAAc00C,GAAwB,CAChE,MAAM1iE,EAAe4jB,GAAoB,MACzC,IAQI,QALsBxlB,IAAlBykE,GArwUhB,SAASE,GAA0BpzB,EAAYnrC,GAC3C,MAAMwmB,EAAQkmB,GAAWvB,EAAYnrC,GACrC,YAAcpG,IAAV4sB,GACA0mB,GAAa1mB,EAAMlE,GAAQkE,GAExBA,CACX,CAgwUgB+3C,CAA0BF,EAPX,IAWW,IAA1BH,EAA8B,CAC9B,MAAMM,EAAsB36C,EAAgBq6C,EACtCO,EAAgBH,GAAcnjB,EAAWqjB,GACzC3iB,EAkRtB,SAAS6iB,GAAiB1mD,EAAOhY,GAG7B,OAFc0mB,GAAS1O,EAAOhY,EAGlC,CAtRsC0+D,CAAiBvjB,EAAU74B,GAAQk8C,GACnD98B,EAAiByiB,GAA2Bsa,EAAe5iB,EAAc7jC,MAAM08B,OAIrFyH,GAAqBsiB,EAHC9iB,GAA6BR,EAAWU,EAAesiB,EAAc,CACvFz8B,mBAjBW,EAmBwDwa,GAAmBL,EAAena,GAC7G,CACJ,SAEItiB,GAAoB5jB,EACxB,CACJ,cAC2B5B,IAAlBykE,EAA6B,CAGlC,MAAM73C,EAr0Ud,SAASm4C,GAAuBxzB,EAAYnrC,GACxC,MAAMu0D,EAAgBrwC,GAA0BlkB,EAEhD,GAAIu0D,EAAgBppB,EAAWtwC,OAG3B,OAFcswC,EAAWopB,EAKjC,CA4zUsBoK,CAAuBN,EA7Bd,QA8BTzkE,IAAV4sB,IACAA,EAAM3D,IAAWs7C,EAEzB,CACJ,CA+OA,SAASG,GAAc93C,EAAOxmB,GAG1B,OAFmBwmB,EAAMxmB,EAG7B,CAkDA,SAAS4+D,EAAe5+D,EAAOV,EAAMw1D,EAAYR,GAC7C,MAAM9tC,EAAQ6B,IACRrQ,EAAQsQ,KACRisC,EAAgB1wC,EAAgB7jB,EAIhC8S,EAAW0T,EAAMxD,GACjB3O,EAAQ2D,EAAMsX,gBAzCxB,SAASuvC,GAA4B7+D,EAAOgY,EAAOwO,EAAOlnB,EAAMw1D,EAAYR,GAGxE,MAAMG,EAAcz8C,EAAMf,OAEpB5C,EAAQq9B,GAAiB15B,EAAOhY,EAAO,EAA2BV,EAD1D4nB,GAAYutC,EAAaK,IAEvCtd,UAAkBx/B,EAAOwO,EAAOnS,EAAO6S,GAAYutC,EAAaH,IAC5C,OAAhBjgD,EAAMrB,OACNmyC,GAAqB9wC,EAAOA,EAAMrB,OAAO,GAEnB,OAAtBqB,EAAMqpB,aACNynB,GAAqB9wC,EAAOA,EAAMqpB,aAAa,GAE7B,OAAlB1lB,EAAM68B,SACN78B,EAAM68B,QAAQsX,aAAan0C,EAAO3D,GAE/BA,CACX,CAyBUwqD,CAA4BtK,EAAev8C,EAAOwO,EAAOlnB,EAAMw1D,EAAYR,GAC3Et8C,EAAML,KAAK48C,GACXxhD,EAAS+rD,GAA2B9mD,EAAOwO,EAAOnS,EAAOvB,EAAUxT,EAAMU,GAC/EwmB,EAAM+tC,GAAiBxhD,EACvB,MAAMgsD,EAAgBr6C,GAAgBrQ,GAItCyU,UAAgBzU,GAAO,GACvBs8B,GAAsB79B,EAAUC,EAAQsB,IACnC8/C,GAAiB9/C,IAAUsX,MAG5B0iB,GAAYr2B,EAAOwO,EAAOzT,EAAQsB,GAKP,IAr8mBnC,SAAS2qD,KACL,OAAOn3C,EAAiBC,OAAOiD,iBACnC,CAm8mBQi0C,IACA7gC,GAAgBprB,EAAQyT,GAn8mBhC,SAASy4C,KACLp3C,EAAiBC,OAAOiD,mBAC5B,CAm8mBIk0C,GACIF,IACA1rB,GAA0Br7B,EAAOwO,EAAOnS,GACxC++B,GAAsBp7B,EAAO3D,EAAOmS,IAEjB,OAAnB8tC,GACArgB,GAAyBztB,EAAOnS,GAE7BuqD,CACX,CAOA,SAASM,IACL,IAAIt2C,EAAeD,KAEfK,KACAC,MAIAL,EAAeA,EAAa9lB,OAC5BgmB,GAAgBF,GAAc,IAElC,MAAMvU,EAAQuU,GA38mBlB,SAASu2C,GAAyB9qD,GAC9B,OAAOwT,EAAiBI,yBAA2B5T,CACvD,EA28mBQ8qD,CAAyB9qD,IAp5mBjC,SAAS+qD,KACLv3C,EAAiBI,uBAAyB,IAC9C,CAm5mBQm3C,GAh+mBR,SAASC,KACLx3C,EAAiBC,OAAOiD,mBAC5B,CAg+mBIs0C,GACA,MAAMrnD,EAAQsQ,KACd,OAAItQ,EAAMsX,kBACNzD,GAAuB7T,EAAO4Q,GAC1BrE,GAAmBqE,IACnB5Q,EAAM68B,QAAQuX,WAAWxjC,IAGD,MAA5BvU,EAAMg+B,oBA3klBd,SAASitB,GAAcjrD,GACnB,SAAsB,EAAdA,EAAMhG,MAClB,CAyklB4CixD,CAAcjrD,IAClDilD,GAAsCthD,EAAO3D,EAAOgU,IAAYhU,EAAMg+B,oBAAoB,GAE/D,MAA3Bh+B,EAAM89B,mBAtjlBd,SAASotB,GAAclrD,GACnB,SAAsB,GAAdA,EAAMhG,MAClB,CAojlB2CkxD,CAAclrD,IACjDilD,GAAsCthD,EAAO3D,EAAOgU,IAAYhU,EAAM89B,mBAAmB,GAEtF+sB,CACX,CAYA,SAASM,EAAUx/D,EAAOV,EAAMw1D,EAAYR,GACxCsK,SAAe5+D,EAAOV,EAAMw1D,EAAYR,GACxC4K,IACOM,CACX,CACA,IAAIV,GAA6BA,CAAC9mD,EAAOwO,EAAOnS,EAAOvB,EAAUxT,EAAMU,KACnE4rB,IAAmB,GACZsgB,GAAkBp5B,EAAUxT,EAAMmsB,OAM7C,SAASg0C,GAA8BznD,EAAOwO,EAAOnS,EAAOvB,EAAUxT,EAAMU,GACxE,MAAMiiC,EAAgBzb,EAAM7D,IACtBsyC,GAAsBhzB,GACxB7Z,MACA+rC,GAAiB9/C,IACjBmuB,GAAqBP,EAAejiC,GAGxC,GAFA4rB,GAAmBqpC,GAEfA,EACA,OAAO/oB,GAAkBp5B,EAAUxT,EAAMmsB,MAG7C,MAAM1Y,EAASsuC,GAAgBpf,EAAejqB,EAAOwO,EAAOnS,GAI5D,OAAI+tB,GAA4BH,EAAejiC,IAQ3C2hC,GAAeM,EAAejiC,EAAO+S,EAAO6uB,aAM5CK,IACCxE,GAA4BppB,IAAUspB,GAA+B5qB,KAClEyR,GAAgBnQ,KA3/mB5B,SAASqrD,GAAwBrrD,GAC7BwT,EAAiBI,uBAAyB5T,CAC9C,CA0/mBYqrD,CAAwBrrD,GAGxBw7B,GAAqB98B,IAStBA,CACX,CAqCA,SAAS4sD,GAAwB3/D,EAAO80D,EAAYR,GAChD,MAAM9tC,EAAQ6B,IACRrQ,EAAQsQ,KACRisC,EAAgBv0D,EAAQ6jB,EAIxBxP,EAAQ2D,EAAMsX,gBAvCxB,SAASswC,GAAqC5/D,EAAOgY,EAAOwO,EAAOsuC,EAAYR,GAE3E,MAAMG,EAAcz8C,EAAMf,OACpBjE,EAAQkU,GAAYutC,EAAaK,GACjCzgD,EAAQq9B,GAAiB15B,EAAOhY,EAAO,EAAoC,eAAgBgT,GAOjGwkC,OAJc,OAAVxkC,GACAmyC,GAAqB9wC,EAAOrB,GAAO,GAGvCwkC,GAAkBx/B,EAAOwO,EAAOnS,EADd6S,GAAYutC,EAAaH,IAErB,OAAlBt8C,EAAM68B,SACN78B,EAAM68B,QAAQsX,aAAan0C,EAAO3D,GAE/BA,CACX,CAwBUurD,CAAqCrL,EAAev8C,EAAOwO,EAAOsuC,EAAYR,GAC9Et8C,EAAML,KAAK48C,GACjBzrC,GAAgBzU,GAAO,GACvB,MAAMqgD,EAAUmL,GAAoC7nD,EAAOwO,EAAOnS,EAAOrU,GACzEwmB,SAAM+tC,GAAiBG,EACnB/oC,MACA0iB,GAAYr2B,EAAOwO,EAAOkuC,EAASrgD,GAEvC8pB,GAAgBu2B,EAASluC,GACrB9B,GAAgBrQ,KAChBg/B,GAA0Br7B,EAAOwO,EAAOnS,GACxC++B,GAAsBp7B,EAAO3D,EAAOmS,IAElB,MAAlB8tC,GACArgB,GAAyBztB,EAAOnS,GAE7BsrD,EACX,CAOA,SAASG,KACL,IAAIl3C,EAAeD,KACnB,MAAM3Q,EAAQsQ,KACd,OAAIU,KACAC,MAIAL,EAAeA,EAAa9lB,OAC5BgmB,GAAgBF,GAAc,IAG9B5Q,EAAMsX,kBACNzD,GAAuB7T,EAAO4Q,GAC1BrE,GAAmBqE,IACnB5Q,EAAM68B,QAAQuX,WAAWxjC,IAG1Bk3C,EACX,CAYA,SAASC,GAAmB//D,EAAO80D,EAAYR,GAC3CqL,UAAwB3/D,EAAO80D,EAAYR,GAC3CwL,KACOC,EACX,CACA,IAAIF,GAAsCA,CAAC7nD,EAAOwO,EAAOnS,EAAOrU,KAC5D4rB,IAAmB,GACZmgB,GAAkBvlB,EAAMxD,GAAwC,KAO3E,SAASg9C,GAAmChoD,EAAOwO,EAAOnS,EAAOrU,GAC7D,IAAI00D,EACJ,MAAMzyB,EAAgBzb,EAAM7D,IACtBsyC,GAAsBhzB,GACxB7Z,MACAoa,GAAqBP,EAAejiC,IACpCm0D,GAAiB9/C,GAGrB,GAFAuX,GAAmBqpC,GAEfA,EACA,OAAOlpB,GAAkBvlB,EAAMxD,GAAwC,IAG3E,MAAM4gC,EAAevC,GAAgBpf,EAAejqB,EAAOwO,EAAOnS,GAE5D4rD,EAx7dV,SAASC,GAAmBj+B,EAAejiC,GACvC,MAAM2X,EAAOsqB,EAActqB,KAC3B,IAAIud,EAAOvd,EAAK6oB,MAAsBxgC,IAAU,KAKhD,OAAa,OAATk1B,GAAiBvd,EAAK+oB,MAAc1gC,KACpCk1B,EAAOmN,GAA4BJ,EAAejiC,IAE/Ck1B,CACX,CA66d4BgrC,CAAmBj+B,EAAejiC,GAG1D2hC,UAAeM,EAAejiC,EAAO4jD,GACrC8Q,EAAUxR,GAAa+c,EAAiBrc,GAKjC8Q,CACX,CAcA,SAASyL,KACL,OAAO93C,GACX,CAgBA,SAAS+3C,GAAe33D,EAAUhM,EAAOqtC,GACrC,MAAMtjB,EAAQ6B,IAQd,OANIyrC,GAAettC,EADE+C,KACmB9sB,IAGpCs6C,GAFczuB,KACAiD,KACwB/E,EAAO/d,EAAUhM,EAAO+pB,EAAMxD,GAAW8mB,GAAW,GAGvFs2B,EACX,CAyMA,MAAMC,GAAoB,QAgD1B,IAAIC,GAAcD,GAwjDdE,GAAqBA,CAAC75B,EAAI85B,EAAWC,KAAhBF,EAmBzB,SAASG,GAAWF,EAAWC,EAAYE,EAAYC,GACnD,MAAMp6C,EAAQ6B,IACRrQ,EAAQsQ,KACRjU,EAAQsU,KACdk4C,UAAiB7oD,EAAOwO,EAAOA,EAAMxD,GAAW3O,EAAOmsD,EAAWC,EAAYG,GACvEF,EACX,CA6DA,SAASG,GAAiB7oD,EAAOwO,EAAO1T,EAAUuB,EAAOmsD,EAAWC,EAAYG,GAC5E,MAAME,EAAuBp8C,GAAgBrQ,GAEvCw5B,EADkB71B,EAAMsX,iBACMurB,GAAwB7iC,GACtDzV,EAAUikB,EAAM3D,IAIhBirB,EAAW8M,GAAwBp0B,GAEzC,IAAIu6C,GAAiB,EAKrB,GAAiB,EAAb1sD,EAAM3J,MAAqCk2D,EAAqB,CAChE,MAAM7tD,EAAS0T,GAAiBpS,EAAOmS,GACjC5c,EAASg3D,EAAsBA,EAAoB7tD,GAAUA,EAC7DiuD,EAAgBlzB,EAASjzC,OACzBomE,EAAoBL,EACnBntC,GAAWmtC,EAAoBt6C,GAAYmN,EAAOpf,EAAMrU,SACzDqU,EAAMrU,MAaZ,IAAIkhE,EAAmB,KAUvB,IAHKN,GAAuBE,IACxBI,EAnEZ,SAASC,GAAqBnpD,EAAOwO,EAAOg6C,EAAWjT,GACnD,MAAM1f,EAAW71B,EAAMie,QACvB,GAAgB,MAAZ4X,EACA,QAASpyC,EAAI,EAAGA,EAAIoyC,EAAShzC,OAAS,EAAGY,GAAK,EAAG,CAC7C,MAAM2lE,EAAmBvzB,EAASpyC,GAClC,GAAI2lE,IAAqBZ,GAAa3yB,EAASpyC,EAAI,KAAO8xD,EAAU,CAIhE,MAAMzf,EAAWtnB,EAAM5D,IACjBy+C,EAAwBxzB,EAASpyC,EAAI,GAC3C,OAAOqyC,EAASjzC,OAASwmE,EAAwBvzB,EAASuzB,GAAyB,IACvF,CAMgC,iBAArBD,IACP3lE,GAAK,EAEb,CAEJ,OAAO,IACX,CA2C+B0lE,CAAqBnpD,EAAOwO,EAAOg6C,EAAWnsD,EAAMrU,QAElD,OAArBkhE,GAKuBA,EAAiBI,sBAAwBJ,GACjDK,qBAAuBd,EACtCS,EAAiBI,qBAAuBb,EACxCM,GAAiB,MAEhB,CACDN,EAAae,GAAantD,EAAOmS,EAAOjkB,EAASk+D,GACjDF,GAAmBxtD,EAAQytD,EAAWC,GACtC,MAAMjS,EAAY17C,EAAS2uD,OAAO73D,EAAQ42D,EAAWC,GAErD3yB,EAAS7xC,KAAKwkE,EAAYjS,GAC1B3gB,GAAYA,EAAS5xC,KAAKukE,EAAWS,EAAmBD,EAAeA,EAAgB,EAC3F,CACJ,MAIIP,EAAae,GAAantD,EAAOmS,EAAOjkB,EAASk+D,GAGrD,MAAM3nD,EAAUzE,EAAMyE,QACtB,IAAI3Q,EACJ,GAAI44D,GAA8B,OAAZjoD,IAAqB3Q,EAAQ2Q,EAAQ0nD,IAAa,CACpE,MAAMkB,EAAcv5D,EAAMtN,OAC1B,GAAI6mE,EACA,QAASjmE,EAAI,EAAGA,EAAIimE,EAAajmE,GAAK,EAAG,CACrC,MAQM+E,EALoBgmB,EAHZre,EAAM1M,IAEC0M,EAAM1M,EAAI,IAMHyH,UAAUu9D,GAChC9lE,GAAMmzC,EAASjzC,OACrBizC,EAAS7xC,KAAKwkE,EAAYjgE,GAC1BqtC,GAAYA,EAAS5xC,KAAKukE,EAAWnsD,EAAMrU,MAAOrF,KAAOA,GAAM,GACnE,CAER,CACJ,CACA,SAASgnE,GAAiCn7C,EAAOjkB,EAASk+D,EAAYxgE,GAClE,MAAMzE,EAAe4jB,GAAoB,MACzC,IACI+G,UAAS,EAAmC5jB,EAASk+D,IAE5B,IAAlBA,EAAWxgE,EACtB,OACOtD,GACHu9B,UAAY1T,EAAO7pB,IACZ,CACX,SAEIwpB,GAAS,EAAiC5jB,EAASk+D,GACnDrhD,GAAoB5jB,EACxB,CACJ,CAWA,SAASgmE,GAAantD,EAAOmS,EAAOjkB,EAASk+D,GAGzC,OAAO,SAASmB,EAA0C3hE,GAGtD,GAAIA,IAAMohB,SACN,OAAOo/C,EAKXlhB,GADkBlrC,EAAMoQ,iBAAkB,EAAKoC,GAAyBxS,EAAMrU,MAAOwmB,GAASA,EACrE,GACzB,IAAIvgB,EAAS07D,GAAiCn7C,EAAOjkB,EAASk+D,EAAYxgE,GAGtE4hE,EAAiBD,EAA0CL,qBAC/D,KAAOM,GAEH57D,EAAS07D,GAAiCn7C,EAAOjkB,EAASs/D,EAAgB5hE,IAAMgG,EAChF47D,EAAiBA,EAAeN,qBAEpC,OAAOt7D,CACX,CACJ,CAuBA,SAAS67D,EAAcC,EAAQ,GAC3B,OA12qBJ,SAASC,GAAgBD,GAErB,OADsBl6C,EAAiBC,OAAOW,aA3iBlD,SAASw5C,GAAYC,EAAcl1C,GAC/B,KAAOk1C,EAAe,GAGlBl1C,EAAcA,EAAY7J,IAC1B++C,IAEJ,OAAOl1C,CACX,CAmiBiEi1C,CAAYF,EAAOl6C,EAAiBC,OAAOW,eACpF5F,GACxB,CAu2qBWm/C,CAAgBD,EAC3B,CAUA,SAASI,GAA4B9tD,EAAO+tD,GACxC,IAAIC,EAAyB,KAC7B,MAAMC,EA79vBV,SAASC,GAAsBluD,GAC3B,MAAMU,EAAYV,EAAMrB,MACxB,GAAiB,MAAb+B,EAAmB,CACnB,MAAMytD,EAAqBztD,EAAUpU,QAAQ,GAG7C,KAA0B,EAArB6hE,GACD,OAAOztD,EAAUytD,EAAqB,EAE9C,CACA,OAAO,IACX,CAk9vB+BD,CAAsBluD,GACjD,QAAS5Y,EAAI,EAAGA,EAAI2mE,EAAgBvnE,OAAQY,IAAK,CAC7C,MAAMurB,EAAYo7C,EAAgB3mE,GAGlC,GAAkB,MAAdurB,GAMJ,GAA2B,OAAvBs7C,EACE1sD,GAA2BvB,EAAO2S,GAAkC,GACpEnR,GAAyBysD,EAAoBt7C,GAC/C,OAAOvrB,OARP4mE,EAAyB5mE,CAUjC,CACA,OAAO4mE,CACX,CA0BA,SAASI,GAAgBL,GACrB,MAAMM,EAAgBr6C,IAAWjF,IAA4BV,IAC7D,IAAKggD,EAAcnzB,WAAY,CAG3B,MACMozB,EAAmBD,EAAcnzB,WA7yxB/C,SAASqzB,GAAS1tC,EAAMz4B,GACpB,MAAMqZ,EAAO,GACb,QAASra,EAAI,EAAGA,EAAIy5B,EAAMz5B,IACtBqa,EAAK7Z,KAAKQ,GAEd,OAAOqZ,CACX,CAuyxB4D8sD,CADzBR,EAAkBA,EAAgBvnE,OAAS,EACW,MAC3EgoE,EAAQF,EAAgBr9D,QAC9B,IAAIw9D,EAAiBJ,EAAc73C,MACnC,KAA0B,OAAnBi4C,GAAyB,CAE5B,GAA4B,MAAxBA,EAAep4D,KAA6C,CAC5D,MAAMq4D,EAAYX,EACZD,GAA4BW,EAAgBV,GAC5C,EACY,OAAdW,IACIF,EAAME,GACNF,EAAME,GAAW3yB,eAAiB0yB,EAGlCH,EAAgBI,GAAaD,EAEjCD,EAAME,GAAaD,EAE3B,CACAA,EAAiBA,EAAetkE,IACpC,CACJ,CACJ,CAiBA,SAASwkE,GAAal8C,EAAWm8C,EAAgB,EAAGjwD,EAAOkwD,EAAoBC,EAAeC,GAC1F,MAAM58C,EAAQ6B,IACRrQ,EAAQsQ,KACR+6C,EAAgBH,EAAqBp8C,EAAY,EAAI,KAIrC,OAAlBu8C,GACAjP,GAAgB5tC,EAAOxO,EAAOqrD,EAAeH,EAAoBC,EAAeC,EAAc,KAAMpwD,GAExG,MAAMq9B,EAAkBqB,GAAiB15B,EAAO6L,EAAgBiD,EAAW,GAA+B,KAAM9T,GAAS,MAEtF,OAA/Bq9B,EAAgBd,aAChBc,EAAgBd,WAAa0zB,GAIjCh6C,KAEA,MAAMgsC,GADgBzuC,EAAM7D,KACiByF,KAEgC,OADnD5B,EAAMpD,IAA4BV,IAC1B6sB,WAAWc,EAAgBd,aAC5B,OAAlB8zB,EAUnB,SAASC,GAAsB98C,EAAOxO,EAAOqrD,GACzC,MAAM9O,EAAgB1wC,EAAgBw/C,EAChCE,EAAgBvrD,EAAML,KAAK48C,GAC3BiP,EAAqBh9C,EAAM+tC,GAG3B7yB,EAAiByiB,GAA2Bqf,EAAoBD,EAAcvrD,MAAM08B,OAI1FyH,GAAqBqnB,EAHC7nB,GAA6Bn1B,EAAO+8C,OAAe3pE,EAAW,CAChF8nC,mBAEoD,EAAGwa,GAAmBqnB,EAAe7hC,GACjG,CApBQ4hC,CAAsB98C,EAAOxO,EAAOqrD,GAE/BpO,GACwD,IAA5D5kB,EAAgBhiC,OA5zdzB,SAASo1D,GAAgBzrD,EAAOwO,EAAO6pB,GAKnCF,GAJiB3pB,EAAMxD,GAIY,EAAoCwD,EAAO6pB,EAH1DpC,GAAkBj2B,EAAOq4B,EAAiB7pB,GAE7CgoB,GADG6B,EAAgBvtC,QAAU0jB,EAAM9D,IACE2tB,EAAiB7pB,GAE3E,CAwzdQi9C,CAAgBzrD,EAAOwO,EAAO6pB,EAEtC,CA0eA,SAASqzB,GAAe5wC,EAAgBzsB,EAAWgI,EAAO09C,GACtD0C,GAAmB37B,EAAgBzsB,EAAWgI,EAAO09C,EACzD,CAUA,SAAS4X,GAAYt9D,EAAWgI,EAAO09C,IA72SvC,SAAS6X,GAAgBv9D,EAAWgI,EAAO09C,GAEvC,MAAM/zC,EAAQsQ,KACd,OAAItQ,EAAMsX,kBACNo/B,GAAa12C,EAAO,IAAI8zC,GAAgBzlD,EAAWgI,EAAO09C,IAAO,KACnB,GAAzC19C,KACD2J,EAAMk9B,mBAAoB,IAG3BoZ,GAAat2C,EAAOqQ,IAAYha,EAC3C,CAo2SIu1D,CAAgBv9D,EAAWgI,EAAO09C,EACtC,CAUA,SAAS8X,GAAe1Y,GACpB,MAAM3kC,EAAQ6B,IACRrQ,EAAQsQ,KACRwlC,EAAajkC,KACnBE,GAAqB+jC,EAAa,GAClC,MAAMrC,EAASI,GAAU7zC,EAAO81C,GAChC,GAAI3C,EAAUzxD,OA/ktBlB,SAASoqE,GAAel9C,GACpB,QAA2D,GAAnDA,EAAKrE,GACjB,CA8ktBQuhD,CAAet9C,OACgD,GAAzDilC,EAAOkB,SAASt+C,OAAuE,CAC7F,GAAuB,OAAnBo9C,EAAO3T,QACPqT,EAAU3uB,MAAM,QAEf,CACD,MAAMv2B,EAAS4oD,GAAgBroC,EAAOsnC,GACtC3C,EAAU3uB,MAAMv2B,EAAQs1B,IACxB4vB,EAAUhuB,iBACd,CACA,OAAO,CACX,CACA,OAAO,CACX,CAMA,SAAS4mC,KACL,OAAO1V,GAAkBhmC,IAAYwB,KACzC,CAaA,SAASm6C,GAAqBlxC,EAAgBlpB,EAAQvD,EAAWgI,EAAO09C,IAxvSxE,SAASkY,GAAkBr6D,EAAQkkD,GAC/B,MAAMrzD,EAAOmP,EAAOwnC,IACpB32C,EAAKg5B,OAASpL,IACd5tB,EAAK+1D,YAAc1C,EACnBrzD,EAAKypE,WAAa7V,GAAkB5zD,EAAKg5B,OAAQq6B,GACjDrzD,EAAKypE,WAAW9mC,QAAQ,IAAM3iC,EAAK61D,cAAcb,OAAQ3gC,GAAMA,EAAI,GACvE,CAmvSIm1C,CAAkBr6D,EAAQ6kD,GAAmB37B,EAAgBzsB,EAAWgI,EAAO09C,GACnF,CAmDA,SAASoY,GAAYnkE,GAEjB,OAAO2mB,GAh3sBX,SAASy9C,KAGL,OAFqBv8C,EAAiBC,OAAOW,YAGjD,CA22sByB27C,GACKvgD,EAAgB7jB,EAC9C,CA2pBA,SAASqkE,EAAOrkE,EAAOvD,EAAQ,IAC3B,MAAM+pB,EAAQ6B,IACRrQ,EAAQsQ,KACRisC,EAAgBv0D,EAAQ6jB,EAIxBxP,EAAQ2D,EAAMsX,gBACdoiB,GAAiB15B,EAAOu8C,EAAe,EAAwB93D,EAAO,MACtEub,EAAML,KAAK48C,GACX+P,EAAaC,GAAwBvsD,EAAOwO,EAAOnS,EAAO5X,EAAOuD,GACvEwmB,EAAM+tC,GAAiB+P,EACnB34C,MACA0iB,GAAYr2B,EAAOwO,EAAO89C,EAAYjwD,GAG1CyU,GAAgBzU,GAAO,EAC3B,CACA,IAAIkwD,GAA0BA,CAACvsD,EAAOwO,EAAOnS,EAAO5X,EAAOuD,KACvD4rB,IAAmB,GACZigB,GAAerlB,EAAMxD,GAAWvmB,IAM3C,SAAS+nE,GAA2BxsD,EAAOwO,EAAOnS,EAAO5X,EAAOuD,GAC5D,MAAMiiC,EAAgBzb,EAAM7D,IACtBsyC,GAAsBhzB,GACxB7Z,MACA+rC,GAAiB9/C,IACjBmuB,GAAqBP,EAAejiC,GAGxC,OAFA4rB,GAAmBqpC,GAEfA,EACOppB,GAAerlB,EAAMxD,GAAWvmB,GAGxB4kD,GAAgBpf,EAAejqB,EAAOwO,EAAOnS,EAIpE,CAyBA,SAASowD,GAAkBnN,GACvBoN,UAAmB,GAAIpN,EAAI,IACpBmN,EACX,CAoBA,SAASC,GAAmBrN,EAAQC,EAAIG,GACpC,MAAMjxC,EAAQ6B,IACRs8C,EAp2NV,SAASC,GAAep+C,EAAO6wC,EAAQC,EAAIG,GAEvC,OADkB3D,GAAettC,EAAO+C,KAAoB+tC,GACzCD,EAASlqD,EAAgBmqD,GAAMG,EAAS5mB,CAC/D,CAi2NyB+zB,CAAep+C,EAAO6wC,EAAQC,EAAIG,GACvD,OAAIkN,IAAiB9zB,GACjBkK,GAAoBv0B,EAAO6E,KAAoBs5C,GAE5CD,EACX,CAoBA,SAASG,GAAmBxN,EAAQC,EAAIC,EAAIC,EAAIC,GAC5C,MAAMjxC,EAAQ6B,IACRs8C,EAAevN,GAAe5wC,EAAO6wC,EAAQC,EAAIC,EAAIC,EAAIC,GAC/D,OAAIkN,IAAiB9zB,GACjBkK,GAAoBv0B,EAAO6E,KAAoBs5C,GAE5CE,EACX,CAgOA,SAASC,GAAiBr8D,EAAUhM,EAAOqtC,GAEnCmmB,GAAiBxzD,KACjBA,EAAQA,KAEZ,MAAM+pB,EAAQ6B,IAQd,OANIyrC,GAAettC,EADE+C,KACmB9sB,IAGpCs6C,GAFczuB,KACAiD,KACwB/E,EAAO/d,EAAUhM,EAAO+pB,EAAMxD,GAAW8mB,GAAW,GAGvFg7B,EACX,CASA,SAASC,GAAmBn7D,EAAQnN,GAChC,MAAMuoE,EAAW/U,GAAiBrmD,GAClCo7D,UAAYp7D,EAAOkV,IAAIriB,GAChBuoE,CACX,CASA,SAASC,GAAiBzE,EAAWC,GACjC,MAAMj6C,EAAQ6B,IACRrQ,EAAQsQ,KACRjU,EAAQsU,KACdk4C,UAAiB7oD,EAAOwO,EAAOA,EAAMxD,GAAW3O,EAAOmsD,EAAWC,GAC3DwE,EACX,CA4GA,SAASC,GAAgB9oD,EAAU4V,EAAcmzC,EAAuB/5B,EAAazd,GAEjF,GADAvR,EAAW3R,EAAkB2R,GACzBzd,MAAMD,QAAQ0d,GAId,QAAS3gB,EAAI,EAAGA,EAAI2gB,EAASvhB,OAAQY,IACjCypE,GAAgB9oD,EAAS3gB,GAAIu2B,EAAcmzC,EAAuB/5B,EAAazd,OAGlF,CACD,MAAM3V,EAAQsQ,KACR9B,EAAQ6B,IACRhU,EAAQsU,KACd,IAAI7e,EAAQ+T,GAAezB,GAAYA,EAAW3R,EAAkB2R,EAASkB,SAC7E,MAAM8nD,EAAkBnkD,GAAkB7E,GAOpCipD,EAAqC,QAAxBhxD,EAAM0d,gBACnBK,EAAW/d,EAAMyX,eACjBqG,EAAwB9d,EAAM0d,iBAAmB,GACvD,GAAIlU,GAAezB,KAAcA,EAASjQ,MAAO,CAE7C,MAAMpB,EAAU,IAAI2iB,GAAoB03C,EAAiBz3C,EAAgBujB,GACnEo0B,EAAuB3kE,GAAQmJ,EAAOkoB,EAAcrE,EAAiB03C,EAAaA,EAAalzC,EAAuBC,IAC/F,IAAzBkzC,GACAp1C,GAAmBf,GAA+B9a,EAAOmS,GAAQxO,EAAOlO,GACxEy7D,GAAgCvtD,EAAOoE,EAAU4V,EAAan3B,QAC9Dm3B,EAAa/1B,KAAK6N,GAClBuK,EAAMyX,iBACNzX,EAAM0X,eACF4B,IACAtZ,EAAM0d,iBAAmB,SAE7BozC,EAAsBlpE,KAAK8O,GAC3Byb,EAAMvqB,KAAK8O,KAGXo6D,EAAsBG,GAAwBv6D,EAC9Cyb,EAAM8+C,GAAwBv6D,EAEtC,KACK,CAqBD,MAAMy6D,EAAgC7kE,GAAQmJ,EAAOkoB,EAAcqzC,EAAalzC,EAAuBC,GACjGqzC,EAAoC9kE,GAAQmJ,EAAOkoB,EAAcqzC,EAAYA,EAAalzC,GAE1FuzC,EAAgCD,GAAqC,GACvEN,EAAsBM,GAC1B,GAAK93C,IAAmB+3C,IAClB/3C,KAJ4B63C,GAAiC,GAAKL,EAAsBK,IAIzC,CAEjDt1C,GAAmBf,GAA+B9a,EAAOmS,GAAQxO,EAAOlO,GACxE,MAAMiB,EAgItB,SAAS46D,GAAaC,EAAW5lE,EAAO2tB,EAAgByd,EAAay6B,GACjE,MAAM96D,EAAU,IAAI2iB,GAAoBk4C,EAAWj4C,EAAgBujB,GACnEnmC,SAAQoB,MAAQ,GAChBpB,EAAQ/K,MAAQA,EAChB+K,EAAQ+6D,mBAAqB,EAC7BC,GAAgBh7D,EAAS86D,EAAGz6B,IAAgBzd,GACrC5iB,CACX,CAvIgC46D,CAAah4C,EAAiBq4C,GAAoCC,GAA+Bd,EAAsBtqE,OAAQ8yB,EAAgByd,EAAag6B,IACvKz3C,GAAkB+3C,IACnBP,EAAsBM,GAAmCL,gBAAkBr6D,GAE/Ew6D,GAAgCvtD,EAAOoE,EAAU4V,EAAan3B,OAAQ,GACtEm3B,EAAa/1B,KAAK6N,GAClBuK,EAAMyX,iBACNzX,EAAM0X,eACF4B,IACAtZ,EAAM0d,iBAAmB,SAE7BozC,EAAsBlpE,KAAK8O,GAC3Byb,EAAMvqB,KAAK8O,EACf,MAIIw6D,GAAgCvtD,EAAOoE,EAAUopD,GAAgC,EAC3EA,EACAC,EAHiBM,GAAgBZ,EAAsBx3C,EAAiB83C,EAAoCD,GAAgCJ,GAAkBz3C,GAAkByd,KAKrLzd,GAAkByd,GAAes6B,GAClCP,EAAsBM,GAAmCK,oBAEjE,CACJ,CACJ,CASA,SAASP,GAAgCvtD,EAAOoE,EAAU8pD,EAAcC,GACpE,MAAMC,EAAyBvoD,GAAezB,GACxCiqD,EAtuyBV,SAASC,GAAgB7pE,GACrB,QAASA,EAAMslB,QACnB,CAouyBoCukD,CAAgBlqD,GAChD,GAAIgqD,GAA0BC,EAAyB,CAInD,MAAM1rD,GAFa0rD,EAA0B57D,EAAkB2R,EAAS2F,UAAY3F,GACvD7c,UACCob,YAC9B,GAAIA,EAAa,CACb,MAAMgS,EAAQ3U,EAAMyU,eAAiBzU,EAAMyU,aAAe,IAC1D,IAAK25C,GAA0BhqD,EAASjQ,MAAO,CAG3C,MAAMo6D,EAAyB55C,EAAMhsB,QAAQulE,IACd,IAA3BK,EACA55C,EAAM1wB,KAAKiqE,EAAc,CAACC,EAAgBxrD,IAG1CgS,EAAM45C,EAAyB,GAAGtqE,KAAKkqE,EAAgBxrD,EAE/D,MAEIgS,EAAM1wB,KAAKiqE,EAAcvrD,EAEjC,CACJ,CACJ,CAKA,SAASorD,GAAgBJ,EAAc56D,EAASy7D,GAC5C,OAAIA,GACAb,EAAaG,qBAEVH,EAAax5D,MAAMlQ,KAAK8O,GAAW,CAC9C,CAIA,SAASpK,GAAQkT,EAAMtD,EAAKgtC,EAAOvsC,GAC/B,QAASvV,EAAI8hD,EAAO9hD,EAAIuV,EAAKvV,IACzB,GAAI8U,EAAI9U,KAAOoY,EACX,OAAOpY,EAEf,OAAO,CACX,CAIA,SAASwqE,GAA8BnuD,EAAGya,EAAOk0C,EAAOpyD,GACpD,OAAOqyD,GAAaznE,KAAKkN,MAAO,GACpC,CAMA,SAAS65D,GAAkCluD,EAAGya,EAAO/L,EAAOnS,GACxD,MAAMsyD,EAAY1nE,KAAKkN,MACvB,IAAIlG,EACJ,GAAIhH,KAAKmmE,gBAAiB,CACtB,MAAMwB,EAAiB3nE,KAAKmmE,gBAAgBU,mBACtCe,EAAiBl1C,GAAkBnL,EAAOA,EAAMlE,GAAQrjB,KAAKmmE,gBAAgBplE,MAAOqU,GAE1FpO,EAAS4gE,EAAevhE,MAAM,EAAGshE,GAEjCF,GAAaC,EAAW1gE,GAExB,QAASxK,EAAImrE,EAAgBnrE,EAAIorE,EAAehsE,OAAQY,IACpDwK,EAAOhK,KAAK4qE,EAAeprE,GAEnC,MAEIwK,EAAS,GAETygE,GAAaC,EAAW1gE,GAE5B,OAAOA,CACX,CAIA,SAASygE,GAAaC,EAAW1gE,GAC7B,QAASxK,EAAI,EAAGA,EAAIkrE,EAAU9rE,OAAQY,IAElCwK,EAAOhK,MAAK8O,EADI47D,EAAUlrE,OAG9B,OAAOwK,CACX,CA6CA,SAAS6gE,GAAmB57D,EAAW67D,EAAgB,IACnD,OAAQzrD,IACJA,EAAWT,kBAAoB,CAAChE,EAAKmwD,IApQ7C,SAASnsD,GAAkBhE,EAAK3L,EAAW67D,GACvC,MAAM/uD,EAAQsQ,KACd,GAAItQ,EAAMsX,gBAAiB,CACvB,MAAM8b,EAAczmB,GAAe9N,GAEnCquD,GAAgB6B,EAAe/uD,EAAML,KAAMK,EAAMyX,UAAW2b,GAAa,GAEzE85B,GAAgBh6D,EAAW8M,EAAML,KAAMK,EAAMyX,UAAW2b,GAAa,EACzE,CACJ,CA4PmBvwB,CAAkBhE,EACzBmwD,EAAqBA,EAAmB97D,GAAaA,EACrD67D,EAAa,CAGzB,CAEA,IAKME,GAAiB,MAAvB,MAAMA,EACFxnE,YAAYynE,GACRjoE,KAAKioE,UAAYA,EACjBjoE,KAAKkoE,gBAAkB,IAAI1oD,GAC/B,CACA2oD,8BAA8B/uD,GAC1B,IAAKA,EAAab,WACd,OAAO,KAEX,IAAKvY,KAAKkoE,gBAAgBjqD,IAAI7E,GAAe,CACzC,MAAMnN,EAAY0Q,GAA4B,EAAOvD,EAAa3N,MAC5D28D,EAAqBn8D,EAAUrQ,OAAS,EAxnT1D,SAASysE,GAA0Bp8D,EAAWpI,EAAQ0wD,EAAY,MAO9D,OANgB,IAAID,GAA8B,CAC9CroD,YACApI,SACA0wD,YACAC,4BAA4B,IAEjB3kD,QACnB,CAinTkBw4D,CAA0B,CAACp8D,GAAYjM,KAAKioE,UAAW,cAAc7uD,EAAa3N,KAAKpL,SACvF,KACNL,KAAKkoE,gBAAgBroD,IAAIzG,EAAcgvD,EAC3C,CACA,OAAOpoE,KAAKkoE,gBAAgBj4D,IAAImJ,EACpC,CACAsC,cACI,IACI,UAAW7L,KAAY7P,KAAKkoE,gBAAgB3+D,SACvB,OAAbsG,GACAA,EAASoQ,SAGrB,SAEIjgB,KAAKkoE,gBAAgB3nD,OACzB,CACJ,QAESvgB,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAOm9D,EACPn8D,WAAY,cACZC,QAASA,IAAM,IAAIk8D,EAAkB93D,EAASgP,MAC9C,EACP,OApCK8oD,CAAiB,KA+CvB,SAASM,GAAoBjsD,GACzByzC,GAAuB,gBACvBzzC,EAAW7D,sBAAyByW,GACzBA,EAAehf,IAAI+3D,IAAmBG,8BAA8B9rD,EAEnF,CAkNA,SAASksD,GAAgBC,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAM/hE,GAC3D,OAmNJ,SAASgiE,GAAsBphD,EAAOqhD,EAAaJ,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAM/hE,GACrF,MAAM4jB,EAAeq+C,EAAcJ,EACnC,OAj6TJ,SAASK,GAAgBthD,EAAOgD,EAAcwqC,EAAMC,EAAM0T,GACtD,MAAMzT,EAAYH,GAAgBvtC,EAAOgD,EAAcwqC,EAAMC,GAC7D,OAAOH,GAAettC,EAAOgD,EAAe,EAAGm+C,IAASzT,CAC5D,CA85TW4T,CAAgBthD,EAAOgD,EAAcwqC,EAAMC,EAAM0T,GAClD9T,GAAcrtC,EAAOgD,EAAe,EAAG5jB,EAAU8hE,EAAO1oE,KAAK4G,EAASouD,EAAMC,EAAM0T,GAAQD,EAAO1T,EAAMC,EAAM0T,IAC7GI,GAA2BvhD,EAAOgD,EAAe,EAC3D,CAxNWo+C,CAAsBv/C,IAAYe,KAAkBq+C,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAM/hE,EACrG,CAgBA,SAASoiE,GAAgBP,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAMM,EAAMriE,GACjE,OAuNJ,SAASsiE,GAAsB1hD,EAAOqhD,EAAaJ,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAMM,EAAMriE,GAC3F,MAAM4jB,EAAeq+C,EAAcJ,EACnC,OAl7TJ,SAASU,GAAgB3hD,EAAOgD,EAAcwqC,EAAMC,EAAM0T,EAAMM,GAC5D,MAAM/T,EAAYH,GAAgBvtC,EAAOgD,EAAcwqC,EAAMC,GAC7D,OAAOF,GAAgBvtC,EAAOgD,EAAe,EAAGm+C,EAAMM,IAAS/T,CACnE,CA+6TWiU,CAAgB3hD,EAAOgD,EAAcwqC,EAAMC,EAAM0T,EAAMM,GACxDpU,GAAcrtC,EAAOgD,EAAe,EAAG5jB,EAAU8hE,EAAO1oE,KAAK4G,EAASouD,EAAMC,EAAM0T,EAAMM,GAAQP,EAAO1T,EAAMC,EAAM0T,EAAMM,IACzHF,GAA2BvhD,EAAOgD,EAAe,EAC3D,CA5NW0+C,CAAsB7/C,IAAYe,KAAkBq+C,EAAYC,EAAQ1T,EAAMC,EAAM0T,EAAMM,EAAMriE,EAC3G,CAwIA,SAASmiE,GAA2BvhD,EAAO4hD,GAEvC,MAAMC,EAAkB7hD,EAAM4hD,GAC9B,OAAOC,IAAoBx3B,OAAYj3C,EAAYyuE,CACvD,CAaA,SAASC,GAAsB9hD,EAAOqhD,EAAaJ,EAAYC,EAAQa,EAAK3iE,GACxE,MAAM4jB,EAAeq+C,EAAcJ,EACnC,OAAO3T,GAAettC,EAAOgD,EAAc++C,GACrC1U,GAAcrtC,EAAOgD,EAAe,EAAG5jB,EAAU8hE,EAAO1oE,KAAK4G,EAAS2iE,GAAOb,EAAOa,IACpFR,GAA2BvhD,EAAOgD,EAAe,EAC3D,CAiGA,SAASg/C,GAAOxoE,EAAOyoE,GACnB,MAAMzwD,EAAQsQ,KACd,IAAI9N,EACJ,MAAM+5C,EAAgBv0D,EAAQ6jB,EAC1B7L,EAAMsX,iBAGN9U,EA0CR,SAASkuD,GAAWppE,EAAMu4C,GACtB,GAAIA,EAQA,QAASp8C,EAAIo8C,EAASh9C,OAAS,EAAGY,GAAK,EAAGA,IAAK,CAC3C,MAAM+e,EAAUq9B,EAASp8C,GACzB,GAAI6D,IAASkb,EAAQlb,KACjB,OAAOkb,CAEf,CAMR,CA9DkBkuD,CAAWD,EAAUzwD,EAAMs9B,cACrCt9B,EAAML,KAAK48C,GAAiB/5C,EACxBA,EAAQE,YACP1C,EAAMyU,eAAiB,IAAIxwB,KAAKs4D,EAAe/5C,EAAQE,YAI5DF,EAAUxC,EAAML,KAAK48C,GAEzB,MAAMoU,EAAcnuD,EAAQzP,UAAYyP,EAAQzP,QAAUoF,GAAcqK,EAAQ9P,OAQ1EmV,EAA+B7R,GAAwBkjC,GAC7D,IAGI,MAAMte,EAA+B/D,IAAwB,GACvD+5C,EAAeD,IACrB95C,UAAwB+D,GA99DhC,SAAS7M,GAAM/N,EAAOwO,EAAOxmB,EAAOvD,GAG5BuD,GAASgY,EAAML,KAAK9c,SACpBmd,EAAML,KAAK3X,GAAS,KACpBgY,EAAMyX,UAAUzvB,GAAS,MAE7BwmB,EAAMxmB,GAASvD,CACnB,CAu9DQspB,CAAM/N,EAAOqQ,IAAYksC,EAAeqU,GACjCA,CACX,SAII56D,GAAwB6R,EAE5B,CACJ,CA4EA,SAASgpD,GAAY7oE,EAAO8oE,EAAQtR,GAChC,MAAMjD,EAAgBv0D,EAAQ6jB,EACxB2C,EAAQ6B,IACRugD,EAAejiD,GAAKH,EAAO+tC,GACjC,OA0FJ,SAASwU,GAAOviD,EAAOxmB,GACnB,OAAOwmB,EAAMlE,GAAO3K,KAAK3X,GAAOya,IACpC,CA5FWsuD,CAAOviD,EAAO+tC,GACf+T,GAAsB9hD,EAAO4C,KAAkB0/C,EAAQF,EAAahjB,UAAW4R,EAAIoR,GACnFA,EAAahjB,UAAU4R,EACjC,CAiGA,SAASwR,GAAuB30D,EAAOmS,GACnC,OAAOy6B,GAAkB5sC,EAAOmS,EACpC,CA2wEA,MAAMyiD,GAAc,IAAIj9D,EAAe,IAIjCk9D,GAAqB,IAAIl9D,EAAe,IAC9C,IAgPIm9D,GA5NEC,GAAW,MAAjB,MAAMA,EACF3pE,YAAY4pE,EAASxxB,EAAUyxB,GAC3BrqE,KAAKoqE,QAAUA,EACfpqE,KAAK44C,SAAWA,EAChB54C,KAAKsqE,eAAgB,EACrBtqE,KAAKuqE,WAAa,GAClBvqE,KAAKwqE,iBAAmB,KAGnBN,KAgNb,SAASO,GAAqBpa,GAC1B6Z,GAAqB7Z,CACzB,CAjNYoa,CAAqBJ,GACrBA,EAAkBK,YAAY9xB,IAElC54C,KAAK2qE,sBACLP,EAAQ7wC,IAAI,KACRv5B,KAAKwqE,wBACMnyC,KAAQ,IAAc,KAAOA,KAAKhmB,QAAQpC,IAAI,mBAAkB,EAEnF,CACA06D,sBACI3qE,KAAKoqE,QAAQvyC,WAAW5zB,UAAU,CAC9B1E,KAAMA,KACFS,KAAKsqE,eAAgB,KAG7BtqE,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bl7B,KAAKoqE,QAAQryC,SAAS9zB,UAAU,CAC5B1E,KAAMA,KACFk4B,EAAO4D,yBACPhE,eAAe,KACXr3B,KAAKsqE,eAAgB,EACrBtqE,KAAK4qE,sBAAqB,EAC7B,GAER,EAET,CAIAhzC,WACI,OAAO53B,KAAKsqE,gBAAkBtqE,KAAKoqE,QAAQ1yC,oBAC/C,CACAkzC,uBACI,GAAI5qE,KAAK43B,WAELP,eAAe,KACX,KAAkC,IAA3Br3B,KAAKuqE,WAAW3uE,QAAc,CACjC,IAAIwiC,EAAKp+B,KAAKuqE,WAAW9tE,MACzBy6B,aAAakH,EAAGtH,WAChBsH,EAAGysC,QACP,QAGH,CAED,IAAIC,EAAU9qE,KAAK+qE,kBACnB/qE,KAAKuqE,WAAavqE,KAAKuqE,WAAWpjE,OAAQi3B,IAClCA,EAAG4sC,WAAY5sC,EAAG4sC,SAASF,KAC3B5zC,aAAakH,EAAGtH,YACT,GAInB,CACJ,CACAi0C,kBACI,OAAK/qE,KAAKwqE,iBAIHxqE,KAAKwqE,iBAAiBS,WAAW/qE,IAAKymC,KAErCriC,OAAQqiC,EAAEriC,OAGV4mE,iBAAkBvkC,EAAEukC,iBACpBxyD,KAAMiuB,EAAEjuB,QATL,EAYf,CACAyyD,YAAY/sC,EAAIgtC,EAASJ,GACrB,IAAIl0C,GAAY,EACZs0C,GAAWA,EAAU,IACrBt0C,EAAY13B,WAAW,KACnBY,KAAKuqE,WAAavqE,KAAKuqE,WAAWpjE,OAAQi3B,GAAOA,EAAGtH,YAAcA,GAClEsH,GAAG,EACJgtC,IAEPprE,KAAKuqE,WAAWvtE,KAAK,CAAE6tE,OAAQzsC,EAAItH,UAAWA,EAAWk0C,SAAUA,GACvE,CAaAK,WAAWR,EAAQO,EAASJ,GACxB,GAAIA,IAAahrE,KAAKwqE,iBAClB,MAAM,IAAI/uE,MAAM,8HAGpBuE,KAAKmrE,YAAYN,EAAQO,EAASJ,GAClChrE,KAAK4qE,sBACT,CAOAU,oBAAoBzgE,GAChB7K,KAAK44C,SAAS0yB,oBAAoBzgE,EAAO7K,KAC7C,CAOAurE,sBAAsB1gE,GAClB7K,KAAK44C,SAAS2yB,sBAAsB1gE,EACxC,CAOA2gE,cAAcC,EAAOtuD,EAAUuuD,GAE3B,MAAO,EACX,QACS1rE,KAAK8N,UAAO,SAA6B69D,GAAqB,OAAO,IAAKA,GAAqBxB,GAAaj6D,EAASunB,GAASvnB,EAAS07D,IAAsB17D,EAAS+5D,IAAsB,CAAG,QAC/LjqE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAOs/D,EAAar+D,QAASq+D,EAAYr8D,WAAS,EAC9G,OA7IKq8D,CAAW,KAwJXyB,GAAmB,MAAzB,MAAMA,EACFprE,cAEIR,KAAK6rE,cAAgB,IAAIrsD,GAC7B,CAMA8rD,oBAAoBzgE,EAAOihE,GACvB9rE,KAAK6rE,cAAchsD,IAAIhV,EAAOihE,EAClC,CAKAP,sBAAsB1gE,GAClB7K,KAAK6rE,cAAc71C,OAAOnrB,EAC9B,CAIAkhE,4BACI/rE,KAAK6rE,cAActrD,OACvB,CAKAyrD,eAAeC,GACX,OAAOjsE,KAAK6rE,cAAc57D,IAAIg8D,IAAS,IAC3C,CAIAC,sBACI,OAAOxsE,MAAM8jD,KAAKxjD,KAAK6rE,cAActiE,SACzC,CAIA4iE,qBACI,OAAOzsE,MAAM8jD,KAAKxjD,KAAK6rE,cAAc/pD,OACzC,CAOAsqD,sBAAsBH,EAAMI,GAAkB,GAC1C,OAAOnC,IAAoBkC,sBAAsBpsE,KAAMisE,EAAMI,IAAoB,IACrF,QACSrsE,KAAK8N,UAAO,SAAqC69D,GAAqB,OAAO,IAAKA,GAAqBC,EAAwB,CAAG,QAClI5rE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAO+gE,EAAqB9/D,QAAS8/D,EAAoB99D,UAAMjC,WAAY,YAAe,EACtJ,OAxDK+/D,CAAmB,KAyEzB,SAASU,GAAUzxD,GAGf,QAASA,GAA2B,mBAAbA,EAAI0xD,IAC/B,CAIA,SAASC,GAAe3xD,GACpB,QAASA,GAAgC,mBAAlBA,EAAI5W,SAC/B,CAyHA,MAAMwoE,GAAkB,IAAI1/D,EAAuD,IACnF,IAKM2/D,GAAqB,MAA3B,MAAMA,EACFlsE,cACIR,KAAK2sE,aAAc,EACnB3sE,KAAK4sE,MAAO,EACZ5sE,KAAK6sE,YAAc,IAAIhuE,QAAQ,CAACkM,EAAK+hE,KACjC9sE,KAAKgF,QAAU+F,EACf/K,KAAKiF,OAAS6nE,IAElB9sE,KAAK+sE,SAAW58D,EAAOs8D,GAAiB,CAAEp8D,UAAU,KAAW,EAOnE,CAEA28D,kBACI,GAAIhtE,KAAK2sE,YACL,OAEJ,MAAMM,EAAoB,GAC1B,UAAWF,KAAY/sE,KAAK+sE,SAAU,CAClC,MAAMG,EAAaH,IACnB,GAAIT,GAAUY,GACVD,EAAkBjwE,KAAKkwE,QAAU,GAE5BV,GAAeU,GAAa,CACjC,MAAMC,EAAsB,IAAItuE,QAAQ,CAACmG,EAASC,KAC9CioE,EAAWjpE,UAAU,CAAEzE,SAAUwF,EAAStH,MAAOuH,GAAQ,GAE7DgoE,EAAkBjwE,KAAKmwE,EAC3B,CACJ,CACA,MAAM3tE,EAAWA,KAEbQ,KAAK4sE,MAAO,EACZ5sE,KAAKgF,SAAQ,EAEjBnG,QAAQuuE,IAAIH,GACPV,KAAK,KACN/sE,GAAS,GAER6tE,MAAOrsE,IACRhB,KAAKiF,OAAOjE,EAAC,GAEgB,IAA7BisE,EAAkBrxE,QAClB4D,IAEJQ,KAAK2sE,aAAc,CACvB,QACS3sE,KAAK8N,UAAO,SAAuC69D,GAAqB,OAAO,IAAKA,GAAqBe,EAA0B,CAAG,QACtI1sE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAO6hE,EAAuB5gE,QAAS4gE,EAAsB5+D,UAAMjC,WAAY,QAAW,EACtJ,OArDK6gE,CAAqB,KAqE3B,MAAMY,GAAyB,IAAIvgE,EAAoD,IAiDvF,SAASwgE,GAAe94D,EAAK+4D,GACzB,OAAI9tE,MAAMD,QAAQ+tE,GACPA,EAAK1rE,OAAOyrE,GAAgB94D,GAEhC,IAAKA,KAAQ+4D,EACxB,CACA,IAifIC,GArZEC,GAAc,MAApB,MAAMA,EACFltE,cAEIR,KAAK2tE,oBAAsB,GAE3B3tE,KAAK4tE,cAAe,EACpB5tE,KAAKqf,YAAa,EAClBrf,KAAK6tE,kBAAoB,GAEzB7tE,KAAK8tE,OAAS,GACd9tE,KAAK+tE,qBAAuB59D,EAAO6rB,IACnCh8B,KAAKguE,mBAAqB79D,EAAOmmD,IACjCt2D,KAAKiuE,gBAAkB99D,EAAOi1C,IAS9BplD,KAAKkuE,WAAa,EAMlBluE,KAAKmuE,mBAAqB,EAG1BnuE,KAAKouE,kBAAoB,IAAIpxD,IAC7Bhd,KAAKquE,aAAe,IAAIroE,GAExBhG,KAAKsuE,UAAY,IAAItoE,GAKrBhG,KAAKuuE,eAAiB,GAItBvuE,KAAKm2C,WAAa,GAIlBn2C,KAAK43B,SAAWznB,EAAOwlB,IAAcG,gBAAgB3wB,KAAKjF,GAAK4qE,IAAaA,IAC5E9qE,KAAKioE,UAAY93D,EAAO+O,GAC5B,CAEA,YAAIsvD,GACA,MAAO,IAAIxuE,KAAKouE,kBAAkBtsD,UAAW9hB,KAAK8tE,OACtD,CAIA,aAAI1uD,GACA,OAAOpf,KAAKqf,UAChB,CAIAgsD,aACI,IAAI9pE,EACJ,OAAO,IAAI1C,QAASmG,IAChBzD,EAAevB,KAAK43B,SAAS3zB,UAAU,CACnC1E,KAAOkvE,IACCA,GACAzpE,GAAQ,GAGnB,GACF0pE,QAAQ,KACPntE,EAAad,aAAY,EAEjC,CAIA,YAAIoP,GACA,OAAO7P,KAAKioE,SAChB,CAsCAztD,UAAUm0D,EAAoB1nB,GAE1B,MAAMiD,EAAqBykB,aAA8BnpB,GAEzD,IADmBxlD,KAAKioE,UAAUh4D,IAAIy8D,IACtBE,KAOZ,MANoB1iB,GAn86BhC,SAAS0kB,GAAanjE,GAClB,MAAMmM,EAAMwC,GAAgB3O,IAAS4O,GAAgB5O,IAASkQ,GAAalQ,GAC3E,OAAe,OAARmM,GAAeA,EAAIW,UAC9B,CAg86BsDq2D,CAAaD,GAMjD,IAAIhmE,EAAa,KALmCqH,GAO9D,IAAIq6C,EAEAA,EADAH,EACmBykB,EAGF3uE,KAAKioE,UAAUh4D,IAAI21C,IACRF,wBAAwBipB,GAExD3uE,KAAKuuE,eAAevxE,KAAKqtD,EAAiBzD,eAE1C,MAAMnpC,EAnRd,SAASspC,GAAgB8nB,GACrB,OAAOA,EAAG9nB,eACd,CAiRyBA,CAAgBsD,QAC3B1vD,EACAqF,KAAKioE,UAAUh4D,IAAIujD,IAEnBsb,EAAUzkB,EAAiBhtD,OAAO83B,GAASC,KAAM,GADhC6xB,GAAsBoD,EAAiBz0C,SACa6H,GACrE4e,EAAgByyC,EAAQx/C,SAAS+M,cACjCyvC,EAAcgD,EAAQj/D,SAASI,IAAI+5D,GAAa,MACtD8B,UAAaR,oBAAoBjvC,GACjCyyC,EAAQrzD,UAAU,KACdzb,KAAKytC,WAAWqhC,EAAQhnD,UACxBhnB,GAAOd,KAAKm2C,WAAY24B,GACxBhD,GAAaP,sBAAsBlvC,EAAa,GAEpDr8B,KAAK+uE,eAAeD,GAKbA,CACX,CAWAE,OACShvE,KAAKiuE,kBACNjuE,KAAKkuE,YAAc,GAEvBluE,KAAKivE,OACT,CAEAA,QAEI,GAAIjvE,KAAK4tE,aACL,MAAM,IAAIjlE,EAAa,KAA2DqH,GAEtF,MAAMzT,EAAe4jB,GAAoB,MACzC,IACIngB,KAAK4tE,cAAe,EACpB5tE,KAAKkvE,aAMT,OACOluE,GAEHhB,KAAK+tE,qBAAqB/sE,EAC9B,SAEIhB,KAAK4tE,cAAe,EACpBztD,GAAoB5jB,GACpByD,KAAKsuE,UAAU/uE,MACnB,CACJ,CAKA2vE,cACI,IAAIt6B,EAAkB,KACjB50C,KAAKioE,UAAU7oD,YAChBw1B,EAAkB50C,KAAKioE,UAAUh4D,IAAI41C,GAAkB,KAAM,CAAEx1C,UAAU,KAG7ErQ,KAAKkuE,YAAcluE,KAAKmuE,mBACxBnuE,KAAKmuE,mBAAqB,EAC1B,IAAIgB,EAAO,EACX,KAA2B,IAApBnvE,KAAKkuE,YAAwDiB,IA9U7C,IA+UnBnvE,KAAKovE,gBAAgBx6B,EAQ7B,CAIAw6B,gBAAgBx6B,GAKZ,GAHA50C,KAAKkuE,YAAcluE,KAAKmuE,mBACxBnuE,KAAKmuE,mBAAqB,EAEJ,EAAlBnuE,KAAKkuE,WAA2D,CAIhE,MAAMmB,KAA2C,EAAlBrvE,KAAKkuE,YAEpCluE,KAAKkuE,aAAc,EAEnBluE,KAAKkuE,YAAc,EAEnBluE,KAAKquE,aAAa9uE,KAAK8vE,GACvB,QAAW76C,SAAQ6pB,wBAAwBr+C,KAAK8tE,OAC5CwB,GAA8B96C,EAAQ6pB,EAAoBgxB,EAAgBrvE,KAAKiuE,iBAQnF,GAHAjuE,KAAKkuE,aAAc,EAEnBluE,KAAKuvE,0BACiB,EAAlBvvE,KAAKkuE,WAEL,MAER,MAIIt5B,GAAiB0J,UACjB1J,GAAiB7iC,QAGC,EAAlB/R,KAAKkuE,aACLluE,KAAKkuE,aAAc,EACnBluE,KAAKguE,mBAAmBzX,WAG5Bv2D,KAAKuvE,yBACT,CAeAA,0BACQvvE,KAAKwuE,SAASnxC,KAAK,EAAG7I,YAAanM,GAA2BmM,IAE9Dx0B,KAAKkuE,YAAc,EAMnBluE,KAAKkuE,aAAc,CAE3B,CAMAsB,WAAWzsC,GAEP,MAAMpb,EAAOob,EACb/iC,KAAK8tE,OAAO9wE,KAAK2qB,GACjBA,EAAK25B,eAAethD,KACxB,CAIAytC,WAAW1K,GAEP,MAAMpb,EAAOob,EACbjiC,GAAOd,KAAK8tE,OAAQnmD,GACpBA,EAAKy5B,kBACT,CACA2tB,eAAexkB,GACXvqD,KAAKwvE,WAAWjlB,EAAaziC,UAC7B9nB,KAAKgvE,OACLhvE,KAAKm2C,WAAWn5C,KAAKutD,GAErB,MAAMklB,EAAYzvE,KAAKioE,UAAUh4D,IAAIq9D,GAAwB,IAO7D,IAAIttE,KAAK2tE,uBAAwB8B,GAAW5qE,QAAS6qE,GAAaA,EAASnlB,GAC/E,CAEA7uC,cACI,IAAI1b,KAAKqf,WAET,IAEIrf,KAAK6tE,kBAAkBhpE,QAAS6qE,GAAaA,KAE7C1vE,KAAK8tE,OAAOznE,QAAQxB,QAAS8iB,GAASA,EAAK1H,UAC/C,SAGIjgB,KAAKqf,YAAa,EAElBrf,KAAK8tE,OAAS,GACd9tE,KAAK2tE,oBAAsB,GAC3B3tE,KAAK6tE,kBAAoB,EAC7B,CACJ,CAOApyD,UAAU+E,GAEN,OAAAxgB,KAAK6tE,kBAAkB7wE,KAAKwjB,GACrB,IAAM1f,GAAOd,KAAK6tE,kBAAmBrtD,EAChD,CAMAP,UACI,GAAIjgB,KAAKqf,WACL,MAAM,IAAI1W,EAAa,KAA8DqH,GAEzF,MAAMH,EAAW7P,KAAKioE,UAElBp4D,EAASoQ,UAAYpQ,EAASuP,WAG9BvP,EAASoQ,SAEjB,CAIA,aAAI0vD,GACA,OAAO3vE,KAAK8tE,OAAOlyE,MACvB,CACAg0E,kBAIA,QACS5vE,KAAK8N,UAAO,SAAgC69D,GAAqB,OAAO,IAAKA,GAAqB+B,EAAmB,CAAG,QACxH1tE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAO6iE,EAAgB5hE,QAAS4hE,EAAe5/D,UAAMjC,WAAY,QAAW,EACxI,OA1YK6hE,CAAc,KA+YpB,SAAS5sE,GAAO+V,EAAM4wB,GAClB,MAAM1mC,EAAQ8V,EAAKnV,QAAQ+lC,GACvB1mC,GAAQ,GACR8V,EAAKhV,OAAOd,EAAO,EAE3B,CAMA,SAASsqE,GAAWwE,GAChBpC,KAAoB,IAAIqC,QACxB,MAAMC,EAAmBtC,GAAgBx9D,IAAI4/D,GAC7C,GAAIE,EACA,OAAOA,EAEX,MAAMC,EAAoBH,EAAej4C,SACpCzyB,KC/tgCF,SAAS63B,GAAM51B,EAAWa,GAC7B,MAAMgoE,EAAkBvtE,UAAU9G,QAAU,EAC5C,OAAQ0I,GAAWA,EAAOa,KAAKiC,EAAYD,GAAO,CAAC0oB,EAAGrzB,IAAM4K,EAAUyoB,EAAGrzB,EAAG8H,IAAWP,GAAU6D,GAAK,GAAIqoE,EHPvG,SAASC,GAAejoE,EAAe,MAC1C,OAAQ3D,GAAWA,EAAOF,KAAK,IAAI4D,GAAuBC,GAC9D,CGKgIioE,CAAejoE,GAAgBG,GAAa,IAAM,IAAInB,IACtL,CD4tgCc+1B,CAAOpF,GAAaA,IACzBpyB,YACA+mE,KAAK,QACVkB,UAAgB5tD,IAAIgwD,EAAgBG,GAEpCH,EAAep0D,UAAU,IAAMgyD,IAAiBz3C,OAAO65C,IAChDG,CACX,CACA,SAASV,GAA8B/nD,EAAO82B,EAAoB8xB,EAAalC,IAEtEkC,GAAgB9nD,GAA2Bd,KAQhD62B,GAAsB72B,EAAO82B,EALhB8xB,IAAgBlC,IAErB,EAIZ,CAiJC,IAEKmC,GAA8B,MAApC,MAAMA,EACF5vE,cACIR,KAAK+4B,KAAO5oB,EAAOsnB,GACnBz3B,KAAKuoB,yBAA2BpY,EAAOg1C,IACvCnlD,KAAK6vE,eAAiB1/D,EAAOu9D,GACjC,CACA2C,aACQrwE,KAAKswE,gCAGTtwE,KAAKswE,8BAAgCtwE,KAAK+4B,KAAKjB,iBAAiB7zB,UAAU,CACtE1E,KAAMA,KAIES,KAAKuoB,yBAAyBgoD,aAGlCvwE,KAAK+4B,KAAKQ,IAAI,KACVv5B,KAAK6vE,eAAeb,MAAK,EAC5B,IAGb,CACAtzD,cACI1b,KAAKswE,+BAA+B7vE,aACxC,QACST,KAAK8N,UAAO,SAAgD69D,GAAqB,OAAO,IAAKA,GAAqByE,EAAmC,CAAG,QACxJpwE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAOulE,EAAgCtkE,QAASskE,EAA+BtiE,UAAMjC,WAAY,QAAW,EACxK,OA7BKukE,CAA8B,KAuCpC,SAASI,IAAqCC,gBAAeC,2BAA0Bt4C,uBACnFq4C,WAAkBA,IAAM,IAAIh5C,EAAO,IAAKk5C,KAAoBv4C,uBACrD,CACH,CAAE/Z,QAASoZ,EAAQnZ,WAAYmyD,GAC/B,CACIpyD,QAAS7L,GACTtF,OAAO,EACPoR,WAAYA,KACR,MAAMsyD,EAAiCzgE,EAAOigE,GAAgC,CAC1E//D,UAAU,IAOd,MAAO,IAAMugE,EAA+BP,YAAW,GAG/D,CACIhyD,QAAS7L,GACTtF,OAAO,EACPoR,WAAYA,KACR,MAAM8B,EAAUjQ,EAAO0gE,IACvB,MAAO,KACHzwD,EAAQiwD,YAAW,CACvB,IAKqB,IAA7BK,EAAoC,CAAEryD,QAASgnC,GAA6B9mC,UAAU,GAAS,GAC/F,CACIF,QAASinC,GACT/mC,SAAU6Z,GAAsB9C,IAG5C,CA6CA,SAASq7C,GAAiB3kE,GACtB,MAAO,CACHisB,sBAAiE,EACjEC,mCAAoClsB,GAAS8kE,kBAAmB,EAChE34C,iCAAkCnsB,GAAS+kE,gBAAiB,EAEpE,CAAC,IACKF,GAAqB,MAA3B,MAAMA,EACFrwE,cACIR,KAAKuB,aAAe,IAAIhB,GACxBP,KAAK2sE,aAAc,EACnB3sE,KAAK+4B,KAAO5oB,EAAOsnB,GACnBz3B,KAAK61B,aAAe1lB,EAAOwlB,GAC/B,CACA06C,aACI,GAAIrwE,KAAK2sE,YACL,OAEJ3sE,KAAK2sE,aAAc,EACnB,IAAI7yC,EAAO,MACN95B,KAAK+4B,KAAKnB,WAAa53B,KAAK+4B,KAAKrB,uBAAyB13B,KAAK+4B,KAAKpB,uBACrEmC,EAAO95B,KAAK61B,aAAax0B,OAE7BrB,KAAK+4B,KAAKmC,kBAAkB,KACxBl7B,KAAKuB,aAAaF,IAAIrB,KAAK+4B,KAAKhB,SAAS9zB,UAAU,KAC/CwzB,EAAO4D,yBAGPhE,eAAe,KACE,OAATyC,IACC95B,KAAK+4B,KAAKrB,uBACV13B,KAAK+4B,KAAKpB,uBACX33B,KAAK61B,aAAa/0B,OAAOg5B,GACzBA,EAAO,OAEd,GACH,GAEN95B,KAAKuB,aAAaF,IAAIrB,KAAK+4B,KAAKlB,WAAW5zB,UAAU,KACjDwzB,EAAO2D,sBACPtB,IAAS95B,KAAK61B,aAAax0B,KAAI,GAEvC,CACAqa,cACI1b,KAAKuB,aAAad,aACtB,QACST,KAAK8N,UAAO,SAAuC69D,GAAqB,OAAO,IAAKA,GAAqBkF,EAA0B,CAAG,QACtI7wE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAOgmE,EAAuB/kE,QAAS+kE,EAAsB/iE,UAAMjC,WAAY,QAAW,EACtJ,OAzCKglE,CAAqB,KAgErBG,GAA4B,MAAlC,MAAMA,EACFxwE,cACIR,KAAKuhD,OAASpxC,EAAOu9D,IACrB1tE,KAAKixE,YAAc9gE,EAAOwlB,IAC1B31B,KAAKy2D,OAAStmD,EAAOsnB,GACrBz3B,KAAKiuE,gBAAkB99D,EAAOi1C,IAC9BplD,KAAKkxE,kBAAoB/gE,EAAOk1C,GAA6B,CAAEh1C,UAAU,MAAW,EACpFrQ,KAAKmxE,qBAAuB94C,KAAS,OAAiBA,KAAKiB,KAAKC,IAChEv5B,KAAKoxE,uBAAyB,CAAC,CAAE14D,KAAM,CAAE24D,oBAAsB,KAC/DrxE,KAAK2B,cAAgB,IAAIpB,GACzBP,KAAKsxE,cAAgBtxE,KAAKmxE,cACpBnxE,KAAKy2D,OAAOh+B,QAAQxoB,IAAIsnB,IACxB,KACNv3B,KAAKo4B,oBAAsBp4B,KAAKiuE,iBAC5BjuE,KAAKmxE,gBACJhhE,EAAOm1C,GAAuB,CAAEj1C,UAAU,MAAW,GAC1DrQ,KAAKuxE,wBAA0B,KAC/BvxE,KAAKwxE,uBAAwB,EAC7BxxE,KAAKuwE,aAAc,EACnBvwE,KAAKyxE,oBAAsB,KAC3BzxE,KAAK2B,cAAcN,IAAIrB,KAAKuhD,OAAO+sB,UAAUrqE,UAAU,KAI9CjE,KAAKuwE,aACNvwE,KAAKg3B,SAAQ,IAGrBh3B,KAAK2B,cAAcN,IAAIrB,KAAKy2D,OAAO5+B,WAAW5zB,UAAU,KAI/CjE,KAAKuwE,aACNvwE,KAAKg3B,SAAQ,IAKrBh3B,KAAKkxE,qBACAlxE,KAAKiuE,kBAEDjuE,KAAKy2D,kBAAkB96B,KAEnB37B,KAAKmxE,cACtB,CACA3oD,OAAOlkB,GACH,IAAKtE,KAAKiuE,iBAA8B,IAAX3pE,EASzB,OAEJ,OAAQA,GACJ,KAAK,EACDtE,KAAKuhD,OAAO2sB,YAAc,EAC1B,MAEJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACDluE,KAAKuhD,OAAO2sB,YAAc,EAC1B,MAEJ,KAAK,EAIDluE,KAAKuhD,OAAO4sB,oBAAsB,EAClC,MAMJ,QAIInuE,KAAKuhD,OAAO2sB,YAAc,EAGlC,IAAKluE,KAAK0xE,qBACN,OAWJ,MAAMC,EAAmB3xE,KAAKwxE,sBACxBp6C,GACAP,GACN72B,KAAKyxE,oBAAsBzxE,KAAKixE,YAAY5vE,MAExCrB,KAAKuxE,wBADLvxE,KAAKo4B,mBAC0BC,KAAKiB,KAAKC,IAAI,IAAMo4C,EAAiB,IAAM3xE,KAAKgvE,SAGhDhvE,KAAKy2D,OAAOv7B,kBAAkB,IAAMy2C,EAAiB,IAAM3xE,KAAKgvE,QAEvG,CACA0C,qBAUI,QATI1xE,KAAKkxE,mBAIwB,OAA7BlxE,KAAKyxE,qBAAgCzxE,KAAKuwE,aAAevwE,KAAKuhD,OAAOqsB,eAKpE5tE,KAAKiuE,iBACNjuE,KAAKmxE,eACL94C,KAAKhmB,QAAQpC,IAAIsnB,GAAgCv3B,KAAKsxE,eAI9D,CAUAtC,OAII,GAAIhvE,KAAKuwE,aAAevwE,KAAKuhD,OAAOniC,UAChC,QAcCpf,KAAKiuE,iBAA4C,EAAzBjuE,KAAKuhD,OAAO2sB,aACrCluE,KAAKuhD,OAAO2sB,YAAc,GAE9B,MAAMp0C,EAAO95B,KAAKixE,YAAY5vE,MAC9B,IACIrB,KAAKy2D,OAAOl9B,IAAI,KACZv5B,KAAKuwE,aAAc,EACnBvwE,KAAKuhD,OAAO0tB,OAAM,OACnBt0E,EAAWqF,KAAKoxE,uBACvB,OACOpwE,GACH,MAAAhB,KAAKixE,YAAYnwE,OAAOg5B,GAClB94B,CACV,SAEIhB,KAAKg3B,SACT,CAMAh3B,KAAKwxE,uBAAwB,EAC7Bp6C,GAA8B,KAC1Bp3B,KAAKwxE,uBAAwB,EAC7BxxE,KAAKixE,YAAYnwE,OAAOg5B,EAAI,EAEpC,CACApe,cACI1b,KAAK2B,cAAclB,cACnBT,KAAKg3B,SACT,CACAA,UAWI,GAVAh3B,KAAKuwE,aAAc,EACnBvwE,KAAKuxE,4BACLvxE,KAAKuxE,wBAA0B,KAQE,OAA7BvxE,KAAKyxE,oBAA8B,CACnC,MAAM77C,EAAS51B,KAAKyxE,oBACpBzxE,KAAKyxE,oBAAsB,KAC3BzxE,KAAKixE,YAAYnwE,OAAO80B,EAC5B,CACJ,QACS51B,KAAK8N,UAAO,SAA8C69D,GAAqB,OAAO,IAAKA,GAAqBqF,EAAiC,CAAG,QACpJhxE,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAOmmE,EAA8BllE,QAASklE,EAA6BljE,UAAMjC,WAAY,QAAW,EACpK,OA/MKmlE,CAA4B,KAiUlC,MAAMY,GAAY,IAAI7kE,EAAwC,GAAI,CAC9DlB,WAAY,OACZC,QAASA,IAAMqE,EAAOyhE,GAAWrjE,GAAYK,SAAWL,GAAYI,WA/CxE,SAASkjE,KAoBD,cAAeC,UAAc,KAAeA,UAAUC,QAAW3Q,EAEzE,CAyBqFyQ,KAuT/EG,GAA6B,IAAIjlE,EAAwD,IAE/F,SAASklE,GAA6BrzE,GAClC,OAAQA,EAAOszE,SACnB,CAkGA,IASMC,GAAW,MAAjB,MAAMA,EAEF3xE,YAAYynE,GACRjoE,KAAKioE,UAAYA,EACjBjoE,KAAKoyE,SAAW,GAChBpyE,KAAK6tE,kBAAoB,GACzB7tE,KAAKqf,YAAa,CACtB,CAOAgzD,uBAAuBC,EAAetmE,GAClC,MAAMosB,EAAqBpsB,GAASosB,mBAQ9Bs4C,EAA2B1kE,GAAS0kE,yBACpC6B,EAAkB,CACpB/B,GAAmC,CAC/BC,cAVcA,IAvo0B9B,SAAS+B,GAAUC,EAAc,UAAWzmE,GACxC,MAAoB,SAAhBymE,EACO,IAAI92C,GAEK,YAAhB82C,EACO,IAAIh7C,EAAOzrB,GAEfymE,CACX,CA+n0BoCD,CAAUxmE,GAASyqD,OAAQ,IAChDka,GAAiB,CAChBG,gBAAiB9kE,GAAS0mE,sBAC1B3B,cAAe/kE,GAAS2mE,sBAE5Bv6C,uBAMIs4C,6BAEJ,CAAEryD,QAAS8mC,GAA0BviC,YAAaouD,KAEhDkB,EA5vdd,SAASU,GAA+Bve,EAAYplC,EAAgBgG,GAChE,OAAO,IAAIy+B,GAAYW,EAAYplC,EAAgBgG,GAAqB,EAC5E,CA0vd0B29C,CAA+BN,EAAcje,WAAYr0D,KAAK6P,SAAU0iE,GAC1F,OA1IR,SAAS/3D,GAAU5b,GACf,MAAMi0E,EAAcZ,GAA6BrzE,GAC3CA,EAAOk0E,WACPl0E,EAAOszE,UAAUriE,SACjB4mD,EAASoc,EAAY5iE,IAAIwnB,GAC/B,OAAOg/B,EAAOl9B,IAAI,KACV04C,GAA6BrzE,GAC7BA,EAAOk0E,WAAWpxD,8BAGlB9iB,EAAOszE,UAAUxwD,8BAErB,MAAMqxD,EAAmBF,EAAY5iE,IAAI2rB,GAAc,MAavD,IAAIo3C,EAUJ,GATAvc,EAAOv7B,kBAAkB,KACrB83C,EAAsBvc,EAAOz+B,QAAQ/zB,UAAU,CAC3C1E,KAAO7B,IACHq1E,EAAiB93C,YAAYv9B,EAAK,GAEzC,GAIDu0E,GAA6BrzE,GAAS,CACtC,MAAMq0E,EAAkBA,IAAMJ,EAAY5yD,UACpCizD,EAA6Bt0E,EAAOu0E,iBAAiBljE,IAAI+hE,IAC/DkB,EAA2B7xE,IAAI4xE,GAC/BJ,EAAYp3D,UAAU,KAClBu3D,EAAoBvyE,cACpByyE,EAA2Bl9C,OAAOi9C,EAAe,EAEzD,KACK,CACD,MAAMA,EAAkBA,IAAMr0E,EAAOszE,UAAUjyD,UACzCizD,EAA6Bt0E,EAAOu0E,iBAAiBljE,IAAI+hE,IAC/DkB,EAA2B7xE,IAAI4xE,GAC/Br0E,EAAOszE,UAAUz2D,UAAU,KACvB3a,GAAOlC,EAAOw0E,mBAAoBx0E,EAAOszE,WACzCc,EAAoBvyE,cACpByyE,EAA2Bl9C,OAAOi9C,EAAe,EAEzD,CACA,OAhjDR,SAASI,GAA6Bx3B,EAAc4a,EAAQj2C,GACxD,IACI,MAAMxZ,EAASwZ,IACf,OAAI8rD,GAAUtlE,GACHA,EAAOqmE,MAAOrsE,IACjBy1D,QAAOv7B,kBAAkB,IAAM2gB,EAAa5gB,YAAYj6B,IAElDA,IAGPgG,CACX,OACOhG,GACHy1D,QAAOv7B,kBAAkB,IAAM2gB,EAAa5gB,YAAYj6B,IAElDA,CACV,CACJ,CA+hDeqyE,CAA6BN,EAAkBtc,EAAQ,KAC1D,MAAM6c,EAAaT,EAAY5iE,IAAIy8D,IACnC4G,SAAWtG,kBACJsG,EAAWzG,YAAYN,KAAK,KAQ/B,GAv8RhB,SAASgH,GAAYC,GAEO,iBAAbA,IACPnS,GAAcmS,EAASj+D,cAAckM,QAAQ,KAAM,KAE3D,CA67RgB8xD,CADiBV,EAAY5iE,IAAI2hE,GAAWxQ,KACpBA,IAKpB6Q,GAA6BrzE,GAAS,CACtC,MAAM2iD,EAASsxB,EAAY5iE,IAAIy9D,IAC/B,YAA6B/yE,IAAzBiE,EAAO60E,eACPlyB,EAAO/mC,UAAU5b,EAAO60E,eAErBlyB,CACX,CAEImyB,OAOpB,SAASA,GAAkBxB,EAAWkB,GAClC,MAAM7xB,EAAS2wB,EAAUriE,SAASI,IAAIy9D,IACtC,GAAIwE,EAAUre,qBAAqBj4D,OAAS,EACxCs2E,EAAUre,qBAAqBhvD,QAAS+hE,GAAMrlB,EAAO/mC,UAAUosD,QAAE,KAE5DsL,EAAUhsD,SAASytD,cAIxB,MAAM,IAAIhrE,GAAa,KAA4DqH,GAHnFkiE,EAAUhsD,SAASytD,cAAcpyB,EAMI,CAEzC6xB,EAAmBp2E,KAAKk1E,EAC5B,CAtBoBwB,CAAkB90E,EAAOszE,UAAWtzE,EAAOw0E,oBACpCx0E,EAAOszE,WAErB,EACJ,EAET,CA2De13D,CAAU,CACb03D,YACAkB,mBAAoBpzE,KAAKoyE,SACzBe,iBAAkBnzE,KAAK6P,UAE/B,CAiBA+jE,gBAAgBvf,EAAYwf,EAAkB,IAC1C,MAAM7nE,EAAUuhE,GAAe,CAAC,EAAGsG,GACnC,OA/gCR,SAASC,GAAuBjkE,EAAU7D,EAASqoD,GAE/C,MAAMie,EAAgB,IAAIle,GAAgBC,GAGtC,OAAOx1D,QAAQmG,QAAQstE,EA+B/B,CA2+BewB,CAAuB9zE,EAAegM,EAASqoD,GAAYkY,KAAM+F,GAAkBtyE,KAAKqyE,uBAAuBC,EAAetmE,GACzI,CAIAyP,UAAU+E,GACNxgB,KAAK6tE,kBAAkB7wE,KAAKwjB,EAChC,CAKA,YAAI3Q,GACA,OAAO7P,KAAKioE,SAChB,CAKAhoD,UACI,GAAIjgB,KAAKqf,WACL,MAAM,IAAI1W,EAAa,KAAuDqH,GAElFhQ,KAAKoyE,SAAS/rE,QAAQxB,QAASkvE,GAAWA,EAAO9zD,WACjDjgB,KAAK6tE,kBAAkBhpE,QAAS6qE,GAAaA,KAC7C,MAAMsE,EAAmBh0E,KAAKioE,UAAUh4D,IAAI+hE,GAA4B,MACpEgC,IACAA,EAAiBnvE,QAAS6qE,GAAaA,KACvCsE,EAAiBzzD,SAErBvgB,KAAKqf,YAAa,CACtB,CAIA,aAAID,GACA,OAAOpf,KAAKqf,UAChB,QACSrf,KAAK8N,UAAO,SAA6B69D,GAAqB,OAAO,IAAKA,GAAqBwG,GAAajiE,EAASilB,IAAY,CAAG,QACpIn1B,KAAK2M,WAAsBhB,EAAmB,CAAEd,MAAOsnE,EAAarmE,QAASqmE,EAAYrkE,UAAMjC,WAAY,YAAe,EACtI,OAhGKsmE,CAAW,KAsGb8B,GAAoB,KAKxB,MAAMC,GAA2B,IAAInnE,EAAkD,IA6BvF,SAASonE,GAAsBC,EAAuB/zE,EAAM4L,EAAY,IACpE,MAAMooE,EAAO,aAAah0E,IACpBkU,EAAS,IAAIxH,EAAesnE,GAClC,MAAO,CAACC,EAAiB,MACrB,IAAIC,EAAWC,KACf,IAAKD,GAAYA,EAAS1kE,SAASI,IAAIikE,IAA0B,GAAQ,CACrE,MAAMO,EAAoB,IACnBxoE,KACAqoE,EACH,CAAEj2D,QAAS9J,EAAQgK,UAAU,IAE7B61D,EACAA,EAAsBK,GAlCtC,SAASC,GAAe7kE,GACpB,GAAIokE,KAAsBA,GAAkBhkE,IAAIikE,IAA0B,GACtE,MAAM,IAAIvrE,EAAa,KAA+CqH,IAhvD9E,SAAS2kE,M7Bxx+BT,SAASC,GAAkChxE,GACvC3F,GAAmC2F,CACvC,C6Bux+BIixE,CAAoC,KAChC,MAAM,IAAIlsE,EAAa,KAA8DqH,EAEQ,EAErG,EA6uDI2kE,GACAV,GAAoBpkE,EACpB,MAAM0kE,EAAW1kE,EAASI,IAAIkiE,KAqGlC,SAAS2C,GAAwBjlE,GACfA,EAASI,IAAI4vB,GAAsB,OAC1Ch7B,QAASu4B,GAASA,IAC7B,EAvGI03C,CAAwBjlE,EAE5B,CA2BgB6kE,CAUhB,SAASK,GAAuB9oE,EAAY,GAAI5L,GAC5C,OAAO80B,GAAS93B,OAAO,CACnBgD,OACA4L,UAAW,CACP,CAAEoS,QAASQ,GAAgBN,SAAU,YACrC,CAAEF,QAAS2zD,GAA4BzzD,SAAU,IAAIvB,IAAI,CAAC,IAAOi3D,GAAoB,WAClFhoE,IAGf,CAnB+B8oE,CAAuBN,EAAmBJ,GAEjE,CACA,OAsBR,SAASW,KACL,MAAMT,EAAWC,KACjB,IAAKD,EACD,MAAM,IAAI5rE,EAAa,KAA+CqH,GAM1E,OAAOukE,CACX,CAhCeS,EAAqB,CAEpC,CAoCA,SAASR,KACL,OAAOP,IAAmBhkE,IAAIkiE,KAAgB,IAClD,CAsOA,IA6CM8C,GAAiB,MAAvB,MAAMA,SAKOj1E,KAAKiN,kBAAoBioE,EAAyB,EAC9D,OANKD,CAAiB,KAQvB,SAASC,GAAwB9lE,GAC7B,OAUJ,SAAS+lE,GAAc//D,EAAOmS,EAAO6tD,GACjC,GAAI7vD,GAAgBnQ,KAAWggE,EAAQ,CAGnC,MAAM1gC,EAAgB9sB,GAAyBxS,EAAMrU,MAAOwmB,GAC5D,OAAO,IAAIi5B,GAAU9L,EAAeA,EACxC,QAEK,IADIt/B,EAAM3J,KAKJ,IAAI+0C,GADej5B,EAAMpD,IACQoD,GAErC,IACX,CAzBW4tD,CAAczrD,KAAmBN,MAA+D,IAAlDha,GACzD,CAspBA,MAAMimE,GACF70E,cAAgB,CAChB80E,SAASz6D,GACL,OAAO45C,GAAmB55C,EAC9B,CACAxd,OAAOk4E,GACH,OAAO,IAAIC,GAAsBD,EACrC,EAEJ,MAAME,GAAkBA,CAAC10E,EAAO6T,IAASA,EAKzC,MAAM4gE,GACFh1E,YAAY+0E,GACRv1E,KAAKpE,OAAS,EAEdoE,KAAK01E,eAAiB,KAEtB11E,KAAK21E,iBAAmB,KACxB31E,KAAK41E,gBAAkB,KACvB51E,KAAK61E,QAAU,KACf71E,KAAK81E,QAAU,KACf91E,KAAK+1E,eAAiB,KACtB/1E,KAAKg2E,eAAiB,KACtBh2E,KAAKi2E,WAAa,KAClBj2E,KAAKk2E,WAAa,KAClBl2E,KAAKm2E,cAAgB,KACrBn2E,KAAKo2E,cAAgB,KAErBp2E,KAAKq2E,qBAAuB,KAC5Br2E,KAAKs2E,qBAAuB,KAC5Bt2E,KAAKu2E,WAAahB,GAAaE,EACnC,CACAe,YAAY5yE,GACR,IAAImc,EACJ,IAAKA,EAAS/f,KAAK61E,QAAoB,OAAX91D,EAAiBA,EAASA,EAAO/c,MACzDY,EAAGmc,EAEX,CACA02D,iBAAiB7yE,GACb,IAAI8yE,EAAS12E,KAAK61E,QACdc,EAAa32E,KAAKm2E,cAClBS,EAAkB,EAClBC,EAAc,KAClB,KAAOH,GAAUC,GAAY,CAGzB,MAAM52D,GAAU42D,GACXD,GACGA,EAAOI,aAAeC,GAAiBJ,EAAYC,EAAiBC,GACtEH,EACAC,EACAK,EAAmBD,GAAiBh3D,EAAQ62D,EAAiBC,GAC7DC,EAAe/2D,EAAO+2D,aAE5B,GAAI/2D,IAAW42D,EACXC,IACAD,EAAaA,EAAWM,qBAGxBP,EAASA,EAAO1zE,MACY,MAAxB+c,EAAOm3D,cACPN,QAEC,CAEIC,IACDA,EAAc,IAClB,MAAMM,EAAyBH,EAAmBJ,EAC5CQ,EAAoBN,EAAeF,EACzC,GAAIO,GAA0BC,EAAmB,CAC7C,QAAS56E,EAAI,EAAGA,EAAI26E,EAAwB36E,IAAK,CAC7C,MAAMqtE,EAASrtE,EAAIq6E,EAAYj7E,OAASi7E,EAAYr6E,GAAMq6E,EAAYr6E,GAAK,EACrEuE,EAAQ8oE,EAASrtE,EACnB46E,GAAqBr2E,GAASA,EAAQo2E,IACtCN,EAAYr6E,GAAKqtE,EAAS,EAElC,CAEAgN,EADsB92D,EAAOm3D,eACAE,EAAoBD,CACrD,CACJ,CAEAH,IAAqBF,GACrBlzE,EAAGmc,EAAQi3D,EAAkBF,EAErC,CACJ,CACAO,oBAAoBzzE,GAChB,IAAImc,EACJ,IAAKA,EAAS/f,KAAK41E,gBAA4B,OAAX71D,EAAiBA,EAASA,EAAOu3D,cACjE1zE,EAAGmc,EAEX,CACAw3D,iBAAiB3zE,GACb,IAAImc,EACJ,IAAKA,EAAS/f,KAAK+1E,eAA2B,OAAXh2D,EAAiBA,EAASA,EAAOy3D,WAChE5zE,EAAGmc,EAEX,CACA03D,iBAAiB7zE,GACb,IAAImc,EACJ,IAAKA,EAAS/f,KAAKi2E,WAAuB,OAAXl2D,EAAiBA,EAASA,EAAO23D,WAC5D9zE,EAAGmc,EAEX,CACA43D,mBAAmB/zE,GACf,IAAImc,EACJ,IAAKA,EAAS/f,KAAKm2E,cAA0B,OAAXp2D,EAAiBA,EAASA,EAAOk3D,aAC/DrzE,EAAGmc,EAEX,CACA63D,sBAAsBh0E,GAClB,IAAImc,EACJ,IAAKA,EAAS/f,KAAKq2E,qBAAiC,OAAXt2D,EAAiBA,EAASA,EAAO83D,oBACtEj0E,EAAGmc,EAEX,CACA+3D,KAAKC,GAGD,GAFkB,MAAdA,IACAA,EAAa,KACZtjB,GAAmBsjB,GACpB,MAAM,IAAIpvE,EAAa,KAAiDqH,GAG5E,OAAIhQ,KAAKg4E,MAAMD,GACJ/3E,KAGA,IAEf,CACAyb,YAAc,CACdu8D,MAAMD,GACF/3E,KAAKi4E,SACL,IAEIl3E,EACA6T,EACAsjE,EAJAn4D,EAAS/f,KAAK61E,QACdsC,GAAa,EAIjB,GAAIz4E,MAAMD,QAAQs4E,GAAa,CAC3B/3E,KAAKpE,OAASm8E,EAAWn8E,OACzB,QAASmF,EAAQ,EAAGA,EAAQf,KAAKpE,OAAQmF,IACrC6T,EAAOmjE,EAAWh3E,GAClBm3E,EAAcl4E,KAAKu2E,WAAWx1E,EAAO6T,GACtB,OAAXmL,GAAoBnmB,OAAOC,GAAGkmB,EAAOq4D,UAAWF,IAK5CC,IAEAp4D,EAAS/f,KAAKq4E,mBAAmBt4D,EAAQnL,EAAMsjE,EAAan3E,IAE3DnH,OAAOC,GAAGkmB,EAAOnL,KAAMA,IACxB5U,KAAKs4E,mBAAmBv4D,EAAQnL,KATpCmL,EAAS/f,KAAKu4E,UAAUx4D,EAAQnL,EAAMsjE,EAAan3E,GACnDo3E,GAAa,GAUjBp4D,EAASA,EAAO/c,KAExB,MAEIjC,EAAQ,EAx4fpB,SAASy3E,GAAgB39D,EAAKjX,GAC1B,GAAIlE,MAAMD,QAAQob,GACd,QAASre,EAAI,EAAGA,EAAIqe,EAAIjf,OAAQY,IAC5BoH,EAAGiX,EAAIre,QAGV,CACD,MAAMigC,EAAW5hB,EAAI3gB,OAAOuiC,YAC5B,IAAI7nB,EACJ,OAASA,EAAO6nB,EAASl9B,QAAQqtE,MAC7BhpE,EAAGgR,EAAKpX,MAEhB,CACJ,CA43fYg7E,CAAgBT,EAAanjE,IACzBsjE,EAAcl4E,KAAKu2E,WAAWx1E,EAAO6T,GACtB,OAAXmL,GAAoBnmB,OAAOC,GAAGkmB,EAAOq4D,UAAWF,IAK5CC,IAEAp4D,EAAS/f,KAAKq4E,mBAAmBt4D,EAAQnL,EAAMsjE,EAAan3E,IAE3DnH,OAAOC,GAAGkmB,EAAOnL,KAAMA,IACxB5U,KAAKs4E,mBAAmBv4D,EAAQnL,KATpCmL,EAAS/f,KAAKu4E,UAAUx4D,EAAQnL,EAAMsjE,EAAan3E,GACnDo3E,GAAa,GAUjBp4D,EAASA,EAAO/c,MAChBjC,MAEJf,KAAKpE,OAASmF,EAElB,OAAAf,KAAKy4E,UAAU14D,GACf/f,KAAK+3E,WAAaA,EACX/3E,KAAK04E,OAChB,CAIA,WAAIA,GACA,OAAgC,OAAxB14E,KAAK+1E,gBACW,OAApB/1E,KAAKi2E,YACkB,OAAvBj2E,KAAKm2E,eACyB,OAA9Bn2E,KAAKq2E,oBACb,CASA4B,SACI,GAAIj4E,KAAK04E,QAAS,CACd,IAAI34D,EACJ,IAAKA,EAAS/f,KAAK41E,gBAAkB51E,KAAK61E,QAAoB,OAAX91D,EAAiBA,EAASA,EAAO/c,MAChF+c,EAAOu3D,cAAgBv3D,EAAO/c,MAElC,IAAK+c,EAAS/f,KAAK+1E,eAA2B,OAAXh2D,EAAiBA,EAASA,EAAOy3D,WAChEz3D,EAAOm3D,cAAgBn3D,EAAO+2D,aAGlC,IADA92E,KAAK+1E,eAAiB/1E,KAAKg2E,eAAiB,KACvCj2D,EAAS/f,KAAKi2E,WAAuB,OAAXl2D,EAAiBA,EAASA,EAAO23D,WAC5D33D,EAAOm3D,cAAgBn3D,EAAO+2D,aAElC92E,KAAKi2E,WAAaj2E,KAAKk2E,WAAa,KACpCl2E,KAAKm2E,cAAgBn2E,KAAKo2E,cAAgB,KAC1Cp2E,KAAKq2E,qBAAuBr2E,KAAKs2E,qBAAuB,IAG5D,CACJ,CAWAiC,UAAUx4D,EAAQnL,EAAMsjE,EAAan3E,GAEjC,IAAI43E,EACJ,OAAe,OAAX54D,EACA44D,EAAiB34E,KAAK81E,SAGtB6C,EAAiB54D,EAAO64D,MAExB54E,KAAK64E,QAAQ94D,IAIF,QADfA,EAAmC,OAA1B/f,KAAK21E,iBAA4B,KAAO31E,KAAK21E,iBAAiB1lE,IAAIioE,EAAa,QAI/Et+E,OAAOC,GAAGkmB,EAAOnL,KAAMA,IACxB5U,KAAKs4E,mBAAmBv4D,EAAQnL,GACpC5U,KAAK84E,eAAe/4D,EAAQ44D,EAAgB53E,IAK7B,QADfgf,EAAiC,OAAxB/f,KAAK01E,eAA0B,KAAO11E,KAAK01E,eAAezlE,IAAIioE,EAAan3E,KAK3EnH,OAAOC,GAAGkmB,EAAOnL,KAAMA,IACxB5U,KAAKs4E,mBAAmBv4D,EAAQnL,GACpC5U,KAAK+4E,WAAWh5D,EAAQ44D,EAAgB53E,IAIxCgf,EAAS/f,KAAKg5E,UAAU,IAAIC,GAAsBrkE,EAAMsjE,GAAcS,EAAgB53E,GAGvFgf,CACX,CA4BAs4D,mBAAmBt4D,EAAQnL,EAAMsjE,EAAan3E,GAC1C,IAAIm4E,EAA2C,OAA1Bl5E,KAAK21E,iBAA4B,KAAO31E,KAAK21E,iBAAiB1lE,IAAIioE,EAAa,MACpG,OAAuB,OAAnBgB,EACAn5D,EAAS/f,KAAK84E,eAAeI,EAAgBn5D,EAAO64D,MAAO73E,GAEtDgf,EAAO+2D,cAAgB/1E,IAC5Bgf,EAAO+2D,aAAe/1E,EACtBf,KAAKm5E,YAAYp5D,EAAQhf,IAEtBgf,CACX,CAQA04D,UAAU14D,GAEN,KAAkB,OAAXA,GAAiB,CACpB,MAAMq5D,EAAar5D,EAAO/c,MAC1BhD,KAAKq5E,eAAer5E,KAAKs5E,QAAQv5D,IACjCA,EAASq5D,CACb,CAC8B,OAA1Bp5E,KAAK21E,kBACL31E,KAAK21E,iBAAiBp1D,QAEE,OAAxBvgB,KAAKg2E,iBACLh2E,KAAKg2E,eAAewB,WAAa,MAEb,OAApBx3E,KAAKk2E,aACLl2E,KAAKk2E,WAAWwB,WAAa,MAEZ,OAAjB13E,KAAK81E,UACL91E,KAAK81E,QAAQ9yE,MAAQ,MAEE,OAAvBhD,KAAKo2E,gBACLp2E,KAAKo2E,cAAca,aAAe,MAEJ,OAA9Bj3E,KAAKs2E,uBACLt2E,KAAKs2E,qBAAqBuB,oBAAsB,KAExD,CAEAiB,eAAe/4D,EAAQw5D,EAAYx4E,GACD,OAA1Bf,KAAK21E,kBACL31E,KAAK21E,iBAAiB70E,OAAOif,GAEjC,MAAM1lB,EAAO0lB,EAAOy5D,aACdj6E,EAAOwgB,EAAOk3D,aACpB,OAAa,OAAT58E,EACA2F,KAAKm2E,cAAgB52E,EAGrBlF,EAAK48E,aAAe13E,EAEX,OAATA,EACAS,KAAKo2E,cAAgB/7E,EAGrBkF,EAAKi6E,aAAen/E,EAExB2F,KAAKy5E,aAAa15D,EAAQw5D,EAAYx4E,GACtCf,KAAKm5E,YAAYp5D,EAAQhf,GAClBgf,CACX,CAEAg5D,WAAWh5D,EAAQw5D,EAAYx4E,GAC3B,OAAAf,KAAKs5E,QAAQv5D,GACb/f,KAAKy5E,aAAa15D,EAAQw5D,EAAYx4E,GACtCf,KAAKm5E,YAAYp5D,EAAQhf,GAClBgf,CACX,CAEAi5D,UAAUj5D,EAAQw5D,EAAYx4E,GAC1B,OAAAf,KAAKy5E,aAAa15D,EAAQw5D,EAAYx4E,GAIlCf,KAAKg2E,eAHmB,OAAxBh2E,KAAKg2E,eAGiBh2E,KAAK+1E,eAAiBh2D,EAMtB/f,KAAKg2E,eAAewB,WAAaz3D,EAEpDA,CACX,CAEA05D,aAAa15D,EAAQw5D,EAAYx4E,GAK7B,MAAMxB,EAAsB,OAAfg6E,EAAsBv5E,KAAK61E,QAAU0D,EAAWv2E,MAI7D+c,SAAO/c,MAAQzD,EACfwgB,EAAO64D,MAAQW,EACF,OAATh6E,EACAS,KAAK81E,QAAU/1D,EAGfxgB,EAAKq5E,MAAQ74D,EAEE,OAAfw5D,EACAv5E,KAAK61E,QAAU91D,EAGfw5D,EAAWv2E,MAAQ+c,EAEK,OAAxB/f,KAAK01E,iBACL11E,KAAK01E,eAAiB,IAAIgE,IAE9B15E,KAAK01E,eAAeiE,IAAI55D,GACxBA,EAAO+2D,aAAe/1E,EACfgf,CACX,CAEA84D,QAAQ94D,GACJ,OAAO/f,KAAKq5E,eAAer5E,KAAKs5E,QAAQv5D,GAC5C,CAEAu5D,QAAQv5D,GACwB,OAAxB/f,KAAK01E,gBACL11E,KAAK01E,eAAe50E,OAAOif,GAE/B,MAAM1lB,EAAO0lB,EAAO64D,MACdr5E,EAAOwgB,EAAO/c,MAIpB,OAAa,OAAT3I,EACA2F,KAAK61E,QAAUt2E,EAGflF,EAAK2I,MAAQzD,EAEJ,OAATA,EACAS,KAAK81E,QAAUz7E,EAGfkF,EAAKq5E,MAAQv+E,EAEV0lB,CACX,CAEAo5D,YAAYp5D,EAAQ65D,GAGhB,OAAI75D,EAAOm3D,gBAAkB0C,IAMzB55E,KAAKk2E,WAHe,OAApBl2E,KAAKk2E,WAGal2E,KAAKi2E,WAAal2D,EAKlB/f,KAAKk2E,WAAWwB,WAAa33D,GAE5CA,CACX,CACAs5D,eAAet5D,GACX,OAA8B,OAA1B/f,KAAK21E,mBACL31E,KAAK21E,iBAAmB,IAAI+D,IAEhC15E,KAAK21E,iBAAiBgE,IAAI55D,GAC1BA,EAAO+2D,aAAe,KACtB/2D,EAAOk3D,aAAe,KACK,OAAvBj3E,KAAKo2E,eAGLp2E,KAAKo2E,cAAgBp2E,KAAKm2E,cAAgBp2D,EAC1CA,EAAOy5D,aAAe,OAMtBz5D,EAAOy5D,aAAex5E,KAAKo2E,cAC3Bp2E,KAAKo2E,cAAgBp2E,KAAKo2E,cAAca,aAAel3D,GAEpDA,CACX,CAEAu4D,mBAAmBv4D,EAAQnL,GACvBmL,SAAOnL,KAAOA,EAEV5U,KAAKs2E,qBADyB,OAA9Bt2E,KAAKs2E,qBACuBt2E,KAAKq2E,qBAAuBt2D,EAG5B/f,KAAKs2E,qBAAqBuB,oBAAsB93D,EAEzEA,CACX,EAEJ,MAAMk5D,GACFz4E,YAAYoU,EAAMwjE,GACdp4E,KAAK4U,KAAOA,EACZ5U,KAAKo4E,UAAYA,EACjBp4E,KAAK82E,aAAe,KACpB92E,KAAKk3E,cAAgB,KAErBl3E,KAAKs3E,cAAgB,KAErBt3E,KAAK44E,MAAQ,KAEb54E,KAAKgD,MAAQ,KAEbhD,KAAK65E,SAAW,KAEhB75E,KAAK85E,SAAW,KAEhB95E,KAAKw5E,aAAe,KAEpBx5E,KAAKi3E,aAAe,KAEpBj3E,KAAKw3E,WAAa,KAElBx3E,KAAK03E,WAAa,KAElB13E,KAAK63E,oBAAsB,IAC/B,EAGJ,MAAMkC,GACFv5E,cAEIR,KAAKg6E,MAAQ,KAEbh6E,KAAKi6E,MAAQ,IACjB,CAMA54E,IAAI0e,GACmB,OAAf/f,KAAKg6E,OACLh6E,KAAKg6E,MAAQh6E,KAAKi6E,MAAQl6D,EAC1BA,EAAO+5D,SAAW,KAClB/5D,EAAO85D,SAAW,OAMlB75E,KAAKi6E,MAAMH,SAAW/5D,EACtBA,EAAO85D,SAAW75E,KAAKi6E,MACvBl6D,EAAO+5D,SAAW,KAClB95E,KAAKi6E,MAAQl6D,EAErB,CAGA9P,IAAImoE,EAAW8B,GACX,IAAIn6D,EACJ,IAAKA,EAAS/f,KAAKg6E,MAAkB,OAAXj6D,EAAiBA,EAASA,EAAO+5D,SACvD,IAAwB,OAAnBI,GAA2BA,GAAkBn6D,EAAO+2D,eACrDl9E,OAAOC,GAAGkmB,EAAOq4D,UAAWA,GAC5B,OAAOr4D,EAGf,OAAO,IACX,CAMAjf,OAAOif,GASH,MAAM1lB,EAAO0lB,EAAO85D,SACdt6E,EAAOwgB,EAAO+5D,SACpB,OAAa,OAATz/E,EACA2F,KAAKg6E,MAAQz6E,EAGblF,EAAKy/E,SAAWv6E,EAEP,OAATA,EACAS,KAAKi6E,MAAQ5/E,EAGbkF,EAAKs6E,SAAWx/E,EAEE,OAAf2F,KAAKg6E,KAChB,EAEJ,MAAMN,GACFl5E,cACIR,KAAKE,IAAM,IAAIsf,GACnB,CACAm6D,IAAI55D,GACA,MAAMtV,EAAMsV,EAAOq4D,UACnB,IAAI+B,EAAan6E,KAAKE,IAAI+P,IAAIxF,GACzB0vE,IACDA,EAAa,IAAIJ,GACjB/5E,KAAKE,IAAI2f,IAAIpV,EAAK0vE,IAEtBA,EAAW94E,IAAI0e,EACnB,CAQA9P,IAAImoE,EAAW8B,GACX,MACME,EAAap6E,KAAKE,IAAI+P,IADhBmoE,GAEZ,OAAOgC,EAAaA,EAAWnqE,IAAImoE,EAAW8B,GAAkB,IACpE,CAMAp5E,OAAOif,GACH,MAAMtV,EAAMsV,EAAOq4D,UAGnB,OAFmBp4E,KAAKE,IAAI+P,IAAIxF,GAEjB3J,OAAOif,IAClB/f,KAAKE,IAAI81B,OAAOvrB,GAEbsV,CACX,CACA,WAAI5X,GACA,OAAyB,IAAlBnI,KAAKE,IAAI+1B,IACpB,CACA1V,QACIvgB,KAAKE,IAAIqgB,OACb,EAEJ,SAASw2D,GAAiBniE,EAAMgiE,EAAiBC,GAC7C,MAAMK,EAAgBtiE,EAAKsiE,cAC3B,GAAsB,OAAlBA,EACA,OAAOA,EACX,IAAImD,EAAa,EACjB,OAAIxD,GAAeK,EAAgBL,EAAYj7E,SAC3Cy+E,EAAaxD,EAAYK,IAEtBA,EAAgBN,EAAkByD,CAC7C,CAqPA,SAASC,KACL,OAAO,IAAIC,GAAgB,CAAC,IAAIlF,IACpC,CACA,IAKMkF,GAAe,MAArB,MAAMA,SAEOv6E,KAAK2M,WAAQhB,EAAmB,CACrCd,MAAO0vE,EACP1uE,WAAY,OACZC,QAASwuE,IACT,CACJ95E,YAAYknE,GACR1nE,KAAK0nE,UAAYA,CACrB,CACA,aAAOrqE,CAAOqqE,EAAW7jE,GACrB,GAAc,MAAVA,EAAgB,CAChB,MAAM22E,EAAS32E,EAAO6jE,UAAUrhE,QAChCqhE,EAAYA,EAAUtmE,OAAOo5E,EACjC,CACA,OAAO,IAAID,EAAgB7S,EAC/B,CAqBA,aAAO+S,CAAO/S,GACV,MAAO,CACHrpD,QAASk8D,EACTj8D,WAAaza,GAIF02E,EAAgBl9E,OAAOqqE,EAAW7jE,GAAUy2E,MAGvDp8D,KAAM,CAAC,CAACq8D,EAAiB,IAAI5rE,GAAY,IAAIC,KAErD,CACAuuB,KAAKu9C,GACD,MAAM5uE,EAAU9L,KAAK0nE,UAAUvqC,KAAMypC,GAAMA,EAAE0O,SAASoF,IACtD,GAAe,MAAX5uE,EACA,OAAOA,EAGP,MAAM,IAAInD,EAAa,KAAyDqH,EAGxF,EACH,OA5DKuqE,CAAe,KAuIrB,MAmBMI,GAAexG,GAAsB,KAAM,OAAQ,IAEzD,IAOMyG,GAAiB,MAAvB,MAAMA,EAEFp6E,YAAY+gD,GAAU,QACbvhD,KAAK8N,UAAO,SAAmC69D,GAAqB,OAAO,IAAKA,GAAqBiP,GAAmB1qE,EAASw9D,IAAkB,CAAG,QACtJ1tE,KAAK4N,UAAqB2M,GAAiB,CAAE9O,KAAMmvE,GAAsB,QACzE56E,KAAK4M,UAAqBb,GAAiB,CAAC,EAAI,EAC5D,OANK6uE,CAAiB,KAi1CnBC,IAA4B,EA6FhC,SAASC,KACL,OAAOt+D,GAAyB,CAC5B,CACI6B,QAASslB,GACTrlB,WAAYA,KACR,IAAIy8D,GAAY,EAChB,OAAIxvC,OAIAwvC,IADsB5qE,EAAOmwB,GAAe,CAAEjwB,UAAU,KAC3BJ,IAAI8xB,GAAc,OAY/Cg5C,GACAjrB,GAAuB,eAEpBirB,IAGf,CACI18D,QAAS7L,GACT+L,SAAUA,MA1wrBtB,SAASy8D,GAAiCC,GACtC92B,GAAiC82B,CACrC,EA2wrBgBD,EAAiC,GAM7BzvC,MAAuBp7B,EAAOwzB,MAsFlD,SAASu3C,KACL,MAAM16C,EAAMf,KACZ,IAAI07C,EACJ,UAAW3/E,KAAQglC,EAAIP,KAAKm7C,WACxB,GAAI5/E,EAAKosC,WAAaC,KAAKwzC,cACvB7/E,EAAKolC,aAAazpB,SAAW8qB,GAA8B,CAC3Dk5C,EAAkB3/E,EAClB,KACJ,CAEJ,IAAK2/E,EACD,MAAM,IAAIxyE,GAAa,KACnBqH,EAMZ,CAvGoBkrE,GA3GpB,SAASI,KACAT,KACDA,IAA4B,EAp43BpC,SAASU,KACLr5C,GAA6BC,EACjC,CAm43BQo5C,GAx7ZR,SAASC,KACL3b,GAA6BW,EACjC,CAu7ZQgb,GA5ySR,SAASC,KACLnW,GAA0BC,EAC9B,CA2ySQkW,GA/yZR,SAASC,KACL9a,GAAsCG,EAC1C,CA8yZQ2a,GA74jBR,SAASC,KACLjmB,GAAiCK,EACrC,CA44jBQ4lB,GAt0nBR,SAASC,KACLxwB,GAA4BY,GAC5BV,GAAuCI,EAC3C,CAo0nBQkwB,GAplqBR,SAASC,KACL72B,GAAkCC,EACtC,CAmlqBQ42B,GAlvxBR,SAASC,KACLxlC,GAAiCC,EACrC,CAivxBQulC,GAER,CAgGoBR,GAA8B,EAGtCpuE,OAAO,GAEX,CACImR,QAASulB,GACTtlB,WAAYA,IAKDitB,MAAuBp7B,EAAOwzB,KAG7C,CACItlB,QAASivD,GACThvD,WAAYA,KACR,GAAIitB,MAAuBp7B,EAAOwzB,IAAiC,CAC/D,MAAM4d,EAASpxC,EAAOu9D,IAEtB,OADiBv9D,EAAOglB,IACjB,MAxF3B,SAAS4mD,GAAsBx6B,GAc3B,OAb0B8pB,GAAW9pB,EAczC,EAiFwBw6B,CAAsBx6B,GAAkBgrB,KAAK,MA1yqBrE,SAASyP,GAAuBz6B,GAC5B,MAAMV,EAAWU,EAAOusB,OACxB,UAAW/qC,KAAW8d,EAAU,CAC5B,MAAMpD,EAAQ3a,GAAqBC,GAGrB,OAAV0a,GAAkC,OAAhBA,EAAMr6B,MACpBgC,GAAQq4B,GACRoH,GAAapH,GAIbmH,GAAkBnH,GAI9B,CACJ,CA0xqB4Bu+B,CAAuBz6B,EAAM,EAIhC,CAET,CACA,MAAO,MAAQ,EAEnBr0C,OAAO,IAGnB,CA0EA,SAAS+uE,GAAiBz+E,GACtB,MAAwB,kBAAVA,EAAsBA,EAAiB,MAATA,GAA2B,UAAVA,CACjE,CAcA,SAAS0+E,GAAgB1+E,EAAO2+E,EAAgBC,KAK5C,OADuBC,MAAMC,WAAW9+E,KAAY6+E,MAAMx+C,OAAOrgC,IAC1B2+E,EAAhBt+C,OAAOrgC,EAClC,CAoIA,SAASD,GAASH,EAAa4O,GAC3B8jD,GAAuB,aACvB,MAAMO,EAASe,GAAiBh0D,GAChC,OAAI4O,GAASnO,QACTwyD,EAAOle,IAAUt0C,MAAQmO,EAAQnO,OAK9BwyD,CACX,CAMA,SAASksB,GAAUC,GACf,MAAMjgF,EAAe4jB,GAAoB,MAGzC,IACI,OAAOq8D,GACX,SAEIr8D,GAAoB5jB,EACxB,CACJ,CE9sqCA,IAAIkgF,GAAO,KACX,SAASC,KACL,OAAOD,EACX,CAWA,MAAME,IAuBN,MAAMn9C,GAAW,IAAIzyB,EAA6C,IA26FlE,MAAM6vE,GACFp8E,YAEAq8E,EAMAC,EAEA/7E,EAEAgG,GACI/G,KAAK68E,UAAYA,EACjB78E,KAAK88E,QAAUA,EACf98E,KAAKe,MAAQA,EACbf,KAAK+G,MAAQA,CACjB,CAEA,SAAIi2B,GACA,OAAsB,IAAfh9B,KAAKe,KAChB,CAEA,QAAIk8B,GACA,OAAOj9B,KAAKe,QAAUf,KAAK+G,MAAQ,CACvC,CAEA,QAAIg2E,GACA,OAAO/8E,KAAKe,MAAQ,GAAM,CAC9B,CAEA,OAAIi8E,GACA,OAAQh9E,KAAK+8E,IACjB,EAEJ,IAkGME,GAAO,MAAb,MAAMA,EAKF,WAAIH,CAAQA,GACR98E,KAAKk9E,SAAWJ,EAChB98E,KAAKm9E,eAAgB,CACzB,CAmBA,gBAAIC,CAAax5E,GAKb5D,KAAKu2E,WAAa3yE,CACtB,CACA,gBAAIw5E,GACA,OAAOp9E,KAAKu2E,UAChB,CACA/1E,YAAY68E,EAAgBC,EAAWC,GACnCv9E,KAAKq9E,eAAiBA,EACtBr9E,KAAKs9E,UAAYA,EACjBt9E,KAAKu9E,SAAWA,EAChBv9E,KAAKk9E,SAAW,KAChBl9E,KAAKm9E,eAAgB,EACrBn9E,KAAKw9E,QAAU,IACnB,CAKA,iBAAIC,CAAcjgF,GAIVA,IACAwC,KAAKs9E,UAAY9/E,EAEzB,CAKAw2B,YACI,GAAIh0B,KAAKm9E,cAAe,CACpBn9E,KAAKm9E,eAAgB,EAErB,MAAM3/E,EAAQwC,KAAKk9E,UACdl9E,KAAKw9E,SAAWhgF,IAmBbwC,KAAKw9E,QAAUx9E,KAAKu9E,SAASpgD,KAAK3/B,GAAOH,OAAO2C,KAAKo9E,cAGjE,CACA,GAAIp9E,KAAKw9E,QAAS,CACd,MAAM7gD,EAAU38B,KAAKw9E,QAAQ1F,KAAK93E,KAAKk9E,UACnCvgD,GACA38B,KAAK09E,cAAc/gD,EAC3B,CACJ,CACA+gD,cAAc/gD,GACV,MAAMghD,EAAgB39E,KAAKq9E,eAC3B1gD,EAAQ85C,iBAAiB,CAAC7hE,EAAMgpE,EAAuB9G,KACnD,GAA0B,MAAtBliE,EAAKsiE,cAILyG,EAAc3gC,mBAAmBh9C,KAAKs9E,UAAW,IAAIV,GAAehoE,EAAKA,KAAM5U,KAAKk9E,UAAU,GAAI,GAAsB,OAAjBpG,OAAwBn8E,EAAYm8E,QAAY,GAElI,MAAhBA,EACL6G,EAAc78E,OAAiC,OAA1B88E,OAAiCjjF,EAAYijF,QAAqB,GAExD,OAA1BA,EAAgC,CACrC,MAAMj2D,EAAOg2D,EAAc1tE,IAAI2tE,GAC/BD,EAAc3yB,KAAKrjC,EAAMmvD,GACzB+G,GAAgBl2D,EAAM/S,EAC1B,IAEJ,QAASpY,EAAI,EAAGshF,EAAOH,EAAc/hF,OAAQY,EAAIshF,EAAMthF,IAAK,CAExD,MAAM8G,EADUq6E,EAAc1tE,IAAIzT,GACV8G,QACxBA,EAAQvC,MAAQvE,EAChB8G,EAAQyD,MAAQ+2E,EAChBx6E,EAAQw5E,QAAU98E,KAAKk9E,QAC3B,CACAvgD,EAAQi7C,sBAAuB73D,IAE3B89D,GADgBF,EAAc1tE,IAAI8P,EAAO+2D,cAChB/2D,EAAM,EAEvC,CAOA,6BAAOg+D,CAAuBC,EAAK5qB,GAC/B,OAAO,CACX,QACSpzD,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFsR,GAtsGV3kB,EAssGmCA,IAtsGnCA,EAssGmEA,IAtsGnEA,EAssG8FA,IAAkB,CAA8C,QACrPt4D,KAAKwN,UAvsGkF8qD,EAAE,CAAA7sD,KAusGJwxE,EAAO1jE,UAAA,+BAAAK,OAAA,CAAAkjE,QAAA,UAAAM,aAAA,eAAAK,cAAA,iBAAAllE,YAAA,GAAmK,EAC3Q,OAxIK0kE,CAAO,KAsJb,SAASY,GAAgBl2D,EAAM5H,GAC3B4H,EAAKrkB,QAAQu5E,UAAY98D,EAAOnL,IACpC,CAKA,IA2IMqpE,GAAI,MAAV,MAAMA,EACFz9E,YAAY68E,EAAgBxzB,GACxB7pD,KAAKq9E,eAAiBA,EACtBr9E,KAAKwD,SAAW,IAAI06E,GACpBl+E,KAAKm+E,iBAAmB,KACxBn+E,KAAKo+E,iBAAmB,KACxBp+E,KAAKq+E,aAAe,KACpBr+E,KAAKs+E,aAAe,KACpBt+E,KAAKm+E,iBAAmBt0B,CAC5B,CAIA,QAAI00B,CAAKC,GACLx+E,KAAKwD,SAASq5E,UAAY78E,KAAKwD,SAAS+6E,KAAOC,EAC/Cx+E,KAAKy+E,aACT,CAIA,YAAIC,CAAS70B,GACT80B,GAAe,WAAY90B,GAC3B7pD,KAAKm+E,iBAAmBt0B,EACxB7pD,KAAKq+E,aAAe,KACpBr+E,KAAKy+E,aACT,CAIA,YAAIG,CAAS/0B,GACT80B,GAAe,WAAY90B,GAC3B7pD,KAAKo+E,iBAAmBv0B,EACxB7pD,KAAKs+E,aAAe,KACpBt+E,KAAKy+E,aACT,CACAA,cACQz+E,KAAKwD,SAASq5E,UACT78E,KAAKq+E,eACNr+E,KAAKq9E,eAAe98D,QACpBvgB,KAAKs+E,aAAe,KAChBt+E,KAAKm+E,mBACLn+E,KAAKq+E,aAAer+E,KAAKq9E,eAAergC,mBAAmBh9C,KAAKm+E,iBAAkBn+E,KAAKwD,YAK1FxD,KAAKs+E,eACNt+E,KAAKq9E,eAAe98D,QACpBvgB,KAAKq+E,aAAe,KAChBr+E,KAAKo+E,mBACLp+E,KAAKs+E,aAAet+E,KAAKq9E,eAAergC,mBAAmBh9C,KAAKo+E,iBAAkBp+E,KAAKwD,WAIvG,CAOA,6BAAOu6E,CAAuBC,EAAK5qB,GAC/B,OAAO,CACX,QACSpzD,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFsS,GAx6GV3lB,EAw6GgCA,IAx6GhCA,EAw6GgEA,IAAc,CAA8C,QACnNt4D,KAAKwN,UAz6GkF8qD,EAAE,CAAA7sD,KAy6GJwyE,EAAI1kE,UAAA,iBAAAK,OAAA,CAAA2kE,KAAA,OAAAG,SAAA,WAAAE,SAAA,YAAArmE,YAAA,GAAiI,EACtO,OAlEK0lE,CAAI,KAmFV,MAAMC,GACF19E,cACIR,KAAK68E,UAAY,KACjB78E,KAAKu+E,KAAO,IAChB,EAEJ,SAASI,GAAepkB,EAAU1Q,GAE9B,GADgCA,IAAeA,EAAY7M,mBAEvD,MAAM,IAAIvhD,MAAM,GAAG8+D,0CAAiDskB,GAAWh1B,OAEvF,CA8PA,IA+NMi1B,GAAgB,MAAtB,MAAMA,EACFt+E,YAAYu+E,GACR/+E,KAAK++E,kBAAoBA,EACzB/+E,KAAKg/E,SAAW,KAOhBh/E,KAAKi/E,wBAA0B,KAI/Bj/E,KAAKk/E,iBAAmB,KAExBl/E,KAAKm/E,yBAA2B,IACpC,CACA34D,YAAYmW,GACR,GAAI38B,KAAKo/E,oBAAoBziD,GAAU,CACnC,MAAM0iD,EAAmBr/E,KAAK++E,kBAK9B,GAJI/+E,KAAKg/E,UACLK,EAAiBv+E,OAAOu+E,EAAiB39E,QAAQ1B,KAAKg/E,YAGrDh/E,KAAKk/E,iBAEN,YADAl/E,KAAKg/E,SAAW,MAKpB,MAAMM,EAAct/E,KAAKu/E,6BACzBv/E,KAAKg/E,SAAWK,EAAiBriC,mBAAmBh9C,KAAKk/E,iBAAkBI,EAAa,CACpFzvE,SAAU7P,KAAKm/E,+BAA4BxkF,GAEnD,CACJ,CAMAykF,oBAAoBziD,GAChB,QAASA,EAAQuiD,oBAAyBviD,EAAQwiD,wBACtD,CAMAI,6BACI,OAAO,IAAIC,MAAM,CAAC,EAAG,CACjB3/D,IAAKA,CAAC4/D,EAAShlB,EAAM18D,MACZiC,KAAKi/E,yBAGHS,QAAQ7/D,IAAI7f,KAAKi/E,wBAAyBxkB,EAAM18D,GAE3DkS,IAAKA,CAACwvE,EAAShlB,EAAMklB,KACjB,GAAK3/E,KAAKi/E,wBAGV,OAAOS,QAAQzvE,IAAIjQ,KAAKi/E,wBAAyBxkB,EAAMklB,EAAQ,GAG3E,QACS3/E,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFmT,GAr+HVxmB,EAq+H4CA,IAAmB,CAA8C,QACpMt4D,KAAKwN,UAt+HkF8qD,EAAE,CAAA7sD,KAs+HJqzE,EAAgBvlE,UAAA,6BAAAK,OAAA,CAAAqlE,wBAAA,0BAAAC,iBAAA,mBAAAC,yBAAA,4BAAA5mE,YAAA,EAAAyD,SAAA,CAt+Hds8C,KAs+HsQ,EACzW,OApEKwmB,CAAgB,KAyGtB,MAAMc,GACFC,mBAAmBC,EAAOC,GAQtB,OAAOxD,GAAU,IAAMuD,EAAM77E,UAAU,CACnC1E,KAAMwgF,EACNriF,MAAQsD,IACJ,MAAMA,KAGlB,CACAg/E,QAAQz+E,GAEJg7E,GAAU,IAAMh7E,EAAad,cACjC,EAEJ,MAAMw/E,GACFJ,mBAAmBC,EAAOC,GACtB,OAAOD,EAAMvT,KAAKwT,EAAoB/+E,IAClC,MAAMA,GAEd,CACAg/E,QAAQz+E,GAAgB,EAE5B,MAAM2+E,GAAmB,IAAID,GACvBE,GAAwB,IAAIP,GAClC,IA4BMQ,GAAS,MAAf,MAAMA,EACF5/E,YAAYuiD,GACR/iD,KAAKqgF,aAAe,KACpBrgF,KAAKsgF,2BAA4B,EACjCtgF,KAAKugF,cAAgB,KACrBvgF,KAAKwgF,KAAO,KACZxgF,KAAKygF,UAAY,KAGjBzgF,KAAK0gF,KAAO39B,CAChB,CACArnC,cACQ1b,KAAKugF,eACLvgF,KAAK2gF,WAMT3gF,KAAK0gF,KAAO,IAChB,CACA/5B,UAAU9rC,GACN,IAAK7a,KAAKwgF,KAAM,CACZ,GAAI3lE,EACA,IAII7a,KAAKsgF,2BAA4B,EACjCtgF,KAAKmE,WAAW0W,EACpB,SAEI7a,KAAKsgF,2BAA4B,CACrC,CAEJ,OAAOtgF,KAAKqgF,YAChB,CACA,OAAIxlE,IAAQ7a,KAAKwgF,MACbxgF,KAAK2gF,WACE3gF,KAAK2mD,UAAU9rC,IAEnB7a,KAAKqgF,YAChB,CACAl8E,WAAW0W,GACP7a,KAAKwgF,KAAO3lE,EACZ7a,KAAKygF,UAAYzgF,KAAK4gF,gBAAgB/lE,GACtC7a,KAAKugF,cAAgBvgF,KAAKygF,UAAUZ,mBAAmBhlE,EAAMrd,GAAUwC,KAAK6gF,mBAAmBhmE,EAAKrd,GACxG,CACAojF,gBAAgB/lE,GACZ,GAAIimE,GAAWjmE,GACX,OAAOqlE,GAEX,GAAIa,GAAgBlmE,GAChB,OAAOslE,GAEX,MAtHR,SAASa,GAAyBv1E,EAAMjO,GACpC,OAAO,IAAIyjF,EAAc,MAAmDjxE,EAChF,CAoHcgxE,EACV,CACAL,WAGI3gF,KAAKygF,UAAUT,QAAQhgF,KAAKugF,eAC5BvgF,KAAKqgF,aAAe,KACpBrgF,KAAKugF,cAAgB,KACrBvgF,KAAKwgF,KAAO,IAChB,CACAK,mBAAmBf,EAAOtiF,GAClBsiF,IAAU9/E,KAAKwgF,OACfxgF,KAAKqgF,aAAe7iF,EAChBwC,KAAKsgF,2BACLtgF,KAAK0gF,MAAM5/B,eAGvB,QACS9gD,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFyU,GAhpIV9nB,EAgpIqCA,GAAoB,KAAyC,QACzLt4D,KAAK0N,WAjpIkF4qD,GAAE,CAAAj4D,KAAA,QAAAoL,KAipIM20E,EAAS5kE,MAAA,EAAAjD,YAAA,GAAqD,EACzK,OA3EK6nE,CAAS,KAg+BTc,GAAY,MAAlB,MAAMA,SACOlhF,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFuV,EAAY,CAAoD,QACjKlhF,KAAK4N,UAziKkF0qD,GAAE,CAAA7sD,KAyiKSy1E,GAA+oB,QACjvBlhF,KAAK4M,UA1iKkF0rD,GAAE,GA0iK0B,EAC/H,OAJK4oB,CAAY,KAalB,MAAMC,GAAsB,UACtBC,GAAqB,SAY3B,SAASC,GAAiBC,GACtB,OAAOA,IAAeF,EAC1B,CCnmKO,SAASG,GAAY/jF,GACxB,OAAOA,GAAmC,mBAAnBA,EAAMmK,QACjC,CCFO,MAAM65E,GAAoB5vE,GAAW7O,IACxC,QAASvG,EAAI,EAAG0E,EAAM0Q,EAAMhW,OAAQY,EAAI0E,IAAQ6B,EAAWzD,OAAQ9C,IAC/DuG,EAAWxD,KAAKqS,EAAMpV,IAE1BuG,EAAWvD,UAAS,ECFjB,SAASiiF,GAAcl8E,EAAOkC,GACjC,OAAO,IAAIzD,GAAWjB,IAClB,MAAM5B,EAAM,IAAIZ,GAChB,IAAI/D,EAAI,EACR2E,SAAIE,IAAIoG,EAAUE,SAAS,WACnBnL,IAAM+I,EAAM3J,QAIhBmH,EAAWxD,KAAKgG,EAAM/I,MACjBuG,EAAWzD,QACZ6B,EAAIE,IAAIrB,KAAK2H,aALb5E,EAAWvD,UAOnB,IACO2B,GAEf,CCfO,SAASugF,GAAUn8E,EAAOkC,GAC7B,OAAKA,EAIMg6E,GAAcl8E,EAAOkC,GAHrB,IAAIzD,GAAWw9E,GAAiBj8E,GAK/C,CCPO,SAASo8E,MAAMr4E,GAClB,IAAI7B,EAAY6B,EAAKA,EAAK1N,OAAS,GACnC,OAAI2lF,GAAY95E,IACZ6B,EAAK7M,MACEglF,GAAcn4E,EAAM7B,IAGpBi6E,GAAUp4E,EAEzB,CCNO,MAAMmzB,GANN,SAASmlD,KACZ,MAAsB,mBAAX1nF,QAA0BA,OAAOuiC,SAGrCviC,OAAOuiC,SAFH,YAGf,CACwBmlD,GCNXC,GAAgBnjF,GAAMA,GAAyB,iBAAbA,EAAE9C,QAAoC,mBAAN8C,ECAxE,SAAS4tE,GAAU9uE,GACtB,QAASA,GAAoC,mBAApBA,EAAMyG,WAAkD,mBAAfzG,EAAM+uE,IAC5E,CCOO,MAAMuV,GAAe96E,IACxB,GAAMA,GAA+C,mBAA9BA,EAAO9B,IAC1B,MCV8B2V,IAAS9X,IAC3C,MAAMg/E,EAAMlnE,EAAI3V,MAChB,GAA6B,mBAAlB68E,EAAI99E,UACX,MAAM,IAAI2C,UAAU,kEAGpB,OAAOm7E,EAAI99E,UAAUlB,EAAU,EDIxBi/E,CAAsBh7E,GAE5B,GAAI66E,GAAY76E,GACjB,OAAOw6E,GAAiBx6E,GAEvB,GAAIslE,GAAUtlE,GACf,MEhB2Bi7E,IAAal/E,IAC5Ck/E,EAAQ1V,KAAM/uE,IACLuF,EAAWzD,SACZyD,EAAWxD,KAAK/B,GAChBuF,EAAWvD,WAAS,EAExBxB,GAAQ+E,EAAWrF,MAAMM,IACxBuuE,KAAK,KAAMptE,IACT4D,GFQIm/E,CAAmBl7E,GAEzB,GAAMA,GAA6C,mBAA5BA,EAAOm7E,IAC/B,MGnB4BzH,IAAc33E,IAC9C,MAAM05B,EAAWi+C,EAASyH,MAC1B,OAAG,CACC,IAAIvtE,EACJ,IACIA,EAAO6nB,EAASl9B,MACpB,OACOvB,GACH+E,SAAWrF,MAAMM,GACV+E,CACX,CACA,GAAI6R,EAAKg4D,KAAM,CACX7pE,EAAWvD,WACX,KACJ,CAEA,GADAuD,EAAWxD,KAAKqV,EAAKpX,OACjBuF,EAAWzD,OACX,KAER,CACA,MAA+B,mBAApBm9B,EAAS2lD,QAChBr/E,EAAW1B,IAAI,KACPo7B,EAAS2lD,QACT3lD,EAAS2lD,QAAO,GAIrBr/E,GHRIs/E,CAAoBr7E,GAE1B,CAED,MAAMs7E,EAAM,gBADE3iF,GAASqH,GAAU,oBAAsB,IAAIA,gGAG3D,MAAM,IAAIJ,UAAU07E,EACxB,GIxBG,SAAS9+B,GAAKj+C,EAAOkC,GACxB,OAAKA,ECIF,SAAS86E,GAAUh9E,EAAOkC,GAC7B,GAAa,MAATlC,EAAe,CACf,GCTD,SAASi9E,GAAoBj9E,GAChC,OAAOA,GAA6C,mBAA7BA,EAAML,GACjC,CDOYs9E,CAAoBj9E,GACpB,OERL,SAASk9E,GAAmBl9E,EAAOkC,GACtC,OAAO,IAAIzD,GAAWjB,IAClB,MAAM5B,EAAM,IAAIZ,GAChBY,SAAIE,IAAIoG,EAAUE,SAAS,KACvB,MAAM7D,EAAayB,EAAML,MACzB/D,EAAIE,IAAIyC,EAAWG,UAAU,CACzB1E,KAAK/B,GAAS2D,EAAIE,IAAIoG,EAAUE,SAAS,IAAM5E,EAAWxD,KAAK/B,IAAU,EACzEE,MAAMM,GAAOmD,EAAIE,IAAIoG,EAAUE,SAAS,IAAM5E,EAAWrF,MAAMM,IAAQ,EACvEwB,WAAa2B,EAAIE,IAAIoG,EAAUE,SAAS,IAAM5E,EAAWvD,YAAc,IACzE,IAEC2B,GAEf,CFLmBshF,CAAmBl9E,EAAOkC,GAEhC,GAAI6kE,GAAU/mE,GACf,OGZL,SAASm9E,GAAgBn9E,EAAOkC,GACnC,OAAO,IAAIzD,GAAWjB,IAClB,MAAM5B,EAAM,IAAIZ,GAChBY,SAAIE,IAAIoG,EAAUE,SAAS,IAAMpC,EAAMgnE,KAAK/uE,IACxC2D,EAAIE,IAAIoG,EAAUE,SAAS,KACvB5E,EAAWxD,KAAK/B,GAChB2D,EAAIE,IAAIoG,EAAUE,SAAS,IAAM5E,EAAWvD,YAAW,GACzD,EACHxB,IACCmD,EAAIE,IAAIoG,EAAUE,SAAS,IAAM5E,EAAWrF,MAAMM,IAAK,KAEpDmD,GAEf,CHDmBuhF,CAAgBn9E,EAAOkC,GAE7B,GAAIo6E,GAAYt8E,GACjB,OAAOk8E,GAAcl8E,EAAOkC,GAE3B,GIlBN,SAASk7E,GAAWp9E,GACvB,OAAOA,GAA2C,mBAA3BA,EAAM48E,GACjC,CJgBiBQ,CAAWp9E,IAA2B,iBAAVA,EACjC,OKjBL,SAASq9E,GAAiBr9E,EAAOkC,GACpC,IAAKlC,EACD,MAAM,IAAI9J,MAAM,2BAEpB,OAAO,IAAIuI,GAAWjB,IAClB,MAAM5B,EAAM,IAAIZ,GAChB,IAAIk8B,EACJt7B,SAAIE,IAAI,KACAo7B,GAAuC,mBAApBA,EAAS2lD,QAC5B3lD,EAAS2lD,QAAO,GAGxBjhF,EAAIE,IAAIoG,EAAUE,SAAS,KACvB80B,EAAWl3B,EAAM48E,MACjBhhF,EAAIE,IAAIoG,EAAUE,SAAS,WACvB,GAAI5E,EAAWzD,OACX,OAEJ,IAAI9B,EACAovE,EACJ,IACI,MAAM5lE,EAASy1B,EAASl9B,OACxB/B,EAAQwJ,EAAOxJ,MACfovE,EAAO5lE,EAAO4lE,IAClB,OACO5uE,GAEH,YADA+E,EAAWrF,MAAMM,EAErB,CACI4uE,EACA7pE,EAAWvD,YAGXuD,EAAWxD,KAAK/B,GAChBwC,KAAK2H,WAEb,GAAE,IAECxG,GAEf,CLvBmByhF,CAAiBr9E,EAAOkC,EAEvC,CACA,MAAM,IAAIb,WAAqB,OAAVrB,UAAyBA,GAASA,GAAS,qBACpE,CDbeg9E,CAAUh9E,EAAOkC,GANpBlC,aAAiBvB,GACVuB,EAEJ,IAAIvB,GAAW89E,GAAYv8E,GAK1C,COVO,MAAMs9E,WAA8B1gF,GACvC3B,YAAYqD,GACRxB,QACArC,KAAK6D,OAASA,CAClB,CACAb,MAAMxF,GACFwC,KAAK6D,OAAOi/E,WAAWtlF,EAC3B,CACAyF,OAAOvF,GACHsC,KAAK6D,OAAOk/E,YAAYrlF,GACxBsC,KAAKS,aACT,CACAyC,YACIlD,KAAK6D,OAAOm/E,iBACZhjF,KAAKS,aACT,EAqBG,MAAMwiF,WAA8B9gF,GACvC2gF,WAAWI,GACPljF,KAAK2C,YAAYpD,KAAK2jF,EAC1B,CACAH,YAAY/kF,GACRgC,KAAK2C,YAAYjF,MAAMM,EAC3B,CACAglF,iBACIhjF,KAAK2C,YAAYnD,UACrB,EAaG,SAAS2jF,GAAen8E,EAAQo8E,GACnC,GAAIA,EAAgB9jF,OAChB,OAEJ,GAAI0H,aAAkBhD,GAClB,OAAOgD,EAAO/C,UAAUm/E,GAE5B,IAAI7hF,EACJ,IACIA,EAAeugF,GAAY96E,EAAZ86E,CAAoBsB,EACvC,OACO1lF,GACH0lF,EAAgB1lF,MAAMA,EAC1B,CACA,OAAO6D,CACX,CCzEO,SAAS8hF,GAAS38E,EAAS48E,EAAgBC,EAAa1lD,OAAOC,mBAClE,MAA8B,mBAAnBwlD,EACCh/E,GAAWA,EAAOa,KAAKk+E,GAAS,CAAC3pF,EAAG8C,IAAMgnD,GAAK98C,EAAQhN,EAAG8C,IAAI2I,KAAKjF,GAAI,CAACvG,EAAG6pF,IAAOF,EAAe5pF,EAAGC,EAAG6C,EAAGgnF,KAAOD,KAE1F,iBAAnBD,IACZC,EAAaD,GAETh/E,GAAWA,EAAOF,KAAK,IAAIq/E,GAAiB/8E,EAAS68E,IACjE,CACO,MAAME,GACTjjF,YAAYkG,EAAS68E,EAAa1lD,OAAOC,mBACrC99B,KAAK0G,QAAUA,EACf1G,KAAKujF,WAAaA,CACtB,CACAxjF,KAAK6E,EAAUN,GACX,OAAOA,EAAOL,UAAU,IAAIy/E,GAAmB9+E,EAAU5E,KAAK0G,QAAS1G,KAAKujF,YAChF,EAEG,MAAMG,WAA2BT,GACpCziF,YAAYmC,EAAa+D,EAAS68E,EAAa1lD,OAAOC,mBAClDz7B,MAAMM,GACN3C,KAAK0G,QAAUA,EACf1G,KAAKujF,WAAaA,EAClBvjF,KAAK2jF,cAAe,EACpB3jF,KAAK4jF,OAAS,GACd5jF,KAAK6jF,OAAS,EACd7jF,KAAKe,MAAQ,CACjB,CACAiC,MAAMxF,GACEwC,KAAK6jF,OAAS7jF,KAAKujF,WACnBvjF,KAAK8jF,SAAStmF,GAGdwC,KAAK4jF,OAAO5mF,KAAKQ,EAEzB,CACAsmF,SAAStmF,GACL,IAAIwJ,EACJ,MAAMjG,EAAQf,KAAKe,QACnB,IACIiG,EAAShH,KAAK0G,QAAQlJ,EAAOuD,EACjC,OACO/C,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACAgC,KAAK6jF,SACL7jF,KAAK+jF,UAAU/8E,EACnB,CACA+8E,UAAUC,GACN,MAAMZ,EAAkB,IAAIP,GAAsB7iF,MAC5C2C,EAAc3C,KAAK2C,YACzBA,EAAYtB,IAAI+hF,GAChB,MAAMa,EAAoBd,GAAea,EAAKZ,GAC1Ca,IAAsBb,GACtBzgF,EAAYtB,IAAI4iF,EAExB,CACA/gF,YACIlD,KAAK2jF,cAAe,EACA,IAAhB3jF,KAAK6jF,QAAuC,IAAvB7jF,KAAK4jF,OAAOhoF,QACjCoE,KAAK2C,YAAYnD,WAErBQ,KAAKS,aACT,CACAqiF,WAAWI,GACPljF,KAAK2C,YAAYpD,KAAK2jF,EAC1B,CACAF,iBACI,MAAMY,EAAS5jF,KAAK4jF,OACpB5jF,KAAK6jF,SACDD,EAAOhoF,OAAS,EAChBoE,KAAKgD,MAAM4gF,EAAO1xE,SAEG,IAAhBlS,KAAK6jF,QAAgB7jF,KAAK2jF,cAC/B3jF,KAAK2C,YAAYnD,UAEzB,EChFG,SAASo3B,KAAS,CCGlB,SAASstD,GAAIz/E,EAAgB/G,EAAO8B,GACvC,OAAO,SAA6B8E,GAChC,OAAOA,EAAOF,KAAK,IAAI+/E,GAAW1/E,EAAgB/G,EAAO8B,GAC7D,CACJ,CACA,MAAM2kF,GACF3jF,YAAYiE,EAAgB/G,EAAO8B,GAC/BQ,KAAKyE,eAAiBA,EACtBzE,KAAKtC,MAAQA,EACbsC,KAAKR,SAAWA,CACpB,CACAO,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAImgF,GAAcrhF,EAAY/C,KAAKyE,eAAgBzE,KAAKtC,MAAOsC,KAAKR,UAChG,EAEJ,MAAM4kF,WAAsBjiF,GACxB3B,YAAYmC,EAAaU,EAAgB3F,EAAO8B,GAC5C6C,MAAMM,GACN3C,KAAKqkF,SAAWztD,GAChB52B,KAAKskF,UAAY1tD,GACjB52B,KAAKukF,aAAe3tD,GACpB52B,KAAKskF,UAAY5mF,GAASk5B,GAC1B52B,KAAKukF,aAAe/kF,GAAYo3B,GAC5Bn4B,GAAW4E,IACXrD,KAAKwD,SAAWxD,KAChBA,KAAKqkF,SAAWhhF,GAEXA,IACLrD,KAAKwD,SAAWH,EAChBrD,KAAKqkF,SAAWhhF,EAAe9D,MAAQq3B,GACvC52B,KAAKskF,UAAYjhF,EAAe3F,OAASk5B,GACzC52B,KAAKukF,aAAelhF,EAAe7D,UAAYo3B,GAEvD,CACA5zB,MAAMxF,GACF,IACIwC,KAAKqkF,SAAStkF,KAAKC,KAAKwD,SAAUhG,EACtC,OACOQ,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACAgC,KAAK2C,YAAYpD,KAAK/B,EAC1B,CACAyF,OAAOjF,GACH,IACIgC,KAAKskF,UAAUvkF,KAAKC,KAAKwD,SAAUxF,EACvC,OACOA,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACAgC,KAAK2C,YAAYjF,MAAMM,EAC3B,CACAkF,YACI,IACIlD,KAAKukF,aAAaxkF,KAAKC,KAAKwD,SAChC,OACOxF,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACA,OAAOgC,KAAK2C,YAAYnD,UAC5B,ECzCJ,MAAMglF,IAsBN,MAAMC,GAEFjkF,YAAYkkF,GAKR1kF,KAAK2kF,gBAAkB,IAAInlE,IAI3Bxf,KAAK4kF,WAAa,KACbF,EAGuB,iBAAZA,EACZ1kF,KAAK6kF,SAAW,KACZ7kF,KAAK0kF,QAAU,IAAIllE,IACnBklE,EAAQniD,MAAM,MAAM19B,QAASigF,IACzB,MAAM/jF,EAAQ+jF,EAAKpjF,QAAQ,KAC3B,GAAIX,EAAQ,EAAG,CACX,MAAMV,EAAOykF,EAAKz+E,MAAM,EAAGtF,GACrB0J,EAAMpK,EAAKkV,cACX/X,EAAQsnF,EAAKz+E,MAAMtF,EAAQ,GAAGoW,OACpCnX,KAAK+kF,uBAAuB1kF,EAAMoK,GAC9BzK,KAAK0kF,QAAQzmE,IAAIxT,GACjBzK,KAAK0kF,QAAQz0E,IAAIxF,GAAKzN,KAAKQ,GAG3BwC,KAAK0kF,QAAQ7kE,IAAIpV,EAAK,CAACjN,GAE/B,GACH,SAGOwnF,QAAY,KAAeN,aAAmBM,SAC1DhlF,KAAK0kF,QAAU,IAAIllE,IACnBklE,EAAQ7/E,QAAQ,CAAC0E,EAAQlJ,KACrBL,KAAKilF,iBAAiB5kF,EAAMkJ,EAAM,IAItCvJ,KAAK6kF,SAAW,KAIZ7kF,KAAK0kF,QAAU,IAAIllE,IACnB5lB,OAAOsrF,QAAQR,GAAS7/E,QAAQ,EAAExE,EAAMkJ,MACpCvJ,KAAKilF,iBAAiB5kF,EAAMkJ,EAAM,EACrC,EApCLvJ,KAAK0kF,QAAU,IAAIllE,GAuC3B,CAQAvB,IAAI5d,GACA,OAAAL,KAAKo9B,OACEp9B,KAAK0kF,QAAQzmE,IAAI5d,EAAKkV,cACjC,CAQAtF,IAAI5P,GACAL,KAAKo9B,OACL,MAAM7zB,EAASvJ,KAAK0kF,QAAQz0E,IAAI5P,EAAKkV,eACrC,OAAOhM,GAAUA,EAAO3N,OAAS,EAAI2N,EAAO,GAAK,IACrD,CAMAuY,OACI,OAAA9hB,KAAKo9B,OACE19B,MAAM8jD,KAAKxjD,KAAK2kF,gBAAgBp7E,SAC3C,CAQA47E,OAAO9kF,GACH,OAAAL,KAAKo9B,OACEp9B,KAAK0kF,QAAQz0E,IAAI5P,EAAKkV,gBAAkB,IACnD,CAUA6vE,OAAO/kF,EAAM7C,GACT,OAAOwC,KAAKmsD,MAAM,CAAE9rD,OAAM7C,QAAO6nF,GAAI,KACzC,CAWAxlE,IAAIxf,EAAM7C,GACN,OAAOwC,KAAKmsD,MAAM,CAAE9rD,OAAM7C,QAAO6nF,GAAI,KACzC,CASArvD,OAAO31B,EAAM7C,GACT,OAAOwC,KAAKmsD,MAAM,CAAE9rD,OAAM7C,QAAO6nF,GAAI,KACzC,CACAN,uBAAuB1kF,EAAMilF,GACpBtlF,KAAK2kF,gBAAgB1mE,IAAIqnE,IAC1BtlF,KAAK2kF,gBAAgB9kE,IAAIylE,EAAQjlF,EAEzC,CACA+8B,OACUp9B,KAAK6kF,WACH7kF,KAAK6kF,oBAAoBJ,GACzBzkF,KAAKulF,SAASvlF,KAAK6kF,UAGnB7kF,KAAK6kF,WAET7kF,KAAK6kF,SAAW,KACV7kF,KAAK4kF,aACP5kF,KAAK4kF,WAAW//E,QAAS2rD,GAAWxwD,KAAKwlF,YAAYh1B,IACrDxwD,KAAK4kF,WAAa,MAG9B,CACAW,SAASE,GACLA,EAAMroD,OACN19B,MAAM8jD,KAAKiiC,EAAMf,QAAQ5iE,QAAQjd,QAAS4F,IACtCzK,KAAK0kF,QAAQ7kE,IAAIpV,EAAKg7E,EAAMf,QAAQz0E,IAAIxF,IACxCzK,KAAK2kF,gBAAgB9kE,IAAIpV,EAAKg7E,EAAMd,gBAAgB10E,IAAIxF,GAAI,EAEpE,CACA0hD,MAAMqE,GACF,MAAMrE,EAAQ,IAAIs4B,GAClBt4B,SAAM04B,SAAa7kF,KAAK6kF,UAAY7kF,KAAK6kF,oBAAoBJ,GAAczkF,KAAK6kF,SAAW7kF,KAC3FmsD,EAAMy4B,YAAc5kF,KAAK4kF,YAAc,IAAIxjF,OAAO,CAACovD,IAC5CrE,CACX,CACAq5B,YAAYh1B,GACR,MAAM/lD,EAAM+lD,EAAOnwD,KAAKkV,cACxB,OAAQi7C,EAAO60B,IACX,IAAK,IACL,IAAK,IACD,IAAI7nF,EAAQgzD,EAAOhzD,MAInB,GAHqB,iBAAVA,IACPA,EAAQ,CAACA,IAEQ,IAAjBA,EAAM5B,OACN,OAEJoE,KAAK+kF,uBAAuBv0B,EAAOnwD,KAAMoK,GACzC,MAAMi7E,GAAsB,MAAdl1B,EAAO60B,GAAarlF,KAAK0kF,QAAQz0E,IAAIxF,QAAO9P,IAAc,GACxE+qF,EAAK1oF,QAAQQ,GACbwC,KAAK0kF,QAAQ7kE,IAAIpV,EAAKi7E,GACtB,MACJ,IAAK,IACD,MAAMC,EAAWn1B,EAAOhzD,MACxB,GAAKmoF,EAIA,CACD,IAAIC,EAAW5lF,KAAK0kF,QAAQz0E,IAAIxF,GAChC,IAAKm7E,EACD,OAEJA,EAAWA,EAASz+E,OAAQ3J,IAAsC,IAA5BmoF,EAASjkF,QAAQlE,IAC/B,IAApBooF,EAAShqF,QACToE,KAAK0kF,QAAQ1uD,OAAOvrB,GACpBzK,KAAK2kF,gBAAgB3uD,OAAOvrB,IAG5BzK,KAAK0kF,QAAQ7kE,IAAIpV,EAAKm7E,EAE9B,MAhBI5lF,KAAK0kF,QAAQ1uD,OAAOvrB,GACpBzK,KAAK2kF,gBAAgB3uD,OAAOvrB,GAkB5C,CACAw6E,iBAAiB5kF,EAAMkJ,GACnB,MAAMs8E,GAAgBnmF,MAAMD,QAAQ8J,GAAUA,EAAS,CAACA,IAASrJ,IAAK1C,GAAUA,EAAM2C,YAChFsK,EAAMpK,EAAKkV,cACjBvV,KAAK0kF,QAAQ7kE,IAAIpV,EAAKo7E,GACtB7lF,KAAK+kF,uBAAuB1kF,EAAMoK,EACtC,CAIA5F,QAAQjB,GACJ5D,KAAKo9B,OACL19B,MAAM8jD,KAAKxjD,KAAK2kF,gBAAgB7iE,QAAQjd,QAAS4F,GAAQ7G,EAAG5D,KAAK2kF,gBAAgB10E,IAAIxF,GAAMzK,KAAK0kF,QAAQz0E,IAAIxF,IAChH,EA0BJ,MAAMq7E,GAMFC,UAAUt7E,GACN,OAAOu7E,GAAiBv7E,EAC5B,CAMAw7E,YAAYzoF,GACR,OAAOwoF,GAAiBxoF,EAC5B,CAMA0oF,UAAUz7E,GACN,OAAO07E,mBAAmB17E,EAC9B,CAMA27E,YAAY5oF,GACR,OAAO2oF,mBAAmB3oF,EAC9B,EAwBJ,MAAM6oF,GAA0B,kBAC1BC,GAAiC,CACnC,GAAM,IACN,KAAM,IACN,GAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,KAEV,SAASN,GAAiBn2D,GACtB,OAAO02D,mBAAmB12D,GAAGpO,QAAQ4kE,GAAyB,CAAChiD,EAAGsC,IAAM2/C,GAA+B3/C,IAAMtC,EACjH,CACA,SAASmiD,GAAchpF,GACnB,MAAO,GAAGA,GACd,CASA,MAAMipF,GACFjmF,YAAYwL,EAAU,CAAC,GAInB,GAHAhM,KAAK0mF,QAAU,KACf1mF,KAAK2mF,UAAY,KACjB3mF,KAAK4mF,QAAU56E,EAAQ46E,SAAW,IAAId,GAChC95E,EAAQ66E,WAAY,CACtB,GAAM76E,EAAQ86E,WACV,MAAM,IAAIrrF,MAAM,kDAEpBuE,KAAKE,IAxDjB,SAAS6mF,GAAYC,EAAWC,GAC5B,MAAM/mF,EAAM,IAAIsf,IAChB,OAAIwnE,EAAUprF,OAAS,GAIJorF,EAAUvlE,QAAQ,MAAO,IAAI8gB,MAAM,KAC3C19B,QAASqiF,IACZ,MAAMC,EAAQD,EAAMxlF,QAAQ,MACrB+I,EAAK28E,IAAgB,GAATD,EACb,CAACF,EAAMf,UAAUgB,GAAQ,IACzB,CAACD,EAAMf,UAAUgB,EAAM7gF,MAAM,EAAG8gF,IAASF,EAAMb,YAAYc,EAAM7gF,MAAM8gF,EAAQ,KAC/EtwE,EAAO3W,EAAI+P,IAAIxF,IAAQ,GAC7BoM,EAAK7Z,KAAKoqF,GACVlnF,EAAI2f,IAAIpV,EAAKoM,EAAI,GAGlB3W,CACX,CAsCuB6mF,CAAY/6E,EAAQ66E,WAAY7mF,KAAK4mF,QACpD,MACW56E,EAAQ86E,YACf9mF,KAAKE,IAAM,IAAIsf,IACf5lB,OAAOkoB,KAAK9V,EAAQ86E,YAAYjiF,QAAS4F,IACrC,MAAMjN,EAAQwO,EAAQ86E,WAAWr8E,GAE3BlB,EAAS7J,MAAMD,QAAQjC,GAASA,EAAM0C,IAAIsmF,IAAiB,CAACA,GAAchpF,IAChFwC,KAAKE,IAAI2f,IAAIpV,EAAKlB,EAAM,IAI5BvJ,KAAKE,IAAM,IAEnB,CAOA+d,IAAIipE,GACA,OAAAlnF,KAAKo9B,OACEp9B,KAAKE,IAAI+d,IAAIipE,EACxB,CAOAj3E,IAAIi3E,GACAlnF,KAAKo9B,OACL,MAAMryB,EAAM/K,KAAKE,IAAI+P,IAAIi3E,GACzB,OAASn8E,EAAMA,EAAI,GAAK,IAC5B,CAOAo6E,OAAO+B,GACH,OAAAlnF,KAAKo9B,OACEp9B,KAAKE,IAAI+P,IAAIi3E,IAAU,IAClC,CAKAplE,OACI,OAAA9hB,KAAKo9B,OACE19B,MAAM8jD,KAAKxjD,KAAKE,IAAI4hB,OAC/B,CAOAsjE,OAAO8B,EAAO1pF,GACV,OAAOwC,KAAKmsD,MAAM,CAAE+6B,QAAO1pF,QAAO6nF,GAAI,KAC1C,CAMAgC,UAAUC,GACN,MAAMZ,EAAU,GAChB9sF,cAAOkoB,KAAKwlE,GAAQziF,QAASqiF,IACzB,MAAM1pF,EAAQ8pF,EAAOJ,GACjBxnF,MAAMD,QAAQjC,GACdA,EAAMqH,QAAS2B,IACXkgF,EAAQ1pF,KAAK,CAAEkqF,QAAO1pF,MAAOgJ,EAAQ6+E,GAAI,KAAK,GAIlDqB,EAAQ1pF,KAAK,CAAEkqF,QAAO1pF,MAAOA,EAAO6nF,GAAI,KAAK,GAG9CrlF,KAAKmsD,MAAMu6B,EACtB,CAOA7mE,IAAIqnE,EAAO1pF,GACP,OAAOwC,KAAKmsD,MAAM,CAAE+6B,QAAO1pF,QAAO6nF,GAAI,KAC1C,CAQArvD,OAAOkxD,EAAO1pF,GACV,OAAOwC,KAAKmsD,MAAM,CAAE+6B,QAAO1pF,QAAO6nF,GAAI,KAC1C,CAKAllF,WACI,OAAAH,KAAKo9B,OACGp9B,KAAK8hB,OACR5hB,IAAKuK,IACN,MAAM88E,EAAOvnF,KAAK4mF,QAAQb,UAAUt7E,GAIpC,OAAOzK,KAAKE,IAAI+P,IAAIxF,GACfvK,IAAK1C,GAAU+pF,EAAO,IAAMvnF,KAAK4mF,QAAQX,YAAYzoF,IACrD4C,KAAK,IAAG,GAIZ+G,OAAQ+/E,GAAoB,KAAVA,GAClB9mF,KAAK,IACd,CACA+rD,MAAMqE,GACF,MAAMrE,EAAQ,IAAIs6B,GAAW,CAAEG,QAAS5mF,KAAK4mF,UAC7Cz6B,SAAMw6B,UAAY3mF,KAAK2mF,WAAa3mF,KACpCmsD,EAAMu6B,SAAW1mF,KAAK0mF,SAAW,IAAItlF,OAAOovD,GACrCrE,CACX,CACA/uB,OACqB,OAAbp9B,KAAKE,MACLF,KAAKE,IAAM,IAAIsf,KAEI,OAAnBxf,KAAK2mF,YACL3mF,KAAK2mF,UAAUvpD,OACfp9B,KAAK2mF,UAAU7kE,OAAOjd,QAAS4F,GAAQzK,KAAKE,IAAI2f,IAAIpV,EAAKzK,KAAK2mF,UAAUzmF,IAAI+P,IAAIxF,KAChFzK,KAAK0mF,QAAQ7hF,QAAS2rD,IAClB,OAAQA,EAAO60B,IACX,IAAK,IACL,IAAK,IACD,MAAMK,GAAsB,MAAdl1B,EAAO60B,GAAarlF,KAAKE,IAAI+P,IAAIugD,EAAO02B,YAASvsF,IAAc,GAC7E+qF,EAAK1oF,KAAKwpF,GAAch2B,EAAOhzD,QAC/BwC,KAAKE,IAAI2f,IAAI2wC,EAAO02B,MAAOxB,GAC3B,MACJ,IAAK,IACD,QAAqB/qF,IAAjB61D,EAAOhzD,MAaN,CACDwC,KAAKE,IAAI81B,OAAOw6B,EAAO02B,OACvB,KACJ,CAhBgC,CAC5B,IAAIxB,EAAO1lF,KAAKE,IAAI+P,IAAIugD,EAAO02B,QAAU,GACzC,MAAMxrF,EAAMgqF,EAAKhkF,QAAQ8kF,GAAch2B,EAAOhzD,SAClC,IAAR9B,GACAgqF,EAAK7jF,OAAOnG,EAAK,GAEjBgqF,EAAK9pF,OAAS,EACdoE,KAAKE,IAAI2f,IAAI2wC,EAAO02B,MAAOxB,GAG3B1lF,KAAKE,IAAI81B,OAAOw6B,EAAO02B,MAE/B,EAKR,GAEJlnF,KAAK2mF,UAAY3mF,KAAK0mF,QAAU,KAExC,EA8CJ,MAAMc,GACFhnF,cACIR,KAAKE,IAAM,IAAIsf,GACnB,CASAK,IAAIhV,EAAOrN,GACP,OAAAwC,KAAKE,IAAI2f,IAAIhV,EAAOrN,GACbwC,IACX,CAQAiQ,IAAIpF,GACA,OAAK7K,KAAKE,IAAI+d,IAAIpT,IACd7K,KAAKE,IAAI2f,IAAIhV,EAAOA,EAAM5C,gBAEvBjI,KAAKE,IAAI+P,IAAIpF,EACxB,CAQAmrB,OAAOnrB,GACH,OAAA7K,KAAKE,IAAI81B,OAAOnrB,GACT7K,IACX,CAQAie,IAAIpT,GACA,OAAO7K,KAAKE,IAAI+d,IAAIpT,EACxB,CAIAiX,OACI,OAAO9hB,KAAKE,IAAI4hB,MACpB,EAuBJ,SAAS2lE,GAAcjqF,GACnB,cAAckqF,YAAgB,KAAelqF,aAAiBkqF,WAClE,CAMA,SAASC,GAAOnqF,GACZ,cAAcoqF,KAAS,KAAepqF,aAAiBoqF,IAC3D,CAMA,SAASC,GAAWrqF,GAChB,cAAcsqF,SAAa,KAAetqF,aAAiBsqF,QAC/D,CAmBA,MAAMC,GACFvnF,YAAYwnF,EAAQrjD,EAAKsjD,EAAOC,GAiC5B,IAAIl8E,EAuCJ,GAvEAhM,KAAK2kC,IAAMA,EAQX3kC,KAAKigC,KAAO,KASZjgC,KAAKmoF,gBAAiB,EAItBnoF,KAAKooF,iBAAkB,EAOvBpoF,KAAKqoF,aAAe,OACpBroF,KAAKgoF,OAASA,EAAOM,cArF7B,SAASC,GAAcP,GACnB,OAAQA,GACJ,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,QACD,OAAO,EACX,QACI,OAAO,EAEnB,CAgFYO,CAAcvoF,KAAKgoF,SAAaE,GAEhCloF,KAAKigC,UAAiBtlC,IAAVstF,EAAsBA,EAAQ,KAC1Cj8E,EAAUk8E,GAIVl8E,EAAUi8E,EAGVj8E,IAEAhM,KAAKmoF,iBAAmBn8E,EAAQm8E,eAChCnoF,KAAKooF,kBAAoBp8E,EAAQo8E,gBAE3Bp8E,EAAQq8E,eACVroF,KAAKqoF,aAAer8E,EAAQq8E,cAG1Br8E,EAAQ04E,UACV1kF,KAAK0kF,QAAU14E,EAAQ04E,SAErB14E,EAAQ1I,UACVtD,KAAKsD,QAAU0I,EAAQ1I,SAErB0I,EAAQs7E,SACVtnF,KAAKsnF,OAASt7E,EAAQs7E,QAG1BtnF,KAAKwoF,cAAgBx8E,EAAQw8E,eAGjCxoF,KAAK0kF,UAAY,IAAID,GAErBzkF,KAAKsD,UAAY,IAAIkkF,GAEhBxnF,KAAKsnF,OAIL,CAED,MAAMA,EAAStnF,KAAKsnF,OAAOnnF,WAC3B,GAAsB,IAAlBmnF,EAAO1rF,OAEPoE,KAAKyoF,cAAgB9jD,MAEpB,CAED,MAAM+jD,EAAO/jD,EAAIjjC,QAAQ,KASzB1B,KAAKyoF,cAAgB9jD,IADA,IAAT+jD,EAAc,IAAMA,EAAO/jD,EAAI/oC,OAAS,EAAI,IAAM,IAC7B0rF,CACrC,CACJ,MAvBItnF,KAAKsnF,OAAS,IAAIb,GAClBzmF,KAAKyoF,cAAgB9jD,CAuB7B,CAKAgkD,gBAEI,OAAkB,OAAd3oF,KAAKigC,KACE,KAIc,iBAAdjgC,KAAKigC,MACZwnD,GAAcznF,KAAKigC,OACnB0nD,GAAO3nF,KAAKigC,OACZ4nD,GAAW7nF,KAAKigC,OA9H5B,SAAS2oD,GAAkBprF,GACvB,cAAcqrF,gBAAoB,KAAerrF,aAAiBqrF,eACtE,CA6HYD,CAAkB5oF,KAAKigC,MAChBjgC,KAAKigC,KAGZjgC,KAAKigC,gBAAgBwmD,GACdzmF,KAAKigC,KAAK9/B,WAGI,iBAAdH,KAAKigC,MACS,kBAAdjgC,KAAKigC,MACZvgC,MAAMD,QAAQO,KAAKigC,MACZtmB,KAAK/O,UAAU5K,KAAKigC,MAGxBjgC,KAAKigC,KAAK9/B,UACrB,CAOA2oF,0BAMI,OAJkB,OAAd9oF,KAAKigC,MAIL4nD,GAAW7nF,KAAKigC,MACT,KAIP0nD,GAAO3nF,KAAKigC,MACLjgC,KAAKigC,KAAKx0B,MAAQ,KAGzBg8E,GAAcznF,KAAKigC,MACZ,KAIc,iBAAdjgC,KAAKigC,KACL,aAGPjgC,KAAKigC,gBAAgBwmD,GACd,kDAGc,iBAAdzmF,KAAKigC,MACS,iBAAdjgC,KAAKigC,MACS,kBAAdjgC,KAAKigC,KACL,mBAGJ,IACX,CACAksB,MAAMqE,EAAS,CAAC,GAGZ,MAAMw3B,EAASx3B,EAAOw3B,QAAUhoF,KAAKgoF,OAC/BrjD,EAAM6rB,EAAO7rB,KAAO3kC,KAAK2kC,IACzB0jD,EAAe73B,EAAO63B,cAAgBroF,KAAKqoF,aAG3CG,EAAgBh4B,EAAOg4B,eAAiBxoF,KAAKwoF,cAK7CvoD,OAAuBtlC,IAAhB61D,EAAOvwB,KAAqBuwB,EAAOvwB,KAAOjgC,KAAKigC,KAGtDmoD,EAAkB53B,EAAO43B,iBAAmBpoF,KAAKooF,gBACjDD,EAAiB33B,EAAO23B,gBAAkBnoF,KAAKmoF,eAGrD,IAAIzD,EAAUl0B,EAAOk0B,SAAW1kF,KAAK0kF,QACjC4C,EAAS92B,EAAO82B,QAAUtnF,KAAKsnF,OAEnC,MAAMhkF,EAAUktD,EAAOltD,SAAWtD,KAAKsD,QAEvC,YAA0B3I,IAAtB61D,EAAOu4B,aAEPrE,EAAU9qF,OAAOkoB,KAAK0uC,EAAOu4B,YAAYjnF,OAAO,CAAC4iF,EAASrkF,IAASqkF,EAAQ7kE,IAAIxf,EAAMmwD,EAAOu4B,WAAW1oF,IAAQqkF,IAG/Gl0B,EAAOw4B,YAEP1B,EAAS1tF,OAAOkoB,KAAK0uC,EAAOw4B,WAAWlnF,OAAO,CAACwlF,EAAQJ,IAAUI,EAAOznE,IAAIqnE,EAAO12B,EAAOw4B,UAAU9B,IAASI,IAG1G,IAAIS,GAAYC,EAAQrjD,EAAK1E,EAAM,CACtCqnD,SACA5C,UACAphF,UACA6kF,iBACAE,eACAD,kBACAI,iBAER,EAQJ,IAAIS,GACH,SAAUA,GAIPA,SAAcA,EAAcC,KAAU,GAAK,OAM3CD,EAAcA,EAAcE,eAAoB,GAAK,iBAIrDF,EAAcA,EAAcG,eAAoB,GAAK,iBAIrDH,EAAcA,EAAcI,iBAAsB,GAAK,mBAIvDJ,EAAcA,EAAcK,SAAc,GAAK,WAI/CL,EAAcA,EAAcM,KAAU,GAAK,OA1BpCN,CA2BX,CA3BC,CA2BEA,IAAkC,CAAC,GAMtC,MAAMO,GAOFhpF,YAAY48B,EAAMqsD,EAAgB,IAAKC,EAAoB,MAGvD1pF,KAAK0kF,QAAUtnD,EAAKsnD,SAAW,IAAID,GACnCzkF,KAAK2pF,YAAyBhvF,IAAhByiC,EAAKusD,OAAuBvsD,EAAKusD,OAASF,EACxDzpF,KAAK4pF,WAAaxsD,EAAKwsD,YAAcF,EACrC1pF,KAAK2kC,IAAMvH,EAAKuH,KAAO,KAEvB3kC,KAAK6pF,GAAK7pF,KAAK2pF,QAAU,KAAO3pF,KAAK2pF,OAAS,GAClD,EA2CJ,MAAMG,WAAqBN,GAIvBhpF,YAAY48B,EAAO,CAAC,GAChB/6B,MAAM+6B,GACNp9B,KAAKyL,KAAOw9E,GAAcK,SAC1BtpF,KAAKigC,UAAqBtlC,IAAdyiC,EAAK6C,KAAqB7C,EAAK6C,KAAO,IACtD,CACAksB,MAAMqE,EAAS,CAAC,GACZ,OAAO,IAAIs5B,GAAa,CACpB7pD,UAAsBtlC,IAAhB61D,EAAOvwB,KAAqBuwB,EAAOvwB,KAAOjgC,KAAKigC,KACrDykD,QAASl0B,EAAOk0B,SAAW1kF,KAAK0kF,QAChCiF,YAA0BhvF,IAAlB61D,EAAOm5B,OAAuBn5B,EAAOm5B,OAAS3pF,KAAK2pF,OAC3DC,WAAYp5B,EAAOo5B,YAAc5pF,KAAK4pF,WACtCjlD,IAAK6rB,EAAO7rB,KAAO3kC,KAAK2kC,UAAOhqC,GAEvC,EA4HJ,SAASovF,GAAQ/9E,EAASi0B,GACtB,MAAO,CACHA,OACAykD,QAAS14E,EAAQ04E,QACjBphF,QAAS0I,EAAQ1I,QACjB0mF,QAASh+E,EAAQg+E,QACjB1C,OAAQt7E,EAAQs7E,OAChBa,eAAgBn8E,EAAQm8E,eACxBE,aAAcr8E,EAAQq8E,aACtBD,gBAAiBp8E,EAAQo8E,gBACzBI,cAAex8E,EAAQw8E,cAE/B,CACA,IAsDMyB,GAAU,MAAhB,MAAMA,EACFzpF,YAAY0pF,GACRlqF,KAAKkqF,QAAUA,CACnB,CA2BAC,QAAQntD,EAAO2H,EAAK34B,EAAU,CAAC,GAC3B,IAAIo+E,EAEJ,GAAIptD,aAAiB+qD,GAGjBqC,EAAMptD,MAEL,CAKD,IAAI0nD,EAQA4C,EANA5C,EADA14E,EAAQ04E,mBAAmBD,GACjBz4E,EAAQ04E,QAGR,IAAID,GAAYz4E,EAAQ04E,SAIhC14E,EAAQs7E,SAENA,EADAt7E,EAAQs7E,kBAAkBb,GACjBz6E,EAAQs7E,OAGR,IAAIb,GAAW,CAAEK,WAAY96E,EAAQs7E,UAItD8C,EAAM,IAAIrC,GAAY/qD,EAAO2H,OAAsBhqC,IAAjBqR,EAAQi0B,KAAqBj0B,EAAQi0B,KAAO,KAAM,CAChFykD,UACAphF,QAAS0I,EAAQ1I,QACjBgkF,SACAa,eAAgBn8E,EAAQm8E,eAExBE,aAAcr8E,EAAQq8E,cAAgB,OACtCD,gBAAiBp8E,EAAQo8E,gBACzBI,cAAex8E,EAAQw8E,eAE/B,CAKA,MAAM6B,EAAU1I,GAAGyI,GAAKjlF,KC3xCzB,SAASmlF,GAAU5jF,EAAS48E,GAC/B,OAAOD,GAAS38E,EAAS48E,EAAgB,EAC7C,CDyxCqCgH,CAAWF,GAAQpqF,KAAKkqF,QAAQK,OAAOH,KAIpE,GAAIptD,aAAiB+qD,IAAmC,WAApB/7E,EAAQg+E,QACxC,OAAOK,EAKX,MAAMG,EAAQH,EAAQllF,KAAKgC,GAAQggB,GAAUA,aAAiB2iE,KAE9D,OAAQ99E,EAAQg+E,SAAW,QACvB,IAAK,OAMD,OAAQI,EAAI/B,cACR,IAAK,cACD,OAAOmC,EAAKrlF,KAAKjF,GAAK6K,IAElB,GAAiB,OAAbA,EAAIk1B,QAAmBl1B,EAAIk1B,gBAAgBynD,aAC3C,MAAM,IAAIjsF,MAAM,mCAEpB,OAAOsP,EAAIk1B,QAEnB,IAAK,OACD,OAAOuqD,EAAKrlF,KAAKjF,GAAK6K,IAElB,GAAiB,OAAbA,EAAIk1B,QAAmBl1B,EAAIk1B,gBAAgB2nD,MAC3C,MAAM,IAAInsF,MAAM,2BAEpB,OAAOsP,EAAIk1B,QAEnB,IAAK,OACD,OAAOuqD,EAAKrlF,KAAKjF,GAAK6K,IAElB,GAAiB,OAAbA,EAAIk1B,MAAqC,iBAAbl1B,EAAIk1B,KAChC,MAAM,IAAIxkC,MAAM,6BAEpB,OAAOsP,EAAIk1B,QAGnB,QAEI,OAAOuqD,EAAKrlF,KAAKjF,GAAK6K,GAAQA,EAAIk1B,OAE9C,IAAK,WAED,OAAOuqD,EACX,QAEI,MAAM,IAAI/uF,MAAM,uCAAuCuQ,EAAQg+E,YAE3E,CAUAh0D,OAAO2O,EAAK34B,EAAU,CAAC,GACnB,OAAOhM,KAAKmqF,QAAQ,SAAUxlD,EAAK34B,EACvC,CAMAiE,IAAI00B,EAAK34B,EAAU,CAAC,GAChB,OAAOhM,KAAKmqF,QAAQ,MAAOxlD,EAAK34B,EACpC,CAQAy+E,KAAK9lD,EAAK34B,EAAU,CAAC,GACjB,OAAOhM,KAAKmqF,QAAQ,OAAQxlD,EAAK34B,EACrC,CAmBA0+E,MAAM/lD,EAAKgmD,GACP,OAAO3qF,KAAKmqF,QAAQ,QAASxlD,EAAK,CAC9B2iD,QAAQ,IAAIb,IAAarB,OAAOuF,EAAe,kBAC/CX,QAAS,OACT3B,aAAc,QAEtB,CAQAr8E,QAAQ24B,EAAK34B,EAAU,CAAC,GACpB,OAAOhM,KAAKmqF,QAAQ,UAAWxlD,EAAK34B,EACxC,CAMA4+E,MAAMjmD,EAAK1E,EAAMj0B,EAAU,CAAC,GACxB,OAAOhM,KAAKmqF,QAAQ,QAASxlD,EAAKolD,GAAQ/9E,EAASi0B,GACvD,CAOA4qD,KAAKlmD,EAAK1E,EAAMj0B,EAAU,CAAC,GACvB,OAAOhM,KAAKmqF,QAAQ,OAAQxlD,EAAKolD,GAAQ/9E,EAASi0B,GACtD,CAOA05C,IAAIh1C,EAAK1E,EAAMj0B,EAAU,CAAC,GACtB,OAAOhM,KAAKmqF,QAAQ,MAAOxlD,EAAKolD,GAAQ/9E,EAASi0B,GACrD,QACSjgC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFse,GAAV3xB,EAAsCksB,IAAW,CAA+C,QACvLxkF,KAAK2M,WADkF2rD,EAAE,CAAAztD,MACYo/E,EAAUn+E,QAAVm+E,EAAUn8E,WAAK,EAChI,OAlOKm8E,CAAU,KAuehB,MAQMa,GAA4B,IAAI/9E,EAAyD,IAmjCzFg+E,GAAiC,IAAIh+E,EAA8D,IAInGi+E,GAAO,IACPC,GAAU,IACVC,GAAS,IACTC,GAAc,KACdC,GAAU,IACVC,GAAgB,KAChBC,GAAgB,IAAIv+E,EAAiE,IAIrFw+E,GAAkB,CAAC,MAAO,QAChC,SAASC,GAA2BpB,EAAK7qF,GACrC,MAAQksF,mBAAkBC,GAAkBv7E,EAAOm7E,KAC3C9C,cAAemD,EAAgB3D,OAAQ4D,GAAkBxB,EAEjE,IAAKqB,IACkB,IAAnBE,GAEmB,SAAlBC,IAA6BF,EAAcG,sBAAwBF,GACjD,SAAlBC,IAA6BL,GAAgBztB,SAAS8tB,KAErDF,EAAcI,gCAoExB,SAASC,GAAe3B,GACpB,OAAOA,EAAI1F,QAAQzmE,IAAI,kBAAoBmsE,EAAI1F,QAAQzmE,IAAI,sBAC/D,CAtE0D8tE,CAAe3B,KACjC,IAAhCsB,EAAcvkF,SAASijF,GACvB,OAAO7qF,EAAK6qF,GAEhB,MAAM/pD,EAAgBlwB,EAAOmwB,IACvB0rD,EAAY77E,EAAO46E,GAAgC,CACrD16E,UAAU,IAER47E,EAAW5K,GAAiBlxE,EAAO2vB,KACzC,GAAIksD,IAAcC,EACd,MAAM,IAAIhL,EAAc,MAA4DjxE,GAKxF,MAAMk8E,EAAaD,GAAYD,EAqLnC,SAASG,GAAoBxnD,EAAKqnD,GAC9B,MAAMI,EAAS,IAAI1hD,IAAI/F,EAAK,cAAcynD,OACpCC,EAAeL,EAAUI,GAC/B,OAAKC,EAME1nD,EAAIljB,QAAQ2qE,EAAQC,GALhB1nD,CAMf,CA/L+CwnD,CAAoB/B,EAAIzlD,IAAKqnD,GAAa5B,EAAIzlD,IACnF2nD,EA0EV,SAASC,GAAapC,EAASqC,GAE3B,MAAQlF,SAAQU,SAAQK,gBAAiB8B,EACnCsC,EAAgBC,GAAoBpF,GAC1C,IAAIqF,EAAiBxC,EAAQxB,gBACzBgE,aAA0B9D,gBAC1B8D,EAAiBD,GAAoBC,GAEN,iBAAnBA,IACZA,EAAiB,IAErB,MACMtzE,EASV,SAASuzE,GAAapvF,GAClB,IAAI6b,EAAO,EACX,UAAWY,KAAQzc,EACf6b,EAAQpX,KAAKiY,KAAK,GAAIb,GAAQY,EAAKtG,WAAW,GAAO,EAIzD0F,UAAQ,WACDA,EAAKlZ,UAChB,CAlBiBysF,CADD,CAAC5E,EAAQK,EAAcmE,EAAkBG,EAAgBF,GAAersF,KAAK,MAEzF,OAAoBiZ,CACxB,CAxFqBkzE,CAAanC,EAAK8B,GAC7BW,EAAWxsD,EAAcpwB,IAAIq8E,EAAU,MAC7C,IAAIQ,EAAmBpB,EAAcqB,eAKrC,GAJ8B,iBAAnBpB,GAA+BA,EAAeoB,iBAErDD,EAAmBnB,EAAeoB,gBAElCF,EAAU,CACV,MAAQG,CAAChC,IAAOiC,EAAeC,CAAC7B,IAAgBhD,EAAc8E,CAAClC,IAAUmC,EAAaC,CAACnC,IAASvB,EAAQ2D,CAACnC,IAAcvB,EAAY2D,CAACnC,IAAUzmD,GAASkoD,EAEvJ,IAAI5sD,EAAOgtD,EACX,OAAQ5E,GACJ,IAAK,cACDpoD,GAAO,IAAIutD,aAAcC,OAAOR,GAAerJ,OAC/C,MACJ,IAAK,OACD3jD,EAAO,IAAI2nD,KAAK,CAACqF,IAMzB,IAAIvI,EAAU,IAAID,GAAY2I,GAO9B,OAAOzL,GAAG,IAAImI,GAAa,CACvB7pD,OACAykD,UACAiF,SACAC,aACAjlD,QAER,CAEA,OAAOplC,EAAK6qF,GAAKjlF,KAAK++E,GAAK/8D,IACnBA,aAAiB2iE,IAAgBmC,GACjC5rD,EAAcxgB,IAAIysE,EAAU,CACxBU,CAAChC,IAAO7jE,EAAM8Y,KACdktD,CAAClC,IAAUyC,GAAmBvmE,EAAMu9D,QAASoI,GAC7CO,CAACnC,IAAS/jE,EAAMwiE,OAChB2D,CAACnC,IAAchkE,EAAMyiE,WACrB2D,CAACnC,IAAUc,EACXgB,CAAC7B,IAAgBjB,EAAI/B,cACxB,GAGb,CAKA,SAASqF,GAAmBhJ,EAASqI,GACjC,IAAKA,EACD,MAAO,CAAC,EAEZ,MAAMY,EAAa,CAAC,EACpB,UAAWljF,KAAOsiF,EAAgB,CAC9B,MAAMxjF,EAASm7E,EAAQS,OAAO16E,GACf,OAAXlB,IACAokF,EAAWljF,GAAOlB,EAE1B,CACA,OAAOokF,CACX,CACA,SAASjB,GAAoBpF,GACzB,MAAO,IAAIA,EAAOxlE,QACb8rE,OACA1tF,IAAK2tF,GAAM,GAAGA,KAAKvG,EAAOnC,OAAO0I,MACjCztF,KAAK,IACd,CA2CA,SAAS0tF,GAAsBC,GAC3B,MAAO,CACH,CACI1vE,QAASitE,GACThtE,WAAYA,KACR0vE,GAAwB,uBACjB,CAAEvC,eAAe,KAASsC,KAGzC,CACI1vE,QAASysE,GACTvsE,SAAUitE,GACVt+E,OAAO,EACPgR,KAAM,CAACoiB,GAAegrD,KAE1B,CACIjtE,QAASivD,GACTpgE,OAAO,EACPoR,WAAYA,KACR,MAAMijC,EAASpxC,EAAOu9D,IAChBugB,EAAa99E,EAAOm7E,IAC1B,MAAO,KACH4C,GAAY3sC,GAAQgrB,KAAK,KACrB0hB,EAAWxC,eAAgB,GAC9B,CACL,GAIhB,CE15FA,MAAM0C,WAAiCC,GACnC5tF,cACI6B,SAASK,WACT1C,KAAKquF,mBAAoB,CAC7B,EAUJ,MAAMC,WAA0BH,GAC5B,kBAAOI,I1BnBX,SAASC,GAAkBC,GACvBhS,KAASgS,CACb,C0BkBQC,CAAmB,IAAIJ,GAC3B,CACAK,YAAYlnD,EAAImnD,EAAKlf,GACjBjoC,SAAGonD,iBAAiBD,EAAKlf,GAClB,KACHjoC,EAAGqnD,oBAAoBF,EAAKlf,EAAQ,CAE5C,CACAqf,cAActnD,EAAImnD,GACdnnD,EAAGsnD,cAAcH,EACrB,CACA9tF,OAAOtF,GACHA,EAAKsF,QACT,CACAslC,cAAcmC,EAAS/H,GACnBA,SAAMA,GAAOxgC,KAAKgvF,sBACP5oD,cAAcmC,EAC7B,CACA0mD,qBACI,OAAOvvD,SAASuG,eAAeC,mBAAmB,YACtD,CACA8oD,qBACI,OAAOtvD,QACX,CACAwvD,cAAc1zF,GACV,OAAOA,EAAKosC,WAAaC,KAAKC,YAClC,CACAqnD,aAAa3zF,GACT,OAAOA,aAAgB4zF,gBAC3B,CAEAC,qBAAqB7uD,EAAK71B,GACtB,MAAe,WAAXA,EACOg7B,OAEI,aAAXh7B,EACO61B,EAEI,SAAX71B,EACO61B,EAAIP,KAER,IACX,CACAqvD,YAAY9uD,GACR,MAAM+uD,EAcd,SAASC,KACLC,UAAcA,IAAe/vD,SAASQ,cAAc,QAC7CuvD,GAAcA,GAAYtvD,aAAa,QAAU,IAC5D,CAjBqBqvD,GACb,OAAe,MAARD,EAAe,KAiB9B,SAASG,GAAa/qD,GAGlB,OAAO,IAAI+F,IAAI/F,EAAKjF,SAASiwD,SAASC,QAC1C,CArBqCF,CAAaH,EAC9C,CACAM,mBACIJ,GAAc,IAClB,CACAK,eACI,OAAOnqD,OAAOoqD,UAAUC,SAC5B,CACAC,UAAU5vF,GACN,O1BoiFR,SAAS6vF,GAAiBC,EAAW9vF,GACjCA,EAAOkmF,mBAAmBlmF,GAC1B,UAAW+vF,KAAUD,EAAU5tD,MAAM,KAAM,CACvC,MAAM8tD,EAAUD,EAAO1uF,QAAQ,MACxB4uF,EAAYC,IAA0B,GAAXF,EAAgB,CAACD,EAAQ,IAAM,CAACA,EAAO/pF,MAAM,EAAGgqF,GAAUD,EAAO/pF,MAAMgqF,EAAU,IACnH,GAAIC,EAAWn5E,SAAW9W,EACtB,OAAO8lF,mBAAmBoK,EAElC,CACA,OAAO,IACX,C0B9iFeC,CAAkB9wD,SAAS0wD,OAAQ/vF,EAC9C,EAEJ,IAAIovF,GAAc,KA8DZgB,GAAU,MAAhB,MAAMA,EACFC,QACI,OAAO,IAAIC,cACf,QACS3wF,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF8kB,EAAU,CAAsD,QACjKzwF,KAAK2M,WADkF2rD,EAAE,CAAAztD,MACY4lF,EAAU3kF,QAAV2kF,EAAU3iF,WAAK,EAChI,OANK2iF,CAAU,KAgBhB,MAAMG,GAAwB,IAAI7jF,EAAmD,IACrF,IAMM8jF,GAAY,MAAlB,MAAMA,EAIFrwF,YAAYswF,EAASC,GACjB/wF,KAAK+wF,MAAQA,EACb/wF,KAAKgxF,mBAAqB,IAAIxxE,IAC9BsxE,EAAQjsF,QAASosF,IACbA,EAAOr5B,QAAU53D,IAAA,GAErBA,KAAKkxF,SAAWJ,EAAQzqF,QAAQ8qF,SACpC,CAUAtC,iBAAiBvmD,EAASi5B,EAAW2oB,GAEjC,OADelqF,KAAKoxF,eAAe7vB,GACrBstB,iBAAiBvmD,EAASi5B,EAAW2oB,EACvD,CAIAmH,UACI,OAAOrxF,KAAK+wF,KAChB,CAEAK,eAAe7vB,GACX,IAAI0vB,EAASjxF,KAAKgxF,mBAAmB/gF,IAAIsxD,GACzC,GAAI0vB,EACA,OAAOA,EAIX,GADAA,EADgBjxF,KAAKkxF,SACJ/zD,KAAM8zD,GAAWA,EAAO3b,SAAS/T,KAC7C0vB,EACD,MAAM,IAAIhQ,EAAc,MAAsFjxE,GAGlH,OAAAhQ,KAAKgxF,mBAAmBnxE,IAAI0hD,EAAW0vB,GAChCA,CACX,QACSjxF,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFklB,GAjEVv4B,EAiEwCs4B,IAjExCt4B,EAiE0EA,GAAS,CAA+C,QACzNt4D,KAAK2M,WAlEkF2rD,EAAE,CAAAztD,MAkEYgmF,EAAY/kF,QAAZ+kF,EAAY/iF,WAAK,EAClI,OAhDK+iF,CAAY,KA+DlB,MAAMS,GAEF9wF,YAAY+wF,GACRvxF,KAAKuxF,KAAOA,CAChB,EAIJ,MAAMC,GAAwB,YAAY,IACpCC,GAAgB,MAAtB,MAAMA,EACFjxF,YAAYggC,EAAKC,EAAOixD,EAAOpQ,EAAa,CAAC,GACzCthF,KAAKwgC,IAAMA,EACXxgC,KAAKygC,MAAQA,EACbzgC,KAAK0xF,MAAQA,EACb1xF,KAAKshF,WAAaA,EAElBthF,KAAK2xF,SAAW,IAAInyE,IACpBxf,KAAK4xF,UAAY,IAAI50E,IACrBhd,KAAK6xF,gBAAkB7xF,KAAK8xF,8BAC5B9xF,KAAK+xF,iBAAmB1Q,GAAiBC,GACzCthF,KAAKgyF,gBACT,CACAC,UAAUr5E,GACN,UAAWs5E,KAASt5E,EAEG,IADA5Y,KAAKmyF,iBAAiBD,EAAO,IAE5ClyF,KAAKoyF,aAAaF,EAG9B,CACAG,aAAaz5E,GACT,UAAWs5E,KAASt5E,EACG5Y,KAAKmyF,iBAAiBD,GAAO,IAC9B,GACdlyF,KAAKsyF,eAAeJ,EAGhC,CACAx2E,cACI,MAAMm2E,EAAkB7xF,KAAK6xF,gBACzBA,IACAA,EAAgBhtF,QAASrJ,GAASA,EAAKsF,UACvC+wF,EAAgBtxE,SAEpB,UAAW2xE,KAASlyF,KAAKuyF,eACrBvyF,KAAKsyF,eAAeJ,GAExBlyF,KAAKgyF,gBACT,CACAQ,QAAQC,GACJzyF,KAAK4xF,UAAUvwF,IAAIoxF,GACnB,UAAWP,KAASlyF,KAAKuyF,eACrBvyF,KAAK0yF,eAAeD,EAAUP,EAEtC,CACAS,WAAWF,GACPzyF,KAAK4xF,UAAU57D,OAAOy8D,EAC1B,CACAF,eACI,OAAOvyF,KAAK2xF,SAAS7vE,MACzB,CACAswE,aAAaF,GACT,UAAW5hF,KAAQtQ,KAAK4xF,UACpB5xF,KAAK0yF,eAAepiF,EAAM4hF,EAElC,CACAI,eAAeJ,GACX,MAAMP,EAAW3xF,KAAK2xF,SACtBA,EAAS1hF,IAAIiiF,IAAQU,UAAU/tF,QAASrJ,GAASA,EAAKsF,UACtD6wF,EAAS37D,OAAOk8D,EACpB,CACAJ,8BACI,MAAMl5E,EAAS5Y,KAAKwgC,IAAIiqD,MAAMoI,iBAAiB,SAASrB,OAA0BxxF,KAAKygC,WACvF,GAAI7nB,GAAQhd,OAAQ,CAChB,MAAMk3F,EAAW,IAAItzE,IACrB5G,SAAO/T,QAASqtF,IACa,MAArBA,EAAMtxD,aACNkyD,EAASjzE,IAAIqyE,EAAMtxD,YAAasxD,EAAK,GAGtCY,CACX,CACA,OAAO,IACX,CACAX,iBAAiBD,EAAOpgD,GACpB,MAAM5xC,EAAMF,KAAK2xF,SACjB,GAAIzxF,EAAI+d,IAAIi0E,GAAQ,CAChB,MAAMa,EAAgB7yF,EAAI+P,IAAIiiF,GAC9Ba,SAAcC,OAASlhD,EAChBihD,EAAcC,KACzB,CACA9yF,SAAI2f,IAAIqyE,EAAO,CAAEc,MAAOlhD,EAAO8gD,SAAU,KAClC9gD,CACX,CACAmhD,gBAAgB3iF,EAAM4hF,GAClB,MAAML,EAAkB7xF,KAAK6xF,gBACvBqB,EAAUrB,GAAiB5hF,IAAIiiF,GACrC,GAAIgB,GAASjqD,aAAe34B,EAExBuhF,SAAgB77D,OAAOk8D,GACvBgB,EAAQtwD,gBAAgB4uD,IAKjB0B,EAEN,CACD,MAAMA,EAAUlzF,KAAKwgC,IAAI4F,cAAc,SACvC,OAAIpmC,KAAK0xF,OACLwB,EAAQ/+E,aAAa,QAASnU,KAAK0xF,OAEvCwB,EAAQtyD,YAAcsxD,EAClBlyF,KAAK+xF,kBACLmB,EAAQ/+E,aAAaq9E,GAAuBxxF,KAAKygC,OAErDnwB,EAAK8+B,YAAY8jD,GACVA,CACX,CACJ,CACAR,eAAepiF,EAAM4hF,GACjB,MAAMgB,EAAUlzF,KAAKizF,gBAAgB3iF,EAAM4hF,GACrCP,EAAW3xF,KAAK2xF,SAChBwB,EAAaxB,EAAS1hF,IAAIiiF,IAAQU,SACpCO,EACAA,EAAWn2F,KAAKk2F,GAGhBvB,EAAS9xE,IAAIqyE,EAAO,CAAEU,SAAU,CAACM,GAAUF,MAAO,GAE1D,CACAhB,iBACI,MAAMJ,EAAY5xF,KAAK4xF,UACvBA,EAAUrxE,QAEVqxE,EAAUvwF,IAAIrB,KAAKwgC,IAAIiqD,KAC3B,QACSzqF,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF8lB,GA3NVn5B,EA2N4C94B,IA3N5C84B,EA2NiE34B,IA3NjE24B,EA2NoFt4B,GAAS,GA3N7Fs4B,EA2N0Hx4B,IAAW,CAA+C,QAC3Q9/B,KAAK2M,WA5NkF2rD,EAAE,CAAAztD,MA4NY4mF,EAAgB3lF,QAAhB2lF,EAAgB3jF,WAAK,EACtI,OAlIK2jF,CAAgB,KAqJtB,MAAM2B,GAAiB,CACnBC,IAAO,6BACPC,MAAS,+BACTC,MAAS,+BACTC,IAAO,uCACPC,MAAS,gCACTC,KAAQ,sCAENC,GAAkB,UAelBC,GAAqC,IAAI7mF,EAAyD,GAAI,CACxGlB,WAAY,OACZC,QAASA,KAVsC,IAkBnD,SAAS+nF,GAAkBC,EAAQl7E,GAC/B,OAAOA,EAAO1Y,IAAKmkC,GAAMA,EAAE5iB,QAAQkyE,GAAiBG,GACxD,CAAC,IACKC,GAAmB,MAAzB,MAAMA,EACFvzF,YAAYwzF,EAAcC,EAAkBxzD,EAAOyzD,EAA2B1zD,EAAK8gD,EAAY7qB,EAAQi7B,EAAQ,MAC3G1xF,KAAKg0F,aAAeA,EACpBh0F,KAAKi0F,iBAAmBA,EACxBj0F,KAAKygC,MAAQA,EACbzgC,KAAKk0F,0BAA4BA,EACjCl0F,KAAKwgC,IAAMA,EACXxgC,KAAKshF,WAAaA,EAClBthF,KAAKy2D,OAASA,EACdz2D,KAAK0xF,MAAQA,EACb1xF,KAAKm0F,iBAAmB,IAAI30E,IAC5Bxf,KAAK+xF,iBAAmB1Q,GAAiBC,GACzCthF,KAAKo0F,gBAAkB,IAAIC,GAAoBL,EAAcxzD,EAAKi2B,EAAQz2D,KAAK+xF,iBACnF,CACAl9C,eAAevM,EAAS78B,GACpB,IAAK68B,IAAY78B,EACb,OAAOzL,KAAKo0F,gBAEZp0F,KAAK+xF,kBAAoBtmF,EAAKkN,gBAAkB5F,GAAkBG,YAElEzH,EAAO,IAAKA,EAAMkN,cAAe5F,GAAkBC,WAEvD,MAAMa,EAAW7T,KAAKs0F,oBAAoBhsD,EAAS78B,GAGnD,OAAIoI,aAAoB0gF,GACpB1gF,EAAS2gF,YAAYlsD,GAEhBz0B,aAAoB4gF,IACzB5gF,EAAS6gF,cAEN7gF,CACX,CACAygF,oBAAoBhsD,EAAS78B,GACzB,MAAM0oF,EAAmBn0F,KAAKm0F,iBAC9B,IAAItgF,EAAWsgF,EAAiBlkF,IAAIxE,EAAKuN,IACzC,IAAKnF,EAAU,CACX,MAAM2sB,EAAMxgC,KAAKwgC,IACXi2B,EAASz2D,KAAKy2D,OACdu9B,EAAeh0F,KAAKg0F,aACpBC,EAAmBj0F,KAAKi0F,iBACxBC,EAA4Bl0F,KAAKk0F,0BACjCnC,EAAmB/xF,KAAK+xF,iBAC9B,OAAQtmF,EAAKkN,eACT,KAAK5F,GAAkBC,SACnBa,EAAW,IAAI0gF,GAAkCP,EAAcC,EAAkBxoF,EAAMzL,KAAKygC,MAAOyzD,EAA2B1zD,EAAKi2B,EAAQs7B,GAC3I,MACJ,KAAKh/E,GAAkBG,UACnB,OAAO,IAAIyhF,GAAkBX,EAAcC,EAAkB3rD,EAAS78B,EAAM+0B,EAAKi2B,EAAQz2D,KAAK0xF,MAAOK,GACzG,QACIl+E,EAAW,IAAI4gF,GAA6BT,EAAcC,EAAkBxoF,EAAMyoF,EAA2B1zD,EAAKi2B,EAAQs7B,GAGlIoC,EAAiBt0E,IAAIpU,EAAKuN,GAAInF,EAClC,CACA,OAAOA,CACX,CACA6H,cACI1b,KAAKm0F,iBAAiB5zE,OAC1B,QACSvgB,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFooB,GAhVVz7B,EAgV+Cu4B,IAhV/Cv4B,EAgVwEm5B,IAhVxEn5B,EAgVqG34B,IAhVrG24B,EAgVwHs7B,IAhVxHt7B,EAgVuK94B,IAhVvK84B,EAgV4Lx4B,IAhV5Lw4B,EAgVoNA,GAhVpNA,EAgV0Ot4B,IAAS,CAA+C,QACzXhgC,KAAK2M,WAjVkF2rD,EAAE,CAAAztD,MAiVYkpF,EAAmBjoF,QAAnBioF,EAAmBjmF,WAAK,EACzI,OA9DKimF,CAAmB,KAiFzB,MAAMM,GACF7zF,YAAYwzF,EAAcxzD,EAAKi2B,EAAQs7B,GACnC/xF,KAAKg0F,aAAeA,EACpBh0F,KAAKwgC,IAAMA,EACXxgC,KAAKy2D,OAASA,EACdz2D,KAAK+xF,iBAAmBA,EACxB/xF,KAAK0Y,KAAO9e,OAAOyD,OAAO,MAK1B2C,KAAK40F,uBAAwB,EAC7B50F,KAAKusC,YAAc,IACvB,CACAtsB,UAAY,CACZmmB,cAAc/lC,EAAM6sC,GAChB,OAAIA,EAUOltC,KAAKwgC,IAAIq0D,gBAAgBzB,GAAelmD,IAAcA,EAAW7sC,GAErEL,KAAKwgC,IAAI4F,cAAc/lC,EAClC,CACA0sC,cAAcvvC,GACV,OAAOwC,KAAKwgC,IAAIuM,cAAcvvC,EAClC,CACAqvC,WAAWrvC,GACP,OAAOwC,KAAKwgC,IAAIoM,eAAepvC,EACnC,CACA4xC,YAAYvrC,EAAQixF,IACKC,GAAelxF,GAAUA,EAAOumC,QAAUvmC,GAClDurC,YAAY0lD,EAC7B,CACA3lD,aAAatrC,EAAQixF,EAAUE,GACvBnxF,IACqBkxF,GAAelxF,GAAUA,EAAOumC,QAAUvmC,GAClDsrC,aAAa2lD,EAAUE,EAE5C,CACArkD,YAAYgjB,EAASshC,GACjBA,EAASn0F,QACb,CACA4mD,kBAAkBwtC,EAAgBztC,GAC9B,IAAIhgB,EAA+B,iBAAnBytD,EAA8Bl1F,KAAKwgC,IAAIN,cAAcg1D,GAAkBA,EACvF,IAAKztD,EACD,MAAM,IAAIw5C,GAAc,MAAuFjxE,GAGnH,OAAKy3C,IACDhgB,EAAG7G,YAAc,IAEd6G,CACX,CACAwB,WAAWztC,GACP,OAAOA,EAAKytC,UAChB,CACAtG,YAAYnnC,GACR,OAAOA,EAAKmnC,WAChB,CACAxuB,aAAaszB,EAAIpnC,EAAM7C,EAAO0vC,GAC1B,GAAIA,EAAW,CACX7sC,EAAO6sC,EAAY,IAAM7sC,EACzB,MAAM80F,EAAe/B,GAAelmD,GAChCioD,EACA1tD,EAAG2tD,eAAeD,EAAc90F,EAAM7C,GAGtCiqC,EAAGtzB,aAAa9T,EAAM7C,EAE9B,MAEIiqC,EAAGtzB,aAAa9T,EAAM7C,EAE9B,CACAolC,gBAAgB6E,EAAIpnC,EAAM6sC,GACtB,GAAIA,EAAW,CACX,MAAMioD,EAAe/B,GAAelmD,GAChCioD,EACA1tD,EAAG4tD,kBAAkBF,EAAc90F,GAGnConC,EAAG7E,gBAAgB,GAAGsK,KAAa7sC,IAE3C,MAEIonC,EAAG7E,gBAAgBviC,EAE3B,CACAi+D,SAAS72B,EAAIpnC,GACTonC,EAAG6tD,UAAUj0F,IAAIhB,EACrB,CACAk+D,YAAY92B,EAAIpnC,GACZonC,EAAG6tD,UAAUx0F,OAAOT,EACxB,CACAq+D,SAASj3B,EAAIyqD,EAAO10F,EAAO4R,GACnBA,GAASo8B,GAAoBE,SAAWF,GAAoBC,WAC5DhE,EAAGyqD,MAAM79E,YAAY69E,EAAO10F,EAAO4R,EAAQo8B,GAAoBC,UAAY,YAAc,IAGzFhE,EAAGyqD,MAAMA,GAAS10F,CAE1B,CACAghE,YAAY/2B,EAAIyqD,EAAO9iF,GACfA,EAAQo8B,GAAoBE,SAE5BjE,EAAGyqD,MAAMqD,eAAerD,GAGxBzqD,EAAGyqD,MAAMA,GAAS,EAE1B,CACA79E,YAAYozB,EAAIpnC,EAAM7C,GACR,MAANiqC,IAMJA,EAAGpnC,GAAQ7C,EACf,CACAw+C,SAASxgD,EAAMgC,GACXhC,EAAK0sC,UAAY1qC,CACrB,CACAglE,OAAO73D,EAAQwc,EAAO3G,GAIlB,GAAsB,iBAAX7V,KACPA,EAAS6qF,KAAUnG,qBAAqBrvF,KAAKwgC,IAAK71B,IAE9C,MAAM,IAAIlP,MAAM,4BAA4BkP,eAAoBwc,KAGxE,OAAOnnB,KAAKg0F,aAAanF,iBAAiBlkF,EAAQwc,EAAOnnB,KAAKy1F,uBAAuBj1E,GACzF,CACAi1E,uBAAuBC,GAKnB,OAAQvuE,IAMJ,GAAc,iBAAVA,EACA,OAAOuuE,GAOkB,KAHA11F,KAAK+xF,iBAC5B/xF,KAAKy2D,OAAO/6B,WAAW,IAAMg6D,EAAavuE,IAC1CuuE,EAAavuE,KAEfA,EAAMwuE,gBAAe,CAIjC,EAUJ,SAASZ,GAAev5F,GACpB,MAAwB,aAAjBA,EAAK+sC,cAA2C5tC,IAAjBa,EAAK4uC,OAC/C,CACA,MAAMuqD,WAA0BN,GAC5B7zF,YAAYwzF,EAAcC,EAAkB2B,EAAQl6C,EAAWlb,EAAKi2B,EAAQi7B,EAAOK,GAC/E1vF,MAAM2xF,EAAcxzD,EAAKi2B,EAAQs7B,GACjC/xF,KAAKi0F,iBAAmBA,EACxBj0F,KAAK41F,OAASA,EACd51F,KAAK61F,WAAaD,EAAOE,aAAa,CAAEjgF,KAAM,SAC9C7V,KAAKi0F,iBAAiBzB,QAAQxyF,KAAK61F,YACnC,MAAMj9E,EAASi7E,GAAkBn4C,EAAU1iC,GAAI0iC,EAAU9iC,QACzD,UAAWs5E,KAASt5E,EAAQ,CACxB,MAAMs6E,EAAUxzD,SAAS0G,cAAc,SACnCsrD,GACAwB,EAAQ/+E,aAAa,QAASu9E,GAElCwB,EAAQtyD,YAAcsxD,EACtBlyF,KAAK61F,WAAWzmD,YAAY8jD,EAChC,CACJ,CACA6C,iBAAiBv6F,GACb,OAAOA,IAASwE,KAAK41F,OAAS51F,KAAK61F,WAAar6F,CACpD,CACA4zC,YAAYvrC,EAAQixF,GAChB,OAAOzyF,MAAM+sC,YAAYpvC,KAAK+1F,iBAAiBlyF,GAASixF,EAC5D,CACA3lD,aAAatrC,EAAQixF,EAAUE,GAC3B,OAAO3yF,MAAM8sC,aAAanvC,KAAK+1F,iBAAiBlyF,GAASixF,EAAUE,EACvE,CACArkD,YAAYgjB,EAASshC,GACjB,OAAO5yF,MAAMsuC,YAAY,KAAMskD,EACnC,CACAhsD,WAAWztC,GACP,OAAOwE,KAAK+1F,iBAAiB1zF,MAAM4mC,WAAWjpC,KAAK+1F,iBAAiBv6F,IACxE,CACAykB,UACIjgB,KAAKi0F,iBAAiBtB,WAAW3yF,KAAK61F,WAC1C,EAEJ,MAAMpB,WAAqCJ,GACvC7zF,YAAYwzF,EAAcC,EAAkBv4C,EAAWw4C,EAA2B1zD,EAAKi2B,EAAQs7B,EAAkB+B,GAC7GzxF,MAAM2xF,EAAcxzD,EAAKi2B,EAAQs7B,GACjC/xF,KAAKi0F,iBAAmBA,EACxBj0F,KAAKk0F,0BAA4BA,EACjCl0F,KAAK4Y,OAASk7E,EAASD,GAAkBC,EAAQp4C,EAAU9iC,QAAU8iC,EAAU9iC,MACnF,CACA87E,cACI10F,KAAKi0F,iBAAiBhC,UAAUjyF,KAAK4Y,OACzC,CACAqH,UACSjgB,KAAKk0F,2BAGVl0F,KAAKi0F,iBAAiB5B,aAAaryF,KAAK4Y,OAC5C,EAEJ,MAAM27E,WAA0CE,GAC5Cj0F,YAAYwzF,EAAcC,EAAkBv4C,EAAWjb,EAAOyzD,EAA2B1zD,EAAKi2B,EAAQs7B,GAClG,MAAM+B,EAASrzD,EAAQ,IAAMib,EAAU1iC,GACvC3W,MAAM2xF,EAAcC,EAAkBv4C,EAAWw4C,EAA2B1zD,EAAKi2B,EAAQs7B,EAAkB+B,GAC3G9zF,KAAKg2F,YAtUb,SAASC,GAAqBC,GAC1B,MAjBiB,oBAiBGz0E,QAAQkyE,GAAiBuC,EACjD,CAoU2BD,CAAqBnC,GACxC9zF,KAAKm2F,SApUb,SAASC,GAAkBF,GACvB,MArBc,iBAqBGz0E,QAAQkyE,GAAiBuC,EAC9C,CAkUwBE,CAAkBtC,EACtC,CACAU,YAAYlsD,GACRtoC,KAAK00F,cACL10F,KAAKmU,aAAam0B,EAAStoC,KAAKm2F,SAAU,GAC9C,CACA/vD,cAAcviC,EAAQxD,GAClB,MAAMonC,EAAKplC,MAAM+jC,cAAcviC,EAAQxD,GACvC,OAAAgC,MAAM8R,aAAaszB,EAAIznC,KAAKg2F,YAAa,IAClCvuD,CACX,EACH,IAEK4uD,GAAe,MAArB,MAAMA,UAAwB/E,GAC1B9wF,YAAYggC,GACRn+B,MAAMm+B,EACV,CAGA80C,SAAS/T,GACL,OAAO,CACX,CACAstB,iBAAiBvmD,EAASi5B,EAAW2oB,GACjC5hD,SAAQumD,iBAAiBttB,EAAW2oB,GAAS,GACtC,IAAMlqF,KAAK8uF,oBAAoBxmD,EAASi5B,EAAW2oB,EAC9D,CACA4E,oBAAoBnkF,EAAQ42D,EAAW/gD,GACnC,OAAO7V,EAAOmkF,oBAAoBvtB,EAAW/gD,EACjD,QACSxgB,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF0qB,GA/mBV/9B,EA+mB2C94B,IAAQ,CAA+C,QACzLx/B,KAAK2M,WAhnBkF2rD,EAAE,CAAAztD,MAgnBYwrF,EAAevqF,QAAfuqF,EAAevoF,WAAK,EACrI,OAlBKuoF,CAAe,KA6BrB,MAAMC,GAAgB,CAAC,MAAO,UAAW,OAAQ,SAG3CC,GAAU,CACZ,KAAM,YACN,KAAM,MACN,OAAQ,SACR,OAAQ,SACRC,IAAO,SACPC,IAAO,SACPC,KAAQ,YACRC,MAAS,aACTC,GAAM,UACNC,KAAQ,YACRC,KAAQ,cACRC,OAAU,aACVC,IAAO,MAKLC,GAAuB,CACzBC,IAAQ/vE,GAAUA,EAAMgwE,OACxBC,QAAYjwE,GAAUA,EAAMkwE,QAC5BxmF,KAASsW,GAAUA,EAAMmwE,QACzBplF,MAAUiV,GAAUA,EAAMowE,UAE9B,IAGMC,GAAe,MAArB,MAAMA,UAAwBlG,GAK1B9wF,YAAYggC,GACRn+B,MAAMm+B,EACV,CAMA80C,SAAS/T,GACL,OAAoD,MAA7Ci2B,EAAgBC,eAAel2B,EAC1C,CASAstB,iBAAiBvmD,EAASi5B,EAAW2oB,GACjC,MAAMwN,EAAcF,EAAgBC,eAAel2B,GAC7Co2B,EAAiBH,EAAgBI,cAAcF,EAAYG,QAAY3N,EAASlqF,KAAK43D,QAAQy5B,WACnG,OAAOrxF,KAAK43D,QAAQy5B,UAAUn2D,kBAAkB,IACrCs6D,KAAU7G,YAAYrmD,EAASovD,EAAYI,aAAiBH,GAE3E,CAUA,qBAAOF,CAAel2B,GAClB,MAAM//C,EAAQ+/C,EAAUhsD,cAAcgtB,MAAM,KACtCu1D,EAAet2E,EAAMtP,QAC3B,GAAqB,IAAjBsP,EAAM5lB,QAAmC,YAAjBk8F,GAA+C,UAAjBA,EACtD,OAAO,KAEX,MAAMrtF,EAAM+sF,EAAgBO,cAAcv2E,EAAM/kB,OAChD,IAAIo7F,EAAU,GACVG,EAASx2E,EAAM9f,QAAQ,QAa3B,GAZIs2F,GAAS,IACTx2E,EAAM3f,OAAOm2F,EAAQ,GACrBH,EAAU,SAEdvB,GAAczxF,QAASozF,IACnB,MAAMl3F,EAAQygB,EAAM9f,QAAQu2F,GACxBl3F,GAAQ,IACRygB,EAAM3f,OAAOd,EAAO,GACpB82F,GAAWI,EAAe,OAGlCJ,GAAWptF,EACS,GAAhB+W,EAAM5lB,QAA8B,IAAf6O,EAAI7O,OAEzB,OAAO,KAKX,MAAMoL,EAAS,CAAC,EAChBA,SAAO8wF,aAAkBA,EACzB9wF,EAAO6wF,QAAaA,EACb7wF,CACX,CAWA,4BAAOkxF,CAAsB/wE,EAAOgxE,GAChC,IAAIC,EAAU7B,GAAQpvE,EAAM1c,MAAQ0c,EAAM1c,IACtCA,EAAM,GAMV,OALI0tF,EAAYz2F,QAAQ,UAAW,IAC/B02F,EAAUjxE,EAAMve,KAChB6B,EAAM,WAGK,MAAX2tF,IAAoBA,KAExBA,EAAUA,EAAQ7iF,cACF,MAAZ6iF,EACAA,EAAU,QAEO,MAAZA,IACLA,EAAU,OAEd9B,GAAczxF,QAASozF,IACfA,IAAiBG,IAEbC,EADmBpB,GAAqBgB,IACzB9wE,KACf1c,GAAOwtF,EAAe,IAE9B,GAEJxtF,GAAO2tF,EACA3tF,IAAQ0tF,EACnB,CAQA,oBAAOP,CAAcC,EAAS3N,EAASnxD,GACnC,OAAQ5R,IACAqwE,EAAgBU,sBAAsB/wE,EAAO0wE,IAC7C9+D,EAAK2C,WAAW,IAAMwuD,EAAQ/iE,GAAM,CAGhD,CAEA,oBAAO4wE,CAAcO,GACjB,MAAmB,QAAZA,EAAoB,SAAWA,CAC1C,QACSt4F,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF6rB,GA3xBVl/B,EA2xB2C94B,IAAQ,CAA+C,QACzLx/B,KAAK2M,WA5xBkF2rD,EAAE,CAAAztD,MA4xBY2sF,EAAe1rF,QAAf0rF,EAAe1pF,WAAK,EACrI,OAnIK0pF,CAAe,KA0PrB,MAAMe,GAAsC,CACxC,CAAEl6E,QAASyhB,GAAavhB,SAAUi6E,IAClC,CAAEn6E,QAASwhB,GAAsBthB,SAbrC,SAASk6E,KACLnK,GAAkBC,aACtB,EAW+DrhF,OAAO,GAClE,CAAEmR,QAASmhB,GAAUlhB,WARzB,SAASo6E,KAELC,O5BsgPJ,SAASC,GAAYl5D,GACjBF,GAAWE,CACf,C4BxgPIi5D,CAAaj5D,UACNA,QACX,EAIgDxhB,KAAM,KAQhD26E,GAAkB1kB,GAAsBwG,GAAc,UAAW4d,IAOjEO,GAAkC,IAAI/rF,EAAkG,IACxIgsF,GAAwB,CAC1B,CACI16E,QAAS26E,GACTl2E,SAj+BR,MAAMm2E,GACFvuB,YAAY9xB,GACRsgD,GAAQC,sBAA2B,CAACltB,EAAMI,GAAkB,KACxD,MAAMP,EAAclzB,EAASwzB,sBAAsBH,EAAMI,GACzD,GAAmB,MAAfP,EACA,MAAM,IAAImV,EAAc,MAAwFjxE,GAGpH,OAAO87D,GAEXotB,GAAQE,2BAAgC,IAAMxgD,EAASszB,sBACvDgtB,GAAQG,0BAA+B,IAAMzgD,EAASuzB,qBAcjD+sB,GAAQI,uBACTJ,GAAQI,qBAA0B,IAEtCJ,GAAQI,qBAAwBt8F,KAhBTwjB,IACnB,MAAM+4E,EAAgBL,GAAQE,6BAC9B,IAAIryF,EAAQwyF,EAAc39F,OAC1B,MAAM49F,EAAY,WACdzyF,IACa,GAATA,GACAyZ,GAER,EACA+4E,EAAc10F,QAASinE,IACnBA,EAAYT,WAAWmuB,EAAS,EACnC,EAMT,CACAptB,sBAAsBxzB,EAAUqzB,EAAMI,GAClC,OAAY,MAARJ,EACO,KAEDrzB,EAASozB,eAAeC,KAIxBI,EAGNmpB,KAAUrG,aAAaljB,GAChBjsE,KAAKosE,sBAAsBxzB,EAAUqzB,EAAK37D,MAAM,GAEpDtQ,KAAKosE,sBAAsBxzB,EAAUqzB,EAAKwtB,eAAe,GALrD,KAMf,GAq7BIv7E,KAAM,IAEV,CACIG,QAASq7E,GACT52E,SAAUqnD,GACVjsD,KAAM,CAACuZ,EAAQm0C,GAAqBotB,KAExC,CACI36E,QAAS8rD,GACTrnD,SAAUqnD,GACVjsD,KAAM,CAACuZ,EAAQm0C,GAAqBotB,MAGtCW,GAA2B,CAC7B,CAAEt7E,QAASu7E,GAAiBr7E,SAAU,QACtC,CAAEF,QAASud,GAActd,WA9C7B,SAASu9B,KACL,OAAO,IAAIjgB,EACf,EA4CuD1d,KAAM,IACzD,CACIG,QAASuyE,GACT9tE,SAAUuzE,GACVnpF,OAAO,EACPgR,KAAM,CAACshB,GAAU/H,EAAQqI,KAE7B,CAAEzhB,QAASuyE,GAAuB9tE,SAAU00E,GAAiBtqF,OAAO,EAAMgR,KAAM,CAACshB,KACjFu0D,GACAtC,GACAZ,GACA,CAAExyE,QAASwnC,GAAkBjjC,YAAamxE,IAC1C,CAAE11E,Q1B0qIN,MAAMw7E,K0B1qIqB/2E,SAAU2tE,GAAYvyE,KAAM,IAG7C,IAEV,IASM47E,GAAa,MAAnB,MAAMA,EACFt5F,YAAYu5F,GAKZ,CAWA,2BAAOC,CAAqB1S,GACxB,MAAO,CACH7pE,SAAUq8E,EACV7tF,UAAW,CAAC,CAAEoS,QAASshB,GAAQphB,SAAU+oE,EAAO7mD,QAExD,QACSzgC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFmuB,GA3+BVxhC,EA2+ByCwgC,GAA+B,KAA6E,QAC5O94F,KAAK4N,UA5+BkF0qD,GAAE,CAAA7sD,KA4+BSquF,GAA8D,QAChK95F,KAAK4M,UA7+BkF0rD,GAAE,CAAArsD,UA6+BmC,IAAI0tF,MAA6BZ,IAAsB7sF,QAAA,CAAYg1E,GAActG,KAAuB,EAChP,OA1BKkf,CAAa,KA6qBbG,GAAY,MAAlB,MAAMA,SACOj6F,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFsuB,EAAY,CAAsD,QACnKj6F,KAAK2M,WAnoDkF2rD,EAAE,CAAAztD,MAmoDYovF,EAAYnuF,QAAA,SAAA6/D,GAAA,IAAAuuB,EAAA,YAAAA,EAAAvuB,EAAA,IAAAA,GAAZsuB,GAnoDd3hC,EAmoDiF6hC,IAAgBD,CAAA,EAAAruF,WAAzD,QAA+D,EAC1M,OAHKouF,CAAY,KAQZE,GAAgB,MAAtB,MAAMA,UAAyBF,GAC3Bz5F,YAAY+wF,GACRlvF,QACArC,KAAKuxF,KAAOA,CAChB,CACAxmD,SAASqoB,EAAK51D,GACV,GAAa,MAATA,EACA,OAAO,KACX,OAAQ41D,GACJ,KAAK/oB,GAAgBC,KACjB,OAAO9sC,EACX,KAAK6sC,GAAgBE,KACjB,OAAI6vD,GAAiC58F,EAAO,QACjC68F,GAAiB78F,GAErB88F,GAAet6F,KAAKuxF,KAAMpjF,OAAO3Q,IAAQ2C,WACpD,KAAKkqC,GAAgBG,MACjB,OAAI4vD,GAAiC58F,EAAO,SACjC68F,GAAiB78F,GAErBA,EACX,KAAK6sC,GAAgBI,OACjB,GAAI2vD,GAAiC58F,EAAO,UACxC,OAAO68F,GAAiB78F,GAE5B,MAAM,IAAIyjF,EAAc,MAA6FjxE,GAEzH,KAAKq6B,GAAgBK,IACjB,OAAI0vD,GAAiC58F,EAAO,OACjC68F,GAAiB78F,GAErB+8F,GAAcpsF,OAAO3Q,IAChC,KAAK6sC,GAAgBM,aACjB,GAAIyvD,GAAiC58F,EAAO,eACxC,OAAO68F,GAAiB78F,GAE5B,MAAM,IAAIyjF,EAAc,MAAmGjxE,GAE/H,QACI,MAAM,IAAIixE,EAAc,MAA8FjxE,GAGlI,CACAwqF,wBAAwBh9F,GACpB,O5BsoPR,SAASi9F,GAA4BC,GACjC,OAAO,IAAI51D,GAAa41D,EAC5B,C4BxoPeC,CAA6Bn9F,EACxC,CACAo9F,yBAAyBp9F,GACrB,O5B+oPR,SAASq9F,GAA6BC,GAClC,OAAO,IAAI91D,GAAc81D,EAC7B,C4BjpPeC,CAA8Bv9F,EACzC,CACAw9F,0BAA0Bx9F,GACtB,O5BwpPR,SAASy9F,GAA8BC,GACnC,OAAO,IAAIj2D,GAAei2D,EAC9B,C4B1pPeC,CAA+B39F,EAC1C,CACA49F,uBAAuB59F,GACnB,O5BiqPR,SAAS69F,GAA2BC,GAChC,OAAO,IAAIp2D,GAAYo2D,EAC3B,C4BnqPeC,CAA4B/9F,EACvC,CACAg+F,+BAA+Bh+F,GAC3B,O5B0qPR,SAASi+F,GAAmCC,GACxC,OAAO,IAAIv2D,GAAoBu2D,EACnC,C4B5qPeC,CAAoCn+F,EAC/C,QACSwC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFwuB,GAnsDV7hC,EAmsD4C94B,IAAQ,CAA+C,QAC1Lx/B,KAAK2M,WApsDkF2rD,EAAE,CAAAztD,MAosDYsvF,EAAgBruF,QAAhBquF,EAAgBrsF,UAAAjC,WAAc,QAAW,EAC1J,OA5DKsuF,CAAgB,KA2EtB,IAAIyB,GACH,SAAUA,GACPA,SAAqBA,EAAqBC,oBAAyB,GAAK,sBACxED,EAAqBA,EAAqBE,yBAA8B,GAAK,2BAC7EF,EAAqBA,EAAqBG,YAAiB,GAAK,cAChEH,EAAqBA,EAAqBI,YAAiB,GAAK,cAJzDJ,CAKX,CALC,CAKEA,IAAgD,CAAC,GAwIpD,SAASK,MAA0BjgF,GAC/B,MAAM/P,EAAY,GACZiwF,EAAe,IAAIl/E,IACnBm/E,EAA8BD,EAAaj+E,IAAI29E,GAAqBE,0BAC1E,UAAa1uF,kBAAYgvF,gBAAWpgF,EAChCkgF,EAAa76F,IAAI+6F,GACbhvF,EAAWxR,QACXqQ,EAAUjP,KAAKoQ,GAUvB,OAAOoP,GAAyB,CAC2D,GACvF6/E,KACAH,EAAaj+E,IAAI29E,GAAqBC,sBAAwBM,EACxD,GACAG,GAAuB,CAAC,GAC9BrwF,GAER,CCtgEA,IAAIswF,EACH,SAAUA,GAKPA,SAAsBA,EAAsBC,MAAW,GAAK,QAK5DD,EAAsBA,EAAsBE,WAAgB,GAAK,aAKjEF,EAAsBA,EAAsBG,SAAc,GAAK,WAK/DH,EAAsBA,EAAsBI,MAAW,GAAK,QAK5DJ,EAAsBA,EAAsBK,QAAa,GAAK,UAK9DL,EAAsBA,EAAsBM,UAAe,GAAK,YAKhEN,EAAsBA,EAAsBO,MAAW,GAAK,QAK5DP,EAAsBA,EAAsBQ,QAAa,GAAK,UAK9DR,EAAsBA,EAAsBS,UAAe,GAAK,YAKhET,EAAsBA,EAAsBU,aAAkB,GAAK,eAKnEV,EAAsBA,EAAsBW,WAAgB,IAAM,aAKlEX,EAAsBA,EAAsBY,MAAW,IAAM,QAK7DZ,EAAsBA,EAAsBa,QAAa,IAAM,UAjExDb,CAkEX,CAlEC,CAkEEA,GAAkD,CAAC,GAMtD,MAAMc,GAAa,IAqJnB,SAASC,GAAQj9F,EAAMk9F,GACnB,MAAO,CAAE9xF,KAAM8wF,EAAsBQ,QAAS18F,OAAMk9F,cAAavxF,QAAS,CAAC,EAC/E,CA2DA,SAASwxF,GAAQC,EAAS7kF,EAAS,MAC/B,MAAO,CAAEnN,KAAM8wF,EAAsBK,QAAShkF,SAAQ6kF,UAC1D,CAgHA,SAASvL,GAAMrwE,GACX,MAAO,CAAEpW,KAAM8wF,EAAsBO,MAAOlkF,OAAQiJ,EAAQgoD,OAAQ,KACxE,CA8BA,SAAS6zB,GAAMr9F,EAAMuY,EAAQ5M,GACzB,MAAO,CAAEP,KAAM8wF,EAAsBC,MAAOn8F,OAAMuY,SAAQ5M,UAC9D,CAmMA,SAAS2xF,GAAWC,EAAiB36C,EAAOj3C,EAAU,MAClD,MAAO,CAAEP,KAAM8wF,EAAsBE,WAAYoB,KAAMD,EAAiB7qC,UAAW9P,EAAOj3C,UAC9F,CA0eA,MAAM8xF,GACFt9F,YAAYu9F,EAAW,EAAGC,EAAQ,GAC9Bh+F,KAAKi+F,WAAa,GAClBj+F,KAAKk+F,YAAc,GACnBl+F,KAAKm+F,cAAgB,GACrBn+F,KAAKo+F,mBAAqB,GAC1Bp+F,KAAKq+F,oBAAsB,GAC3Br+F,KAAKs+F,UAAW,EAChBt+F,KAAKqf,YAAa,EAClBrf,KAAKu+F,WAAY,EACjBv+F,KAAKw+F,UAAY,EACjBx+F,KAAKy+F,aAAe,KACpBz+F,KAAK0+F,UAAYX,EAAWC,CAChC,CACAW,YACS3+F,KAAKu+F,YACNv+F,KAAKu+F,WAAY,EACjBv+F,KAAKi+F,WAAWp5F,QAASjB,GAAOA,KAChC5D,KAAKi+F,WAAa,GAE1B,CACAW,QAAQh7F,GACJ5D,KAAKq+F,oBAAoBrhG,KAAK4G,GAC9B5D,KAAKk+F,YAAYlhG,KAAK4G,EAC1B,CACAi7F,OAAOj7F,GACH5D,KAAKo+F,mBAAmBphG,KAAK4G,GAC7B5D,KAAKi+F,WAAWjhG,KAAK4G,EACzB,CACA6X,UAAU7X,GACN5D,KAAKm+F,cAAcnhG,KAAK4G,EAC5B,CACAk7F,aACI,OAAO9+F,KAAKs+F,QAChB,CACAlhE,OAAS,CACT2hE,OACS/+F,KAAK8+F,eACN9+F,KAAKg/F,WACLh/F,KAAKi/F,oBAETj/F,KAAKs+F,UAAW,CACpB,CAEAW,mBACI5nE,eAAe,IAAMr3B,KAAK2+F,YAC9B,CACAK,WACIh/F,KAAKk+F,YAAYr5F,QAASjB,GAAOA,KACjC5D,KAAKk+F,YAAc,EACvB,CACAgB,QAAU,CACVC,UAAY,CACZC,SACIp/F,KAAK2+F,WACT,CACA1+E,UACSjgB,KAAKqf,aACNrf,KAAKqf,YAAa,EACbrf,KAAK8+F,cACN9+F,KAAKg/F,WAETh/F,KAAKo/F,SACLp/F,KAAKm+F,cAAct5F,QAASjB,GAAOA,KACnC5D,KAAKm+F,cAAgB,GAE7B,CACA5gE,QACIv9B,KAAKs+F,UAAW,EAChBt+F,KAAKu+F,WAAY,EACjBv+F,KAAKk+F,YAAcl+F,KAAKq+F,oBACxBr+F,KAAKi+F,WAAaj+F,KAAKo+F,kBAC3B,CACAiB,YAAYC,GACRt/F,KAAKw+F,UAAYx+F,KAAK0+F,UAAYY,EAAWt/F,KAAK0+F,UAAY,CAClE,CACAa,cACI,OAAOv/F,KAAK0+F,UAAY1+F,KAAKw+F,UAAYx+F,KAAK0+F,UAAY,CAC9D,CAEAc,gBAAgBC,GACZ,MAAMC,EAAuB,SAAbD,EAAuBz/F,KAAKk+F,YAAcl+F,KAAKi+F,WAC/DyB,EAAQ76F,QAASjB,GAAOA,KACxB87F,EAAQ9jG,OAAS,CACrB,EAWJ,MAAM+jG,GACFn/F,YAAYo/F,GACR5/F,KAAKi+F,WAAa,GAClBj+F,KAAKk+F,YAAc,GACnBl+F,KAAKu+F,WAAY,EACjBv+F,KAAKs+F,UAAW,EAChBt+F,KAAKqf,YAAa,EAClBrf,KAAKm+F,cAAgB,GACrBn+F,KAAKy+F,aAAe,KACpBz+F,KAAK0+F,UAAY,EACjB1+F,KAAK6/F,QAAUD,EACf,IAAIE,EAAY,EACZC,EAAe,EACfC,EAAa,EACjB,MAAMl4F,EAAQ9H,KAAK6/F,QAAQjkG,OACd,GAATkM,EACAuvB,eAAe,IAAMr3B,KAAK2+F,aAG1B3+F,KAAK6/F,QAAQh7F,QAASo7F,IAClBA,EAAOpB,OAAO,OACJiB,GAAah4F,GACf9H,KAAK2+F,WAAU,GAGvBsB,EAAOxkF,UAAU,OACPskF,GAAgBj4F,GAClB9H,KAAKkgG,YAAW,GAGxBD,EAAOrB,QAAQ,OACLoB,GAAcl4F,GAChB9H,KAAKg/F,UAAS,EAErB,GAGTh/F,KAAK0+F,UAAY1+F,KAAK6/F,QAAQ/9F,OAAO,CAACq+F,EAAMF,IAAWh+F,KAAKisB,IAAIiyE,EAAMF,EAAOvB,WAAY,EAC7F,CACAC,YACS3+F,KAAKu+F,YACNv+F,KAAKu+F,WAAY,EACjBv+F,KAAKi+F,WAAWp5F,QAASjB,GAAOA,KAChC5D,KAAKi+F,WAAa,GAE1B,CACA7gE,OACIp9B,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAO7iE,OAC5C,CACAwhE,QAAQh7F,GACJ5D,KAAKk+F,YAAYlhG,KAAK4G,EAC1B,CACAo7F,WACSh/F,KAAK8+F,eACN9+F,KAAKs+F,UAAW,EAChBt+F,KAAKk+F,YAAYr5F,QAASjB,GAAOA,KACjC5D,KAAKk+F,YAAc,GAE3B,CACAW,OAAOj7F,GACH5D,KAAKi+F,WAAWjhG,KAAK4G,EACzB,CACA6X,UAAU7X,GACN5D,KAAKm+F,cAAcnhG,KAAK4G,EAC5B,CACAk7F,aACI,OAAO9+F,KAAKs+F,QAChB,CACAS,OACS/+F,KAAKy+F,cACNz+F,KAAKo9B,OAETp9B,KAAKg/F,WACLh/F,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAOlB,OAC5C,CACAG,QACIl/F,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAOf,QAC5C,CACAC,UACIn/F,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAOd,UAC5C,CACAC,SACIp/F,KAAK2+F,YACL3+F,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAOb,SAC5C,CACAn/E,UACIjgB,KAAKkgG,YACT,CACAA,aACSlgG,KAAKqf,aACNrf,KAAKqf,YAAa,EAClBrf,KAAK2+F,YACL3+F,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAOhgF,WACxCjgB,KAAKm+F,cAAct5F,QAASjB,GAAOA,KACnC5D,KAAKm+F,cAAgB,GAE7B,CACA5gE,QACIv9B,KAAK6/F,QAAQh7F,QAASo7F,GAAWA,EAAO1iE,SACxCv9B,KAAKqf,YAAa,EAClBrf,KAAKu+F,WAAY,EACjBv+F,KAAKs+F,UAAW,CACpB,CACAe,YAAYe,GACR,MAAMC,EAAiBD,EAAIpgG,KAAK0+F,UAChC1+F,KAAK6/F,QAAQh7F,QAASo7F,IAClB,MAAMX,EAAWW,EAAOvB,UAAYz8F,KAAKq+F,IAAI,EAAGD,EAAiBJ,EAAOvB,WAAa,EACrFuB,EAAOZ,YAAYC,EAAQ,EAEnC,CACAC,cACI,MAAMgB,EAAgBvgG,KAAK6/F,QAAQ/9F,OAAO,CAAC0+F,EAAcP,IACT,OAAjBO,GAAyBP,EAAOvB,UAAY8B,EAAa9B,UACxDuB,EAASO,EACtC,MACH,OAAwB,MAAjBD,EAAwBA,EAAchB,cAAgB,CACjE,CACAkB,gBACIzgG,KAAK6/F,QAAQh7F,QAASo7F,IACdA,EAAOQ,eACPR,EAAOQ,eAAc,EAGjC,CAEAjB,gBAAgBC,GACZ,MAAMC,EAAuB,SAAbD,EAAuBz/F,KAAKk+F,YAAcl+F,KAAKi+F,WAC/DyB,EAAQ76F,QAASjB,GAAOA,KACxB87F,EAAQ9jG,OAAS,CACrB,ECr0CJ,SAAS8kG,GAAmBp3B,GACxB,OAAO,IAAI2X,EAAc,KAAkDjxE,EAC/E,CAqVA,SAAS2wF,GAAoBd,GACzB,OAAQA,EAAQjkG,QACZ,KAAK,EACD,OAAO,IAAIkiG,GACf,KAAK,EACD,OAAO+B,EAAQ,GACnB,QACI,OAAO,IAAIe,GAAsBf,GAE7C,CACA,SAASgB,GAAqBC,EAAYC,EAAWC,EAAY,IAAIxhF,IAAOyhF,EAAa,IAAIzhF,KACzF,MAAM1f,EAAS,GACTohG,EAAsB,GAC5B,IAAIC,GAAiB,EACjBC,EAAmB,KA8BvB,GA7BAL,EAAUl8F,QAASw8F,IACf,MAAMx3B,EAASw3B,EAAGpxF,IAAI,UAChBqxF,EAAez3B,GAAUs3B,EACzBI,EAAsBD,GAAgBF,GAAqB,IAAI5hF,IACrE6hF,EAAGx8F,QAAQ,CAACuiF,EAAK3sB,KACb,IAAI+mC,EAAiB/mC,EACjBgnC,EAAkBra,EACtB,GAAa,WAAT3sB,EAEA,OADA+mC,EAAiBV,EAAWY,sBAAsBF,EAAgB1hG,GAC1D2hG,GACJ,IDw9BD,ICv9BKA,EAAkBT,EAAU/wF,IAAIwqD,GAChC,MACJ,KAAK4iC,GACDoE,EAAkBR,EAAWhxF,IAAIwqD,GACjC,MACJ,QACIgnC,EAAkBX,EAAWa,oBAAoBlnC,EAAM+mC,EAAgBC,EAAiB3hG,GAIpGyhG,EAAmB1hF,IAAI2hF,EAAgBC,EAAe,GAErDH,GACDJ,EAAoBlkG,KAAKukG,GAE7BH,EAAmBG,EACnBJ,EAAiBt3B,IAEjB/pE,EAAOlE,OACP,MAnTR,SAASgmG,KACL,OAAO,IAAI3gB,EAAc,MAA8CjxE,EAI3E,CA8Sc4xF,GAEV,OAAOV,CACX,CACA,SAASW,GAAe5B,EAAQ1+B,EAAWp6C,EAAO3G,GAC9C,OAAQ+gD,GACJ,IAAK,QACD0+B,EAAOrB,QAAQ,IAAMp+E,EAAS2G,GAAS26E,GAAmB36E,EAAO,QAAS84E,KAC1E,MACJ,IAAK,OACDA,EAAOpB,OAAO,IAAMr+E,EAAS2G,GAAS26E,GAAmB36E,EAAO,OAAQ84E,KACxE,MACJ,IAAK,UACDA,EAAOxkF,UAAU,IAAM+E,EAAS2G,GAAS26E,GAAmB36E,EAAO,UAAW84E,KAG1F,CACA,SAAS6B,GAAmB9gG,EAAGy+F,EAAWQ,GACtC,MAEM94E,EAAQ46E,GAAmB/gG,EAAEsnC,QAAStnC,EAAEghG,YAAahhG,EAAEihG,UAAWjhG,EAAEkhG,QAASzC,GAAaz+F,EAAEy+F,UAFhFQ,EAAOvB,WAE6G19F,EAAE09F,YADvHuB,EAAOkC,UAElBzpF,EAAO1X,EAAEohG,MACf,OAAY,MAAR1pF,IACAyO,EAAMi7E,MAAW1pF,GAEdyO,CACX,CACA,SAAS46E,GAAmBz5D,EAAS05D,EAAaC,EAAWC,EAASzC,EAAY,GAAIf,EAAY,EAAGyD,GACjG,MAAO,CAAE75D,UAAS05D,cAAaC,YAAWC,UAASzC,YAAWf,YAAWyD,WAAYA,EACzF,CACA,SAASE,GAAqBniG,EAAKuK,EAAKxC,GACpC,IAAIzK,EAAQ0C,EAAI+P,IAAIxF,GACpB,OAAKjN,GACD0C,EAAI2f,IAAIpV,EAAMjN,EAAQyK,GAEnBzK,CACX,CACA,SAAS8kG,GAAqBC,GAC1B,MAAMC,EAAeD,EAAQ7gG,QAAQ,KAGrC,MAAO,CAFI6gG,EAAQt3F,UAAU,EAAGu3F,GACjBD,EAAQl8F,MAAMm8F,EAAe,GAEhD,CACA,MAAMC,UAAgD/iE,SAAa,IAAc,KAAOA,SAAS+iE,gBACjG,SAASC,GAAiBp6D,GACtB,MAAMzkC,EAASykC,EAAQW,YAAcX,EAAQh4B,MAAQ,KACrD,OAAIzM,IAAW4+F,GACJ,KAEJ5+F,CACX,CAMA,IAAI8+F,GAAe,KACfC,IAAa,EAyBjB,SAASC,GAAgBC,EAAMC,GAC3B,KAAOA,GAAM,CACT,GAAIA,IAASD,EACT,OAAO,EAEXC,EAAOL,GAAiBK,EAC5B,CACA,OAAO,CACX,CACA,SAASC,GAAY16D,EAAS1yB,EAAU1I,GACpC,GAAIA,EACA,OAAOxN,MAAM8jD,KAAKlb,EAAQuqD,iBAAiBj9E,IAE/C,MAAMq2D,EAAO3jC,EAAQpI,cAActqB,GACnC,OAAOq2D,EAAO,CAACA,GAAQ,EAC3B,CAUA,IAKMg3B,GAAmB,MAAzB,MAAMA,EAIFC,sBAAsBzoC,GAClB,OA3DR,SAASyoC,GAAsBzoC,GACtBkoC,KACDA,GAgBR,SAASQ,KACL,cAAWzjE,SAAY,IACZA,SAASO,KAEb,IACX,CArBuBkjE,IAAiB,CAAC,EACjCP,KAAaD,GAAazQ,OAAQ,qBAAsByQ,GAAazQ,OAEzE,IAAIlrF,GAAS,EACb,OAAI27F,GAAazQ,QAbrB,SAASkR,GAAqB3oC,GAG1B,MAA+B,SAAxBA,EAAKxvD,UAAU,EAAG,EAC7B,CAS+Bm4F,CAAqB3oC,KAC5CzzD,EAASyzD,KAAQkoC,GAAazQ,OACzBlrF,GAAU47F,KAEX57F,EADkB,SAAWyzD,EAAKl5C,OAAO,GAAG+mE,cAAgB7tB,EAAKp0D,MAAM,KACjDs8F,GAAazQ,QAGpClrF,CACX,CA6Cek8F,CAAsBzoC,EACjC,CAKAooC,gBAAgBC,EAAMC,GAClB,OAAOF,GAAgBC,EAAMC,EACjC,CAIAL,iBAAiBp6D,GACb,OAAOo6D,GAAiBp6D,EAC5B,CAKA+6D,MAAM/6D,EAAS1yB,EAAU1I,GACrB,OAAO81F,GAAY16D,EAAS1yB,EAAU1I,EAC1C,CAIAo2F,aAAah7D,EAASmyB,EAAMxyD,GACxB,OAAOA,GAAgB,EAC3B,CAIAu1F,QAAQl1D,EAASy4D,EAAWhD,EAAUC,EAAOuF,EAAQC,EAAkB,GAAIC,GACvE,OAAO,IAAI3F,GAAoBC,EAAUC,EAC7C,QACSh+F,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFs3B,EAAmB,CAAsD,QAC1KjjG,KAAK2M,WADkF2rD,EAAE,CAAAztD,MACYo4F,EAAmBn3F,QAAnBm3F,EAAmBn1F,WAAK,EACzI,OAzCKm1F,CAAmB,KAgDzB,MAAMS,UAIO1jG,KAAK2jG,KAAO,IAAIV,EAAuB,EAGpD,MAAMW,IAWN,MAAMC,GAAa,IAGbC,GAAkB,WAClBC,GAAkB,WAClBC,GAAuB,aACvBC,GAAsB,cACtBC,GAAyB,eACzBC,GAAwB,gBAC9B,SAASC,GAAmB5mG,GACxB,GAAoB,iBAATA,EACP,OAAOA,EACX,MAAMq7C,EAAUr7C,EAAMgpC,MAAM,qBAC5B,OAAKqS,GAAWA,EAAQj9C,OAAS,EACtB,EACJyoG,GAAsB/nB,WAAWzjC,EAAQ,IAAKA,EAAQ,GACjE,CACA,SAASwrD,GAAsB7mG,EAAO8mG,GAClC,MACS,MADDA,EAEO9mG,EAAQqmG,GAERrmG,CAEnB,CACA,SAAS+mG,GAAc9G,EAAS39F,EAAQ0kG,GACpC,OAAO/G,EAAQxzF,eAAe,YACxBwzF,EAGV,SAASgH,GAAoBn7B,EAAKxpE,EAAQ0kG,GAEtC,IAAIzG,EACAC,EAAQ,EACRuF,EAAS,GACb,GAAmB,iBAARj6B,EAAkB,CACzB,MAAMzwB,EAAUywB,EAAI9iC,MALV,4EAMV,GAAgB,OAAZqS,EACA/4C,SAAO9C,KAAK0jG,MACL,CAAE3C,SAAU,EAAGC,MAAO,EAAGuF,OAAQ,IAE5CxF,EAAWsG,GAAsB/nB,WAAWzjC,EAAQ,IAAKA,EAAQ,IACjE,MAAM6rD,EAAa7rD,EAAQ,GACT,MAAd6rD,IACA1G,EAAQqG,GAAsB/nB,WAAWooB,GAAa7rD,EAAQ,KAElE,MAAM8rD,EAAY9rD,EAAQ,GACtB8rD,IACApB,EAASoB,EAEjB,MAEI5G,EAAWz0B,EAEf,IAAKk7B,EAAqB,CACtB,IAAII,GAAiB,EACjB1qC,EAAap6D,EAAOlE,OACpBmiG,EAAW,IACXj+F,EAAO9C,KA7mBnB,SAAS6nG,KACL,OAAO,IAAI5jB,EAAc,MAAiDjxE,EAC9E,CA2mBwB60F,IACZD,GAAiB,GAEjB5G,EAAQ,IACRl+F,EAAO9C,KA9mBnB,SAAS8nG,KACL,OAAO,IAAI7jB,EAAc,MAAkDjxE,EAC/E,CA4mBwB80F,IACZF,GAAiB,GAEjBA,GACA9kG,EAAO+B,OAAOq4D,EAAY,EAAGwmC,KAErC,CACA,MAAO,CAAE3C,WAAUC,QAAOuF,SAC9B,CA1CUkB,CAAoBhH,EAAS39F,EAAQ0kG,EAC/C,CAsDA,SAASO,GAAUz8D,EAAS1vB,EAAQosF,GAChCpsF,EAAO/T,QAAQ,CAACuiF,EAAK3sB,KACjB,MAAMwqC,EAAYC,GAAoBzqC,GAClCuqC,IAAiBA,EAAa/mF,IAAIw8C,IAClCuqC,EAAanlF,IAAI46C,EAAMnyB,EAAQ4pD,MAAM+S,IAEzC38D,EAAQ4pD,MAAM+S,GAAa7d,GAEnC,CACA,SAAS+d,GAAY78D,EAAS1vB,GAC1BA,EAAO/T,QAAQ,CAACgU,EAAG4hD,KACf,MAAMwqC,EAAYC,GAAoBzqC,GACtCnyB,EAAQ4pD,MAAM+S,GAAa,IAEnC,CACA,SAASG,GAAwBniD,GAC7B,OAAIvjD,MAAMD,QAAQwjD,GACM,GAAhBA,EAAMrnD,OACCqnD,EAAM,GDjTzB,SAAS8T,GAAS9T,EAAOj3C,EAAU,MAC/B,MAAO,CAAEP,KAAM8wF,EAAsBG,SAAUz5C,QAAOj3C,UAC1D,CCgTe+qD,CAAS9T,GAEbA,CACX,CAYA,MAAMoiD,GAAc,IAAInjD,OAAO,oBAAmE,KAClG,SAASojD,GAAmB9nG,GACxB,IAAI8pF,EAAS,GACb,GAAqB,iBAAV9pF,EAAoB,CAC3B,IAAIgpC,EACJ,KAAQA,EAAQ6+D,GAAYE,KAAK/nG,IAC7B8pF,EAAOtqF,KAAKwpC,EAAM,IAEtB6+D,GAAYG,UAAY,CAC5B,CACA,OAAOle,CACX,CACA,SAASme,GAAkBjoG,EAAO8pF,EAAQxnF,GACtC,MAAM4lG,EAAW,GAAGloG,IACdmoG,EAAMD,EAASjkF,QAAQ4jF,GAAa,CAACxsF,EAAG+sF,KAC1C,IAAIC,EAAWve,EAAOse,GAEtB,OAAgB,MAAZC,IACA/lG,EAAO9C,KAhrBnB,SAAS8oG,KACL,OAAO,IAAI7kB,EAAc,MAAiDjxE,EAC9E,CA8qBwB81F,IACZD,EAAW,IAERA,EAAS1lG,UAAS,GAG7B,OAAOwlG,GAAOD,EAAWloG,EAAQmoG,CACrC,CACA,MAAMI,GAAmB,gBACzB,SAASb,GAAoB3/F,GACzB,OAAOA,EAAMkc,QAAQskF,GAAkB,IAAIC,IAAMA,EAAE,GAAG1d,cAC1D,CA0BA,SAAS2d,GAAazoF,EAAShiB,EAAM8H,GACjC,OAAQ9H,EAAKiQ,MACT,KAAK8wF,EAAsBQ,QACvB,OAAOv/E,EAAQ0oF,aAAa1qG,EAAM8H,GACtC,KAAKi5F,EAAsBC,MACvB,OAAOh/E,EAAQ2oF,WAAW3qG,EAAM8H,GACpC,KAAKi5F,EAAsBE,WACvB,OAAOj/E,EAAQ4oF,gBAAgB5qG,EAAM8H,GACzC,KAAKi5F,EAAsBG,SACvB,OAAOl/E,EAAQ6oF,cAAc7qG,EAAM8H,GACvC,KAAKi5F,EAAsBI,MACvB,OAAOn/E,EAAQ8oF,WAAW9qG,EAAM8H,GACpC,KAAKi5F,EAAsBK,QACvB,OAAOp/E,EAAQ+oF,aAAa/qG,EAAM8H,GACtC,KAAKi5F,EAAsBM,UACvB,OAAOr/E,EAAQgpF,eAAehrG,EAAM8H,GACxC,KAAKi5F,EAAsBO,MACvB,OAAOt/E,EAAQipF,WAAWjrG,EAAM8H,GACpC,KAAKi5F,EAAsBS,UACvB,OAAOx/E,EAAQkpF,eAAelrG,EAAM8H,GACxC,KAAKi5F,EAAsBU,aACvB,OAAOz/E,EAAQmpF,kBAAkBnrG,EAAM8H,GAC3C,KAAKi5F,EAAsBW,WACvB,OAAO1/E,EAAQopF,gBAAgBprG,EAAM8H,GACzC,KAAKi5F,EAAsBY,MACvB,OAAO3/E,EAAQqpF,WAAWrrG,EAAM8H,GACpC,KAAKi5F,EAAsBa,QACvB,OAAO5/E,EAAQspF,aAAatrG,EAAM8H,GACtC,QACI,MA/uBZ,SAASyjG,KACL,OAAO,IAAI9lB,EAAc,MAA+CjxE,EAC5E,CA6uBkB+2F,GAElB,CACA,SAASzD,GAAah7D,EAASmyB,GAC3B,OAAO90B,OAAOqhE,iBAAiB1+D,GAASmyB,EAC5C,CAEA,MAAMwsC,GAAuB,IAAIjqF,IAAI,CACjC,QACA,SACA,WACA,YACA,WACA,YACA,OACA,MACA,SACA,QACA,WACA,eACA,gBACA,aACA,cACA,gBACA,eACA,YACA,aACA,eACA,cACA,eACA,cACA,iBACA,kBACA,mBACA,oBACA,aACA,gBAEJ,MAAMkqF,WAAqCtD,GACvClC,sBAAsByF,EAAcrnG,GAChC,OAAOolG,GAAoBiC,EAC/B,CACAxF,oBAAoByF,EAAsBC,EAAoB7pG,EAAOsC,GACjE,IAAIwkG,EAAO,GACX,MAAMgD,EAAS9pG,EAAM2C,WAAWgX,OAChC,GAAI8vF,GAAqBhpF,IAAIopF,IAAiC,IAAV7pG,GAAyB,MAAVA,EAC/D,GAAqB,iBAAVA,EACP8mG,EAAO,SAEN,CACD,MAAMiD,EAAoB/pG,EAAMgpC,MAAM,0BAClC+gE,GAAoD,GAA/BA,EAAkB,GAAG3rG,QAC1CkE,EAAO9C,KAhyB3B,SAASwqG,KACL,OAAO,IAAIvmB,EAAc,MAAoDjxE,EACjF,CA8xBgCw3F,GAEpB,CAEJ,OAAOF,EAAShD,CACpB,EAgCJ,MAAMmD,GAAY,IAwDlB,MAAMC,GAAsB,IAAI1qF,IAAI,CAAC,OAAQ,MACvC2qF,GAAuB,IAAI3qF,IAAI,CAAC,QAAS,MAC/C,SAAS4qF,GAAqBC,EAAKC,GAC/B,MAAMC,EAAoBL,GAAoBzpF,IAAI4pF,IAAQF,GAAqB1pF,IAAI4pF,GAC7EG,EAAoBN,GAAoBzpF,IAAI6pF,IAAQH,GAAqB1pF,IAAI6pF,GACnF,MAAO,CAAC7F,EAAWC,KACf,IAAI+F,EAAWJ,GAAOJ,IAAaI,GAAO5F,EACtCiG,EAAWJ,GAAOL,IAAaK,GAAO5F,EAC1C,OAAK+F,GAAYF,GAA0C,kBAAd9F,IACzCgG,EAAWhG,EAAYyF,GAAoBzpF,IAAI4pF,GAAOF,GAAqB1pF,IAAI4pF,KAE9EK,GAAYF,GAAwC,kBAAZ9F,IACzCgG,EAAWhG,EAAUwF,GAAoBzpF,IAAI6pF,GAAOH,GAAqB1pF,IAAI6pF,IAE1EG,GAAYC,EAE3B,CAEA,MACMC,GAAmB,IAAIjmD,OAAO,cAAuB,KAqC3D,SAASkmD,GAAkBC,EAAQ36C,EAAU5tD,EAAQwoG,GACjD,OAAO,IAAIC,GAA2BF,GAAQ3X,MAAMhjC,EAAU5tD,EAAQwoG,EAC1E,CAEA,MAAMC,GACF/nG,YAAYgoG,GACRxoG,KAAKwoG,QAAUA,CACnB,CACA9X,MAAMhjC,EAAU5tD,EAAQwoG,GACpB,MAAMhlG,EAAU,IAAImlG,GAA2B3oG,GAC/C,OAAAE,KAAK0oG,8BAA8BplG,GACtB2iG,GAAajmG,KAAMolG,GAAwB13C,GAAWpqD,EASvE,CACAolG,8BAA8BplG,GAC1BA,EAAQqlG,qBAnBM,GAoBdrlG,EAAQslG,gBAAkB,IAAIppF,IAC9Blc,EAAQslG,gBAAgB/oF,IArBV,GAqB6B,IAAIL,KAC/Clc,EAAQulG,YAAc,CAC1B,CACA3C,aAAax4C,EAAUpqD,GACnB,IAAIwlG,EAAcxlG,EAAQwlG,WAAa,EACnCC,EAAYzlG,EAAQylG,SAAW,EACnC,MAAMC,EAAS,GACTC,EAAc,GACpB,MAA+B,KAA3Bv7C,EAASrtD,KAAKkhB,OAAO,IACrBje,EAAQxD,OAAO9C,KAn9B3B,SAASksG,KACL,OAAO,IAAIjoB,EAAc,MAA6CjxE,EAE1E,CAg9BgCk5F,IAExBx7C,EAAS6vC,YAAY14F,QAAS+S,IAE1B,GADA5X,KAAK0oG,8BAA8BplG,GAC/BsU,EAAInM,MAAQ8wF,EAAsBC,MAAO,CACzC,MAAM2M,EAAWvxF,EACXvX,EAAO8oG,EAAS9oG,KACtBA,EACKF,WACAoiC,MAAM,WACN19B,QAASukG,IACVD,EAAS9oG,KAAO+oG,EAChBJ,EAAOhsG,KAAKgD,KAAKmmG,WAAWgD,EAAU7lG,GAAQ,GAElD6lG,EAAS9oG,KAAOA,CACpB,SACSuX,EAAInM,MAAQ8wF,EAAsBE,WAAY,CACnD,MAAMkB,EAAa39F,KAAKomG,gBAAgBxuF,EAAKtU,GAC7CwlG,GAAcnL,EAAWmL,WACzBC,GAAYpL,EAAWoL,SACvBE,EAAYjsG,KAAK2gG,EACrB,MAEIr6F,EAAQxD,OAAO9C,KAt+B/B,SAASqsG,KACL,OAAO,IAAIpoB,EAAc,MAAgDjxE,EAC7E,CAo+BoCq5F,GAAmB,GAGxC,CACH59F,KAAM8wF,EAAsBQ,QAC5B18F,KAAMqtD,EAASrtD,KACf2oG,SACAC,cACAH,aACAC,WACA/8F,QAAS,KAEjB,CACAm6F,WAAWz4C,EAAUpqD,GACjB,MAAMgmG,EAAWtpG,KAAKymG,WAAW/4C,EAAS90C,OAAQtV,GAC5CimG,EAAa77C,EAAS1hD,SAAW0hD,EAAS1hD,QAAQs7E,QAAW,KACnE,GAAIgiB,EAASE,sBAAuB,CAChC,MAAMC,EAAc,IAAIzsF,IAClBsqE,EAASiiB,GAAa,CAAC,EAC7BD,EAAS1wF,OAAO/T,QAASqtF,IACjBA,aAAiB1yE,KACjB0yE,EAAMrtF,QAASrH,IACX8nG,GAAmB9nG,GAAOqH,QAAS1D,IAC1BmmF,EAAOr9E,eAAe9I,IACvBsoG,EAAYpoG,IAAIF,EAAG,EAE1B,EACJ,GAGLsoG,EAAYxzE,MACZ3yB,EAAQxD,OAAO9C,KAlgC/B,SAAS0sG,KACL,OAAO,IAAIzoB,EAAc,MAA2CjxE,EAExE,CA+/BoC05F,CAAah8C,EAAmB+7C,EAAYlgG,UAExE,CACA,MAAO,CACHkC,KAAM8wF,EAAsBC,MAC5Bn8F,KAAMqtD,EAASrtD,KACf6xF,MAAOoX,EACPt9F,QAASu9F,EAAY,CAAEjiB,OAAQiiB,GAAc,KAErD,CACAnD,gBAAgB14C,EAAUpqD,GACtBA,EAAQwlG,WAAa,EACrBxlG,EAAQylG,SAAW,EACnB,MAAMh2C,EAAYkzC,GAAajmG,KAAMolG,GAAwB13C,EAASqF,WAAYzvD,GAC5EqmG,EApNd,SAASC,GAAoBC,EAAiB/pG,GAC1C,MAAMgqG,EAAc,GACpB,MAA8B,iBAAnBD,EACPA,EACKtnE,MAAM,WACN19B,QAAS8gG,GAOtB,SAASoE,GAAwBC,EAAUF,EAAahqG,GACpD,GAAmB,KAAfkqG,EAAS,GAAW,CACpB,MAAMhjG,EAsBd,SAASijG,GAAoBC,EAAOpqG,GAChC,OAAQoqG,GACJ,IAAK,SACD,MAAO,YACX,IAAK,SACD,MAAO,YACX,IAAK,aACD,MAAO,CAACjI,EAAWC,IAAY5lB,WAAW4lB,GAAW5lB,WAAW2lB,GACpE,IAAK,aACD,MAAO,CAACA,EAAWC,IAAY5lB,WAAW4lB,GAAW5lB,WAAW2lB,GACpE,QACIniG,SAAO9C,KAt0BnB,SAASmtG,KACL,OAAO,IAAIlpB,EAAc,MAAsDjxE,EACnF,CAo0BwBm6F,IACL,SAEnB,CApCuBF,CAAoBD,EAAUlqG,GAC7C,GAAqB,mBAAVkH,EAEP,YADA8iG,EAAY9sG,KAAKgK,GAGrBgjG,EAAWhjG,CACf,CACA,MAAMw/B,EAAQwjE,EAASxjE,MAAM,2CAC7B,GAAa,MAATA,GAAiBA,EAAM5qC,OAAS,EAChCkE,SAAO9C,KAjzBf,SAASotG,KACL,OAAO,IAAInpB,EAAc,MAAgDjxE,EAC7E,CA+yBoBo6F,IACLN,EAEX,MAAM7H,EAAYz7D,EAAM,GAClB6jE,EAAY7jE,EAAM,GAClB07D,EAAU17D,EAAM,GACtBsjE,EAAY9sG,KAAK4qG,GAAqB3F,EAAWC,IAE7B,KAAhBmI,EAAU,KADapI,GAAawF,IAAavF,GAAWuF,KAE5DqC,EAAY9sG,KAAK4qG,GAAqB1F,EAASD,GAGvD,CA9B8B8H,CAAwBpE,EAAKmE,EAAahqG,IAGhEgqG,EAAY9sG,KAAK6sG,GAEdC,CACX,CAyMyBF,CAAoBl8C,EAASmwC,KAAMv6F,EAAQxD,QAC5D,MAAO,CACH2L,KAAM8wF,EAAsBE,WAC5BkN,WACA52C,YACA+1C,WAAYxlG,EAAQwlG,WACpBC,SAAUzlG,EAAQylG,SAClB/8F,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACAq6F,cAAc34C,EAAUpqD,GACpB,MAAO,CACHmI,KAAM8wF,EAAsBG,SAC5Bz5C,MAAOyK,EAASzK,MAAM/iD,IAAKmkC,GAAM4hE,GAAajmG,KAAMqkC,EAAG/gC,IACvD0I,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACAs6F,WAAW54C,EAAUpqD,GACjB,MAAMulG,EAAcvlG,EAAQulG,YAC5B,IAAI0B,EAAe,EACnB,MAAMtnD,EAAQyK,EAASzK,MAAM/iD,IAAKgjD,IAC9B5/C,EAAQulG,YAAcA,EACtB,MAAM2B,EAAWvE,GAAajmG,KAAMkjD,EAAM5/C,GAC1CinG,SAAetoG,KAAKisB,IAAIq8E,EAAcjnG,EAAQulG,aACvC2B,IAEXlnG,SAAQulG,YAAc0B,EACf,CACH9+F,KAAM8wF,EAAsBI,MAC5B15C,QACAj3C,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACAu6F,aAAa74C,EAAUpqD,GACnB,MAAMmnG,EAqSd,SAASC,GAAmBltG,EAAOsC,GAC/B,GAAItC,EAAMyM,eAAe,YACrB,OAAOzM,EAEX,GAAoB,iBAATA,EAEP,OAAOmtG,GADUpG,GAAc/mG,EAAOsC,GAAQi+F,SACf,EAAG,IAEtC,MAAM9iD,EAAWz9C,EAEjB,GADkBy9C,EAAS1Y,MAAM,OAAOlF,KAAMxN,GAAqB,KAAfA,EAAEtO,OAAO,IAA4B,KAAfsO,EAAEtO,OAAO,IACpE,CACX,MAAMqpF,EAAMD,GAAc,EAAG,EAAG,IAChCC,SAAIC,SAAU,EACdD,EAAI3vD,SAAWA,EACR2vD,CACX,CACA,MAAMnN,EAAU8G,GAActpD,EAAUn7C,GACxC,OAAO6qG,GAAclN,EAAQM,SAAUN,EAAQO,MAAOP,EAAQ8F,OAClE,CAvT0BmH,CAAmBh9C,EAAS+vC,QAASn6F,EAAQxD,QAC/DwD,EAAQwnG,sBAAwBL,EAChC,IAAInB,EACAyB,EAAgBr9C,EAAS90C,OACvB80C,EAAS90C,OACTs5E,GAAM,CAAC,GACb,GAAI6Y,EAAct/F,MAAQ8wF,EAAsBM,UAC5CyM,EAAWtpG,KAAKwmG,eAAeuE,EAAeznG,OAE7C,CACD,IAAIynG,EAAgBr9C,EAAS90C,OACzBzQ,GAAU,EACd,IAAK4iG,EAAe,CAChB5iG,GAAU,EACV,MAAM6iG,EAAe,CAAC,EAClBP,EAAUlH,SACVyH,EAAazH,OAAYkH,EAAUlH,QAEvCwH,EAAgB7Y,GAAM8Y,EAC1B,CACA1nG,EAAQulG,aAAe4B,EAAU1M,SAAW0M,EAAUzM,MACtD,MAAMiN,EAAYjrG,KAAKymG,WAAWsE,EAAeznG,GACjD2nG,EAAUC,YAAc/iG,EACxBmhG,EAAW2B,CACf,CACA3nG,SAAQwnG,sBAAwB,KACzB,CACHr/F,KAAM8wF,EAAsBK,QAC5Ba,QAASgN,EACTvY,MAAOoX,EACPt9F,QAAS,KAEjB,CACAy6F,WAAW/4C,EAAUpqD,GACjB,MAAMsnG,EAAM5qG,KAAKmrG,cAAcz9C,EAAUpqD,GACzC,OAAAtD,KAAKorG,kBAAkBR,EAAKtnG,GACrBsnG,CACX,CACAO,cAAcz9C,EAAUpqD,GACpB,MAAMsV,EAAS,GACTyyF,EAAiB3rG,MAAMD,QAAQiuD,EAAS90C,QAAU80C,EAAS90C,OAAS,CAAC80C,EAAS90C,QACpF,QAAS0yF,KAAcD,EACO,iBAAfC,EACHA,IAAejO,GACfzkF,EAAO5b,KAAKsuG,GAGZhoG,EAAQxD,OAAO9C,KA5lCxB,IAAIikF,EAAc,MAAiDjxE,IAgmC9D4I,EAAO5b,KAAK,IAAIwiB,IAAI5lB,OAAOsrF,QAAQomB,KAG3C,IAAI9B,GAAwB,EACxB+B,EAAkB,KACtB3yF,SAAO/T,QAAS2mG,IACZ,GAAIA,aAAqBhsF,MACjBgsF,EAAUvtF,IAAI,YACdstF,EAAkBC,EAAUv7F,IAAI,UAChCu7F,EAAUx1E,OAAO,YAEhBwzE,GACD,QAAShsG,KAASguG,EAAUjiG,SACxB,GAAI/L,EAAM2C,WAAWuB,QAxlBb,OAwlBiD,EAAG,CACxD8nG,GAAwB,EACxB,KACJ,IAKT,CACH/9F,KAAM8wF,EAAsBO,MAC5BlkF,SACA2qF,OAAQgI,EACR1hC,OAAQnc,EAASmc,OACjB2/B,wBACAx9F,QAAS,KAEjB,CACAo/F,kBAAkBR,EAAKtnG,GACnB,MAAMm6F,EAAUn6F,EAAQwnG,sBACxB,IAAIW,EAAUnoG,EAAQulG,YAClB6C,EAAYpoG,EAAQulG,YACpBpL,GAAWiO,EAAY,IACvBA,GAAajO,EAAQM,SAAWN,EAAQO,OAE5C4M,EAAIhyF,OAAO/T,QAAS8mG,IACK,iBAAVA,GAEXA,EAAM9mG,QAAQ,CAACrH,EAAOi9D,KAUlB,MAAMmuC,EAAkBtlG,EAAQslG,gBAAgB34F,IAAI3M,EAAQqlG,sBACtDiD,EAAiBhD,EAAgB34F,IAAIwqD,GAC3C,IAAIoxC,GAAuB,EACvBD,IACIF,GAAaD,GACbC,GAAaE,EAAeF,WAC5BD,GAAWG,EAAeH,UAC1BnoG,EAAQxD,OAAO9C,KAnpCvC,SAAS8uG,KACL,OAAO,IAAI7qB,EAAc,MAAwDjxE,EAErF,CAgpC4C87F,IACpBD,GAAuB,GAK3BH,EAAYE,EAAeF,WAE3BG,GACAjD,EAAgB/oF,IAAI46C,EAAM,CAAEixC,YAAWD,YAEvCnoG,EAAQ0I,SAtiB5B,SAAS+/F,GAAoBvuG,EAAOwO,EAASlM,GACzC,MAAMwnF,EAASt7E,EAAQs7E,QAAU,CAAC,EAC5BzuC,EAAUysD,GAAmB9nG,GAC/Bq7C,EAAQj9C,QACRi9C,EAAQh0C,QAAS+gG,IACRte,EAAOr9E,eAAe27F,IACvB9lG,EAAO9C,KA7pBvB,SAASgvG,KACL,OAAO,IAAI/qB,EAAc,MAAkDjxE,EAE/E,CA0pB4Bg8F,GAA2B,EAIvD,CA6hBoBD,CAAoBvuG,EAAO8F,EAAQ0I,QAAS1I,EAAQxD,OAAM,EAEjE,EAET,CACA0mG,eAAe94C,EAAUpqD,GACrB,MAAMsnG,EAAM,CAAEn/F,KAAM8wF,EAAsBM,UAAWjkF,OAAQ,GAAI5M,QAAS,MAC1E,IAAK1I,EAAQwnG,sBACTxnG,SAAQxD,OAAO9C,KAnqC3B,SAASivG,KACL,OAAO,IAAIhrB,EAAc,MAA+CjxE,EAC5E,CAiqCgCi8F,IACbrB,EAGX,IAAIsB,EAA4B,EAChC,MAAMC,EAAU,GAChB,IAAIC,GAAoB,EACpBC,GAAsB,EACtBlL,EAAiB,EACrB,MAAMJ,EAAYrzC,EAASzK,MAAM/iD,IAAK0Y,IAClC,MAAMs5E,EAAQlyF,KAAKmrG,cAAcvyF,EAAQtV,GACzC,IAAIgpG,EAA4B,MAAhBpa,EAAMroB,OAAiBqoB,EAAMroB,OAsIzD,SAAS0iC,GAAc3zF,GACnB,GAAqB,iBAAVA,EACP,OAAO,KACX,IAAIixD,EAAS,KACb,GAAInqE,MAAMD,QAAQmZ,GACdA,EAAO/T,QAASymG,IACZ,GAAIA,aAAsB9rF,KAAO8rF,EAAWrtF,IAAI,UAAW,CACvD,MAAMpD,EAAMywF,EACZzhC,EAASyS,WAAWzhE,EAAI5K,IAAI,WAC5B4K,EAAImb,OAAO,SACf,SACH,GAEIpd,aAAkB4G,KAAO5G,EAAOqF,IAAI,UAAW,CACpD,MAAMpD,EAAMjC,EACZixD,EAASyS,WAAWzhE,EAAI5K,IAAI,WAC5B4K,EAAImb,OAAO,SACf,CACA,OAAO6zC,CACX,CAzJkE0iC,CAAcra,EAAMt5E,QACtEixD,EAAS,EACb,OAAiB,MAAbyiC,IACAJ,IACAriC,EAASqoB,EAAMroB,OAASyiC,GAE5BD,EAAsBA,GAAuBxiC,EAAS,GAAKA,EAAS,EACpEuiC,EAAoBA,GAAqBviC,EAASs3B,EAClDA,EAAiBt3B,EACjBsiC,EAAQnvG,KAAK6sE,GACNqoB,IAEPma,GACA/oG,EAAQxD,OAAO9C,KAxrC3B,SAASwvG,KACL,OAAO,IAAIvrB,EAAc,MAA4CjxE,EACzE,CAsrCgCw8F,IAEpBJ,GACA9oG,EAAQxD,OAAO9C,KAxrC3B,SAASyvG,KACL,OAAO,IAAIxrB,EAAc,MAA2DjxE,EACxF,CAsrCgCy8F,IAExB,MAAM7wG,EAAS8xD,EAASzK,MAAMrnD,OAC9B,IAAI8wG,EAAkB,EAClBR,EAA4B,GAAKA,EAA4BtwG,EAC7D0H,EAAQxD,OAAO9C,KA1rC3B,SAAS2vG,KACL,OAAO,IAAI1rB,EAAc,MAAuDjxE,EACpF,CAwrCgC28F,IAEc,GAA7BT,IACLQ,EAhCwB,GAgCiB9wG,EAAS,IAEtD,MAAMgxG,EAAQhxG,EAAS,EACjBitG,EAAcvlG,EAAQulG,YACtBiC,EAAwBxnG,EAAQwnG,sBAChC+B,EAAkB/B,EAAsB/M,SAC9CgD,SAAUl8F,QAAQ,CAACw8F,EAAI7kG,KACnB,MAAMqtE,EAAS6iC,EAAkB,EAAKlwG,GAAKowG,EAAQ,EAAIF,EAAkBlwG,EAAK2vG,EAAQ3vG,GAChFswG,EAAwBjjC,EAASgjC,EACvCvpG,EAAQulG,YAAcA,EAAciC,EAAsB9M,MAAQ8O,EAClEhC,EAAsB/M,SAAW+O,EACjC9sG,KAAKorG,kBAAkB/J,EAAI/9F,GAC3B+9F,EAAGx3B,OAASA,EACZ+gC,EAAIhyF,OAAO5b,KAAKqkG,EAAE,GAEfuJ,CACX,CACAlE,eAAeh5C,EAAUpqD,GACrB,MAAO,CACHmI,KAAM8wF,EAAsBS,UAC5BjqC,UAAWkzC,GAAajmG,KAAMolG,GAAwB13C,EAASqF,WAAYzvD,GAC3E0I,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACA26F,kBAAkBj5C,EAAUpqD,GACxBA,SAAQylG,WACD,CACHt9F,KAAM8wF,EAAsBU,aAC5BjxF,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACA46F,gBAAgBl5C,EAAUpqD,GACtB,MAAO,CACHmI,KAAM8wF,EAAsBW,WAC5BnqC,UAAW/yD,KAAK0mG,eAAeh5C,EAASqF,UAAWzvD,GACnD0I,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACA66F,WAAWn5C,EAAUpqD,GACjB,MAAMypG,EAAiBzpG,EAAQqlG,qBACzB38F,EAAW0hD,EAAS1hD,SAAW,CAAC,EACtC1I,EAAQwlG,aACRxlG,EAAQ0pG,aAAet/C,EACvB,MAAO93C,EAAUq3F,GAkCzB,SAASC,GAAkBt3F,GACvB,MAAMu3F,IAAev3F,EAAS2sB,MAAM,WAAWpF,KAAMtyB,GA9ZtC,SA8ZgDA,GAG/D,OAAIsiG,IACAv3F,EAAWA,EAAS6L,QAAQ0mF,GAAkB,KAIlDvyF,EAAWA,EACN6L,QAAQ,OAAQwiF,IAChBxiF,QAAQ,QAAU+kB,GAAUy9D,GAAsB,IAAMz9D,EAAMngC,MAAM,IACpEob,QAAQ,cAAe0iF,IACrB,CAACvuF,EAAUu3F,EACtB,CAhDwCD,CAAkBx/C,EAAS93C,UAC3DtS,EAAQqlG,qBAAuBoE,EAAenxG,OACxCmxG,EAAiB,IAAMn3F,EACvBA,EACNysF,GAAqB/+F,EAAQslG,gBAAiBtlG,EAAQqlG,qBAAsB,IAAInpF,KAChF,MAAMuzC,EAAYkzC,GAAajmG,KAAMolG,GAAwB13C,EAASqF,WAAYzvD,GAClFA,SAAQ0pG,aAAe,KACvB1pG,EAAQqlG,qBAAuBoE,EACxB,CACHthG,KAAM8wF,EAAsBY,MAC5BvnF,WACAg3F,MAAO5gG,EAAQ4gG,OAAS,EACxBv8F,WAAYrE,EAAQqE,SACpB48F,cACAl6C,YACAq6C,iBAAkB1/C,EAAS93C,SAC3B5J,QAASs+F,GAA0B58C,EAAS1hD,SAEpD,CACA86F,aAAap5C,EAAUpqD,GACdA,EAAQ0pG,cACT1pG,EAAQxD,OAAO9C,KA1vC3B,SAASqwG,KACL,OAAO,IAAIpsB,EAAc,MAA6CjxE,EAC1E,CAwvCgCq9F,IAExB,MAAM5P,EAA+B,SAArB/vC,EAAS+vC,QACnB,CAAEM,SAAU,EAAGC,MAAO,EAAGuF,OAAQ,QACjCgB,GAAc72C,EAAS+vC,QAASn6F,EAAQxD,QAAQ,GACtD,MAAO,CACH2L,KAAM8wF,EAAsBa,QAC5BrqC,UAAWkzC,GAAajmG,KAAMolG,GAAwB13C,EAASqF,WAAYzvD,GAC3Em6F,UACAzxF,QAAS,KAEjB,EAoBJ,MAAMy8F,GACFjoG,YAAYV,GACRE,KAAKF,OAASA,EACdE,KAAK8oG,WAAa,EAClB9oG,KAAK+oG,SAAW,EAChB/oG,KAAKstG,kBAAoB,KACzBttG,KAAKgtG,aAAe,KACpBhtG,KAAK2oG,qBAAuB,KAC5B3oG,KAAK8qG,sBAAwB,KAC7B9qG,KAAK6oG,YAAc,EACnB7oG,KAAK4oG,gBAAkB,IAAIppF,IAC3Bxf,KAAKgM,QAAU,KACfhM,KAAKutG,8BAAgC,IAAIvwF,GAC7C,EAyCJ,SAASstF,GAA0Bt+F,GAC/B,OAAIA,GACAA,EAAU,IAAKA,IACHs7E,SACRt7E,EAAQs7E,OA7DpB,SAASkmB,GAAgB3yF,GACrB,OAAOA,EAAM,IAAKA,GAAQ,IAC9B,CA2DgC2yF,CAAgBxhG,EAAQs7E,SAIhDt7E,EAAU,CAAC,EAERA,CACX,CACA,SAAS2+F,GAAc5M,EAAUC,EAAOuF,GACpC,MAAO,CAAExF,WAAUC,QAAOuF,SAC9B,CAEA,SAASkK,GAA0BnlE,EAASy4D,EAAW2M,EAAeC,EAAgB5P,EAAUC,EAAOuF,EAAS,KAAMqK,GAAc,GAChI,MAAO,CACHniG,KAAM,EACN68B,UACAy4D,YACA2M,gBACAC,iBACA5P,WACAC,QACAU,UAAWX,EAAWC,EACtBuF,SACAqK,cAER,CAEA,MAAMC,GACFrtG,cACIR,KAAK8tG,KAAO,IAAItuF,GACpB,CACAvP,IAAIq4B,GACA,OAAOtoC,KAAK8tG,KAAK79F,IAAIq4B,IAAY,EACrC,CACA88C,OAAO98C,EAASmb,GACZ,IAAIsqD,EAAuB/tG,KAAK8tG,KAAK79F,IAAIq4B,GACpCylE,GACD/tG,KAAK8tG,KAAKjuF,IAAIyoB,EAAUylE,EAAuB,IAEnDA,EAAqB/wG,QAAQymD,EACjC,CACAxlC,IAAIqqB,GACA,OAAOtoC,KAAK8tG,KAAK7vF,IAAIqqB,EACzB,CACA/nB,QACIvgB,KAAK8tG,KAAKvtF,OACd,EAGJ,MAEMytF,GAAoB,IAAI9rD,OADV,SAC8B,KAE5C+rD,GAAoB,IAAI/rD,OADV,SAC8B,KA+ElD,SAASgsD,GAAwB7F,EAAQ7xD,EAAao0D,EAAKuD,EAAgBC,EAAgBC,EAAiB,IAAI7uF,IAAO8uF,EAAc,IAAI9uF,IAAOxT,EAASuiG,EAAiBzuG,EAAS,IAC/K,OAAO,IAAI0uG,IAAkCC,eAAepG,EAAQ7xD,EAAao0D,EAAKuD,EAAgBC,EAAgBC,EAAgBC,EAAatiG,EAASuiG,EAAiBzuG,EACjL,CACA,MAAM0uG,GACFC,eAAepG,EAAQ7xD,EAAao0D,EAAKuD,EAAgBC,EAAgBC,EAAgBC,EAAatiG,EAASuiG,EAAiBzuG,EAAS,IACrIyuG,EAAkBA,GAAmB,IAAIV,GACzC,MAAMvqG,EAAU,IAAIorG,GAAyBrG,EAAQ7xD,EAAa+3D,EAAiBJ,EAAgBC,EAAgBtuG,EAAQ,IAC3HwD,EAAQ0I,QAAUA,EAClB,MAAMgyF,EAAQhyF,EAAQgyF,MAAQoG,GAAmBp4F,EAAQgyF,OAAS,EAClE16F,EAAQqrG,gBAAgBC,cAAc5Q,GACtC16F,EAAQqrG,gBAAgB5J,UAAU,CAACsJ,GAAiB,KAAM/qG,EAAQxD,OAAQkM,GAC1Ei6F,GAAajmG,KAAM4qG,EAAKtnG,GAExB,MAAMurG,EAAYvrG,EAAQurG,UAAU1nG,OAAQ2nG,GAAaA,EAASC,qBAKlE,GAAIF,EAAUjzG,QAAU0yG,EAAYr4E,KAAM,CACtC,IAAI+4E,EACJ,QAASxyG,EAAIqyG,EAAUjzG,OAAS,EAAGY,GAAK,EAAGA,IAAK,CAC5C,MAAMsyG,EAAWD,EAAUryG,GAC3B,GAAIsyG,EAASxmE,UAAYkO,EAAa,CAClCw4D,EAAmBF,EACnB,KACJ,CACJ,CACIE,IAAqBA,EAAiBC,2BACtCD,EAAiBjK,UAAU,CAACuJ,GAAc,KAAMhrG,EAAQxD,OAAQkM,EAExE,CACA,OAAO6iG,EAAUjzG,OACXizG,EAAU3uG,IAAK4uG,GAAaA,EAASL,kBACrC,CAAChB,GAA0Bj3D,EAAa,GAAI,GAAI,GAAI,EAAGwnD,EAAO,IAAI,GAC5E,CACAkI,aAAa0E,EAAKtnG,GACd,CAEJ6iG,WAAWyE,EAAKtnG,GACZ,CAEJ8iG,gBAAgBwE,EAAKtnG,GACjB,CAEJqjG,kBAAkBiE,EAAKtnG,GACnB,MAAM4rG,EAAsB5rG,EAAQirG,gBAAgBt+F,IAAI3M,EAAQglC,SAChE,GAAI4mE,EAAqB,CACrB,MAAMC,EAAe7rG,EAAQ8rG,iBAAiBxE,EAAI5+F,SAC5C0/F,EAAYpoG,EAAQqrG,gBAAgB9F,YACpC4C,EAAUzrG,KAAKqvG,sBAAsBH,EAAqBC,EAAcA,EAAanjG,SACvF0/F,GAAaD,GAGbnoG,EAAQgsG,yBAAyB7D,EAEzC,CACAnoG,EAAQi6D,aAAeqtC,CAC3B,CACAhE,gBAAgBgE,EAAKtnG,GACjB,MAAM6rG,EAAe7rG,EAAQ8rG,iBAAiBxE,EAAI5+F,SAClDmjG,EAAaG,2BACbtvG,KAAKuvG,yBAAyB,CAAC3E,EAAI5+F,QAAS4+F,EAAI73C,UAAU/mD,SAAU1I,EAAS6rG,GAC7EnvG,KAAK0mG,eAAekE,EAAI73C,UAAWo8C,GACnC7rG,EAAQgsG,yBAAyBH,EAAaR,gBAAgB9F,aAC9DvlG,EAAQi6D,aAAeqtC,CAC3B,CACA2E,yBAAyBC,EAAuBlsG,EAAS6rG,GACrD,UAAWM,KAAuBD,EAAuB,CACrD,MAAME,EAAiBD,GAAqBzR,MAC5C,GAAI0R,EAAgB,CAChB,MAAMC,EAAgD,iBAAnBD,EAC7BA,EACAtL,GAAmBqB,GAAkBiK,EAAgBD,GAAqBnoB,QAAU,CAAC,EAAGhkF,EAAQxD,SACtGqvG,EAAaP,cAAce,EAC/B,CACJ,CACJ,CACAN,sBAAsB5rD,EAAcngD,EAAS0I,GAEzC,IAAIu+F,EADcjnG,EAAQqrG,gBAAgB9F,YAI1C,MAAM9K,EAA+B,MAApB/xF,EAAQ+xF,SAAmBqG,GAAmBp4F,EAAQ+xF,UAAY,KAC7EC,EAAyB,MAAjBhyF,EAAQgyF,MAAgBoG,GAAmBp4F,EAAQgyF,OAAS,KAC1E,OAAiB,IAAbD,GACAt6C,EAAa5+C,QAAS+qG,IAClB,MAAMC,EAAqBvsG,EAAQwsG,4BAA4BF,EAAa7R,EAAUC,GACtFuM,EAAetoG,KAAKisB,IAAIq8E,EAAcsF,EAAmB9R,SAAW8R,EAAmB7R,MAAK,GAG7FuM,CACX,CACA7D,eAAekE,EAAKtnG,GAChBA,EAAQysG,cAAcnF,EAAI5+F,SAAS,GACnCi6F,GAAajmG,KAAM4qG,EAAI73C,UAAWzvD,GAClCA,EAAQi6D,aAAeqtC,CAC3B,CACAvE,cAAcuE,EAAKtnG,GACf,MAAM0sG,EAAkB1sG,EAAQ0sG,gBAChC,IAAI58C,EAAM9vD,EACV,MAAM0I,EAAU4+F,EAAI5+F,QACpB,GAAIA,IAAYA,EAAQs7E,QAAUt7E,EAAQgyF,SACtC5qC,EAAM9vD,EAAQ8rG,iBAAiBpjG,GAC/BonD,EAAIk8C,2BACiB,MAAjBtjG,EAAQgyF,OAAe,CACnB5qC,EAAImK,aAAa9xD,MAAQ8wF,EAAsBO,QAC/C1pC,EAAIu7C,gBAAgBsB,wBACpB78C,EAAImK,aAAe2yC,IAEvB,MAAMlS,EAAQoG,GAAmBp4F,EAAQgyF,OACzC5qC,EAAIw7C,cAAc5Q,EACtB,CAEA4M,EAAI3nD,MAAMrnD,SACVgvG,EAAI3nD,MAAMp+C,QAASw/B,GAAM4hE,GAAajmG,KAAMqkC,EAAG+uB,IAE/CA,EAAIu7C,gBAAgBwB,wBAIhB/8C,EAAI48C,gBAAkBA,GACtB58C,EAAIk8C,4BAGZhsG,EAAQi6D,aAAeqtC,CAC3B,CACAtE,WAAWsE,EAAKtnG,GACZ,MAAM8sG,EAAiB,GACvB,IAAI7F,EAAejnG,EAAQqrG,gBAAgB9F,YAC3C,MAAM7K,EAAQ4M,EAAI5+F,SAAW4+F,EAAI5+F,QAAQgyF,MAAQoG,GAAmBwG,EAAI5+F,QAAQgyF,OAAS,EACzF4M,EAAI3nD,MAAMp+C,QAASw/B,IACf,MAAM8qE,EAAe7rG,EAAQ8rG,iBAAiBxE,EAAI5+F,SAC9CgyF,GACAmR,EAAaP,cAAc5Q,GAE/BiI,GAAajmG,KAAMqkC,EAAG8qE,GACtB5E,EAAetoG,KAAKisB,IAAIq8E,EAAc4E,EAAaR,gBAAgB9F,aACnEuH,EAAepzG,KAAKmyG,EAAaR,gBAAe,GAKpDyB,EAAevrG,QAASiqG,GAAaxrG,EAAQqrG,gBAAgB0B,6BAA6BvB,IAC1FxrG,EAAQgsG,yBAAyB/E,GACjCjnG,EAAQi6D,aAAeqtC,CAC3B,CACA0F,aAAa1F,EAAKtnG,GACd,GAAIsnG,EAAIC,QAAS,CACb,MAAM5vD,EAAW2vD,EAAI3vD,SAIrB,OAAOspD,GAHajhG,EAAQgkF,OACtBme,GAAkBxqD,EAAU33C,EAAQgkF,OAAQhkF,EAAQxD,QACpDm7C,EAC4B33C,EAAQxD,OAC9C,CAEI,MAAO,CAAEi+F,SAAU6M,EAAI7M,SAAUC,MAAO4M,EAAI5M,MAAOuF,OAAQqH,EAAIrH,OAEvE,CACAgD,aAAaqE,EAAKtnG,GACd,MAAMm6F,EAAWn6F,EAAQwnG,sBAAwB9qG,KAAKswG,aAAa1F,EAAInN,QAASn6F,GAC1EwrG,EAAWxrG,EAAQqrG,gBACrBlR,EAAQO,QACR16F,EAAQitG,cAAc9S,EAAQO,OAC9B8Q,EAASmB,yBAEb,MAAM/d,EAAQ0Y,EAAI1Y,MACdA,EAAMzmF,MAAQ8wF,EAAsBM,UACpC78F,KAAKwmG,eAAetU,EAAO5uF,IAG3BA,EAAQitG,cAAc9S,EAAQM,UAC9B/9F,KAAKymG,WAAWvU,EAAO5uF,GACvBwrG,EAASqB,yBAEb7sG,EAAQwnG,sBAAwB,KAChCxnG,EAAQi6D,aAAeqtC,CAC3B,CACAnE,WAAWmE,EAAKtnG,GACZ,MAAMwrG,EAAWxrG,EAAQqrG,gBACnBlR,EAAUn6F,EAAQwnG,uBAGnBrN,GAAWqR,EAAS0B,6BACrB1B,EAAS2B,eAEb,MAAMlN,EAAU9F,GAAWA,EAAQ8F,QAAWqH,EAAIrH,OAC9CqH,EAAIM,YACJ4D,EAAS4B,eAAenN,GAGxBuL,EAAS/J,UAAU6F,EAAIhyF,OAAQ2qF,EAAQjgG,EAAQxD,OAAQwD,EAAQ0I,SAEnE1I,EAAQi6D,aAAeqtC,CAC3B,CACApE,eAAeoE,EAAKtnG,GAChB,MAAMwnG,EAAwBxnG,EAAQwnG,sBAChCY,EAAYpoG,EAAQqrG,gBAAgB5Q,SACpCA,EAAW+M,EAAsB/M,SAEjC4S,EADertG,EAAQ8rG,mBACMT,gBACnCgC,EAAcpN,OAASuH,EAAsBvH,OAC7CqH,EAAIhyF,OAAO/T,QAASq+C,IAEhBytD,EAAcC,aADC1tD,EAAK2mB,QAAU,GACKk0B,GACnC4S,EAAc5L,UAAU7hD,EAAKtqC,OAAQsqC,EAAKqgD,OAAQjgG,EAAQxD,OAAQwD,EAAQ0I,SAC1E2kG,EAAcR,uBAAsB,GAIxC7sG,EAAQqrG,gBAAgB0B,6BAA6BM,GAGrDrtG,EAAQgsG,yBAAyB5D,EAAY3N,GAC7Cz6F,EAAQi6D,aAAeqtC,CAC3B,CACA/D,WAAW+D,EAAKtnG,GAGZ,MAAMooG,EAAYpoG,EAAQqrG,gBAAgB9F,YACpC78F,EAAW4+F,EAAI5+F,SAAW,CAAC,EAC3BgyF,EAAQhyF,EAAQgyF,MAAQoG,GAAmBp4F,EAAQgyF,OAAS,EAC9DA,IACC16F,EAAQi6D,aAAa9xD,OAAS8wF,EAAsBO,OACnC,GAAb4O,GAAkBpoG,EAAQqrG,gBAAgB6B,+BAC/CltG,EAAQqrG,gBAAgBsB,wBACxB3sG,EAAQi6D,aAAe2yC,IAE3B,IAAI3F,EAAemB,EACnB,MAAMmF,EAAOvtG,EAAQ0/F,YAAY4H,EAAIh1F,SAAUg1F,EAAIwC,iBAAkBxC,EAAIgC,MAAOhC,EAAIqC,cAAajhG,EAAQqE,SAAyB/M,EAAQxD,QAC1IwD,EAAQwtG,kBAAoBD,EAAKj1G,OACjC,IAAIm1G,EAAsB,KAC1BF,EAAKhsG,QAAQ,CAACyjC,EAAS9rC,KACnB8G,EAAQunB,kBAAoBruB,EAC5B,MAAM2yG,EAAe7rG,EAAQ8rG,iBAAiBxE,EAAI5+F,QAASs8B,GACvD01D,GACAmR,EAAaP,cAAc5Q,GAE3B11D,IAAYhlC,EAAQglC,UACpByoE,EAAsB5B,EAAaR,iBAEvC1I,GAAajmG,KAAM4qG,EAAI73C,UAAWo8C,GAIlCA,EAAaR,gBAAgBwB,wBAE7B5F,EAAetoG,KAAKisB,IAAIq8E,EADR4E,EAAaR,gBAAgB9F,YACA,GAEjDvlG,EAAQunB,kBAAoB,EAC5BvnB,EAAQwtG,kBAAoB,EAC5BxtG,EAAQgsG,yBAAyB/E,GAC7BwG,IACAztG,EAAQqrG,gBAAgB0B,6BAA6BU,GACrDztG,EAAQqrG,gBAAgBsB,yBAE5B3sG,EAAQi6D,aAAeqtC,CAC3B,CACA9D,aAAa8D,EAAKtnG,GACd,MAAM0tG,EAAgB1tG,EAAQ0tG,cACxBC,EAAK3tG,EAAQqrG,gBACblR,EAAUmN,EAAInN,QACdM,EAAW97F,KAAK6G,IAAI20F,EAAQM,UAC5BmT,EAAUnT,GAAYz6F,EAAQwtG,kBAAoB,GACxD,IAAI9S,EAAQD,EAAWz6F,EAAQunB,kBAE/B,OADyB4yE,EAAQM,SAAW,EAAI,UAAYN,EAAQ8F,QAEhE,IAAK,UACDvF,EAAQkT,EAAUlT,EAClB,MACJ,IAAK,OACDA,EAAQgT,EAAcG,mBAG9B,MAAMrC,EAAWxrG,EAAQqrG,gBACrB3Q,GACA8Q,EAASF,cAAc5Q,GAE3B,MAAMoT,EAAetC,EAASjG,YAC9B5C,GAAajmG,KAAM4qG,EAAI73C,UAAWzvD,GAClCA,EAAQi6D,aAAeqtC,EAKvBoG,EAAcG,mBACVF,EAAGpI,YAAcuI,GAAgBH,EAAGvF,UAAYsF,EAAcrC,gBAAgBjD,UACtF,EAEJ,MAAMwE,GAA6B,CAAC,EACpC,MAAMxB,GACFluG,YAAYgoG,EAASlgE,EAASimE,EAAiB8C,EAAiBC,EAAiBxxG,EAAQ+uG,EAAW0C,GAChGvxG,KAAKwoG,QAAUA,EACfxoG,KAAKsoC,QAAUA,EACftoC,KAAKuuG,gBAAkBA,EACvBvuG,KAAKqxG,gBAAkBA,EACvBrxG,KAAKsxG,gBAAkBA,EACvBtxG,KAAKF,OAASA,EACdE,KAAK6uG,UAAYA,EACjB7uG,KAAKgxG,cAAgB,KACrBhxG,KAAK8qG,sBAAwB,KAC7B9qG,KAAKu9D,aAAe2yC,GACpBlwG,KAAKgwG,gBAAkB,EACvBhwG,KAAKgM,QAAU,CAAC,EAChBhM,KAAK6qB,kBAAoB,EACzB7qB,KAAK8wG,kBAAoB,EACzB9wG,KAAKmxG,mBAAqB,EAC1BnxG,KAAK2uG,gBAAkB4C,GAAmB,IAAIC,GAAgBxxG,KAAKwoG,QAASlgE,EAAS,GACrFumE,EAAU7xG,KAAKgD,KAAK2uG,gBACxB,CACA,UAAIrnB,GACA,OAAOtnF,KAAKgM,QAAQs7E,MACxB,CACAyoB,cAAc/jG,EAASylG,GACnB,IAAKzlG,EACD,OACJ,MAAM0lG,EAAa1lG,EACnB,IAAI2lG,EAAkB3xG,KAAKgM,QAEA,MAAvB0lG,EAAW3T,WACX4T,EAAgB5T,SAAWqG,GAAmBsN,EAAW3T,WAErC,MAApB2T,EAAW1T,QACX2T,EAAgB3T,MAAQoG,GAAmBsN,EAAW1T,QAE1D,MAAM4T,EAAYF,EAAWpqB,OAC7B,GAAIsqB,EAAW,CACX,IAAIC,EAAiBF,EAAgBrqB,OAChCuqB,IACDA,EAAiB7xG,KAAKgM,QAAQs7E,OAAS,CAAC,GAE5C1tF,OAAOkoB,KAAK8vF,GAAW/sG,QAASxE,MACvBoxG,IAAiBI,EAAe5nG,eAAe5J,MAChDwxG,EAAexxG,GAAQolG,GAAkBmM,EAAUvxG,GAAOwxG,EAAgB7xG,KAAKF,QAAM,EAGjG,CACJ,CACAgyG,eACI,MAAM9lG,EAAU,CAAC,EACjB,GAAIhM,KAAKgM,QAAS,CACd,MAAM+lG,EAAY/xG,KAAKgM,QAAQs7E,OAC/B,GAAIyqB,EAAW,CACX,MAAMzqB,EAAUt7E,EAAQs7E,OAAY,CAAC,EACrC1tF,OAAOkoB,KAAKiwF,GAAWltG,QAASxE,IAC5BinF,EAAOjnF,GAAQ0xG,EAAU1xG,EAAI,EAErC,CACJ,CACA,OAAO2L,CACX,CACAojG,iBAAiBpjG,EAAU,KAAMs8B,EAAS0pE,GACtC,MAAMrnG,EAAS29B,GAAWtoC,KAAKsoC,QACzBhlC,EAAU,IAAIorG,GAAyB1uG,KAAKwoG,QAAS79F,EAAQ3K,KAAKuuG,gBAAiBvuG,KAAKqxG,gBAAiBrxG,KAAKsxG,gBAAiBtxG,KAAKF,OAAQE,KAAK6uG,UAAW7uG,KAAK2uG,gBAAgBh2E,KAAKhuB,EAAQqnG,GAAW,IAC/M1uG,SAAQi6D,aAAev9D,KAAKu9D,aAC5Bj6D,EAAQwnG,sBAAwB9qG,KAAK8qG,sBACrCxnG,EAAQ0I,QAAUhM,KAAK8xG,eACvBxuG,EAAQysG,cAAc/jG,GACtB1I,EAAQunB,kBAAoB7qB,KAAK6qB,kBACjCvnB,EAAQwtG,kBAAoB9wG,KAAK8wG,kBACjCxtG,EAAQ0tG,cAAgBhxG,KACxBA,KAAKgwG,kBACE1sG,CACX,CACAgsG,yBAAyB0C,GACrB,OAAAhyG,KAAKu9D,aAAe2yC,GACpBlwG,KAAK2uG,gBAAkB3uG,KAAK2uG,gBAAgBh2E,KAAK34B,KAAKsoC,QAAS0pE,GAC/DhyG,KAAK6uG,UAAU7xG,KAAKgD,KAAK2uG,iBAClB3uG,KAAK2uG,eAChB,CACAmB,4BAA4BF,EAAa7R,EAAUC,GAC/C,MAAMiU,EAAiB,CACnBlU,SAAUA,GAA8B6R,EAAY7R,SACpDC,MAAOh+F,KAAK2uG,gBAAgB9F,aAAe7K,GAAwB,GAAK4R,EAAY5R,MACpFuF,OAAQ,IAEN2O,EAAU,IAAIC,GAAmBnyG,KAAKwoG,QAASoH,EAAYtnE,QAASsnE,EAAY7O,UAAW6O,EAAYlC,cAAekC,EAAYjC,eAAgBsE,EAAgBrC,EAAYwC,yBACpL,OAAApyG,KAAK6uG,UAAU7xG,KAAKk1G,GACbD,CACX,CACA1B,cAAcpQ,GACVngG,KAAK2uG,gBAAgBiC,YAAY5wG,KAAK2uG,gBAAgB5Q,SAAWoC,EACrE,CACAyO,cAAc5Q,GAENA,EAAQ,GACRh+F,KAAK2uG,gBAAgBC,cAAc5Q,EAE3C,CACAgF,YAAYptF,EAAUw3F,EAAkBR,EAAOK,EAAa58F,EAAUvQ,GAClE,IAAI0xD,EAAU,GAId,GAHIy7C,GACAz7C,EAAQx0D,KAAKgD,KAAKsoC,SAElB1yB,EAASha,OAAS,EAAG,CAGrBga,GADAA,EAAWA,EAAS6L,QAAQusF,GAAmB,IAAMhuG,KAAKqxG,kBACtC5vF,QAAQwsF,GAAmB,IAAMjuG,KAAKsxG,iBAE1D,IAAI1e,EAAW5yF,KAAKwoG,QAAQnF,MAAMrjG,KAAKsoC,QAAS1yB,EADzB,GAATg3F,GAEA,IAAVA,IACAha,EACIga,EAAQ,EACFha,EAASvsF,MAAMusF,EAASh3F,OAASgxG,EAAOha,EAASh3F,QACjDg3F,EAASvsF,MAAM,EAAGumG,IAEhCp7C,EAAQx0D,QAAQ41F,EACpB,CACA,OAAKviF,GAA8B,GAAlBmhD,EAAQ51D,QACrBkE,EAAO9C,KA52DnB,SAASq1G,KACL,OAAO,IAAIpxB,EAAc,MAA2CjxE,EAExE,CAy2DwBqiG,IAET7gD,CACX,EAEJ,MAAMggD,GACFhxG,YAAYgoG,EAASlgE,EAASojE,EAAW4G,GACrCtyG,KAAKwoG,QAAUA,EACfxoG,KAAKsoC,QAAUA,EACftoC,KAAK0rG,UAAYA,EACjB1rG,KAAKsyG,6BAA+BA,EACpCtyG,KAAK+9F,SAAW,EAChB/9F,KAAKujG,OAAS,KACdvjG,KAAKuyG,kBAAoB,IAAI/yF,IAC7Bxf,KAAKwyG,iBAAmB,IAAIhzF,IAC5Bxf,KAAKyyG,WAAa,IAAIjzF,IACtBxf,KAAK0yG,cAAgB,IAAIlzF,IACzBxf,KAAK2yG,qBAAuB,IAAInzF,IAChCxf,KAAK4yG,eAAiB,IAAIpzF,IAC1Bxf,KAAK6yG,UAAY,IAAIrzF,IACrBxf,KAAK8yG,0BAA4B,KAC5B9yG,KAAKsyG,+BACNtyG,KAAKsyG,6BAA+B,IAAI9yF,KAE5Cxf,KAAK+yG,sBAAwB/yG,KAAKsyG,6BAA6BriG,IAAIq4B,GAC9DtoC,KAAK+yG,wBACN/yG,KAAK+yG,sBAAwB/yG,KAAK2yG,qBAClC3yG,KAAKsyG,6BAA6BzyF,IAAIyoB,EAAStoC,KAAK2yG,uBAExD3yG,KAAKgzG,eACT,CACAjE,oBACI,OAAQ/uG,KAAKyyG,WAAWx8E,MACpB,KAAK,EACD,OAAO,EACX,KAAK,EACD,OAAOj2B,KAAKwwG,4BAChB,QACI,OAAO,EAEnB,CACAA,4BACI,OAAOxwG,KAAKwyG,iBAAiBv8E,KAAO,CACxC,CACA,eAAI4yE,GACA,OAAO7oG,KAAK0rG,UAAY1rG,KAAK+9F,QACjC,CACA6Q,cAAc5Q,GAKV,MAAMiV,EAA2C,IAAzBjzG,KAAKyyG,WAAWx8E,MAAcj2B,KAAK4yG,eAAe38E,KACtEj2B,KAAK+9F,UAAYkV,GACjBjzG,KAAK4wG,YAAY5wG,KAAK6oG,YAAc7K,GAChCiV,GACAjzG,KAAKiwG,yBAITjwG,KAAK0rG,WAAa1N,CAE1B,CACArlE,KAAK2P,EAASugE,GACV,OAAA7oG,KAAKmwG,wBACE,IAAIqB,GAAgBxxG,KAAKwoG,QAASlgE,EAASugE,GAAe7oG,KAAK6oG,YAAa7oG,KAAKsyG,6BAC5F,CACAU,gBACQhzG,KAAKwyG,mBACLxyG,KAAKuyG,kBAAoBvyG,KAAKwyG,kBAElCxyG,KAAKwyG,iBAAmBxyG,KAAKyyG,WAAWxiG,IAAIjQ,KAAK+9F,UAC5C/9F,KAAKwyG,mBACNxyG,KAAKwyG,iBAAmB,IAAIhzF,IAC5Bxf,KAAKyyG,WAAW5yF,IAAI7f,KAAK+9F,SAAU/9F,KAAKwyG,kBAEhD,CACA/B,eACIzwG,KAAK+9F,UAzjBqB,EA0jB1B/9F,KAAKgzG,eACT,CACApC,YAAYzQ,GACRngG,KAAKmwG,wBACLnwG,KAAK+9F,SAAWoC,EAChBngG,KAAKgzG,eACT,CACAE,aAAaz4C,EAAMj9D,GACfwC,KAAK2yG,qBAAqB9yF,IAAI46C,EAAMj9D,GACpCwC,KAAK+yG,sBAAsBlzF,IAAI46C,EAAMj9D,GACrCwC,KAAK0yG,cAAc7yF,IAAI46C,EAAM,CAAE0lC,KAAMngG,KAAK6oG,YAAarrG,SAC3D,CACAyxG,0BACI,OAAOjvG,KAAK8yG,4BAA8B9yG,KAAKwyG,gBACnD,CACA9B,eAAenN,GACPA,GACAvjG,KAAKuyG,kBAAkB1yF,IAAI,SAAU0jF,GAQzC,QAAU9oC,EAAMj9D,KAAUwC,KAAK+yG,sBAC3B/yG,KAAK6yG,UAAUhzF,IAAI46C,EAAMj9D,GAAS6/F,IAClCr9F,KAAKwyG,iBAAiB3yF,IAAI46C,EAAM4iC,IAEpCr9F,KAAK8yG,0BAA4B9yG,KAAKwyG,gBAC1C,CACAzN,UAAUx/F,EAAOg+F,EAAQzjG,EAAQkM,GACzBu3F,GACAvjG,KAAKuyG,kBAAkB1yF,IAAI,SAAU0jF,GAEzC,MAAMjc,EAAUt7E,GAAWA,EAAQs7E,QAAW,CAAC,EACzC1uE,EA+Id,SAASu6F,GAAc5tG,EAAO6tG,GAC1B,MAAMx6F,EAAS,IAAI4G,IACnB,IAAI6zF,EACJ9tG,SAAMV,QAASgG,IACX,GAAc,MAAVA,EAAe,CACfwoG,IAAkBD,EAAUtxF,OAC5B,QAAS24C,KAAQ44C,EACbz6F,EAAOiH,IAAI46C,EAAM4iC,GAEzB,MAEI,QAAU5iC,EAAM2sB,KAAQv8E,EACpB+N,EAAOiH,IAAI46C,EAAM2sB,EAAG,GAIzBxuE,CACX,CAhKuBu6F,CAAc5tG,EAAOvF,KAAK+yG,uBACzC,QAAUt4C,EAAMj9D,KAAUob,EAAQ,CAC9B,MAAMwuE,EAAMqe,GAAkBjoG,EAAO8pF,EAAQxnF,GAC7CE,KAAK4yG,eAAe/yF,IAAI46C,EAAM2sB,GACzBpnF,KAAK2yG,qBAAqB10F,IAAIw8C,IAC/Bz6D,KAAK6yG,UAAUhzF,IAAI46C,EAAMz6D,KAAK+yG,sBAAsB9iG,IAAIwqD,IAAS4iC,IAErEr9F,KAAKkzG,aAAaz4C,EAAM2sB,EAC5B,CACJ,CACA+oB,wBACoC,GAA5BnwG,KAAK4yG,eAAe38E,OAExBj2B,KAAK4yG,eAAe/tG,QAAQ,CAACuiF,EAAK3sB,KAC9Bz6D,KAAKwyG,iBAAiB3yF,IAAI46C,EAAM2sB,EAAG,GAEvCpnF,KAAK4yG,eAAeryF,QACpBvgB,KAAK2yG,qBAAqB9tG,QAAQ,CAACuiF,EAAK3sB,KAC/Bz6D,KAAKwyG,iBAAiBv0F,IAAIw8C,IAC3Bz6D,KAAKwyG,iBAAiB3yF,IAAI46C,EAAM2sB,EAAG,GAG/C,CACA6oB,wBACI,QAAUx1C,EAAM2sB,KAAQpnF,KAAK2yG,qBACzB3yG,KAAK4yG,eAAe/yF,IAAI46C,EAAM2sB,GAC9BpnF,KAAKkzG,aAAaz4C,EAAM2sB,EAEhC,CACAksB,mBACI,OAAOtzG,KAAKyyG,WAAWxiG,IAAIjQ,KAAK+9F,SACpC,CACA,cAAItkE,GACA,MAAMA,EAAa,GACnB,QAASghC,KAAQz6D,KAAKwyG,iBAClB/4E,EAAWz8B,KAAKy9D,GAEpB,OAAOhhC,CACX,CACA42E,6BAA6BvB,GACzBA,EAAS4D,cAAc7tG,QAAQ,CAAC0uG,EAAU94C,KACtC,MAAM+4C,EAAWxzG,KAAK0yG,cAAcziG,IAAIwqD,KACnC+4C,GAAYD,EAASpT,KAAOqT,EAASrT,OACtCngG,KAAKkzG,aAAaz4C,EAAM84C,EAAS/1G,MAAK,EAGlD,CACAixG,iBACIzuG,KAAKmwG,wBACL,MAAMzC,EAAgB,IAAI1wF,IACpB2wF,EAAiB,IAAI3wF,IACrB7U,EAAmC,IAAzBnI,KAAKyyG,WAAWx8E,MAAgC,IAAlBj2B,KAAK+9F,SACnD,IAAI0V,EAAiB,GACrBzzG,KAAKyyG,WAAW5tG,QAAQ,CAAC6uG,EAAUvT,KAC/B,MAAMwT,EAAgB,IAAIn0F,IAAI,IAAIxf,KAAK6yG,aAAca,IACrDC,EAAc9uG,QAAQ,CAACrH,EAAOi9D,KDzwBvB,MC0wBCj9D,EACAkwG,EAAcrsG,IAAIo5D,GAEbj9D,IAAU6/F,IACfsQ,EAAetsG,IAAIo5D,EAAI,GAG1BtyD,GACDwrG,EAAc9zF,IAAI,SAAUsgF,EAAOngG,KAAK+9F,UAE5C0V,EAAez2G,KAAK22G,EAAa,GAErC,MAAMC,EAAW,IAAIlG,EAAcnkG,UAC7BsqG,EAAY,IAAIlG,EAAepkG,UAErC,GAAIpB,EAAS,CACT,MAAM2rG,EAAML,EAAe,GACrBM,EAAM,IAAIv0F,IAAIs0F,GACpBA,EAAIj0F,IAAI,SAAU,GAClBk0F,EAAIl0F,IAAI,SAAU,GAClB4zF,EAAiB,CAACK,EAAKC,EAC3B,CACA,OAAOtG,GAA0BztG,KAAKsoC,QAASmrE,EAAgBG,EAAUC,EAAW7zG,KAAK+9F,SAAU/9F,KAAK0rG,UAAW1rG,KAAKujG,QAAQ,EACpI,EAEJ,MAAM4O,WAA2BX,GAC7BhxG,YAAY6nG,EAAQ//D,EAASy4D,EAAW2M,EAAeC,EAAgBlQ,EAASuW,GAA2B,GACvG3xG,MAAMgmG,EAAQ//D,EAASm1D,EAAQO,OAC/Bh+F,KAAK+gG,UAAYA,EACjB/gG,KAAK0tG,cAAgBA,EACrB1tG,KAAK2tG,eAAiBA,EACtB3tG,KAAKg0G,yBAA2BA,EAChCh0G,KAAKy9F,QAAU,CAAEM,SAAUN,EAAQM,SAAUC,MAAOP,EAAQO,MAAOuF,OAAQ9F,EAAQ8F,OACvF,CACAwL,oBACI,OAAO/uG,KAAK+gG,UAAUnlG,OAAS,CACnC,CACA6yG,iBACI,IAAI1N,EAAY/gG,KAAK+gG,WACf/C,QAAOD,WAAUwF,UAAWvjG,KAAKy9F,QACvC,GAAIz9F,KAAKg0G,0BAA4BhW,EAAO,CACxC,MAAMiW,EAAe,GACfvV,EAAYX,EAAWC,EACvBkW,EAAclW,EAAQU,EAEtByV,EAAmB,IAAI30F,IAAIuhF,EAAU,IAC3CoT,EAAiBt0F,IAAI,SAAU,GAC/Bo0F,EAAaj3G,KAAKm3G,GAClB,MAAMC,EAAmB,IAAI50F,IAAIuhF,EAAU,IAC3CqT,EAAiBv0F,IAAI,SAAUw0F,GAAYH,IAC3CD,EAAaj3G,KAAKo3G,GAgBlB,MAAMxH,EAAQ7L,EAAUnlG,OAAS,EACjC,QAASY,EAAI,EAAGA,GAAKowG,EAAOpwG,IAAK,CAC7B,IAAI6kG,EAAK,IAAI7hF,IAAIuhF,EAAUvkG,IAC3B,MAAM83G,EAAYjT,EAAGpxF,IAAI,UAEzBoxF,EAAGxhF,IAAI,SAAUw0F,IADMrW,EAAQsW,EAAYvW,GACGW,IAC9CuV,EAAaj3G,KAAKqkG,EACtB,CAEAtD,EAAWW,EACXV,EAAQ,EACRuF,EAAS,GACTxC,EAAYkT,CAChB,CACA,OAAOxG,GAA0BztG,KAAKsoC,QAASy4D,EAAW/gG,KAAK0tG,cAAe1tG,KAAK2tG,eAAgB5P,EAAUC,EAAOuF,GAAQ,EAChI,EAEJ,SAAS8Q,GAAYxqC,EAAQ0qC,EAAgB,GACzC,MAAMC,EAAOvyG,KAAKwyG,IAAI,GAAIF,EAAgB,GAC1C,OAAOtyG,KAAKyyG,MAAM7qC,EAAS2qC,GAAQA,CACvC,CAoBA,SAASG,GAA4BrsE,EAAS05D,EAAaC,EAAWC,EAAS0S,EAAqBC,EAAYC,EAAUjG,EAAWkG,EAAiBrH,EAAeC,EAAgBjP,EAAW5+F,GAC5L,MAAO,CACH2L,KAAM,EACN68B,UACA05D,cACA4S,sBACA3S,YACA4S,aACA3S,UACA4S,WACAjG,YACAkG,kBACArH,gBACAC,iBACAjP,YACA5+F,SAER,CAEA,MAAMk1G,GAAe,CAAC,EACtB,MAAMC,GACFz0G,YAAY00G,EAActK,EAAKuK,GAC3Bn1G,KAAKk1G,aAAeA,EACpBl1G,KAAK4qG,IAAMA,EACX5qG,KAAKm1G,aAAeA,CACxB,CACA3uE,MAAM4uE,EAAcC,EAAW/sE,EAASg/C,GACpC,OAuGR,SAASguB,GAA0BC,EAAUH,EAAcC,EAAW/sE,EAASg/C,GAC3E,OAAOiuB,EAASl4E,KAAMz5B,GAAOA,EAAGwxG,EAAcC,EAAW/sE,EAASg/C,GACtE,CAzGeguB,CAA0Bt1G,KAAK4qG,IAAIjB,SAAUyL,EAAcC,EAAW/sE,EAASg/C,EAC1F,CACAkuB,YAAYC,EAAWnuB,EAAQxnF,GAC3B,IAAI41G,EAAS11G,KAAKm1G,aAAallG,IAAI,KACnC,YAAkBtV,IAAd86G,IACAC,EAAS11G,KAAKm1G,aAAallG,IAAIwlG,GAAWt1G,aAAeu1G,GAEtDA,EAASA,EAAOF,YAAYluB,EAAQxnF,GAAU,IAAI0f,GAC7D,CACAkxE,MAAM2X,EAAQ//D,EAAS8sE,EAAcC,EAAWlH,EAAgBC,EAAgBuH,EAAgBC,EAAarH,EAAiBsH,GAC1H,MAAM/1G,EAAS,GACTg2G,EAA6B91G,KAAK4qG,IAAI5+F,SAAWhM,KAAK4qG,IAAI5+F,QAAQs7E,QAAW0tB,GAE7Ee,EAAqB/1G,KAAKw1G,YAAYJ,EADZO,GAAkBA,EAAeruB,QAAW0tB,GACMl1G,GAC5Ek2G,EAAuBJ,GAAeA,EAAYtuB,QAAW0tB,GAC7DiB,EAAkBj2G,KAAKw1G,YAAYH,EAAWW,EAAqBl2G,GACnEi1G,EAAkB,IAAI/3F,IACtBk5F,EAAc,IAAI12F,IAClB22F,EAAe,IAAI32F,IACnB42F,EAA0B,SAAdf,EACZgB,EAAmB,CACrB/uB,OAAQgvB,GAAmBN,EAAqBF,GAChD9X,MAAOh+F,KAAK4qG,IAAI5+F,SAASgyF,OAEvB6Q,GAAYgH,EACZ,GACA3H,GAAwB7F,EAAQ//D,EAAStoC,KAAK4qG,IAAI73C,UAAWo7C,EAAgBC,EAAgB2H,EAAoBE,EAAiBI,EAAkB9H,EAAiBzuG,GAC3K,IAAI4+F,GAAY,EAIhB,OAHAmQ,GAAUhqG,QAASosG,KACfvS,GAAYz8F,KAAKisB,IAAI+iF,GAAGlT,SAAWkT,GAAGjT,MAAOU,GAAS,GAEtD5+F,EAAOlE,OACA+4G,GAA4BrsE,EAAStoC,KAAKk1G,aAAcE,EAAcC,EAAWe,EAAWL,EAAoBE,EAAiB,GAAI,GAAIC,EAAaC,EAAczX,GAAW5+F,IAE1L+uG,GAAUhqG,QAASosG,KACf,MAAMsF,GAAMtF,GAAG3oE,QACTsrE,GAAWvR,GAAqB6T,EAAaK,GAAK,IAAIv5F,KAC5Di0F,GAAGvD,cAAc7oG,QAAS41D,IAASm5C,GAASvyG,IAAIo5D,KAChD,MAAMo5C,GAAYxR,GAAqB8T,EAAcI,GAAK,IAAIv5F,KAC9Di0F,GAAGtD,eAAe9oG,QAAS41D,IAASo5C,GAAUxyG,IAAIo5D,KAC9C87C,KAAQjuE,GACRysE,EAAgB1zG,IAAIk1G,GAAG,GAMxB5B,GAA4BrsE,EAAStoC,KAAKk1G,aAAcE,EAAcC,EAAWe,EAAWL,EAAoBE,EAAiBpH,GAAW,IAAIkG,EAAgBxrG,UAAW2sG,EAAaC,EAAczX,IACjN,EA0DJ,SAAS4X,GAAmBE,EAAYC,GACpC,MAAMzvG,EAAS,IAAKyvG,GACpB78G,cAAOsrF,QAAQsxB,GAAY3xG,QAAQ,EAAE4F,EAAKjN,MACzB,MAATA,IACAwJ,EAAOyD,GAAOjN,KAGfwJ,CACX,CACA,MAAM0vG,GACFl2G,YAAYoY,EAAQ+9F,EAAe7V,GAC/B9gG,KAAK4Y,OAASA,EACd5Y,KAAK22G,cAAgBA,EACrB32G,KAAK8gG,WAAaA,CACtB,CACA0U,YAAYluB,EAAQxnF,GAChB,MAAMwuG,EAAc,IAAI9uF,IAClBo3F,EAAiBN,GAAmBhvB,EAAQtnF,KAAK22G,eACvD,OAAA32G,KAAK4Y,OAAOA,OAAO/T,QAASrH,IACH,iBAAVA,GACPA,EAAMqH,QAAQ,CAACuiF,EAAK3sB,KACZ2sB,IACAA,EAAMqe,GAAkBre,EAAKwvB,EAAgB92G,IAEjD,MAAM0hG,EAAiBxhG,KAAK8gG,WAAWY,sBAAsBjnC,EAAM36D,GACnEsnF,EAAMpnF,KAAK8gG,WAAWa,oBAAoBlnC,EAAM+mC,EAAgBpa,EAAKtnF,GACrEwuG,EAAYzuF,IAAI46C,EAAM2sB,EAAG,EAC5B,GAGFknB,CACX,EAMJ,MAAMuI,GACFr2G,YAAYH,EAAMuqG,EAAKkM,GACnB92G,KAAKK,KAAOA,EACZL,KAAK4qG,IAAMA,EACX5qG,KAAK82G,YAAcA,EACnB92G,KAAK+2G,oBAAsB,GAC3B/2G,KAAKgpG,OAAS,IAAIxpF,IAClBorF,EAAI5B,OAAOnkG,QAAS+lG,IAEhB5qG,KAAKgpG,OAAOnpF,IAAI+qF,EAAIvqG,KAAM,IAAIq2G,GAAqB9L,EAAI1Y,MADhC0Y,EAAI5+F,SAAW4+F,EAAI5+F,QAAQs7E,QAAW,CAAC,EACewvB,GAAY,GAE7FE,GAAkBh3G,KAAKgpG,OAAQ,OAAQ,KACvCgO,GAAkBh3G,KAAKgpG,OAAQ,QAAS,KACxC4B,EAAI3B,YAAYpkG,QAAS+lG,IACrB5qG,KAAK+2G,oBAAoB/5G,KAAK,IAAIi4G,GAA2B50G,EAAMuqG,EAAK5qG,KAAKgpG,QAAO,GAExFhpG,KAAKi3G,mBAab,SAASC,GAAyBlV,EAAagH,GAW3C,OAAO,IAAIiM,GAA2BjT,EARnB,CACfv2F,KAAM8wF,EAAsBE,WAC5B1pC,UAHc,CAAEtnD,KAAM8wF,EAAsBG,SAAUz5C,MAAO,GAAIj3C,QAAS,MAI1E29F,SALa,CAAC,CAAC1H,EAAWC,KAAY,GAMtCl2F,QAAS,KACT88F,WAAY,EACZC,SAAU,GAEiDC,EACnE,CAzBkCkO,CAAyB72G,EAAML,KAAKgpG,OAClE,CACA,mBAAImO,GACA,OAAOn3G,KAAK4qG,IAAI9B,WAAa,CACjC,CACAsO,gBAAgBhC,EAAcC,EAAW/sE,EAASg/C,GAE9C,OADctnF,KAAK+2G,oBAAoB55E,KAAMypC,GAAMA,EAAEpgC,MAAM4uE,EAAcC,EAAW/sE,EAASg/C,KAC7E,IACpB,CACA+vB,YAAYjC,EAAc9tB,EAAQxnF,GAC9B,OAAOE,KAAKi3G,mBAAmBzB,YAAYJ,EAAc9tB,EAAQxnF,EACrE,EAeJ,SAASk3G,GAAkBM,EAAUxiG,EAAMC,GACnCuiG,EAASr5F,IAAInJ,GACRwiG,EAASr5F,IAAIlJ,IACduiG,EAASz3F,IAAI9K,EAAMuiG,EAASrnG,IAAI6E,IAG/BwiG,EAASr5F,IAAIlJ,IAClBuiG,EAASz3F,IAAI/K,EAAMwiG,EAASrnG,IAAI8E,GAExC,CAEA,MAAMwiG,GAAwB,IAAI1J,GAClC,MAAM2J,GACFh3G,YAAYi3G,EAAUjP,EAASsO,GAC3B92G,KAAKy3G,SAAWA,EAChBz3G,KAAKwoG,QAAUA,EACfxoG,KAAK82G,YAAcA,EACnB92G,KAAK03G,YAAc,IAAIl4F,IACvBxf,KAAK23G,aAAe,IAAIn4F,IACxBxf,KAAK6/F,QAAU,EACnB,CACAzoC,SAASp+C,EAAI00C,GACT,MAAM5tD,EAAS,GAET8qG,EAAMxC,GAAkBpoG,KAAKwoG,QAAS96C,EAAU5tD,EADrC,IAEjB,GAAIA,EAAOlE,OACP,MAn1EZ,SAASg8G,KACL,OAAO,IAAI32B,EAAc,MAAiDjxE,EAI9E,CA80EkB4nG,GAMN53G,KAAK03G,YAAY73F,IAAI7G,EAAI4xF,EAEjC,CACAiN,aAAar7G,EAAGwkG,EAAWC,GACvB,MAAM34D,EAAU9rC,EAAE8rC,QACZy4D,EAAYF,GAAqB7gG,KAAK82G,YAAat6G,EAAEukG,UAAWC,EAAWC,GACjF,OAAOjhG,KAAKwoG,QAAQhL,QAAQl1D,EAASy4D,EAAWvkG,EAAEuhG,SAAUvhG,EAAEwhG,MAAOxhG,EAAE+mG,OAAQ,IAAI,EACvF,CACAlmG,OAAO2b,EAAIsvB,EAASt8B,EAAU,CAAC,GAC3B,MAAMlM,EAAS,GACT8qG,EAAM5qG,KAAK03G,YAAYznG,IAAI+I,GACjC,IAAIyqC,EACJ,MAAMq0D,EAAgB,IAAIt4F,IAY1B,GAXIorF,GACAnnD,EAAeyqD,GAAwBluG,KAAKwoG,QAASlgE,EAASsiE,EAAK9G,GAAiBC,GAAiB,IAAIvkF,IAAO,IAAIA,IAAOxT,EAASurG,GAAuBz3G,GAC3J2jD,EAAa5+C,QAASkzG,IAClB,MAAMn/F,EAASypF,GAAqByV,EAAeC,EAAKzvE,QAAS,IAAI9oB,KACrEu4F,EAAKpK,eAAe9oG,QAAS41D,GAAS7hD,EAAOiH,IAAI46C,EAAM,MAAK,KAIhE36D,EAAO9C,KAx2EnB,SAASg7G,KACL,OAAO,IAAI/2B,EAAc,MAA4DjxE,EACzF,CAs2EwBgoG,IACZv0D,EAAe,IAEf3jD,EAAOlE,OACP,MAz2EZ,SAASq8G,KACL,OAAO,IAAIh3B,EAAc,MAAqDjxE,EAIlF,CAo2EkBioG,GAEVH,EAAcjzG,QAAQ,CAAC+T,EAAQ0vB,KAC3B1vB,EAAO/T,QAAQ,CAACgU,EAAG4hD,KACf7hD,EAAOiH,IAAI46C,EAAMz6D,KAAKwoG,QAAQlF,aAAah7D,EAASmyB,EAAM4iC,IAAW,EACxE,GAEL,MAIM4C,EAASU,GAJCl9C,EAAavjD,IAAK1D,IAC9B,MAAMoc,EAASk/F,EAAc7nG,IAAIzT,EAAE8rC,SACnC,OAAOtoC,KAAK63G,aAAar7G,EAAG,IAAIgjB,IAAO5G,EAAM,IAGjD,OAAA5Y,KAAK23G,aAAa93F,IAAI7G,EAAIinF,GAC1BA,EAAOxkF,UAAU,IAAMzb,KAAKigB,QAAQjH,IACpChZ,KAAK6/F,QAAQ7iG,KAAKijG,GACXA,CACX,CACAhgF,QAAQjH,GACJ,MAAMinF,EAASjgG,KAAKk4G,WAAWl/F,GAC/BinF,EAAOhgF,UACPjgB,KAAK23G,aAAa3hF,OAAOhd,GACzB,MAAMjY,EAAQf,KAAK6/F,QAAQn+F,QAAQu+F,GAC/Bl/F,GAAS,GACTf,KAAK6/F,QAAQh+F,OAAOd,EAAO,EAEnC,CACAm3G,WAAWl/F,GACP,MAAMinF,EAASjgG,KAAK23G,aAAa1nG,IAAI+I,GACrC,IAAKinF,EACD,MAh4EZ,SAASkY,KACL,OAAO,IAAIl3B,EAAc,MAA4CjxE,EACzE,CA83EkBmoG,GAEV,OAAOlY,CACX,CACAz9B,OAAOxpD,EAAIsvB,EAASi5B,EAAW/gD,GAE3B,MAAM43F,EAAYrW,GAAmBz5D,EAAS,GAAI,GAAI,IACtDu5D,UAAe7hG,KAAKk4G,WAAWl/F,GAAKuoD,EAAW62C,EAAW53F,GACnD,MACX,CACA+hF,QAAQvpF,EAAIsvB,EAASi6D,EAASj5F,GAC1B,GAAe,YAAXi5F,EAEA,YADAviG,KAAKo3D,SAASp+C,EAAI1P,EAAK,IAG3B,GAAe,UAAXi5F,EAGA,YADAviG,KAAK3C,OAAO2b,EAAIsvB,EADCh/B,EAAK,IAAM,CAAC,GAIjC,MAAM22F,EAASjgG,KAAKk4G,WAAWl/F,GAC/B,OAAQupF,GACJ,IAAK,OACDtC,EAAOlB,OACP,MACJ,IAAK,QACDkB,EAAOf,QACP,MACJ,IAAK,QACDe,EAAO1iE,QACP,MACJ,IAAK,UACD0iE,EAAOd,UACP,MACJ,IAAK,SACDc,EAAOb,SACP,MACJ,IAAK,OACDa,EAAO7iE,OACP,MACJ,IAAK,cACD6iE,EAAOZ,YAAY/iB,WAAWhzE,EAAK,KACnC,MACJ,IAAK,UACDtJ,KAAKigB,QAAQjH,GAGzB,EAGJ,MAAMq/F,GAAmB,oBAEnBC,GAAqB,sBAIrBC,GAAqB,GACrBC,GAAqB,CACvBC,YAAa,GACbC,eAAe,EACfC,YAAY,EACZC,cAAc,EACdC,sBAAsB,GAEpBC,GAA6B,CAC/BL,YAAa,GACbE,YAAY,EACZD,eAAe,EACfE,cAAc,EACdC,sBAAsB,GAEpBE,GAAe,eACrB,MAAMC,GACF,UAAI1xB,GACA,OAAOtnF,KAAKgM,QAAQs7E,MACxB,CACA9mF,YAAY+E,EAAOkzG,EAAc,IAC7Bz4G,KAAKy4G,YAAcA,EACnB,MAAMQ,EAAQ1zG,GAASA,EAAM0E,eAAe,SAG5C,GADAjK,KAAKxC,MAqzCb,SAAS07G,GAAsB17G,GAI3B,OAAOA,GAAwB,IACnC,CA1zCqB07G,CADCD,EAAQ1zG,EAAM/H,MAAW+H,GAEnC0zG,EAAO,CAEP,MAAQz7G,WAAUwO,GAAYzG,EAC9BvF,KAAKgM,QAAUA,CACnB,MAEIhM,KAAKgM,QAAU,CAAC,EAEfhM,KAAKgM,QAAQs7E,SACdtnF,KAAKgM,QAAQs7E,OAAS,CAAC,EAE/B,CACA6xB,cAAcntG,GACV,MAAM4lG,EAAY5lG,EAAQs7E,OAC1B,GAAIsqB,EAAW,CACX,MAAMG,EAAY/xG,KAAKgM,QAAQs7E,OAC/B1tF,OAAOkoB,KAAK8vF,GAAW/sG,QAAS41D,IACL,MAAnBs3C,EAAUt3C,KACVs3C,EAAUt3C,GAAQm3C,EAAUn3C,GAAI,EAG5C,CACJ,EAEJ,MAAM2+C,GAAa,OACbC,GAAsB,IAAIL,GAAWI,IAC3C,MAAME,GACF94G,YAAYwY,EAAIugG,EAAaC,GACzBx5G,KAAKgZ,GAAKA,EACVhZ,KAAKu5G,YAAcA,EACnBv5G,KAAKw5G,QAAUA,EACfx5G,KAAK6/F,QAAU,GACf7/F,KAAKy5G,UAAY,IAAIj6F,IACrBxf,KAAK05G,OAAS,GACd15G,KAAK25G,kBAAoB,IAAIn6F,IAC7Bxf,KAAK45G,eAAiB,UAAY5gG,EAClCslD,GAASi7C,EAAav5G,KAAK45G,eAC/B,CACAp3C,OAAOl6B,EAASjoC,EAAMy2D,EAAOt2C,GACzB,IAAKxgB,KAAKy5G,UAAUx7F,IAAI5d,GACpB,MAt/EZ,SAASw5G,KACL,OAAO,IAAI54B,EAAc,MAA6CjxE,EAE1E,CAm/EkB6pG,GAEV,GAAa,MAAT/iD,GAAiC,GAAhBA,EAAMl7D,OACvB,MAr/EZ,SAASk+G,KACL,OAAO,IAAI74B,EAAc,MAA2CjxE,EAExE,CAk/EkB8pG,GAEV,IAgxCR,SAASC,GAAoBx4C,GACzB,MAAoB,SAAbA,GAAqC,QAAbA,CACnC,CAlxCaw4C,CAAoBjjD,GACrB,MAp/EZ,SAASkjD,KACL,OAAO,IAAI/4B,EAAc,MAAuDjxE,EAEpF,CAi/EkBgqG,GAEV,MAAMvqC,EAAY4yB,GAAqBriG,KAAK25G,kBAAmBrxE,EAAS,IAClE5vB,EAAO,CAAErY,OAAMy2D,QAAOt2C,YAC5BivD,EAAUzyE,KAAK0b,GACf,MAAMuhG,EAAqB5X,GAAqBriG,KAAKw5G,QAAQU,gBAAiB5xE,EAAS,IAAI9oB,KAC3F,OAAKy6F,EAAmBh8F,IAAI5d,KACxBi+D,GAASh2B,EAAS07D,IAClB1lC,GAASh2B,EAAS07D,GAAuB,IAAM3jG,GAC/C45G,EAAmBp6F,IAAIxf,EAAMg5G,KAE1B,KAIHr5G,KAAKw5G,QAAQW,WAAW,KACpB,MAAMp5G,EAAQ0uE,EAAU/tE,QAAQgX,GAC5B3X,GAAS,GACT0uE,EAAU5tE,OAAOd,EAAO,GAEvBf,KAAKy5G,UAAUx7F,IAAI5d,IACpB45G,EAAmBjkF,OAAO31B,EAAI,EAErC,CAET,CACA+2D,SAAS/2D,EAAMuqG,GACX,OAAI5qG,KAAKy5G,UAAUx7F,IAAI5d,KAKnBL,KAAKy5G,UAAU55F,IAAIxf,EAAMuqG,IAClB,EAEf,CACAwP,YAAY/5G,GACR,MAAMi9F,EAAUt9F,KAAKy5G,UAAUxpG,IAAI5P,GACnC,IAAKi9F,EACD,MAvhFZ,SAAS+c,KACL,OAAO,IAAIp5B,EAAc,MAAkDjxE,EAC/E,CAqhFkBqqG,GAEV,OAAO/c,CACX,CACAA,QAAQh1D,EAAS05D,EAAaxkG,EAAO88G,GAAoB,GACrD,MAAMhd,EAAUt9F,KAAKo6G,YAAYpY,GAC3B/B,EAAS,IAAIsa,GAA0Bv6G,KAAKgZ,GAAIgpF,EAAa15D,GACnE,IAAI2xE,EAAqBj6G,KAAKw5G,QAAQU,gBAAgBjqG,IAAIq4B,GACrD2xE,IACD37C,GAASh2B,EAAS07D,IAClB1lC,GAASh2B,EAAS07D,GAAuB,IAAMhC,GAC/ChiG,KAAKw5G,QAAQU,gBAAgBr6F,IAAIyoB,EAAU2xE,EAAqB,IAAIz6F,MAExE,IAAIyiF,EAAYgY,EAAmBhqG,IAAI+xF,GACvC,MAAME,EAAU,IAAI8W,GAAWx7G,EAAOwC,KAAKgZ,IAgB3C,KAfcxb,GAASA,EAAMyM,eAAe,WAC9Bg4F,GACVC,EAAQiX,cAAclX,EAAUj2F,SAEpCiuG,EAAmBp6F,IAAImiF,EAAaE,GAC/BD,IACDA,EAAYoX,IAEEnX,EAAQ1kG,QAAU47G,IAOlBnX,EAAUzkG,QAAU0kG,EAAQ1kG,MAAO,CAGjD,IAgzCZ,SAASg9G,GAAU9gH,EAAGC,GAClB,MAAM8gH,EAAK7gH,OAAOkoB,KAAKpoB,GACjBghH,EAAK9gH,OAAOkoB,KAAKnoB,GACvB,GAAI8gH,EAAG7+G,QAAU8+G,EAAG9+G,OAChB,OAAO,EACX,QAASY,EAAI,EAAGA,EAAIi+G,EAAG7+G,OAAQY,IAAK,CAChC,MAAMi+D,EAAOggD,EAAGj+G,GAChB,IAAK7C,EAAEsQ,eAAewwD,IAAS/gE,EAAE+gE,KAAU9gE,EAAE8gE,GACzC,OAAO,CACf,CACA,OAAO,CACX,CA3zCiB+/C,CAAUvY,EAAU3a,OAAQ4a,EAAQ5a,QAAS,CAC9C,MAAMxnF,EAAS,GACT+0G,EAAavX,EAAQ+Z,YAAYpV,EAAUzkG,MAAOykG,EAAU3a,OAAQxnF,GACpEg1G,EAAWxX,EAAQ+Z,YAAYnV,EAAQ1kG,MAAO0kG,EAAQ5a,OAAQxnF,GAChEA,EAAOlE,OACPoE,KAAKw5G,QAAQmB,YAAY76G,GAGzBE,KAAKw5G,QAAQW,WAAW,KACpBhV,GAAY78D,EAASusE,GACrB9P,GAAUz8D,EAASwsE,EAAQ,EAGvC,CACA,MACJ,CACA,MAAM8F,EAAmBvY,GAAqBriG,KAAKw5G,QAAQqB,iBAAkBvyE,EAAS,IACtFsyE,EAAiB/1G,QAASo7F,IAKlBA,EAAOwY,aAAez4G,KAAKgZ,IAAMinF,EAAO+B,aAAeA,GAAe/B,EAAO6a,QAC7E7a,EAAOhgF,SAAQ,GAGvB,IAAI09E,EAAaL,EAAQ8Z,gBAAgBnV,EAAUzkG,MAAO0kG,EAAQ1kG,MAAO8qC,EAAS45D,EAAQ5a,QACtFyzB,GAAuB,EAC3B,IAAKpd,EAAY,CACb,IAAK2c,EACD,OACJ3c,EAAaL,EAAQ2Z,mBACrB8D,GAAuB,CAC3B,CACA,OAAA/6G,KAAKw5G,QAAQwB,qBACbh7G,KAAK05G,OAAO18G,KAAK,CACbsrC,UACA05D,cACArE,aACAsE,YACAC,UACAjC,SACA8a,yBAECA,IACDz8C,GAASh2B,EAAS+vE,IAClBpY,EAAOrB,QAAQ,KACXrgC,GAAYj2B,EAAS+vE,GAAgB,IAG7CpY,EAAOpB,OAAO,KACV,IAAI99F,EAAQf,KAAK6/F,QAAQn+F,QAAQu+F,GAC7Bl/F,GAAS,GACTf,KAAK6/F,QAAQh+F,OAAOd,EAAO,GAE/B,MAAM8+F,EAAU7/F,KAAKw5G,QAAQqB,iBAAiB5qG,IAAIq4B,GAClD,GAAIu3D,EAAS,CACT,IAAI9+F,EAAQ8+F,EAAQn+F,QAAQu+F,GACxBl/F,GAAS,GACT8+F,EAAQh+F,OAAOd,EAAO,EAE9B,IAEJf,KAAK6/F,QAAQ7iG,KAAKijG,GAClB2a,EAAiB59G,KAAKijG,GACfA,CACX,CACAgb,WAAW56G,GACPL,KAAKy5G,UAAUzjF,OAAO31B,GACtBL,KAAKw5G,QAAQU,gBAAgBr1G,QAASyyG,GAAaA,EAASthF,OAAO31B,IACnEL,KAAK25G,kBAAkB90G,QAAQ,CAAC4qE,EAAWnnC,KACvCtoC,KAAK25G,kBAAkB95F,IAAIyoB,EAASmnC,EAAUtoE,OAAQ+zG,GAC3CA,EAAM76G,MAAQA,GACvB,EAEV,CACA86G,kBAAkB7yE,GACdtoC,KAAKw5G,QAAQU,gBAAgBlkF,OAAOsS,GACpCtoC,KAAK25G,kBAAkB3jF,OAAOsS,GAC9B,MAAM8yE,EAAiBp7G,KAAKw5G,QAAQqB,iBAAiB5qG,IAAIq4B,GACrD8yE,IACAA,EAAev2G,QAASo7F,GAAWA,EAAOhgF,WAC1CjgB,KAAKw5G,QAAQqB,iBAAiB7kF,OAAOsS,GAE7C,CACA+yE,+BAA+B7kE,EAAalzC,GACxC,MAAMsvF,EAAW5yF,KAAKw5G,QAAQnR,OAAOhF,MAAM7sD,EAAaytD,IAAqB,GAI7ErR,EAAS/tF,QAAS0xG,IAGd,GAAIA,EAAIwC,IACJ,OACJ,MAAMuC,EAAat7G,KAAKw5G,QAAQ+B,yBAAyBhF,GACrD+E,EAAWrlF,KACXqlF,EAAWz2G,QAAS22G,GAAOA,EAAGC,sBAAsBlF,EAAKjzG,GAAS,GAAO,IAGzEtD,KAAKm7G,kBAAkB5E,EAAG,GAKlCv2G,KAAKw5G,QAAQkC,yBAAyB,IAAM9oB,EAAS/tF,QAAS0xG,GAAQv2G,KAAKm7G,kBAAkB5E,IACjG,CACAkF,sBAAsBnzE,EAAShlC,EAASq4G,EAAsBrB,GAC1D,MAAMsB,EAAgB57G,KAAKw5G,QAAQU,gBAAgBjqG,IAAIq4B,GACjDuzE,EAAyB,IAAIr8F,IACnC,GAAIo8F,EAAe,CACf,MAAM/b,EAAU,GAYhB,GAXA+b,EAAc/2G,QAAQ,CAAC64F,EAAOsE,KAI1B,GAHA6Z,EAAuBh8F,IAAImiF,EAAatE,EAAMlgG,OAG1CwC,KAAKy5G,UAAUx7F,IAAI+jF,GAAc,CACjC,MAAM/B,EAASjgG,KAAKs9F,QAAQh1D,EAAS05D,EAAaoX,GAAYkB,GAC1Dra,GACAJ,EAAQ7iG,KAAKijG,EAErB,IAEAJ,EAAQjkG,OACR,OAAAoE,KAAKw5G,QAAQsC,qBAAqB97G,KAAKgZ,GAAIsvB,GAAS,EAAMhlC,EAASu4G,GAC/DF,GACAhb,GAAoBd,GAAShB,OAAO,IAAM7+F,KAAKw5G,QAAQuC,iBAAiBzzE,KAErE,CAEf,CACA,OAAO,CACX,CACA0zE,+BAA+B1zE,GAC3B,MAAMmnC,EAAYzvE,KAAK25G,kBAAkB1pG,IAAIq4B,GACvC2zE,EAAgBj8G,KAAKw5G,QAAQU,gBAAgBjqG,IAAIq4B,GAGvD,GAAImnC,GAAawsC,EAAe,CAC5B,MAAMC,EAAkB,IAAIl/F,IAC5ByyD,EAAU5qE,QAAS6qE,IACf,MAAMsyB,EAActyB,EAASrvE,KAC7B,GAAI67G,EAAgBj+F,IAAI+jF,GACpB,OACJka,EAAgB76G,IAAI2gG,GAEpB,MAAMrE,EADU39F,KAAKy5G,UAAUxpG,IAAI+xF,GACRiV,mBACrBhV,EAAYga,EAAchsG,IAAI+xF,IAAgBqX,GAC9CnX,EAAU,IAAI8W,GAAWI,IACzBnZ,EAAS,IAAIsa,GAA0Bv6G,KAAKgZ,GAAIgpF,EAAa15D,GACnEtoC,KAAKw5G,QAAQwB,qBACbh7G,KAAK05G,OAAO18G,KAAK,CACbsrC,UACA05D,cACArE,aACAsE,YACAC,UACAjC,SACA8a,sBAAsB,GACzB,EAET,CACJ,CACAoB,WAAW7zE,EAAShlC,GAChB,MAAM84G,EAASp8G,KAAKw5G,QAKpB,GAJIlxE,EAAQ+zE,mBACRr8G,KAAKq7G,+BAA+B/yE,EAAShlC,GAG7CtD,KAAKy7G,sBAAsBnzE,EAAShlC,GAAS,GAC7C,OAGJ,IAAIg5G,GAAoC,EACxC,GAAIF,EAAOG,gBAAiB,CACxB,MAAMC,EAAiBJ,EAAOvc,QAAQjkG,OAChCwgH,EAAOK,wBAAwBxsG,IAAIq4B,GACnC,GAKN,GAAIk0E,GAAkBA,EAAe5gH,OACjC0gH,GAAoC,MAEnC,CACD,IAAIz4G,EAASykC,EACb,KAAQzkC,EAASA,EAAOolC,YAEpB,GADiBmzE,EAAOlC,gBAAgBjqG,IAAIpM,GAC9B,CACVy4G,GAAoC,EACpC,KACJ,CAER,CACJ,CAQA,GAHAt8G,KAAKg8G,+BAA+B1zE,GAGhCg0E,EACAF,EAAON,qBAAqB97G,KAAKgZ,GAAIsvB,GAAS,EAAOhlC,OAEpD,CACD,MAAMo5G,EAAcp0E,EAAQywE,MACvB2D,GAAeA,IAAgBlE,MAGhC4D,EAAOjC,WAAW,IAAMn6G,KAAKm7G,kBAAkB7yE,IAC/C8zE,EAAOO,uBAAuBr0E,GAC9B8zE,EAAOQ,mBAAmBt0E,EAAShlC,GAE3C,CACJ,CACAu5G,WAAWv0E,EAASzkC,GAChBy6D,GAASh2B,EAAStoC,KAAK45G,eAC3B,CACAkD,uBAAuBC,GACnB,MAAMt5D,EAAe,GACrB,OAAAzjD,KAAK05G,OAAO70G,QAASq2G,IACjB,MAAMjb,EAASib,EAAMjb,OACrB,GAAIA,EAAO7gF,UACP,OACJ,MAAMkpB,EAAU4yE,EAAM5yE,QAChBmnC,EAAYzvE,KAAK25G,kBAAkB1pG,IAAIq4B,GACzCmnC,GACAA,EAAU5qE,QAAS6qE,IACf,GAAIA,EAASrvE,MAAQ66G,EAAMlZ,YAAa,CACpC,MAAMoW,EAAYrW,GAAmBz5D,EAAS4yE,EAAMlZ,YAAakZ,EAAMjZ,UAAUzkG,MAAO09G,EAAMhZ,QAAQ1kG,OACtG46G,EAAUhW,MAAW2a,EACrBlb,GAAeqZ,EAAMjb,OAAQvwB,EAAS5Y,MAAOshD,EAAW1oC,EAASlvD,SACrE,IAGJy/E,EAAO+c,iBACPh9G,KAAKw5G,QAAQW,WAAW,KAGpBla,EAAOhgF,SAAQ,GAInBwjC,EAAazmD,KAAKk+G,EAAK,GAG/Bl7G,KAAK05G,OAAS,GACPj2D,EAAamqC,KAAK,CAACl0F,EAAGC,KAGzB,MAAMsjH,EAAKvjH,EAAEikG,WAAWiN,IAAI7B,SACtBmU,EAAKvjH,EAAEgkG,WAAWiN,IAAI7B,SAC5B,OAAU,GAANkU,GAAiB,GAANC,EACJD,EAAKC,EAETl9G,KAAKw5G,QAAQnR,OAAOxF,gBAAgBnpG,EAAE4uC,QAAS3uC,EAAE2uC,SAAW,GAAI,GAE/E,CACAroB,QAAQ3c,GACJtD,KAAK6/F,QAAQh7F,QAASu7F,GAAMA,EAAEngF,WAC9BjgB,KAAKq7G,+BAA+Br7G,KAAKu5G,YAAaj2G,EAC1D,EAEJ,MAAM65G,GAEFP,mBAAmBt0E,EAAShlC,GACxBtD,KAAKo9G,kBAAkB90E,EAAShlC,EACpC,CACA9C,YAAYi3G,EAAUpP,EAAQyO,GAC1B92G,KAAKy3G,SAAWA,EAChBz3G,KAAKqoG,OAASA,EACdroG,KAAK82G,YAAcA,EACnB92G,KAAK6/F,QAAU,GACf7/F,KAAKq9G,gBAAkB,IAAI79F,IAC3Bxf,KAAK66G,iBAAmB,IAAIr7F,IAC5Bxf,KAAKy8G,wBAA0B,IAAIj9F,IACnCxf,KAAKk6G,gBAAkB,IAAI16F,IAC3Bxf,KAAKs9G,cAAgB,IAAItgG,IACzBhd,KAAKu8G,gBAAkB,EACvBv8G,KAAKg7G,mBAAqB,EAC1Bh7G,KAAKu9G,iBAAmB,CAAC,EACzBv9G,KAAKw9G,eAAiB,GACtBx9G,KAAKy9G,UAAY,GACjBz9G,KAAK09G,cAAgB,GACrB19G,KAAK29G,wBAA0B,IAAIn+F,IACnCxf,KAAK49G,uBAAyB,GAC9B59G,KAAK69G,uBAAyB,GAE9B79G,KAAKo9G,kBAAoB,CAAC90E,EAAShlC,KAAV,CAC7B,CACA,iBAAIw6G,GACA,MAAMje,EAAU,GAChB,OAAA7/F,KAAKw9G,eAAe34G,QAAS22G,IACzBA,EAAG3b,QAAQh7F,QAASo7F,IACZA,EAAO6a,QACPjb,EAAQ7iG,KAAKijG,EAAM,EAE1B,GAEEJ,CACX,CACAke,gBAAgBtF,EAAac,GACzB,MAAMiC,EAAK,IAAIlC,GAA6Bb,EAAac,EAAav5G,MACtE,OAAIA,KAAKy3G,UAAYz3G,KAAKqoG,OAAOxF,gBAAgB7iG,KAAKy3G,SAAU8B,GAC5Dv5G,KAAKg+G,sBAAsBxC,EAAIjC,IAM/Bv5G,KAAKq9G,gBAAgBx9F,IAAI05F,EAAaiC,GAMtCx7G,KAAKi+G,oBAAoB1E,IAErBv5G,KAAKu9G,iBAAiB9E,GAAe+C,CACjD,CACAwC,sBAAsBxC,EAAIjC,GACtB,MAAM2E,EAAgBl+G,KAAKw9G,eACrBG,EAA0B39G,KAAK29G,wBAErC,GADcO,EAActiH,OAAS,GACxB,EAAG,CACZ,IAAIuiH,GAAQ,EAGRC,EAAWp+G,KAAKqoG,OAAO3F,iBAAiB6W,GAC5C,KAAO6E,GAAU,CACb,MAAMC,EAAaV,EAAwB1tG,IAAImuG,GAC/C,GAAIC,EAAY,CAGZ,MAAMt9G,EAAQm9G,EAAcx8G,QAAQ28G,GACpCH,EAAcr8G,OAAOd,EAAQ,EAAG,EAAGy6G,GACnC2C,GAAQ,EACR,KACJ,CACAC,EAAWp+G,KAAKqoG,OAAO3F,iBAAiB0b,EAC5C,CACKD,GAIDD,EAAcj9F,QAAQu6F,EAE9B,MAEI0C,EAAclhH,KAAKw+G,GAEvBmC,SAAwB99F,IAAI05F,EAAaiC,GAClCA,CACX,CACApkD,SAASqhD,EAAac,GAClB,IAAIiC,EAAKx7G,KAAKu9G,iBAAiB9E,GAC/B,OAAK+C,IACDA,EAAKx7G,KAAK+9G,gBAAgBtF,EAAac,IAEpCiC,CACX,CACA8C,gBAAgB7F,EAAap4G,EAAMi9F,GAC/B,IAAIke,EAAKx7G,KAAKu9G,iBAAiB9E,GAC3B+C,GAAMA,EAAGpkD,SAAS/2D,EAAMi9F,IACxBt9F,KAAKu8G,iBAEb,CACAt8F,QAAQw4F,EAAan1G,GACZm1G,IAELz4G,KAAKm6G,WAAW,QAChBn6G,KAAK07G,yBAAyB,KAC1B,MAAMF,EAAKx7G,KAAKu+G,gBAAgB9F,GAChCz4G,KAAK29G,wBAAwB3nF,OAAOwlF,EAAGjC,aACvC,MAAMx4G,EAAQf,KAAKw9G,eAAe97G,QAAQ85G,GACtCz6G,GAAS,GACTf,KAAKw9G,eAAe37G,OAAOd,EAAO,GAEtCy6G,EAAGv7F,QAAQ3c,UACJtD,KAAKu9G,iBAAiB9E,EAAW,GAEhD,CACA8F,gBAAgBvlG,GACZ,OAAOhZ,KAAKu9G,iBAAiBvkG,EACjC,CACAuiG,yBAAyBjzE,GAMrB,MAAMgzE,EAAa,IAAIt+F,IACjBi/F,EAAgBj8G,KAAKk6G,gBAAgBjqG,IAAIq4B,GAC/C,GAAI2zE,EACA,QAASuC,KAAcvC,EAAc1yG,SACjC,GAAIi1G,EAAW/F,YAAa,CACxB,MAAM+C,EAAKx7G,KAAKu+G,gBAAgBC,EAAW/F,aACvC+C,GACAF,EAAWj6G,IAAIm6G,EAEvB,CAGR,OAAOF,CACX,CACAhe,QAAQmb,EAAanwE,EAASjoC,EAAM7C,GAChC,GAAI0xF,GAAc5mD,GAAU,CACxB,MAAMkzE,EAAKx7G,KAAKu+G,gBAAgB9F,GAChC,GAAI+C,EACAA,SAAGle,QAAQh1D,EAASjoC,EAAM7C,IACnB,CAEf,CACA,OAAO,CACX,CACAq/G,WAAWpE,EAAanwE,EAASzkC,EAAQsrC,GACrC,IAAK+/C,GAAc5mD,GACf,OAGJ,MAAMm2E,EAAUn2E,EAAQywE,IACxB,GAAI0F,GAAWA,EAAQ/F,cAAe,CAClC+F,EAAQ/F,eAAgB,EACxB+F,EAAQ9F,YAAa,EACrB,MAAM53G,EAAQf,KAAK69G,uBAAuBn8G,QAAQ4mC,GAC9CvnC,GAAS,GACTf,KAAK69G,uBAAuBh8G,OAAOd,EAAO,EAElD,CAIA,GAAI03G,EAAa,CACb,MAAM+C,EAAKx7G,KAAKu+G,gBAAgB9F,GAO5B+C,GACAA,EAAGqB,WAAWv0E,EAASzkC,EAE/B,CAEIsrC,GACAnvC,KAAKi+G,oBAAoB31E,EAEjC,CACA21E,oBAAoB31E,GAChBtoC,KAAK49G,uBAAuB5gH,KAAKsrC,EACrC,CACAo2E,sBAAsBp2E,EAAS9qC,GACvBA,EACKwC,KAAKs9G,cAAcr/F,IAAIqqB,KACxBtoC,KAAKs9G,cAAcj8G,IAAIinC,GACvBg2B,GAASh2B,EAASgwE,KAGjBt4G,KAAKs9G,cAAcr/F,IAAIqqB,KAC5BtoC,KAAKs9G,cAActnF,OAAOsS,GAC1Bi2B,GAAYj2B,EAASgwE,IAE7B,CACA6D,WAAW1D,EAAanwE,EAAShlC,GAC7B,GAAI4rF,GAAc5mD,GAAU,CACxB,MAAMkzE,EAAK/C,EAAcz4G,KAAKu+G,gBAAgB9F,GAAe,KACzD+C,EACAA,EAAGW,WAAW7zE,EAAShlC,GAGvBtD,KAAK87G,qBAAqBrD,EAAanwE,GAAS,EAAOhlC,GAE3D,MAAMq7G,EAAS3+G,KAAK29G,wBAAwB1tG,IAAIq4B,GAC5Cq2E,GAAUA,EAAO3lG,KAAOy/F,GACxBkG,EAAOxC,WAAW7zE,EAAShlC,EAEnC,MAEItD,KAAK48G,mBAAmBt0E,EAAShlC,EAEzC,CACAw4G,qBAAqBrD,EAAanwE,EAASswE,EAAct1G,EAASu4G,GAC9D77G,KAAK69G,uBAAuB7gH,KAAKsrC,GACjCA,EAAQywE,IAAgB,CACpBN,cACAC,cAAep1G,EACfs1G,eACAC,sBAAsB,EACtBgD,yBAER,CACAr5C,OAAOi2C,EAAanwE,EAASjoC,EAAMy2D,EAAOt2C,GACtC,OAAI0uE,GAAc5mD,GACPtoC,KAAKu+G,gBAAgB9F,GAAaj2C,OAAOl6B,EAASjoC,EAAMy2D,EAAOt2C,GAEnE,MACX,CACAo+F,kBAAkB1D,EAAO2D,EAAc1Q,EAAgBC,EAAgB0Q,GACnE,OAAO5D,EAAMvd,WAAWjN,MAAM1wF,KAAKqoG,OAAQ6S,EAAM5yE,QAAS4yE,EAAMjZ,UAAUzkG,MAAO09G,EAAMhZ,QAAQ1kG,MAAO2wG,EAAgBC,EAAgB8M,EAAMjZ,UAAUj2F,QAASkvG,EAAMhZ,QAAQl2F,QAAS6yG,EAAcC,EACxM,CACAnC,uBAAuBoC,GACnB,IAAInsB,EAAW5yF,KAAKqoG,OAAOhF,MAAM0b,EAAkB9a,IAAqB,GACxErR,EAAS/tF,QAASyjC,GAAYtoC,KAAKg/G,kCAAkC12E,IAC5B,GAArCtoC,KAAKy8G,wBAAwBxmF,OAEjC28D,EAAW5yF,KAAKqoG,OAAOhF,MAAM0b,EAAkB5a,IAAuB,GACtEvR,EAAS/tF,QAASyjC,GAAYtoC,KAAKi/G,sCAAsC32E,IAC7E,CACA02E,kCAAkC12E,GAC9B,MAAMu3D,EAAU7/F,KAAK66G,iBAAiB5qG,IAAIq4B,GACtCu3D,GACAA,EAAQh7F,QAASo7F,IAITA,EAAO6a,OACP7a,EAAO+c,kBAAmB,EAG1B/c,EAAOhgF,SAAQ,EAI/B,CACAg/F,sCAAsC32E,GAClC,MAAMu3D,EAAU7/F,KAAKy8G,wBAAwBxsG,IAAIq4B,GAC7Cu3D,GACAA,EAAQh7F,QAASo7F,GAAWA,EAAOb,SAE3C,CACA8f,oBACI,OAAO,IAAIrgH,QAASmG,IAChB,GAAIhF,KAAK6/F,QAAQjkG,OACb,OAAO+kG,GAAoB3gG,KAAK6/F,SAAShB,OAAO,IAAM75F,KAGtDA,GAAQ,EAGpB,CACA+2G,iBAAiBzzE,GACb,MAAMm2E,EAAUn2E,EAAQywE,IACxB,GAAI0F,GAAWA,EAAQ/F,cAAe,CAGlC,GADApwE,EAAQywE,IAAgBP,GACpBiG,EAAQhG,YAAa,CACrBz4G,KAAK28G,uBAAuBr0E,GAC5B,MAAMkzE,EAAKx7G,KAAKu+G,gBAAgBE,EAAQhG,aACpC+C,GACAA,EAAGL,kBAAkB7yE,EAE7B,CACAtoC,KAAK48G,mBAAmBt0E,EAASm2E,EAAQ/F,cAC7C,CACIpwE,EAAQgtD,WAAW6pB,SAAS7G,KAC5Bt4G,KAAK0+G,sBAAsBp2E,GAAS,GAExCtoC,KAAKqoG,OAAOhF,MAAM/6D,EAlsBA,wBAksB4B,GAAMzjC,QAASrJ,IACzDwE,KAAK0+G,sBAAsBljH,GAAM,EAAK,EAE9C,CACAojD,MAAMm+D,GAAc,GAChB,IAAIld,EAAU,GAKd,GAJI7/F,KAAKq9G,gBAAgBpnF,OACrBj2B,KAAKq9G,gBAAgBx4G,QAAQ,CAAC22G,EAAIlzE,IAAYtoC,KAAKg+G,sBAAsBxC,EAAIlzE,IAC7EtoC,KAAKq9G,gBAAgB98F,SAErBvgB,KAAKu8G,iBAAmBv8G,KAAK49G,uBAAuBhiH,OACpD,QAASY,EAAI,EAAGA,EAAIwD,KAAK49G,uBAAuBhiH,OAAQY,IAEpD8hE,GADYt+D,KAAK49G,uBAAuBphH,GA7sBjC,oBAitBf,GAAIwD,KAAKw9G,eAAe5hH,SACnBoE,KAAKg7G,oBAAsBh7G,KAAK69G,uBAAuBjiH,QAAS,CACjE,MAAMwjH,EAAa,GACnB,IACIvf,EAAU7/F,KAAKq/G,iBAAiBD,EAAYrC,EAChD,SAEI,QAASvgH,EAAI,EAAGA,EAAI4iH,EAAWxjH,OAAQY,IACnC4iH,EAAW5iH,IAEnB,CACJ,MAEI,QAASA,EAAI,EAAGA,EAAIwD,KAAK69G,uBAAuBjiH,OAAQY,IAEpDwD,KAAK+7G,iBADW/7G,KAAK69G,uBAAuBrhH,IASpD,GALAwD,KAAKg7G,mBAAqB,EAC1Bh7G,KAAK49G,uBAAuBhiH,OAAS,EACrCoE,KAAK69G,uBAAuBjiH,OAAS,EACrCoE,KAAKy9G,UAAU54G,QAASjB,GAAOA,KAC/B5D,KAAKy9G,UAAY,GACbz9G,KAAK09G,cAAc9hH,OAAQ,CAI3B,MAAM0jH,EAAWt/G,KAAK09G,cACtB19G,KAAK09G,cAAgB,GACjB7d,EAAQjkG,OACR+kG,GAAoBd,GAAShB,OAAO,KAChCygB,EAASz6G,QAASjB,GAAOA,IAAI,GAIjC07G,EAASz6G,QAASjB,GAAOA,IAEjC,CACJ,CACA+2G,YAAY76G,GACR,MA7pGR,SAASy/G,KACL,OAAO,IAAIt+B,EAAc,MAAwDjxE,EAIrF,CAwpGcuvG,EACV,CACAF,iBAAiBD,EAAYrC,GACzB,MAAM8B,EAAe,IAAIhR,GACnB2R,EAAiB,GACjBC,EAAoB,IAAIjgG,IACxBkgG,EAAqB,GACrB3K,EAAkB,IAAIv1F,IACtBmgG,EAAsB,IAAIngG,IAC1BogG,EAAuB,IAAIpgG,IAC3BqgG,EAAsB,IAAI7iG,IAChChd,KAAKs9G,cAAcz4G,QAASrJ,IACxBqkH,EAAoBx+G,IAAI7F,GACxB,MAAMskH,EAAuB9/G,KAAKqoG,OAAOhF,MAAM7nG,EAzwBnC,sBAywB0D,GACtE,QAASgB,EAAI,EAAGA,EAAIsjH,EAAqBlkH,OAAQY,IAC7CqjH,EAAoBx+G,IAAIy+G,EAAqBtjH,GAAE,GAGvD,MAAMi7G,EAAWz3G,KAAKy3G,SAChBsI,EAAqBrgH,MAAM8jD,KAAKxjD,KAAKk6G,gBAAgBp4F,QACrDk+F,EAAeC,GAAaF,EAAoB//G,KAAK49G,wBAIrDsC,EAAkB,IAAI1gG,IAC5B,IAAIhjB,EAAI,EACRwjH,EAAan7G,QAAQ,CAACsyC,EAAO7d,KACzB,MAAM/lB,EAAYuwF,GAAkBtnG,IACpC0jH,EAAgBrgG,IAAIyZ,EAAM/lB,GAC1B4jC,EAAMtyC,QAASrJ,IAAS8iE,GAAS9iE,GAAM+X,GAAU,GAErD,MAAM4sG,EAAgB,GAChBC,EAAmB,IAAIpjG,IACvBqjG,EAA8B,IAAIrjG,IACxC,QAASxgB,EAAI,EAAGA,EAAIwD,KAAK69G,uBAAuBjiH,OAAQY,IAAK,CACzD,MAAM8rC,EAAUtoC,KAAK69G,uBAAuBrhH,GACtCiiH,EAAUn2E,EAAQywE,IACpB0F,GAAWA,EAAQ/F,gBACnByH,EAAcnjH,KAAKsrC,GACnB83E,EAAiB/+G,IAAIinC,GACjBm2E,EAAQ7F,aACR54G,KAAKqoG,OACAhF,MAAM/6D,EAlyBT,qBAkyBiC,GAC9BzjC,QAAS0xG,IAAQ6J,EAAiB/+G,IAAIk1G,KAG3C8J,EAA4Bh/G,IAAIinC,GAG5C,CACA,MAAMg4E,EAAkB,IAAI9gG,IACtB+gG,EAAeN,GAAaF,EAAoBrgH,MAAM8jD,KAAK48D,IACjEG,EAAa17G,QAAQ,CAACsyC,EAAO7d,KACzB,MAAM/lB,EAAYwwF,GAAkBvnG,IACpC8jH,EAAgBzgG,IAAIyZ,EAAM/lB,GAC1B4jC,EAAMtyC,QAASrJ,IAAS8iE,GAAS9iE,GAAM+X,GAAU,GAErD6rG,EAAWpiH,KAAK,KACZgjH,EAAan7G,QAAQ,CAACsyC,EAAO7d,KACzB,MAAM/lB,EAAY2sG,EAAgBjwG,IAAIqpB,GACtC6d,EAAMtyC,QAASrJ,IAAS+iE,GAAY/iE,GAAM+X,GAAU,GAExDgtG,EAAa17G,QAAQ,CAACsyC,EAAO7d,KACzB,MAAM/lB,EAAY+sG,EAAgBrwG,IAAIqpB,GACtC6d,EAAMtyC,QAASrJ,IAAS+iE,GAAY/iE,GAAM+X,GAAU,GAExD4sG,EAAct7G,QAASyjC,IACnBtoC,KAAK+7G,iBAAiBzzE,EAAO,EAChC,GAEL,MAAMk4E,EAAa,GACbC,GAAuB,GAC7B,QAASjkH,EAAIwD,KAAKw9G,eAAe5hH,OAAS,EAAGY,GAAK,EAAGA,IACtCwD,KAAKw9G,eAAehhH,GAC5BsgH,uBAAuBC,GAAal4G,QAASq2G,IAC5C,MAAMjb,GAASib,EAAMjb,OACf33D,GAAU4yE,EAAM5yE,QAEtB,GADAk4E,EAAWxjH,KAAKijG,IACZjgG,KAAK49G,uBAAuBhiH,OAAQ,CACpC,MAAM6iH,GAAUn2E,GAAQywE,IAGxB,GAAI0F,IAAWA,GAAQ9F,WAAY,CAC/B,GAAI8F,GAAQ5C,wBACR4C,GAAQ5C,uBAAuB59F,IAAIi9F,EAAMlZ,aAAc,CACvD,MAAMn8E,GAAgB44F,GAAQ5C,uBAAuB5rG,IAAIirG,EAAMlZ,aAGzDiY,GAAqBj6G,KAAKk6G,gBAAgBjqG,IAAIirG,EAAM5yE,SAC1D,GAAI2xE,IAAsBA,GAAmBh8F,IAAIi9F,EAAMlZ,aAAc,CACjE,MAAMtE,GAAQuc,GAAmBhqG,IAAIirG,EAAMlZ,aAC3CtE,GAAMlgG,MAAQqoB,GACdo0F,GAAmBp6F,IAAIq7F,EAAMlZ,YAAatE,GAC9C,CACJ,CAEA,YADAuC,GAAOhgF,SAEX,CACJ,CACA,MAAMygG,IAAkBjJ,IAAaz3G,KAAKqoG,OAAOxF,gBAAgB4U,EAAUnvE,IACrE8lE,GAAiBkS,EAAgBrwG,IAAIq4B,IACrC6lE,GAAiB+R,EAAgBjwG,IAAIq4B,IACrCsnE,GAAc5vG,KAAK4+G,kBAAkB1D,EAAO2D,EAAc1Q,GAAgBC,GAAgBsS,IAChG,GAAI9Q,GAAY9vG,QAAU8vG,GAAY9vG,OAAOlE,OAEzC,YADA6kH,GAAqBzjH,KAAK4yG,IAO9B,GAAI8Q,GAIA,OAHAzgB,GAAOrB,QAAQ,IAAMuG,GAAY78D,GAASsnE,GAAYiF,aACtD5U,GAAOxkF,UAAU,IAAMspF,GAAUz8D,GAASsnE,GAAYkF,gBACtD0K,EAAexiH,KAAKijG,IAMxB,GAAIib,EAAMH,qBAIN,OAHA9a,GAAOrB,QAAQ,IAAMuG,GAAY78D,GAASsnE,GAAYiF,aACtD5U,GAAOxkF,UAAU,IAAMspF,GAAUz8D,GAASsnE,GAAYkF,gBACtD0K,EAAexiH,KAAKijG,IAQxB,MAAM4O,GAAY,GAClBe,GAAYf,UAAUhqG,QAASosG,KAC3BA,GAAGmB,yBAA0B,EACxBpyG,KAAKs9G,cAAcr/F,IAAIgzF,GAAG3oE,UAC3BumE,GAAU7xG,KAAKi0G,GAAE,GAGzBrB,GAAYf,UAAYA,GACxBgQ,EAAaz5B,OAAO98C,GAASsnE,GAAYf,WAEzC6Q,EAAmB1iH,KADL,CAAE4yG,eAAa3P,UAAQ33D,aAErCsnE,GAAYmF,gBAAgBlwG,QAASyjC,IAAY+5D,GAAqB0S,EAAiBzsE,GAAS,IAAItrC,KAAKijG,KACzG2P,GAAYlC,cAAc7oG,QAAQ,CAAC87G,GAAWr4E,MAC1C,GAAIq4E,GAAU1qF,KAAM,CAChB,IAAI2qF,GAASjB,EAAoB1vG,IAAIq4B,IAChCs4E,IACDjB,EAAoB9/F,IAAIyoB,GAAUs4E,GAAS,IAAI5jG,KAEnD2jG,GAAU97G,QAAQ,CAACgU,GAAG4hD,KAASmmD,GAAOv/G,IAAIo5D,IAC9C,IAEJm1C,GAAYjC,eAAe9oG,QAAQ,CAAC87G,GAAWr4E,MAC3C,IAAIs4E,GAAShB,EAAqB3vG,IAAIq4B,IACjCs4E,IACDhB,EAAqB//F,IAAIyoB,GAAUs4E,GAAS,IAAI5jG,KAEpD2jG,GAAU97G,QAAQ,CAACgU,GAAG4hD,KAASmmD,GAAOv/G,IAAIo5D,IAAK,EAClD,GAGT,GAAIgmD,GAAqB7kH,OAAQ,CAC7B,MAAMkE,EAAS,GACf2gH,GAAqB57G,QAAS+qG,IAC1B9vG,EAAO9C,KArzGvB,SAAS6jH,KACL,OAAO,IAAI5/B,EAAc,MAA+CjxE,EAC5E,CAmzG4B6wG,GAA6D,GAE7EL,EAAW37G,QAASo7F,GAAWA,EAAOhgF,WACtCjgB,KAAK26G,YAAY76G,EACrB,CACA,MAAMghH,GAAwB,IAAIthG,IAK5BuhG,GAAsB,IAAIvhG,IAChCkgG,EAAmB76G,QAASq2G,IACxB,MAAM5yE,EAAU4yE,EAAM5yE,QAClBu2E,EAAa5gG,IAAIqqB,KACjBy4E,GAAoBlhG,IAAIyoB,EAASA,GACjCtoC,KAAKghH,sBAAsB9F,EAAMjb,OAAOwY,YAAayC,EAAMtL,YAAakR,IAAqB,GAGrGtB,EAAe36G,QAASo7F,IACpB,MAAM33D,EAAU23D,EAAO33D,QACCtoC,KAAKihH,oBAAoB34E,GAAS,EAAO23D,EAAOwY,YAAaxY,EAAO+B,YAAa,MACzFn9F,QAASq8G,KACrB7e,GAAqBye,GAAuBx4E,EAAS,IAAItrC,KAAKkkH,IAC9DA,GAAWjhG,SAAQ,EACtB,GASL,MAAMkhG,GAAehB,EAAch5G,OAAQ3L,GAChC4lH,GAAuB5lH,EAAMmkH,EAAqBC,IAGvDyB,GAAgB,IAAI7hG,IACG8hG,GAAsBD,GAAerhH,KAAKqoG,OAAQgY,EAA6BT,EAAsBviB,IAC7Gx4F,QAASrJ,IACtB4lH,GAAuB5lH,EAAMmkH,EAAqBC,IAClDuB,GAAankH,KAAKxB,EAAI,GAI9B,MAAM+lH,GAAe,IAAI/hG,IACzBwgG,EAAan7G,QAAQ,CAACsyC,EAAO7d,KACzBgoF,GAAsBC,GAAcvhH,KAAKqoG,OAAQ,IAAIrrF,IAAIm6B,GAAQwoE,EDhqE1D,ICgqEyF,GAEpGwB,GAAat8G,QAASrJ,IAClB,MAAMqvF,EAAOw2B,GAAcpxG,IAAIzU,GACzBgmH,EAAMD,GAAatxG,IAAIzU,GAC7B6lH,GAAcxhG,IAAIrkB,EAAM,IAAIgkB,IAAI,IAAKqrE,GAAM3F,WAAa,MAASs8B,GAAKt8B,WAAa,KAAK,GAE5F,MAAMu8B,GAAc,GACdC,GAAa,GACbC,GAAuC,CAAC,EAC9CjC,EAAmB76G,QAASq2G,IACxB,MAAQ5yE,UAAS23D,SAAQ2P,gBAAgBsL,EAGzC,GAAI2D,EAAa5gG,IAAIqqB,GAAU,CAC3B,GAAIu3E,EAAoB5hG,IAAIqqB,GAKxB,OAJA23D,EAAOxkF,UAAU,IAAMspF,GAAUz8D,EAASsnE,GAAYkF,WACtD7U,EAAOkC,UAAW,EAClBlC,EAAO2hB,kBAAkBhS,GAAYlR,gBACrC8gB,EAAexiH,KAAKijG,GASxB,IAAI4hB,GAAsBF,GAC1B,GAAIZ,GAAoB9qF,KAAO,EAAG,CAC9B,IAAIsgF,GAAMjuE,EACV,MAAMw5E,GAAe,GACrB,KAAQvL,GAAMA,GAAIttE,YAAa,CAC3B,MAAM84E,GAAiBhB,GAAoB9wG,IAAIsmG,IAC/C,GAAIwL,GAAgB,CAChBF,GAAsBE,GACtB,KACJ,CACAD,GAAa9kH,KAAKu5G,GACtB,CACAuL,GAAaj9G,QAAShB,IAAWk9G,GAAoBlhG,IAAIhc,GAAQg+G,IACrE,CACA,MAAMG,GAAchiH,KAAKiiH,gBAAgBhiB,EAAOwY,YAAa7I,GAAakR,GAAuBrB,EAAmB8B,GAAcF,IAElI,GADAphB,EAAOiiB,cAAcF,IACjBH,KAAwBF,GACxBF,GAAYzkH,KAAKijG,OAEhB,CACD,MAAMkiB,GAAgBniH,KAAK66G,iBAAiB5qG,IAAI4xG,IAC5CM,IAAiBA,GAAcvmH,SAC/BqkG,EAAOxB,aAAekC,GAAoBwhB,KAE9C3C,EAAexiH,KAAKijG,EACxB,CACJ,MAEIkF,GAAY78D,EAASsnE,GAAYiF,YACjC5U,EAAOxkF,UAAU,IAAMspF,GAAUz8D,EAASsnE,GAAYkF,WAItD4M,GAAW1kH,KAAKijG,GACZ4f,EAAoB5hG,IAAIqqB,IACxBk3E,EAAexiH,KAAKijG,EAAM,GAKtCyhB,GAAW78G,QAASo7F,IAGhB,MAAMmiB,EAAoB3C,EAAkBxvG,IAAIgwF,EAAO33D,SACvD,GAAI85E,GAAqBA,EAAkBxmH,OAAQ,CAC/C,MAAMomH,EAAcrhB,GAAoByhB,GACxCniB,EAAOiiB,cAAcF,EACzB,IAKJxC,EAAe36G,QAASo7F,IAChBA,EAAOxB,aACPwB,EAAOoiB,iBAAiBpiB,EAAOxB,cAG/BwB,EAAOhgF,SAAQ,GAMvB,QAASzjB,EAAI,EAAGA,EAAI2jH,EAAcvkH,OAAQY,IAAK,CAC3C,MAAM8rC,EAAU63E,EAAc3jH,GACxBiiH,EAAUn2E,EAAQywE,IAKxB,GAJAx6C,GAAYj2B,EAASy7D,IAIjB0a,GAAWA,EAAQ7F,aACnB,SACJ,IAAI/Y,GAAU,GAId,GAAIkV,EAAgB9+E,KAAM,CACtB,IAAIqsF,GAAuBvN,EAAgB9kG,IAAIq4B,GAC3Cg6E,IAAwBA,GAAqB1mH,QAC7CikG,GAAQ7iG,QAAQslH,IAEpB,IAAIC,GAAuBviH,KAAKqoG,OAAOhF,MAAM/6D,EAAS67D,IAAuB,GAC7E,QAASvzF,GAAI,EAAGA,GAAI2xG,GAAqB3mH,OAAQgV,KAAK,CAClD,IAAI4xG,GAAiBzN,EAAgB9kG,IAAIsyG,GAAqB3xG,KAC1D4xG,IAAkBA,GAAe5mH,QACjCikG,GAAQ7iG,QAAQwlH,GAExB,CACJ,CACA,MAAMC,GAAgB5iB,GAAQ14F,OAAQi5F,KAAOA,GAAEhhF,WAC3CqjG,GAAc7mH,OACd8mH,GAA8B1iH,KAAMsoC,EAASm6E,IAG7CziH,KAAK+7G,iBAAiBzzE,EAE9B,CAEA63E,SAAcvkH,OAAS,EACvB6lH,GAAY58G,QAASo7F,IACjBjgG,KAAK6/F,QAAQ7iG,KAAKijG,GAClBA,EAAOpB,OAAO,KACVoB,EAAOhgF,UACP,MAAMlf,EAAQf,KAAK6/F,QAAQn+F,QAAQu+F,GACnCjgG,KAAK6/F,QAAQh+F,OAAOd,EAAO,EAAC,GAEhCk/F,EAAOlB,MAAK,GAET0iB,EACX,CACAtH,WAAW35F,GACPxgB,KAAKy9G,UAAUzgH,KAAKwjB,EACxB,CACAk7F,yBAAyBl7F,GACrBxgB,KAAK09G,cAAc1gH,KAAKwjB,EAC5B,CACAygG,oBAAoB34E,EAASq6E,EAAkBlK,EAAazW,EAAa4gB,GACrE,IAAI/iB,EAAU,GACd,GAAI8iB,EAAkB,CAClB,MAAME,EAAwB7iH,KAAKy8G,wBAAwBxsG,IAAIq4B,GAC3Du6E,IACAhjB,EAAUgjB,EAElB,KACK,CACD,MAAMzH,EAAiBp7G,KAAK66G,iBAAiB5qG,IAAIq4B,GACjD,GAAI8yE,EAAgB,CAChB,MAAM0H,GAAsBF,GAAgBA,GAAgBxJ,GAC5DgC,EAAev2G,QAASo7F,IAChBA,EAAO6a,SAENgI,GAAsB7iB,EAAO+B,aAAeA,GAEjDnC,EAAQ7iG,KAAKijG,EAAM,EAE3B,CACJ,CACA,OAAIwY,GAAezW,KACfnC,EAAUA,EAAQ14F,OAAQ84F,KAClBwY,GAAeA,GAAexY,EAAOwY,aAErCzW,GAAeA,GAAe/B,EAAO+B,eAK1CnC,CACX,CACAmhB,sBAAsBvI,EAAa7I,EAAakR,GAC5C,MACMtqE,EAAco5D,EAAYtnE,QAG1By6E,EAAoBnT,EAAYgF,yBAChCj6G,EACA89G,EACAuK,EAAoBpT,EAAYgF,yBAChCj6G,EARci1G,EAAY5N,YAUhC,UAAWihB,KAAuBrT,EAAYf,UAAW,CACrD,MAAMvmE,EAAU26E,EAAoB36E,QAC9Bq6E,EAAmBr6E,IAAYkO,EAC/BqpD,EAAUwC,GAAqBye,EAAuBx4E,EAAS,IAC7CtoC,KAAKihH,oBAAoB34E,EAASq6E,EAAkBI,EAAmBC,EAAmBpT,EAAY1N,SAC9Gr9F,QAASo7F,IACrB,MAAMijB,EAAajjB,EAAOkjB,gBACtBD,EAAWziB,eACXyiB,EAAWziB,gBAEfR,EAAOhgF,UACP4/E,EAAQ7iG,KAAKijG,EAAM,EAE3B,CAGAkF,GAAY3uD,EAAao5D,EAAYiF,WACzC,CACAoN,gBAAgBxJ,EAAa7I,EAAakR,EAAuBrB,EAAmB8B,EAAcF,GAC9F,MAAMrf,EAAc4N,EAAY5N,YAC1BxrD,EAAco5D,EAAYtnE,QAG1B86E,EAAoB,GACpBC,EAAsB,IAAIrmG,IAC1BsmG,EAAiB,IAAItmG,IACrBumG,EAAgB3T,EAAYf,UAAU3uG,IAAK+iH,IAC7C,MAAM36E,EAAU26E,EAAoB36E,QACpC+6E,EAAoBhiH,IAAIinC,GAExB,MAAMm2E,EAAUn2E,EAAQywE,IACxB,GAAI0F,GAAWA,EAAQ5F,qBACnB,OAAO,IAAI/a,GAAoBmlB,EAAoBllB,SAAUklB,EAAoBjlB,OACrF,MAAM2kB,EAAmBr6E,IAAYkO,EAC/BgtD,EAwQlB,SAASggB,GAAoB3jB,GACzB,MAAM4jB,EAAe,GACrBC,UAA0B7jB,EAAS4jB,GAC5BA,CACX,CA5QoCD,EAAqB1C,EAAsB7wG,IAAIq4B,IAAYiwE,IAAoBr4G,IAAKkgG,IAAMA,GAAE+iB,kBAAkBh8G,OAAQi5F,MAK/HA,GACD93D,SADC83D,GACY93D,UAAYA,GAEjC04D,EAAYugB,EAAatxG,IAAIq4B,GAC7B24D,EAAaogB,EAAcpxG,IAAIq4B,GAC/By4D,EAAYF,GAAqB7gG,KAAK82G,YAAamM,EAAoBliB,UAAWC,EAAWC,GAC7FhB,GAASjgG,KAAK63G,aAAaoL,EAAqBliB,EAAWyC,GAMjE,GAHIyf,EAAoBrV,aAAe6R,GACnC6D,EAAejiH,IAAIinC,GAEnBq6E,EAAkB,CAClB,MAAMgB,GAAgB,IAAIpJ,GAA0B9B,EAAazW,EAAa15D,GAC9Eq7E,GAAczB,cAAcjiB,IAC5BmjB,EAAkBpmH,KAAK2mH,GAC3B,CACA,OAAO1jB,KAEXmjB,EAAkBv+G,QAASo7F,IACvBoC,GAAqBriG,KAAKy8G,wBAAyBxc,EAAO33D,QAAS,IAAItrC,KAAKijG,GAC5EA,EAAOpB,OAAO,IA+H1B,SAAS+kB,GAAmB1jH,EAAKuK,EAAKjN,GAClC,IAAIqmH,EAAgB3jH,EAAI+P,IAAIxF,GAC5B,GAAIo5G,EAAe,CACf,GAAIA,EAAcjoH,OAAQ,CACtB,MAAMmF,EAAQ8iH,EAAcniH,QAAQlE,GACpCqmH,EAAchiH,OAAOd,EAAO,EAChC,CAC4B,GAAxB8iH,EAAcjoH,QACdsE,EAAI81B,OAAOvrB,EAEnB,CACA,OAAOo5G,CACX,CA3IgCD,CAAmB5jH,KAAKy8G,wBAAyBxc,EAAO33D,QAAS23D,GAAO,GAEhGojB,EAAoBx+G,QAASyjC,GAAYg2B,GAASh2B,EAAS47D,KAC3D,MAAMjE,EAASU,GAAoB4iB,GACnCtjB,SAAOxkF,UAAU,KACb4nG,EAAoBx+G,QAASyjC,GAAYi2B,GAAYj2B,EAAS47D,KAC9Da,GAAUvuD,EAAao5D,EAAYkF,SAAQ,GAI/CwO,EAAez+G,QAASyjC,IACpB+5D,GAAqBod,EAAmBn3E,EAAS,IAAItrC,KAAKijG,EAAM,GAE7DA,CACX,CACA4X,aAAajI,EAAa7O,EAAWyC,GACjC,OAAIzC,EAAUnlG,OAAS,EACZoE,KAAKqoG,OAAO7K,QAAQoS,EAAYtnE,QAASy4D,EAAW6O,EAAY7R,SAAU6R,EAAY5R,MAAO4R,EAAYrM,OAAQC,GAIrH,IAAI1F,GAAoB8R,EAAY7R,SAAU6R,EAAY5R,MACrE,EAEJ,MAAMuc,GACF/5G,YAAYi4G,EAAazW,EAAa15D,GAClCtoC,KAAKy4G,YAAcA,EACnBz4G,KAAKgiG,YAAcA,EACnBhiG,KAAKsoC,QAAUA,EACftoC,KAAK8jH,QAAU,IAAIhmB,GACnB99F,KAAK+jH,qBAAsB,EAC3B/jH,KAAKgkH,iBAAmB,IAAIxkG,IAC5Bxf,KAAKof,WAAY,EACjBpf,KAAKy+F,aAAe,KACpBz+F,KAAKg9G,kBAAmB,EACxBh9G,KAAKmiG,UAAW,EAChBniG,KAAK86G,QAAS,EACd96G,KAAK0+F,UAAY,CACrB,CACAwjB,cAAcjiB,GACNjgG,KAAK+jH,sBAET/jH,KAAK8jH,QAAU7jB,EACfjgG,KAAKgkH,iBAAiBn/G,QAAQ,CAACo/G,EAAWntD,KACtCmtD,EAAUp/G,QAAS2b,GAAaqhF,GAAe5B,EAAQnpC,OAAOn8D,EAAW6lB,GAAS,GAEtFxgB,KAAKgkH,iBAAiBzjG,QACtBvgB,KAAK+jH,qBAAsB,EAC3B/jH,KAAK4hH,kBAAkB3hB,EAAOvB,WAC9B1+F,KAAK86G,QAAS,EAClB,CACAqI,gBACI,OAAOnjH,KAAK8jH,OAChB,CACAlC,kBAAkBljB,GACd1+F,KAAK0+F,UAAYA,CACrB,CACA2jB,iBAAiBpiB,GACb,MAAMG,EAAIpgG,KAAK8jH,QACX1jB,EAAEZ,iBACFS,EAAOrB,QAAQ,IAAMwB,EAAEZ,gBAAgB,UAE3CS,EAAOpB,OAAO,IAAM7+F,KAAKo/F,UACzBa,EAAOxkF,UAAU,IAAMzb,KAAKigB,UAChC,CACAikG,YAAY7jH,EAAMmgB,GACd6hF,GAAqBriG,KAAKgkH,iBAAkB3jH,EAAM,IAAIrD,KAAKwjB,EAC/D,CACAq+E,OAAOj7F,GACC5D,KAAK86G,QACL96G,KAAKkkH,YAAY,OAAQtgH,GAE7B5D,KAAK8jH,QAAQjlB,OAAOj7F,EACxB,CACAg7F,QAAQh7F,GACA5D,KAAK86G,QACL96G,KAAKkkH,YAAY,QAAStgH,GAE9B5D,KAAK8jH,QAAQllB,QAAQh7F,EACzB,CACA6X,UAAU7X,GACF5D,KAAK86G,QACL96G,KAAKkkH,YAAY,UAAWtgH,GAEhC5D,KAAK8jH,QAAQroG,UAAU7X,EAC3B,CACAw5B,OACIp9B,KAAK8jH,QAAQ1mF,MACjB,CACA0hE,aACI,OAAO9+F,KAAK86G,QAAiB96G,KAAK8jH,QAAQhlB,YAC9C,CACAC,QACK/+F,KAAK86G,QAAU96G,KAAK8jH,QAAQ/kB,MACjC,CACAG,SACKl/F,KAAK86G,QAAU96G,KAAK8jH,QAAQ5kB,OACjC,CACAC,WACKn/F,KAAK86G,QAAU96G,KAAK8jH,QAAQ3kB,SACjC,CACAC,SACIp/F,KAAK8jH,QAAQ1kB,QACjB,CACAn/E,UACIjgB,KAAKof,WAAY,EACjBpf,KAAK8jH,QAAQ7jG,SACjB,CACAsd,SACKv9B,KAAK86G,QAAU96G,KAAK8jH,QAAQvmF,OACjC,CACA8hE,YAAYe,GACHpgG,KAAK86G,QACN96G,KAAK8jH,QAAQzkB,YAAYe,EAEjC,CACAb,cACI,OAAOv/F,KAAK86G,OAAS,EAAI96G,KAAK8jH,QAAQvkB,aAC1C,CAEAC,gBAAgBC,GACZ,MAAMW,EAAIpgG,KAAK8jH,QACX1jB,EAAEZ,iBACFY,EAAEZ,gBAAgBC,EAE1B,EAqBJ,SAASvQ,GAAc1zF,GACnB,OAAOA,GAA6B,IAArBA,EAAKosC,QACxB,CAIA,SAASu8E,GAAa77E,EAAS9qC,GAC3B,MAAMM,EAAWwqC,EAAQ4pD,MAAMkyB,QAC/B97E,SAAQ4pD,MAAMkyB,QAAU5mH,GAAwB,OACzCM,CACX,CACA,SAASwjH,GAAsB+C,EAAWhc,EAAQzV,EAAU0xB,EAAiBC,GACzE,MAAMC,EAAY,GAClB5xB,EAAS/tF,QAASyjC,GAAYk8E,EAAUxnH,KAAKmnH,GAAa77E,KAC1D,MAAMm8E,EAAiB,GACvBH,EAAgBz/G,QAAQ,CAACqE,EAAOo/B,KAC5B,MAAM1vB,EAAS,IAAI4G,IACnBtW,EAAMrE,QAAS41D,IACX,MAAMj9D,EAAQ6qG,EAAO/E,aAAah7D,EAASmyB,EAAM8pD,GACjD3rG,EAAOiH,IAAI46C,EAAMj9D,KAGZA,GAAyB,GAAhBA,EAAM5B,UAChB0sC,EAAQywE,IAAgBD,GACxB2L,EAAeznH,KAAKsrC,GAAO,GAGnC+7E,EAAUxkG,IAAIyoB,EAAS1vB,EAAM,GAIjC,IAAIpc,EAAI,EACRo2F,SAAS/tF,QAASyjC,GAAY67E,GAAa77E,EAASk8E,EAAUhoH,OACvDioH,CACX,CAWA,SAASxE,GAAayE,EAAOvtE,GACzB,MAAMwtE,EAAU,IAAInlG,IAEpB,GADAklG,EAAM7/G,QAASy0B,GAASqrF,EAAQ9kG,IAAIyZ,EAAM,KACtB,GAAhB6d,EAAMv7C,OACN,OAAO+oH,EACX,MACMC,EAAU,IAAI5nG,IAAIm6B,GAClB0tE,EAAe,IAAIrlG,IACzB,SAASslG,EAAQtpH,GACb,IAAKA,EACD,OALU,EAMd,IAAI89B,EAAOurF,EAAa50G,IAAIzU,GAC5B,GAAI89B,EACA,OAAOA,EACX,MAAMz1B,EAASrI,EAAKytC,WACpB,OAEI3P,EAFAqrF,EAAQ1mG,IAAIpa,GAELA,EAEF+gH,EAAQ3mG,IAAIpa,GAdP,EAoBHihH,EAAQjhH,GAEnBghH,EAAahlG,IAAIrkB,EAAM89B,GAChBA,CACX,CACA6d,SAAMtyC,QAASrJ,IACX,MAAM89B,EAAOwrF,EAAQtpH,GA1BP,IA2BV89B,GACAqrF,EAAQ10G,IAAIqpB,GAAMt8B,KAAKxB,EAAI,GAG5BmpH,CACX,CACA,SAASrmD,GAASh2B,EAAS/0B,GACvB+0B,EAAQgtD,WAAWj0F,IAAIkS,EAC3B,CACA,SAASgrD,GAAYj2B,EAAS/0B,GAC1B+0B,EAAQgtD,WAAWx0F,OAAOyS,EAC9B,CACA,SAASmvG,GAA8BtG,EAAQ9zE,EAASu3D,GACpDc,GAAoBd,GAAShB,OAAO,IAAMud,EAAOL,iBAAiBzzE,GACtE,CAMA,SAASo7E,GAA0B7jB,EAAS4jB,GACxC,QAASjnH,EAAI,EAAGA,EAAIqjG,EAAQjkG,OAAQY,IAAK,CACrC,MAAMyjG,EAASJ,EAAQrjG,GACnByjG,aAAkBW,GAClB8iB,GAA0BzjB,EAAOJ,QAAS4jB,GAG1CA,EAAazmH,KAAKijG,EAE1B,CACJ,CAaA,SAASmhB,GAAuB94E,EAASq3E,EAAqBC,GAC1D,MAAMmF,EAAYnF,EAAqB3vG,IAAIq4B,GAC3C,IAAKy8E,EACD,OAAO,EACX,IAAIC,EAAWrF,EAAoB1vG,IAAIq4B,GACvC,OAAI08E,EACAD,EAAUlgH,QAAS6T,GAASssG,EAAS3jH,IAAIqX,IAGzCinG,EAAoB9/F,IAAIyoB,EAASy8E,GAErCnF,EAAqB5pF,OAAOsS,IACrB,CACX,CAEA,MAAM28E,GACFzkH,YAAYggC,EAAKgoE,EAASsO,GACtB92G,KAAKwoG,QAAUA,EACfxoG,KAAK82G,YAAcA,EACnB92G,KAAKklH,cAAgB,CAAC,EAEtBllH,KAAKo9G,kBAAoB,CAAC90E,EAAShlC,KAAV,EACzBtD,KAAKmlH,kBAAoB,IAAIhI,GAA0B38E,EAAIP,KAAMuoE,EAASsO,GAC1E92G,KAAKolH,gBAAkB,IAAI5N,GAAwBh3E,EAAIP,KAAMuoE,EAASsO,GACtE92G,KAAKmlH,kBAAkB/H,kBAAoB,CAAC90E,EAAShlC,IAAYtD,KAAKo9G,kBAAkB90E,EAAShlC,EACrG,CACAg7G,gBAAgB+G,EAAa5M,EAAac,EAAal5G,EAAMqtD,GACzD,MAAM43D,EAAWD,EAAc,IAAMhlH,EACrC,IAAIi9F,EAAUt9F,KAAKklH,cAAcI,GACjC,IAAKhoB,EAAS,CACV,MAAMx9F,EAAS,GAET8qG,EAAMxC,GAAkBpoG,KAAKwoG,QAAS96C,EAAU5tD,EADrC,IAEjB,GAAIA,EAAOlE,OACP,MAh8HhB,SAAS2pH,KACL,OAAO,IAAItkC,EAAc,MAAkDjxE,EAI/E,CA27HsBu1G,GAKVjoB,EA7qDZ,SAASkoB,GAAanlH,EAAMuqG,EAAK9J,GAC7B,OAAO,IAAI+V,GAAiBx2G,EAAMuqG,EAAK9J,EAC3C,CA2qDsB0kB,CAAanlH,EAAMuqG,EAAK5qG,KAAK82G,aACvC92G,KAAKklH,cAAcI,GAAYhoB,CACnC,CACAt9F,KAAKmlH,kBAAkB7G,gBAAgB7F,EAAap4G,EAAMi9F,EAC9D,CACAlmC,SAASqhD,EAAac,GAClBv5G,KAAKmlH,kBAAkB/tD,SAASqhD,EAAac,EACjD,CACAt5F,QAAQw4F,EAAan1G,GACjBtD,KAAKmlH,kBAAkBllG,QAAQw4F,EAAan1G,EAChD,CACAmiH,SAAShN,EAAanwE,EAASzkC,EAAQsrC,GACnCnvC,KAAKmlH,kBAAkBtI,WAAWpE,EAAanwE,EAASzkC,EAAQsrC,EACpE,CACAu2E,SAASjN,EAAanwE,EAAShlC,GAC3BtD,KAAKmlH,kBAAkBhJ,WAAW1D,EAAanwE,EAAShlC,EAC5D,CACAqiH,kBAAkBr9E,EAASs9E,GACvB5lH,KAAKmlH,kBAAkBzG,sBAAsBp2E,EAASs9E,EAC1D,CACAC,QAAQpN,EAAanwE,EAASiyB,EAAU/8D,GACpC,GAA0B,KAAtB+8D,EAASh5C,OAAO,GAAW,CAC3B,MAAOvI,EAAI+yB,GAAUu2D,GAAqB/nC,GAE1Cv6D,KAAKolH,gBAAgB7iB,QAAQvpF,EAAIsvB,EAASyD,EAD7BvuC,EAEjB,MAEIwC,KAAKmlH,kBAAkB7nB,QAAQmb,EAAanwE,EAASiyB,EAAU/8D,EAEvE,CACAglE,OAAOi2C,EAAanwE,EAASi5B,EAAWukD,EAAYtlG,GAEhD,GAA2B,KAAvB+gD,EAAUhgD,OAAO,GAAW,CAC5B,MAAOvI,EAAI+yB,GAAUu2D,GAAqB/gC,GAC1C,OAAOvhE,KAAKolH,gBAAgB5iD,OAAOxpD,EAAIsvB,EAASyD,EAAQvrB,EAC5D,CACA,OAAOxgB,KAAKmlH,kBAAkB3iD,OAAOi2C,EAAanwE,EAASi5B,EAAWukD,EAAYtlG,EACtF,CACAo+B,MAAMm+D,GAAc,GAChB/8G,KAAKmlH,kBAAkBvmE,MAAMm+D,EACjC,CACA,WAAIld,GACA,MAAO,IAAI7/F,KAAKmlH,kBAAkBtlB,WAAY7/F,KAAKolH,gBAAgBvlB,QACvE,CACAqf,oBACI,OAAOl/G,KAAKmlH,kBAAkBjG,mBAClC,CACAxD,yBAAyBt9E,GACrBp+B,KAAKmlH,kBAAkBzJ,yBAAyBt9E,EACpD,EAoCJ,MAAM2nF,UACO/lH,KAAKgmH,uBAAyB,IAAIl2C,OAAW,CACtDtvE,YAAYylH,EAAUC,EAAcC,GAChCnmH,KAAKimH,SAAWA,EAChBjmH,KAAKkmH,aAAeA,EACpBlmH,KAAKmmH,WAAaA,EAClBnmH,KAAKomH,OAAS,EACd,IAAIC,EAAgBN,GAAmBC,uBAAuB/1G,IAAIg2G,GAC7DI,GACDN,GAAmBC,uBAAuBnmG,IAAIomG,EAAWI,EAAgB,IAAI7mG,KAEjFxf,KAAKsmH,eAAiBD,CAC1B,CACAl0G,QACQnS,KAAKomH,OAAS,IACVpmH,KAAKkmH,cACLnhB,GAAU/kG,KAAKimH,SAAUjmH,KAAKkmH,aAAclmH,KAAKsmH,gBAErDtmH,KAAKomH,OAAS,EAEtB,CACAhnB,SACIp/F,KAAKmS,QACDnS,KAAKomH,OAAS,IACdrhB,GAAU/kG,KAAKimH,SAAUjmH,KAAKsmH,gBAC1BtmH,KAAKmmH,aACLphB,GAAU/kG,KAAKimH,SAAUjmH,KAAKmmH,YAC9BnmH,KAAKmmH,WAAa,MAEtBnmH,KAAKomH,OAAS,EAEtB,CACAnmG,UACIjgB,KAAKo/F,SACDp/F,KAAKomH,OAAS,IACdL,GAAmBC,uBAAuBhwF,OAAOh2B,KAAKimH,UAClDjmH,KAAKkmH,eACL/gB,GAAYnlG,KAAKimH,SAAUjmH,KAAKkmH,cAChClmH,KAAKmmH,WAAa,MAElBnmH,KAAKmmH,aACLhhB,GAAYnlG,KAAKimH,SAAUjmH,KAAKmmH,YAChCnmH,KAAKmmH,WAAa,MAEtBphB,GAAU/kG,KAAKimH,SAAUjmH,KAAKsmH,gBAC9BtmH,KAAKomH,OAAS,EAEtB,EAEJ,SAASG,GAA0B3tG,GAC/B,IAAI5R,EAAS,KACb4R,SAAO/T,QAAQ,CAACuiF,EAAK3sB,MAQzB,SAAS+rD,GAAqB/rD,GAC1B,MAAgB,YAATA,GAA+B,aAATA,CACjC,EATY+rD,CAAqB/rD,KACrBzzD,EAASA,GAAU,IAAIwY,IACvBxY,EAAO6Y,IAAI46C,EAAM2sB,GAAG,GAGrBpgF,CACX,CAKA,MAAMy/G,GACFjmH,YAAY8nC,EAASy4D,EAAW/0F,EAAS06G,GACrC1mH,KAAKsoC,QAAUA,EACftoC,KAAK+gG,UAAYA,EACjB/gG,KAAKgM,QAAUA,EACfhM,KAAK0mH,eAAiBA,EACtB1mH,KAAKi+F,WAAa,GAClBj+F,KAAKk+F,YAAc,GACnBl+F,KAAKm+F,cAAgB,GACrBn+F,KAAK2mH,cAAe,EACpB3mH,KAAKu+F,WAAY,EACjBv+F,KAAKs+F,UAAW,EAChBt+F,KAAKqf,YAAa,EAIlBrf,KAAKo+F,mBAAqB,GAC1Bp+F,KAAKq+F,oBAAsB,GAC3Br+F,KAAKmgG,KAAO,EACZngG,KAAKy+F,aAAe,KACpBz+F,KAAK4mH,gBAAkB,IAAIpnG,IAC3Bxf,KAAK6mH,UAAY76G,EAAQ+xF,SACzB/9F,KAAK8mH,OAAS96G,EAAQgyF,OAAY,EAClCh+F,KAAKmgG,KAAOngG,KAAK6mH,UAAY7mH,KAAK8mH,MACtC,CACAnoB,YACS3+F,KAAKu+F,YACNv+F,KAAKu+F,WAAY,EACjBv+F,KAAKi+F,WAAWp5F,QAASjB,GAAOA,KAChC5D,KAAKi+F,WAAa,GAE1B,CACA7gE,OACIp9B,KAAK63G,eACL73G,KAAK+mH,2BACT,CACAlP,eACI,GAAI73G,KAAK2mH,aACL,OACJ3mH,KAAK2mH,cAAe,EACpB,MAAM5lB,EAAY/gG,KAAK+gG,UAEvB/gG,KAAKgnH,UAAYhnH,KAAKinH,qBAAqBjnH,KAAKsoC,QAASy4D,EAAW/gG,KAAKgM,SACzEhM,KAAKknH,eAAiBnmB,EAAUnlG,OAASmlG,EAAUA,EAAUnlG,OAAS,GAAK,IAAI4jB,IAC/E,MAAM2nG,EAAWA,IAAMnnH,KAAK2+F,YAC5B3+F,KAAKgnH,UAAUn4B,iBAAiB,SAAUs4B,GAC1CnnH,KAAKyb,UAAU,KAIXzb,KAAKgnH,UAAUl4B,oBAAoB,SAAUq4B,EAAQ,EAE7D,CACAJ,4BAEQ/mH,KAAK8mH,OACL9mH,KAAKonH,uBAGLpnH,KAAKgnH,UAAU9nB,OAEvB,CACAmoB,0BAA0BtmB,GACtB,MAAMumB,EAAM,GACZvmB,SAAUl8F,QAAS0iH,IACfD,EAAItqH,KAAKpD,OAAO4tH,YAAYD,GAAM,GAE/BD,CACX,CAEAL,qBAAqB3+E,EAASy4D,EAAW/0F,GACrC,OAAOs8B,EAAQk1D,QAAQx9F,KAAKqnH,0BAA0BtmB,GAAY/0F,EACtE,CACA4yF,QAAQh7F,GACJ5D,KAAKq+F,oBAAoBrhG,KAAK4G,GAC9B5D,KAAKk+F,YAAYlhG,KAAK4G,EAC1B,CACAi7F,OAAOj7F,GACH5D,KAAKo+F,mBAAmBphG,KAAK4G,GAC7B5D,KAAKi+F,WAAWjhG,KAAK4G,EACzB,CACA6X,UAAU7X,GACN5D,KAAKm+F,cAAcnhG,KAAK4G,EAC5B,CACAm7F,OACI/+F,KAAK63G,eACA73G,KAAK8+F,eACN9+F,KAAKk+F,YAAYr5F,QAASjB,GAAOA,KACjC5D,KAAKk+F,YAAc,GACnBl+F,KAAKs+F,UAAW,EACZt+F,KAAK0mH,gBACL1mH,KAAK0mH,eAAev0G,SAG5BnS,KAAKgnH,UAAUjoB,MACnB,CACAG,QACIl/F,KAAKo9B,OACLp9B,KAAKgnH,UAAU9nB,OACnB,CACAE,SACIp/F,KAAKo9B,OACDp9B,KAAK0mH,gBACL1mH,KAAK0mH,eAAetnB,SAExBp/F,KAAK2+F,YACL3+F,KAAKgnH,UAAU5nB,QACnB,CACA7hE,QACIv9B,KAAKonH,uBACLpnH,KAAKqf,YAAa,EAClBrf,KAAKu+F,WAAY,EACjBv+F,KAAKs+F,UAAW,EAChBt+F,KAAKk+F,YAAcl+F,KAAKq+F,oBACxBr+F,KAAKi+F,WAAaj+F,KAAKo+F,kBAC3B,CACAgpB,uBACQpnH,KAAKgnH,WACLhnH,KAAKgnH,UAAUS,QAEvB,CACAtoB,UACIn/F,KAAKu9B,QACLv9B,KAAK++F,MACT,CACAD,aACI,OAAO9+F,KAAKs+F,QAChB,CACAr+E,UACSjgB,KAAKqf,aACNrf,KAAKqf,YAAa,EAClBrf,KAAKonH,uBACLpnH,KAAK2+F,YACD3+F,KAAK0mH,gBACL1mH,KAAK0mH,eAAezmG,UAExBjgB,KAAKm+F,cAAct5F,QAASjB,GAAOA,KACnC5D,KAAKm+F,cAAgB,GAE7B,CACAkB,YAAYe,QACezlG,IAAnBqF,KAAKgnH,WACLhnH,KAAKo9B,OAETp9B,KAAKgnH,UAAUne,YAAczI,EAAIpgG,KAAKmgG,IAC1C,CACAZ,cAEI,QAASv/F,KAAKgnH,UAAUne,aAAe,GAAK7oG,KAAKmgG,IACrD,CACA,aAAIzB,GACA,OAAO1+F,KAAK8mH,OAAS9mH,KAAK6mH,SAC9B,CACApmB,gBACI,MAAM7nF,EAAS,IAAI4G,IACfxf,KAAK8+F,cAIiB9+F,KAAKknH,eACbriH,QAAQ,CAACuiF,EAAK3sB,KACX,WAATA,GACA7hD,EAAOiH,IAAI46C,EAAMz6D,KAAKu+F,UAAYnX,EAAMkc,GAAatjG,KAAKsoC,QAASmyB,GAAK,GAIpFz6D,KAAK4mH,gBAAkBhuG,CAC3B,CAEA4mF,gBAAgBC,GACZ,MAAMC,EAAwB,UAAdD,EAAwBz/F,KAAKk+F,YAAcl+F,KAAKi+F,WAChEyB,EAAQ76F,QAASjB,GAAOA,KACxB87F,EAAQ9jG,OAAS,CACrB,EAGJ,MAAM8rH,GACFxkB,sBAAsBzoC,GAKlB,OAAO,CACX,CACAktD,gCAAgCltD,GAM5B,OAAO,CACX,CACAooC,gBAAgBC,EAAMC,GAClB,OAAOF,GAAgBC,EAAMC,EACjC,CACAL,iBAAiBp6D,GACb,OAAOo6D,GAAiBp6D,EAC5B,CACA+6D,MAAM/6D,EAAS1yB,EAAU1I,GACrB,OAAO81F,GAAY16D,EAAS1yB,EAAU1I,EAC1C,CACAo2F,aAAah7D,EAASmyB,EAAMxyD,GACxB,OAAOq7F,GAAah7D,EAASmyB,EACjC,CACA+iC,QAAQl1D,EAASy4D,EAAWhD,EAAUC,EAAOuF,EAAQC,EAAkB,IACnE,MACMokB,EAAgB,CAAE7pB,WAAUC,QAAOnoD,KADnB,GAATmoD,EAAa,OAAS,YAI/BuF,IACAqkB,EAAcrkB,OAAYA,GAE9B,MAAMskB,EAAiB,IAAIroG,IACrBsoG,EAA+BtkB,EAAgBr8F,OAAQ84F,GAAWA,aAAkBwmB,KA7qHlG,SAASsB,GAA+BhqB,EAAUC,GAC9C,OAAoB,IAAbD,GAA4B,IAAVC,CAC7B,EA4qHY+pB,CAA+BhqB,EAAUC,IACzC8pB,EAA4BjjH,QAASo7F,IACjCA,EAAO2mB,gBAAgB/hH,QAAQ,CAACuiF,EAAK3sB,IAASotD,EAAehoG,IAAI46C,EAAM2sB,GAAI,GAGnF,IAAIqrB,EAlwHZ,SAASuV,GAAmBjnB,GACxB,OAAKA,EAAUnlG,OAGXmlG,EAAU,aAAcvhF,IACjBuhF,EAEJA,EAAU7gG,IAAKmhG,GAAO,IAAI7hF,IAAI5lB,OAAOsrF,QAAQmc,KALzC,EAMf,CA0vHyB2mB,CAAmBjnB,GAAW7gG,IAAK0Y,GAAW,IAAI4G,IAAI5G,IACvE65F,EAjrHR,SAASwV,GAAmC3/E,EAASy4D,EAAW8mB,GAC5D,GAAIA,EAAe5xF,MAAQ8qE,EAAUnlG,OAAQ,CACzC,IAAIssH,EAAmBnnB,EAAU,GAC7BonB,EAAoB,GAOxB,GANAN,EAAehjH,QAAQ,CAACuiF,EAAK3sB,KACpBytD,EAAiBjqG,IAAIw8C,IACtB0tD,EAAkBnrH,KAAKy9D,GAE3BytD,EAAiBroG,IAAI46C,EAAM2sB,EAAG,GAE9B+gC,EAAkBvsH,OAClB,QAASY,EAAI,EAAGA,EAAIukG,EAAUnlG,OAAQY,IAAK,CACvC,IAAI6kG,EAAKN,EAAUvkG,GACnB2rH,EAAkBtjH,QAAS41D,GAAS4mC,EAAGxhF,IAAI46C,EAAM6oC,GAAah7D,EAASmyB,IAC3E,CAER,CACA,OAAOsmC,CACX,CA+pHqBknB,CAAmC3/E,EAASmqE,EAAYoV,GACrE,MAAMO,EAlTd,SAASC,GAA2B//E,EAAS1vB,GACzC,IAAI0vG,EAAc,KACdC,EAAY,KAChB,OAAI7oH,MAAMD,QAAQmZ,IAAWA,EAAOhd,QAChC0sH,EAAc/B,GAA0B3tG,EAAO,IAC3CA,EAAOhd,OAAS,IAChB2sH,EAAYhC,GAA0B3tG,EAAOA,EAAOhd,OAAS,MAG5Dgd,aAAkB4G,MACvB8oG,EAAc/B,GAA0B3tG,IAErC0vG,GAAeC,EAAY,IAAIxC,GAAmBz9E,EAASggF,EAAaC,GAAa,IAChG,CAqS8BF,CAA2B//E,EAASmqE,GAC1D,OAAO,IAAIgU,GAAoBn+E,EAASmqE,EAAYmV,EAAeQ,EACvE,EA0CJ,MACMI,GAA0B,aAChC,MAAMC,GACFjoH,YAAYi4G,EAAa5+E,EAAUuiF,EAAQlc,GACvClgG,KAAKy4G,YAAcA,EACnBz4G,KAAK65B,SAAWA,EAChB75B,KAAKo8G,OAASA,EACdp8G,KAAKkgG,WAAaA,EAGlBlgG,KAAK0oH,WAAQ,CACjB,CACA,QAAIhwG,GACA,OAAO1Y,KAAK65B,SAASnhB,IACzB,CACA6zB,YAAY/wC,GACRwE,KAAK65B,SAAS0S,cAAc/wC,EAChC,CACAykB,UACIjgB,KAAKo8G,OAAOn8F,QAAQjgB,KAAKy4G,YAAaz4G,KAAK65B,UAC3C75B,KAAKo8G,OAAOV,yBAAyB,KAGjCrkF,eAAe,KACXr3B,KAAK65B,SAAS5Z,SAAQ,EACzB,GAELjgB,KAAKkgG,cACT,CACA95D,cAAc/lC,EAAM6sC,GAChB,OAAOltC,KAAK65B,SAASuM,cAAc/lC,EAAM6sC,EAC7C,CACAH,cAAcvvC,GACV,OAAOwC,KAAK65B,SAASkT,cAAcvvC,EACvC,CACAqvC,WAAWrvC,GACP,OAAOwC,KAAK65B,SAASgT,WAAWrvC,EACpC,CACA4xC,YAAYvrC,EAAQixF,GAChB90F,KAAK65B,SAASuV,YAAYvrC,EAAQixF,GAClC90F,KAAKo8G,OAAOqJ,SAASzlH,KAAKy4G,YAAa3jB,EAAUjxF,GAAQ,EAC7D,CACAsrC,aAAatrC,EAAQixF,EAAUE,EAAU9lD,GAAS,GAC9ClvC,KAAK65B,SAASsV,aAAatrC,EAAQixF,EAAUE,GAE7Ch1F,KAAKo8G,OAAOqJ,SAASzlH,KAAKy4G,YAAa3jB,EAAUjxF,EAAQqrC,EAC7D,CACAyB,YAAY9sC,EAAQoxF,EAAUvkD,GAKtB1wC,KAAKipC,WAAWgsD,IAChBj1F,KAAKo8G,OAAOsJ,SAAS1lH,KAAKy4G,YAAaxjB,EAAUj1F,KAAK65B,SAE9D,CACA6tB,kBAAkBwtC,EAAgBztC,GAC9B,OAAOznD,KAAK65B,SAAS6tB,kBAAkBwtC,EAAgBztC,EAC3D,CACAxe,WAAWztC,GACP,OAAOwE,KAAK65B,SAASoP,WAAWztC,EACpC,CACAmnC,YAAYnnC,GACR,OAAOwE,KAAK65B,SAAS8I,YAAYnnC,EACrC,CACA2Y,aAAaszB,EAAIpnC,EAAM7C,EAAO0vC,GAC1BltC,KAAK65B,SAAS1lB,aAAaszB,EAAIpnC,EAAM7C,EAAO0vC,EAChD,CACAtK,gBAAgB6E,EAAIpnC,EAAM6sC,GACtBltC,KAAK65B,SAAS+I,gBAAgB6E,EAAIpnC,EAAM6sC,EAC5C,CACAoxB,SAAS72B,EAAIpnC,GACTL,KAAK65B,SAASykC,SAAS72B,EAAIpnC,EAC/B,CACAk+D,YAAY92B,EAAIpnC,GACZL,KAAK65B,SAAS0kC,YAAY92B,EAAIpnC,EAClC,CACAq+D,SAASj3B,EAAIyqD,EAAO10F,EAAO4R,GACvBpP,KAAK65B,SAAS6kC,SAASj3B,EAAIyqD,EAAO10F,EAAO4R,EAC7C,CACAovD,YAAY/2B,EAAIyqD,EAAO9iF,GACnBpP,KAAK65B,SAAS2kC,YAAY/2B,EAAIyqD,EAAO9iF,EACzC,CACAiF,YAAYozB,EAAIpnC,EAAM7C,GAnFD,KAoFb6C,EAAKkhB,OAAO,IAA0BlhB,GAAQmoH,GAC9CxoH,KAAK2lH,kBAAkBl+E,IAAMjqC,GAG7BwC,KAAK65B,SAASxlB,YAAYozB,EAAIpnC,EAAM7C,EAE5C,CACAw+C,SAASxgD,EAAMgC,GACXwC,KAAK65B,SAASmiB,SAASxgD,EAAMgC,EACjC,CACAglE,OAAO73D,EAAQ42D,EAAW/gD,GACtB,OAAOxgB,KAAK65B,SAAS2oC,OAAO73D,EAAQ42D,EAAW/gD,EACnD,CACAmlG,kBAAkBr9E,EAAS9qC,GACvBwC,KAAKo8G,OAAOuJ,kBAAkBr9E,EAAS9qC,EAC3C,EAEJ,MAAMmrH,WAA0BF,GAC5BjoH,YAAYsL,EAAS2sG,EAAa5+E,EAAUuiF,EAAQ3gG,GAChDpZ,MAAMo2G,EAAa5+E,EAAUuiF,EAAQ3gG,GACrCzb,KAAK8L,QAAUA,EACf9L,KAAKy4G,YAAcA,CACvB,CACApkG,YAAYozB,EAAIpnC,EAAM7C,GA3GD,KA4Gb6C,EAAKkhB,OAAO,GACU,KAAlBlhB,EAAKkhB,OAAO,IAAalhB,GAAQmoH,GAEjCxoH,KAAK2lH,kBAAkBl+E,EADvBjqC,OAAkB7C,IAAV6C,KAA+BA,GAIvCwC,KAAKo8G,OAAOyJ,QAAQ7lH,KAAKy4G,YAAahxE,EAAIpnC,EAAKgG,MAAM,GAAI7I,GAI7DwC,KAAK65B,SAASxlB,YAAYozB,EAAIpnC,EAAM7C,EAE5C,CACAglE,OAAO73D,EAAQ42D,EAAW/gD,GACtB,GA1HiB,KA0Hb+gD,EAAUhgD,OAAO,GAAwB,CACzC,MAAM+mB,EAgBlB,SAASsgF,GAAyBj+G,GAC9B,OAAQA,GACJ,IAAK,OACD,OAAO+0B,SAASO,KACpB,IAAK,WACD,OAAOP,SACX,IAAK,SACD,OAAOiG,OACX,QACI,OAAOh7B,EAEnB,CA3B4Bi+G,CAAyBj+G,GACzC,IAAItK,EAAOkhE,EAAUl7D,MAAM,GACvBywD,EAAQ,GAGZ,MAhIa,KAgITz2D,EAAKkhB,OAAO,MACXlhB,EAAMy2D,GAsBvB,SAAS+xD,GAAyB7mB,GAC9B,MAAM8mB,EAAW9mB,EAAYtgG,QAAQ,KAGrC,MAAO,CAFSsgG,EAAY/2F,UAAU,EAAG69G,GAC3B9mB,EAAY37F,MAAMyiH,EAAW,GAE/C,CA3BgCD,CAAyBxoH,IAEtCL,KAAKo8G,OAAO55C,OAAOxiE,KAAKy4G,YAAanwE,EAASjoC,EAAMy2D,EAAQ3vC,IAE/DnnB,KAAK8L,QAAQi9G,yBADG5hG,EAAMi7E,QAAY,EACa5hF,EAAU2G,EAAK,EAEtE,CACA,OAAOnnB,KAAK65B,SAAS2oC,OAAO73D,EAAQ42D,EAAW/gD,EACnD,EAqBJ,MAAMwoG,GACFxoH,YAAYq5B,EAAUuiF,EAAQrrB,GAC1B/wF,KAAK65B,SAAWA,EAChB75B,KAAKo8G,OAASA,EACdp8G,KAAK+wF,MAAQA,EACb/wF,KAAKipH,WAAa,EAClBjpH,KAAKkpH,aAAe,EACpBlpH,KAAKmpH,0BAA4B,GACjCnpH,KAAKopH,eAAiB,IAAI5pG,IAC1Bxf,KAAKqpH,cAAgB,EACrBjN,EAAOgB,kBAAoB,CAAC90E,EAASzO,KACjCA,GAAU8W,YAAY,KAAMrI,EAAO,CAE3C,CACAuM,eAAe0kE,EAAa9tG,GACxB,MAGMouB,EAAW75B,KAAK65B,SAASgb,eAAe0kE,EAAa9tG,GAC3D,IAAK8tG,IAAgB9tG,GAAMiN,MAAOq6C,UAAc,CAC5C,MAAMu2D,EAAQtpH,KAAKopH,eACnB,IAAIv1G,EAAWy1G,EAAMr5G,IAAI4pB,GASzB,OARKhmB,IAIDA,EAAW,IAAI40G,GAXI,GAWsC5uF,EAAU75B,KAAKo8G,OAD9CmN,IAAMD,EAAMtzF,OAAO6D,IAG7CyvF,EAAMzpG,IAAIga,EAAUhmB,IAEjBA,CACX,CACA,MAAMwxG,EAAc55G,EAAKuN,GACnBy/F,EAAchtG,EAAKuN,GAAK,IAAMhZ,KAAKipH,WACzCjpH,KAAKipH,aACLjpH,KAAKo8G,OAAOhlD,SAASqhD,EAAac,GAClC,MAAM+E,EAAmBhhB,IACjB59F,MAAMD,QAAQ69F,GACdA,EAAQz4F,QAAQy5G,GAGhBt+G,KAAKo8G,OAAOkC,gBAAgB+G,EAAa5M,EAAac,EAAajc,EAAQj9F,KAAMi9F,EAAO,EAIhGksB,OAD0B/9G,EAAKiN,KAAKq6C,UAClBluD,QAAQy5G,GACnB,IAAIqK,GAAkB3oH,KAAMy4G,EAAa5+E,EAAU75B,KAAKo8G,OACnE,CACA99D,QACIt+C,KAAKqpH,gBACDrpH,KAAK65B,SAASykB,OACdt+C,KAAK65B,SAASykB,OAEtB,CACAmrE,qBACIpyF,eAAe,KACXr3B,KAAKkpH,gBAEb,CAEAH,yBAAyBhiH,EAAOnD,EAAI8U,GAChC,GAAI3R,GAAS,GAAKA,EAAQ/G,KAAKkpH,aAE3B,YADAlpH,KAAK+wF,MAAMx3D,IAAI,IAAM31B,EAAG8U,IAG5B,MAAMgxG,EAA2B1pH,KAAKmpH,0BACC,GAAnCO,EAAyB9tH,QACzBy7B,eAAe,KACXr3B,KAAK+wF,MAAMx3D,IAAI,KACXmwF,EAAyB7kH,QAAS8mG,IAC9B,MAAO/nG,EAAI8U,GAAQizF,EACnB/nG,EAAG8U,EAAI,GAEX1Y,KAAKmpH,0BAA4B,IACpC,GAGTO,EAAyB1sH,KAAK,CAAC4G,EAAI8U,GACvC,CACA3G,MACI/R,KAAKqpH,gBAGqB,GAAtBrpH,KAAKqpH,eACLrpH,KAAK+wF,MAAM71D,kBAAkB,KACzBl7B,KAAKypH,qBACLzpH,KAAKo8G,OAAOx9D,MAAM5+C,KAAKkpH,aAAY,GAGvClpH,KAAK65B,SAAS9nB,KACd/R,KAAK65B,SAAS9nB,KAEtB,CACAmtG,oBACI,OAAOl/G,KAAKo8G,OAAO8C,mBACvB,ECzqJuC,IAErCyK,GAAyB,MAA/B,MAAMA,UAAkCC,GAIpCppH,YAAYggC,EAAK6nE,EAAQvH,GACrBz+F,MAAMm+B,EAAK6nE,EAAQvH,EACvB,CACAplF,cACI1b,KAAK4+C,OACT,QACS5+C,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFg+C,GAAVrxD,EAAqD94B,IAArD84B,EAA0EuxD,IAA1EvxD,EAAyGuxD,IAA4B,CAA+C,QAC3Q7pH,KAAK2M,WADkF2rD,EAAE,CAAAztD,MACY8+G,EAAyB79G,QAAzB69G,EAAyB77G,WAAK,EAC/I,OAZK67G,CAAyB,KAyB/B,MAAMG,GAA6B,CAC/B,CAAEzrG,QAAS0rG,GAA2BzrG,WAP1C,SAAS0rG,KACL,OAAO,IAAIC,EACf,GAMI,CAAE5rG,QAASurG,GAAkB9mG,SAAU6mG,IACvC,CACItrG,QAASwnC,GACTvnC,WARR,SAAS4rG,GAA2Br2G,EAAUuoG,EAAQrjF,GAClD,OAAO,IAAIoxF,GAA0Bt2G,EAAUuoG,EAAQrjF,EAC3D,EAOQ7a,KAAM,CAACksG,GAAsBR,GAAkBnyF,KAOjD4yF,GAA+B,CACjC,CAAEhsG,QAASqlF,GAAiBplF,WAAYA,IAAM,IAAIgsG,IAClD,CAAEjsG,QAAS0hB,GAAuBxhB,SAAU,wBACzCurG,IAMDS,GAAoC,CACtC,CAAElsG,QAASqlF,GAAiB5gF,SAAUmgF,IACtC,CAAE5kF,QAAS0hB,GAAuBxhB,SAAU,qBACzCurG,IAGP,IAKMU,GAAuB,MAA7B,MAAMA,EAiBF,iBAAOC,CAAW7rH,GACd,MAAO,CACH6e,SAAU+sG,EACVv+G,UAAWrN,EAAO+mH,kBACZ4E,GACAF,GAEd,QACSrqH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF6+C,EAAuB,CAAoD,QAC5KxqH,KAAK4N,UA1EkF0qD,GAAE,CAAA7sD,KA0ES++G,GAAsD,QACxJxqH,KAAK4M,UA3EkF0rD,GAAE,CAAArsD,UA2E6Co+G,GAA4Bn+G,QAAA,CAAY4tF,KAAmB,EAC7M,OA5BK0wB,CAAuB,KCnEtB,SAASE,MAAYhuG,GACxB,GAAuB,IAAnBA,EAAQ9gB,OAAc,CACtB,MAAMohC,EAAQtgB,EAAQ,GACtB,GAAIjd,GAAQu9B,GACR,OAAO2tF,GAAiB3tF,EAAO,MAEnC,GAAIr9B,GAASq9B,IAAUpjC,OAAOs4D,eAAel1B,KAAWpjC,OAAO0G,UAAW,CACtE,MAAMwhB,EAAOloB,OAAOkoB,KAAKkb,GACzB,OAAO2tF,GAAiB7oG,EAAK5hB,IAAIuK,GAAOuyB,EAAMvyB,IAAOqX,EACzD,CACJ,CACA,GAA2C,mBAAhCpF,EAAQA,EAAQ9gB,OAAS,GAAmB,CACnD,MAAM0nF,EAAiB5mE,EAAQjgB,MAC/BigB,OACOiuG,GADPjuG,EAA8B,IAAnBA,EAAQ9gB,QAAgB6D,GAAQid,EAAQ,IAAOA,EAAQ,GAAKA,EACtC,MAAMvX,KAAKjF,GAAKoJ,GAASg6E,KAAkBh6E,IAChF,CACA,OAAOqhH,GAAiBjuG,EAAS,KACrC,CACA,SAASiuG,GAAiBjuG,EAASoF,GAC/B,OAAO,IAAI9d,GAAWjB,IAClB,MAAM7B,EAAMwb,EAAQ9gB,OACpB,GAAY,IAARsF,EAEA,YADA6B,EAAWvD,WAGf,MAAM+J,EAAS,IAAI7J,MAAMwB,GACzB,IAAI0pH,EAAY,EACZC,EAAU,EACd,QAASruH,EAAI,EAAGA,EAAI0E,EAAK1E,IAAK,CAC1B,MAAM8H,EAASk/C,GAAK9mC,EAAQlgB,IAC5B,IAAIiM,GAAW,EACf1F,EAAW1B,IAAIiD,EAAOL,UAAU,CAC5B1E,KAAM/B,IACGiL,IACDA,GAAW,EACXoiH,KAEJthH,EAAO/M,GAAKgB,GAEhBE,MAAOM,GAAO+E,EAAWrF,MAAMM,GAC/BwB,SAAUA,KACNorH,KACIA,IAAc1pH,IAAQuH,KAClBoiH,IAAY3pH,GACZ6B,EAAWxD,KAAKuiB,EACZA,EAAKhgB,OAAO,CAACkF,EAAQyD,EAAKjO,KAAOwK,EAAOyD,GAAOlB,EAAO/M,GAAIwK,GAAS,CAAC,GACpEuC,GAERxG,EAAWvD,WAAS,IAIpC,GAER,CC/CA,IAOMsrH,GAAwB,MAA9B,MAAMA,EACFtqH,YAAYuqH,EAAWC,GACnBhrH,KAAK+qH,UAAYA,EACjB/qH,KAAKgrH,YAAcA,EAMnBhrH,KAAKirH,SAAYpyG,MAKjB7Y,KAAKkrH,UAAY,MACrB,CAMA72G,YAAY5J,EAAKjN,GACbwC,KAAK+qH,UAAU12G,YAAYrU,KAAKgrH,YAAY3uF,cAAe5xB,EAAKjN,EACpE,CAKA2tH,kBAAkBvnH,GACd5D,KAAKkrH,UAAYtnH,CACrB,CAKAwnH,iBAAiBxnH,GACb5D,KAAKirH,SAAWrnH,CACpB,CAKAynH,iBAAiBC,GACbtrH,KAAKqU,YAAY,WAAYi3G,EACjC,QACStrH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFm/C,GAAVxyD,EAAoDA,IAApDA,EAA6EA,IAAa,CAA8C,QAC/Nt4D,KAAKwN,UADkF8qD,EAAE,CAAA7sD,KACJq/G,GAA2C,EAC5I,OA/CKA,CAAwB,KA4DxBS,GAA2B,MAAjC,MAAMA,UAAoCT,UAC7B9qH,KAAK8N,UAAI,UAAA09G,EAAA,gBAAA7/C,GAAA,OAAA6/C,MjCo8LtB,SAASC,GAAsBhgH,GAC3B,OAAO1C,GAAc,KACjB,MAAM2iH,EAAiBjgH,EAAKnL,UAAUE,YAChCmrH,EAAaD,EAAe79G,KAAmB4mB,GAAai3F,GAC5DE,EAAkBhyH,OAAO0G,UAC/B,IAAIuD,EAASjK,OAAOs4D,eAAezmD,EAAKnL,WAAWE,YAEnD,KAAOqD,GAAUA,IAAW+nH,GAAiB,CACzC,MAAM9/G,EAAUjI,EAAOgK,KAAmB4mB,GAAa5wB,GAMvD,GAAIiI,GAAWA,IAAY6/G,EACvB,OAAO7/G,EAEXjI,EAASjK,OAAOs4D,eAAeruD,EACnC,CAKA,OAAQ8iC,GAAM,IAAIA,CAAE,EAE5B,CiC7+LoG2xB,CAgBUizD,KAA2B5/C,GAA3B4/C,EAA2B,GAAnH,EAA0K,QACnLvrH,KAAKwN,UAjBkF8qD,EAAE,CAAA7sD,KAiBJ8/G,EAA2BvvG,SAAA,CAjBzBs8C,KAiBmE,EACtK,OAHKizD,CAA2B,KAcjC,MAAMM,GAAoB,IAAI9+G,EAA+C,IAkDvE++G,GAAyB,CAC3BztG,QAASwtG,GACTjpG,YAAatX,GAAW,IAAMygH,IAC9B7+G,OAAO,GAgBL8+G,GAA0B,IAAIj/G,EAAoD,IACxF,IAkCMg/G,GAAoB,MAA1B,MAAMA,UAA6BjB,GAC/BtqH,YAAYqT,EAAUiuC,EAAYmqE,GAC9B5pH,MAAMwR,EAAUiuC,GAChB9hD,KAAKisH,iBAAmBA,EAExBjsH,KAAKksH,YAAa,EACW,MAAzBlsH,KAAKisH,mBACLjsH,KAAKisH,kBApDjB,SAASE,KACL,MAAMn8B,EAAYwF,KAAYA,KAAU1F,eAAiB,GACzD,MAAO,gBAAgBs8B,KAAKp8B,EAAUz6E,cAC1C,CAiDqC42G,GAEjC,CAKAE,WAAW7uH,GAEPwC,KAAKqU,YAAY,QADO7W,GAAgB,GAE5C,CAEA8uH,aAAa9uH,KACJwC,KAAKisH,kBAAqBjsH,KAAKisH,mBAAqBjsH,KAAKksH,aAC1DlsH,KAAKirH,SAASztH,EAEtB,CAEA+uH,oBACIvsH,KAAKksH,YAAa,CACtB,CAEAM,gBAAgBhvH,GACZwC,KAAKksH,YAAa,EAClBlsH,KAAKisH,kBAAoBjsH,KAAKirH,SAASztH,EAC3C,QACSwC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFogD,GAtKVzzD,EAsKgDA,IAtKhDA,EAsKyEA,IAtKzEA,EAsKmG0zD,GAAuB,IAA8D,QAC/QhsH,KAAKwN,UAvKkF8qD,EAAE,CAAA7sD,KAuKJsgH,EAAoBxyG,UAAA,oQAAAsC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAvKlBskB,GAAE,iBAAAm0D,GAAA,OAuKJr5D,EAAAk5D,aAAAG,EAAA9hH,OAAAnN,MAA4C,EAvK1C86D,CAuKkB,yBAApBlF,EAAA83D,WAAW,EAvKT5yD,CAuKkB,qCAApBlF,EAAAm5D,mBAA8B,EAvK5Bj0D,CAuKkB,0BAAAm0D,GAAA,OAApBr5D,EAAAo5D,gBAAAC,EAAA9hH,OAAAnN,MAA+C,EAA3B,EAAAwe,SAAA,CAvKlBs8C,GAuK6d,CAACwzD,KAvK9dxzD,KAuK+hB,EACloB,OAnCKyzD,CAAoB,KA0D1B,SAASW,GAAkBlvH,GAMvB,OAAiB,MAATA,IAAoC,iBAAVA,GAAsBkC,MAAMD,QAAQjC,KAA4B,IAAjBA,EAAM5B,MAC3F,CACA,SAAS+wH,GAAenvH,GAEpB,OAAgB,MAATA,GAAyC,iBAAjBA,EAAM5B,MACzC,CA6BA,MAAMgxH,GAAgB,IAAI7/G,EAA4C,IA8BhE8/G,GAAsB,IAAI9/G,EAAiD,IA+B3E+/G,GAAe,qMAYrB,MAAMC,GAqBF,UAAOzsB,CAAIA,GACP,OAkQR,SAAS0sB,GAAa1sB,GAClB,OAAQlJ,IACJ,GAAIs1B,GAAkBt1B,EAAQ55F,QAAUkvH,GAAkBpsB,GACtD,OAAO,KAEX,MAAM9iG,EAAQ8+E,WAAW8a,EAAQ55F,OAGjC,OAAQ6+E,MAAM7+E,IAAUA,EAAQ8iG,EAAM,CAAEA,IAAO,CAAEA,IAAOA,EAAK2sB,OAAU71B,EAAQ55F,QAAY,KAEnG,CA5QewvH,CAAa1sB,EACxB,CAqBA,UAAOpyE,CAAIA,GACP,OA0PR,SAASg/F,GAAah/F,GAClB,OAAQkpE,IACJ,GAAIs1B,GAAkBt1B,EAAQ55F,QAAUkvH,GAAkBx+F,GACtD,OAAO,KAEX,MAAM1wB,EAAQ8+E,WAAW8a,EAAQ55F,OAGjC,OAAQ6+E,MAAM7+E,IAAUA,EAAQ0wB,EAAM,CAAEA,IAAO,CAAEA,IAAOA,EAAK++F,OAAU71B,EAAQ55F,QAAY,KAEnG,CApQe0vH,CAAah/F,EACxB,CAqBA,eAAOijC,CAASimC,GACZ,OAkPR,SAAS+1B,GAAkB/1B,GACvB,OAAOs1B,GAAkBt1B,EAAQ55F,OAAS,CAAE2zD,UAAY,GAAS,IACrE,CApPeg8D,CAAkB/1B,EAC7B,CAsBA,mBAAOg2B,CAAah2B,GAChB,OAkOR,SAASi2B,GAAsBj2B,GAC3B,OAAyB,IAAlBA,EAAQ55F,MAAiB,KAAO,CAAE2zD,UAAY,EACzD,CApOek8D,CAAsBj2B,EACjC,CAqCA,YAAOk2B,CAAMl2B,GACT,OAkMR,SAASm2B,GAAen2B,GACpB,OAAIs1B,GAAkBt1B,EAAQ55F,QAGvBsvH,GAAaV,KAAKh1B,EAAQ55F,OAFtB,KAEsC,CAAE8vH,OAAS,EAChE,CAvMeC,CAAen2B,EAC1B,CA+BA,gBAAOo2B,CAAUA,GACb,OA2KR,SAASC,GAAmBD,GACxB,OAAQp2B,GACAs1B,GAAkBt1B,EAAQ55F,SAAWmvH,GAAev1B,EAAQ55F,OAGrD,KAEJ45F,EAAQ55F,MAAM5B,OAAS4xH,EACxB,CAAEE,UAAa,CAAEC,eAAkBH,EAAWI,aAAgBx2B,EAAQ55F,MAAM5B,SAC5E,IAEd,CAtLe6xH,CAAmBD,EAC9B,CA4BA,gBAAOK,CAAUA,GACb,OA6JR,SAASC,GAAmBD,GACxB,OAAQz2B,GACGu1B,GAAev1B,EAAQ55F,QAAU45F,EAAQ55F,MAAM5B,OAASiyH,EACzD,CAAEE,UAAa,CAAEJ,eAAkBE,EAAWD,aAAgBx2B,EAAQ55F,MAAM5B,SAC5E,IAEd,CAnKekyH,CAAmBD,EAC9B,CAkDA,cAAOG,CAAQA,GACX,OAoHR,SAASC,GAAiBD,GACtB,IAAKA,EACD,OAAOE,GACX,IAAIC,EACAC,EACJ,MAAuB,iBAAZJ,GACPI,EAAW,GACe,MAAtBJ,EAAQzsG,OAAO,KACf6sG,GAAY,KAChBA,GAAYJ,EAC+B,MAAvCA,EAAQzsG,OAAOysG,EAAQpyH,OAAS,KAChCwyH,GAAY,KAChBD,EAAQ,IAAIjsE,OAAOksE,KAGnBA,EAAWJ,EAAQ7tH,WACnBguH,EAAQH,GAEJ52B,IACJ,GAAIs1B,GAAkBt1B,EAAQ55F,OAC1B,OAAO,KAEX,MAAMA,EAAQ45F,EAAQ55F,MACtB,OAAO2wH,EAAM/B,KAAK5uH,GACZ,KACA,CAAEwwH,QAAW,CAAEK,gBAAmBD,EAAUE,YAAe9wH,GAAQ,CAEjF,CA/IeywH,CAAiBD,EAC5B,CAQA,oBAAOE,CAAc92B,GACjB,OA0IG,IAzIP,CACA,cAAOm3B,CAAQC,GACX,OAAOD,GAAQC,EACnB,CAYA,mBAAOC,CAAaD,GAChB,OAAOC,GAAaD,EACxB,EAuHJ,SAASN,GAAc92B,GACnB,OAAO,IACX,CACA,SAASs3B,GAAU/5D,GACf,OAAY,MAALA,CACX,CACA,SAASg6D,GAAanxH,GAWlB,OAVYsjF,GAAWtjF,GAASgmD,GAAKhmD,GAASA,CAWlD,CACA,SAASoxH,GAAYC,GACjB,IAAI9jH,EAAM,CAAC,EACX8jH,SAAchqH,QAAS/E,IACnBiL,EAAgB,MAAVjL,EAAiB,IAAKiL,KAAQjL,GAAWiL,IAEhB,IAA5BnR,OAAOkoB,KAAK/W,GAAKnP,OAAe,KAAOmP,CAClD,CACA,SAAS+jH,GAAkB13B,EAASo3B,GAChC,OAAOA,EAAWtuH,IAAK6uH,GAAcA,EAAU33B,GACnD,CAYA,SAAS43B,GAAoBR,GACzB,OAAOA,EAAWtuH,IAAK6uH,GAZ3B,SAASE,GAAcF,GACnB,OAAQA,EAAUG,QACtB,CAWeD,CAAcF,GACfA,EACEI,GAAMJ,EAAUG,SAASC,GAEzC,CAKA,SAASZ,GAAQC,GACb,IAAKA,EACD,OAAO,KACX,MAAMY,EAAoBZ,EAAWrnH,OAAOunH,IAC5C,OAAgC,GAA5BU,EAAkBxzH,OACX,KACJ,SAAUw7F,GACb,OAAOw3B,GAAYE,GAAkB13B,EAASg4B,GAClD,CACJ,CAMA,SAASC,GAAkBb,GACvB,OAAqB,MAAdA,EAAqBD,GAAQS,GAAoBR,IAAe,IAC3E,CAKA,SAASC,GAAaD,GAClB,IAAKA,EACD,OAAO,KACX,MAAMY,EAAoBZ,EAAWrnH,OAAOunH,IAC5C,OAAgC,GAA5BU,EAAkBxzH,OACX,KACJ,SAAUw7F,GAEb,OAAOszB,GADaoE,GAAkB13B,EAASg4B,GAAmBlvH,IAAIyuH,KACzCxpH,KAAKjF,GAAI0uH,IAC1C,CACJ,CAMA,SAASU,GAAuBd,GAC5B,OAAqB,MAAdA,EACDC,GAAaO,GAAoBR,IACjC,IACV,CAKA,SAASe,GAAgBC,EAAmBC,GACxC,OAA0B,OAAtBD,EACO,CAACC,GACL/vH,MAAMD,QAAQ+vH,GACf,IAAIA,EAAmBC,GACvB,CAACD,EAAmBC,EAC9B,CAIA,SAASC,GAAqBt4B,GAC1B,OAAOA,EAAQu4B,cACnB,CAIA,SAASC,GAA0Bx4B,GAC/B,OAAOA,EAAQy4B,mBACnB,CAQA,SAASC,GAAoBtB,GACzB,OAAKA,EAEE9uH,MAAMD,QAAQ+uH,GAAcA,EAAa,CAACA,GADtC,EAEf,CAQA,SAASuB,GAAavB,EAAYO,GAC9B,OAAOrvH,MAAMD,QAAQ+uH,GAAcA,EAAW1wD,SAASixD,GAAaP,IAAeO,CACvF,CAQA,SAASiB,GAAcxB,EAAYyB,GAC/B,MAAM59G,EAAUy9G,GAAoBG,GAEpCC,OADwBJ,GAAoBtB,GAC5B3pH,QAASgrB,IAKhBkgG,GAAa19G,EAASwd,IACvBxd,EAAQrV,KAAK6yB,EAAC,GAGfxd,CACX,CACA,SAAS89G,GAAiB3B,EAAYyB,GAClC,OAAOH,GAAoBG,GAAmB9oH,OAAQ0oB,IAAOkgG,GAAavB,EAAY3+F,GAC1F,CAUA,MAAMugG,GACF5vH,cAKIR,KAAK2vH,eAAiB,GAMtB3vH,KAAK6vH,oBAAsB,GAI3B7vH,KAAKqwH,oBAAsB,EAC/B,CAKA,SAAI7yH,GACA,OAAOwC,KAAKo3F,QAAUp3F,KAAKo3F,QAAQ55F,MAAQ,IAC/C,CAOA,SAAI8yH,GACA,OAAOtwH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQk5B,MAAQ,IAC/C,CAMA,WAAIC,GACA,OAAOvwH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQm5B,QAAU,IACjD,CAOA,WAAIzlD,GACA,OAAO9qE,KAAKo3F,QAAUp3F,KAAKo3F,QAAQtsB,QAAU,IACjD,CAOA,YAAIq3B,GACA,OAAOniG,KAAKo3F,QAAUp3F,KAAKo3F,QAAQ+K,SAAW,IAClD,CAMA,WAAIlnB,GACA,OAAOj7E,KAAKo3F,QAAUp3F,KAAKo3F,QAAQnc,QAAU,IACjD,CAKA,UAAIn7E,GACA,OAAOE,KAAKo3F,QAAUp3F,KAAKo3F,QAAQt3F,OAAS,IAChD,CAMA,YAAI0wH,GACA,OAAOxwH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQo5B,SAAW,IAClD,CAMA,SAAI/1H,GACA,OAAOuF,KAAKo3F,QAAUp3F,KAAKo3F,QAAQ38F,MAAQ,IAC/C,CAMA,WAAIg2H,GACA,OAAOzwH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQq5B,QAAU,IACjD,CAOA,UAAI9mC,GACA,OAAO3pF,KAAKo3F,QAAUp3F,KAAKo3F,QAAQzN,OAAS,IAChD,CAMA,aAAI+mC,GACA,OAAO1wH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQs5B,UAAY,IACnD,CAMA,iBAAIC,GACA,OAAO3wH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQu5B,cAAgB,IACvD,CAOA,gBAAIC,GACA,OAAO5wH,KAAKo3F,QAAUp3F,KAAKo3F,QAAQw5B,aAAe,IACtD,CAMA,QAAIn9F,GACA,OAAO,IACX,CAKAo9F,eAAerC,GACXxuH,KAAK2vH,eAAiBnB,GAAc,GACpCxuH,KAAK8wH,qBAAuBzB,GAAkBrvH,KAAK2vH,eACvD,CAKAoB,oBAAoBvC,GAChBxuH,KAAK6vH,oBAAsBrB,GAAc,GACzCxuH,KAAKgxH,0BAA4B1B,GAAuBtvH,KAAK6vH,oBACjE,CAMA,aAAId,GACA,OAAO/uH,KAAK8wH,sBAAwB,IACxC,CAMA,kBAAIG,GACA,OAAOjxH,KAAKgxH,2BAA6B,IAC7C,CAMAE,mBAAmBttH,GACf5D,KAAKqwH,oBAAoBrzH,KAAK4G,EAClC,CAMAutH,4BACInxH,KAAKqwH,oBAAoBxrH,QAASjB,GAAOA,KACzC5D,KAAKqwH,oBAAsB,EAC/B,CAKA9yF,MAAM//B,OAAQ7C,GACNqF,KAAKo3F,SACLp3F,KAAKo3F,QAAQ75D,MAAM//B,EAC3B,CA+BAyI,SAASmrH,EAAW39F,GAChB,QAAOzzB,KAAKo3F,SAAUp3F,KAAKo3F,QAAQnxF,SAASmrH,EAAW39F,EAC3D,CA4BA49F,SAASD,EAAW39F,GAChB,OAAOzzB,KAAKo3F,QAAUp3F,KAAKo3F,QAAQi6B,SAASD,EAAW39F,GAAQ,IACnE,EAUJ,MAAM69F,WAAyBlB,GAK3B,iBAAImB,GACA,OAAO,IACX,CAKA,QAAI99F,GACA,OAAO,IACX,EAUJ,MAAM+9F,WAAkBpB,GACpB5vH,cACI6B,SAASK,WAOT1C,KAAK2zD,QAAU,KAKf3zD,KAAKK,KAAO,KAKZL,KAAKyxH,cAAgB,IACzB,EAOJ,MAAMC,GACFlxH,YAAYmxH,GACR3xH,KAAK4xH,IAAMD,CACf,CACA,aAAIE,GAEA,OAAA7xH,KAAK4xH,KAAKx6B,SAAS06B,eACV9xH,KAAK4xH,KAAKx6B,SAASq5B,OAChC,CACA,eAAIsB,GACA,QAAS/xH,KAAK4xH,KAAKx6B,SAASs5B,SAChC,CACA,cAAIsB,GAEA,OAAAhyH,KAAK4xH,KAAKx6B,SAAS66B,gBACVjyH,KAAK4xH,KAAKx6B,SAASo5B,QAChC,CACA,WAAI93C,GAEA,QAAS14E,KAAK4xH,KAAKx6B,SAAS38F,KAChC,CACA,WAAIy3H,GAEA,OAAAlyH,KAAK4xH,KAAKx6B,SAAS+6B,cACVnyH,KAAK4xH,KAAKx6B,SAASk5B,KAChC,CACA,aAAI8B,GAEA,QAASpyH,KAAK4xH,KAAKx6B,SAASm5B,OAChC,CACA,aAAI8B,GAEA,QAASryH,KAAK4xH,KAAKx6B,SAAStsB,OAChC,CACA,eAAIwnD,GAEA,OAAAtyH,KAAK4xH,KAAKW,iBAGDvyH,KAAK4xH,KAAKY,SACvB,EAeJ,IAuBMC,GAAe,MAArB,MAAMA,UAAwBf,GAC1BlxH,YAAYmxH,GACRtvH,MAAMsvH,EACV,QACS3xH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF8mD,GAxvCVn6D,EAwvC2Ck5D,GAAS,IAA0D,QACrMxxH,KAAKwN,UAzvCkF8qD,EAAE,CAAA7sD,KAyvCJgnH,EAAel5G,UAAA,oEAAAC,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAzvCbskB,GAAE,eAAAlF,EAAA2+D,YAAFz5D,CAyvCa,aAAAlF,EAAAy+D,UAzvCbv5D,CAyvCa,cAAAlF,EAAA4+D,WAzvCb15D,CAyvCa,WAAAlF,EAAAslB,QAzvCbpgB,CAyvCa,WAAAlF,EAAA8+D,QAzvCb55D,CAyvCa,aAAAlF,EAAAg/D,UAzvCb95D,CAyvCa,aAAAlF,EAAAi/D,UAAA,EAAAr2G,SAAA,CAzvCbs8C,KAyvC6W,EAChd,OANKm6D,CAAe,KAyBfC,GAAoB,MAA1B,MAAMA,UAA6BhB,GAC/BlxH,YAAYmxH,GACRtvH,MAAMsvH,EACV,QACS3xH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF+mD,GAjxCVp6D,EAixCgDg5D,GAAgB,KAA0E,QACjOtxH,KAAKwN,UAlxCkF8qD,EAAE,CAAA7sD,KAkxCJinH,EAAoBn5G,UAAA,uIAAAC,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAlxClBskB,GAAE,eAAAlF,EAAA2+D,YAAFz5D,CAkxCkB,aAAAlF,EAAAy+D,UAlxClBv5D,CAkxCkB,cAAAlF,EAAA4+D,WAlxClB15D,CAkxCkB,WAAAlF,EAAAslB,QAlxClBpgB,CAkxCkB,WAAAlF,EAAA8+D,QAlxClB55D,CAkxCkB,aAAAlF,EAAAg/D,UAlxClB95D,CAkxCkB,aAAAlF,EAAAi/D,UAlxClB/5D,CAkxCkB,eAAAlF,EAAAk/D,YAAA,EAAAt2G,SAAA,CAlxClBs8C,KAkxCsc,EACziB,OANKo6D,CAAoB,KAwL1B,MAAMC,GAAQ,QAMRC,GAAU,UAQVC,GAAU,UAQVC,GAAW,WAMjB,MAAMC,IAON,MAAMC,WAAyBD,GAC3BvyH,YAAYhD,EAAO8G,GACfjC,QACArC,KAAKxC,MAAQA,EACbwC,KAAKsE,OAASA,CAClB,EAMJ,MAAM2uH,WAA4BF,GAC9BvyH,YAAYgwH,EAAUlsH,GAClBjC,QACArC,KAAKwwH,SAAWA,EAChBxwH,KAAKsE,OAASA,CAClB,EAOJ,MAAM4uH,WAA2BH,GAC7BvyH,YAAYiwH,EAASnsH,GACjBjC,QACArC,KAAKywH,QAAUA,EACfzwH,KAAKsE,OAASA,CAClB,EAOJ,MAAM6uH,WAA0BJ,GAC5BvyH,YAAYmpF,EAAQrlF,GAChBjC,QACArC,KAAK2pF,OAASA,EACd3pF,KAAKsE,OAASA,CAClB,EAOJ,MAAM8uH,WAA2BL,GAC7BvyH,YAAY8D,GACRjC,QACArC,KAAKsE,OAASA,CAClB,EAOJ,MAAM+uH,WAAuBN,GACzBvyH,YAAY8D,GACRjC,QACArC,KAAKsE,OAASA,CAClB,EAKJ,SAASgvH,GAAeC,GACpB,OAAQC,GAAaD,GAAmBA,EAAgB/E,WAAa+E,IAAoB,IAC7F,CAUA,SAASE,GAAoBxC,EAAgBsC,GAMzC,OAAQC,GAAaD,GAAmBA,EAAgBG,gBAAkBzC,IAAmB,IACjG,CASA,SAASuC,GAAaD,GAClB,OAA2B,MAAnBA,IACH7zH,MAAMD,QAAQ8zH,IACY,iBAApBA,CACf,CAmCA,MAAMI,GASFnzH,YAAYguH,EAAYkF,GAEpB1zH,KAAK4zH,eAAgB,EAOrB5zH,KAAK6zH,6BAA+B,KAEpC7zH,KAAK8zH,iBAAkB,EAEvB9zH,KAAK+zH,oBAAsB,OAC3B/zH,KAAK2zD,QAAU,KAEf3zD,KAAKmyH,QAAU50H,GAAS,IAAMyC,KAAKg0H,kBACnCh0H,KAAKg0H,eAAiB9jE,QAAOv1D,GAE7BqF,KAAKiyH,UAAY10H,GAAS,IAAMyC,KAAKi0H,oBACrCj0H,KAAKi0H,iBAAmB/jE,IAAO,GAE/BlwD,KAAK8xH,SAAWv0H,GAAS,IAAMyC,KAAKk0H,mBACpCl0H,KAAKk0H,gBAAkBhkE,IAAO,GAM9BlwD,KAAKm0H,QAAU,IAAInuH,GAanBhG,KAAKo0H,OAASp0H,KAAKm0H,QAAQ7tH,eAE3BtG,KAAKq0H,kBAAoB,GACzBr0H,KAAKs0H,kBAAkB9F,GACvBxuH,KAAKu0H,uBAAuBb,EAChC,CAMA,aAAI3E,GACA,OAAO/uH,KAAK8wH,oBAChB,CACA,aAAI/B,CAAUyF,GACVx0H,KAAK2vH,eAAiB3vH,KAAK8wH,qBAAuB0D,CACtD,CAMA,kBAAIvD,GACA,OAAOjxH,KAAKgxH,yBAChB,CACA,kBAAIC,CAAewD,GACfz0H,KAAK6vH,oBAAsB7vH,KAAKgxH,0BAA4ByD,CAChE,CAIA,UAAI5wH,GACA,OAAO7D,KAAK2zD,OAChB,CASA,UAAIg2B,GACA,OAAOpN,GAAUv8E,KAAKg0H,eAC1B,CACA,UAAIrqC,CAAO95D,GACP0sD,GAAU,IAAMv8E,KAAKg0H,eAAen0G,IAAIgQ,GAC5C,CASA,SAAIygG,GACA,OAAOtwH,KAAK2pF,SAAWgpC,EAC3B,CASA,WAAIpC,GACA,OAAOvwH,KAAK2pF,SAAWipC,EAC3B,CASA,WAAI9nD,GACA,OAAO9qE,KAAK2pF,QAAUkpC,EAC1B,CAYA,YAAI1wB,GACA,OAAOniG,KAAK2pF,SAAWmpC,EAC3B,CAUA,WAAI73C,GACA,OAAOj7E,KAAK2pF,SAAWmpC,EAC3B,CAQA,YAAItC,GACA,OAAOj0C,GAAUv8E,KAAKi0H,iBAC1B,CACA,YAAIzD,CAAS3gG,GACT0sD,GAAU,IAAMv8E,KAAKi0H,iBAAiBp0G,IAAIgQ,GAC9C,CAQA,SAAIp1B,GACA,OAAQuF,KAAKwwH,QACjB,CAOA,WAAIC,GACA,OAAOl0C,GAAUv8E,KAAKk0H,gBAC1B,CACA,WAAIzD,CAAQ5gG,GACR0sD,GAAU,IAAMv8E,KAAKk0H,gBAAgBr0G,IAAIgQ,GAC7C,CAOA,aAAI6gG,GACA,OAAQ1wH,KAAKywH,OACjB,CAOA,YAAIiE,GACA,OAAO10H,KAAK20H,UAAY30H,KAAK20H,UAAY30H,KAAK6D,OAAS7D,KAAK6D,OAAO6wH,SAAW,QAClF,CAWAE,cAAcpG,GACVxuH,KAAKs0H,kBAAkB9F,EAC3B,CAWAqG,mBAAmBrG,GACfxuH,KAAKu0H,uBAAuB/F,EAChC,CAaAwB,cAAcxB,GACVxuH,KAAK40H,cAAc5E,GAAcxB,EAAYxuH,KAAK2vH,gBACtD,CAYAmF,mBAAmBtG,GACfxuH,KAAK60H,mBAAmB7E,GAAcxB,EAAYxuH,KAAK6vH,qBAC3D,CA8BAM,iBAAiB3B,GACbxuH,KAAK40H,cAAczE,GAAiB3B,EAAYxuH,KAAK2vH,gBACzD,CAYAoF,sBAAsBvG,GAClBxuH,KAAK60H,mBAAmB1E,GAAiB3B,EAAYxuH,KAAK6vH,qBAC9D,CAwBAE,aAAahB,GACT,OAAOgB,GAAa/vH,KAAK2vH,eAAgBZ,EAC7C,CASAiG,kBAAkBjG,GACd,OAAOgB,GAAa/vH,KAAK6vH,oBAAqBd,EAClD,CAQAkG,kBACIj1H,KAAK+uH,UAAY,IACrB,CAQAmG,uBACIl1H,KAAKixH,eAAiB,IAC1B,CACAkE,cAAcvpH,EAAO,CAAC,GAClB,MAAMwpH,GAA2B,IAAjBp1H,KAAKywH,QACrBzwH,KAAKywH,SAAU,EACf,MAAM4E,EAAgBzpH,EAAKypH,eAAiBr1H,KACxCA,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQwhE,cAAc,IAAKvpH,EAAMypH,kBAEtCD,IAA8B,IAAnBxpH,EAAK2pH,WAChBv1H,KAAKm0H,QAAQ50H,KAAK,IAAI2zH,IAAmB,EAAMmC,GAEvD,CAWAG,iBAAiB5pH,EAAO,CAAC,GACrB5L,KAAKm1H,cAAc,CAAEG,UAAU,EAAMC,UAAW3pH,EAAK2pH,UAAWF,cAAer1H,OAC/EA,KAAKy1H,cAAer+B,GAAYA,EAAQo+B,iBAAiB5pH,GAC7D,CACA8pH,gBAAgB9pH,EAAO,CAAC,GACpB,MAAMwpH,GAA2B,IAAjBp1H,KAAKywH,QACrBzwH,KAAKywH,SAAU,EACfzwH,KAAK8zH,iBAAkB,EACvB,MAAMuB,EAAgBzpH,EAAKypH,eAAiBr1H,KAC5CA,KAAKy1H,cAAer+B,IAChBA,EAAQs+B,gBAAgB,CAAEJ,UAAU,EAAMC,UAAW3pH,EAAK2pH,UAAWF,iBAAe,GAEpFr1H,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQgiE,eAAe/pH,EAAMypH,GAElCD,IAA8B,IAAnBxpH,EAAK2pH,WAChBv1H,KAAKm0H,QAAQ50H,KAAK,IAAI2zH,IAAmB,EAAOmC,GAExD,CACAO,YAAYhqH,EAAO,CAAC,GAChB,MAAMwpH,GAA4B,IAAlBp1H,KAAKwwH,SACrBxwH,KAAKwwH,UAAW,EAChB,MAAM6E,EAAgBzpH,EAAKypH,eAAiBr1H,KACxCA,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQiiE,YAAY,IAAKhqH,EAAMypH,kBAEpCD,IAA8B,IAAnBxpH,EAAK2pH,WAChBv1H,KAAKm0H,QAAQ50H,KAAK,IAAI0zH,IAAoB,EAAOoC,GAEzD,CACAQ,eAAejqH,EAAO,CAAC,GACnB,MAAMwpH,GAA4B,IAAlBp1H,KAAKwwH,SACrBxwH,KAAKwwH,UAAW,EAChBxwH,KAAK4zH,eAAgB,EACrB,MAAMyB,EAAgBzpH,EAAKypH,eAAiBr1H,KAC5CA,KAAKy1H,cAAer+B,IAEhBA,EAAQy+B,eAAe,CAAEP,UAAU,EAAMC,UAAW3pH,EAAK2pH,WAAW,GAEpEv1H,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQmiE,gBAAgBlqH,EAAMypH,GAEnCD,IAA8B,IAAnBxpH,EAAK2pH,WAChBv1H,KAAKm0H,QAAQ50H,KAAK,IAAI0zH,IAAoB,EAAMoC,GAExD,CACAU,cAAcnqH,EAAO,CAAC,GAClB5L,KAAK2pF,OAASkpC,GACd,MAAMwC,EAAgBzpH,EAAKypH,eAAiBr1H,MACrB,IAAnB4L,EAAK2pH,YACLv1H,KAAKm0H,QAAQ50H,KAAK,IAAI4zH,GAAkBnzH,KAAK2pF,OAAQ0rC,IACrDr1H,KAAK2wH,cAAcp6F,KAAKv2B,KAAK2pF,SAE7B3pF,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQoiE,cAAc,IAAKnqH,EAAMypH,iBAE9C,CACAzP,QAAQh6G,EAAO,CAAC,GAGZ,MAAMoqH,EAAoBh2H,KAAKi2H,mBAAmBrqH,EAAK0pH,UACvDt1H,KAAK2pF,OAASmpC,GACd9yH,KAAKF,OAAS,KACdE,KAAKy1H,cAAer+B,IAEhBA,EAAQwuB,QAAQ,IAAKh6G,EAAM0pH,UAAU,GAAM,GAE/Ct1H,KAAKk2H,eACL,MAAMb,EAAgBzpH,EAAKypH,eAAiBr1H,MACrB,IAAnB4L,EAAK2pH,YACLv1H,KAAKm0H,QAAQ50H,KAAK,IAAIyzH,GAAiBhzH,KAAKxC,MAAO63H,IACnDr1H,KAAKm0H,QAAQ50H,KAAK,IAAI4zH,GAAkBnzH,KAAK2pF,OAAQ0rC,IACrDr1H,KAAK4wH,aAAar6F,KAAKv2B,KAAKxC,OAC5BwC,KAAK2wH,cAAcp6F,KAAKv2B,KAAK2pF,SAEjC3pF,KAAKm2H,iBAAiB,IAAKvqH,EAAMoqH,qBAAqBh2H,MACtDA,KAAKq0H,kBAAkBxvH,QAASuxH,GAAaA,GAAS,GAC1D,CAmBAC,OAAOzqH,EAAO,CAAC,GAGX,MAAMoqH,EAAoBh2H,KAAKi2H,mBAAmBrqH,EAAK0pH,UACvDt1H,KAAK2pF,OAASgpC,GACd3yH,KAAKy1H,cAAer+B,IAChBA,EAAQi/B,OAAO,IAAKzqH,EAAM0pH,UAAU,GAAM,GAE9Ct1H,KAAKs2H,uBAAuB,CAAEhB,UAAU,EAAMC,UAAW3pH,EAAK2pH,YAC9Dv1H,KAAKm2H,iBAAiB,IAAKvqH,EAAMoqH,qBAAqBh2H,MACtDA,KAAKq0H,kBAAkBxvH,QAASuxH,GAAaA,GAAS,GAC1D,CACAD,iBAAiBvqH,EAAMypH,GACfr1H,KAAK2zD,UAAY/nD,EAAK0pH,WACtBt1H,KAAK2zD,QAAQ2iE,uBAAuB1qH,GAC/BA,EAAKoqH,mBACNh2H,KAAK2zD,QAAQmiE,gBAAgB,CAAC,EAAGT,GAErCr1H,KAAK2zD,QAAQgiE,eAAe,CAAC,EAAGN,GAExC,CAMAkB,UAAU1yH,GACN7D,KAAK2zD,QAAU9vD,CACnB,CAKA2yH,cACI,OAAOx2H,KAAKxC,KAChB,CACA84H,uBAAuB1qH,EAAO,CAAC,GAG3B,GAFA5L,KAAKy2H,oBACLz2H,KAAKk2H,eACDl2H,KAAKi7E,QAAS,CACd,MAAMy7C,EAAoB12H,KAAK22H,8BAC/B32H,KAAKF,OAASE,KAAK42H,gBACnB52H,KAAK2pF,OAAS3pF,KAAK62H,oBACf72H,KAAK2pF,SAAWgpC,IAAS3yH,KAAK2pF,SAAWkpC,KAGzC7yH,KAAK82H,mBAAmBJ,EAAmB9qH,EAAK2pH,UAExD,CACA,MAAMF,EAAgBzpH,EAAKypH,eAAiBr1H,MACrB,IAAnB4L,EAAK2pH,YACLv1H,KAAKm0H,QAAQ50H,KAAK,IAAIyzH,GAAiBhzH,KAAKxC,MAAO63H,IACnDr1H,KAAKm0H,QAAQ50H,KAAK,IAAI4zH,GAAkBnzH,KAAK2pF,OAAQ0rC,IACrDr1H,KAAK4wH,aAAar6F,KAAKv2B,KAAKxC,OAC5BwC,KAAK2wH,cAAcp6F,KAAKv2B,KAAK2pF,SAE7B3pF,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQ2iE,uBAAuB,IAAK1qH,EAAMypH,iBAEvD,CAEA0B,oBAAoBnrH,EAAO,CAAE2pH,WAAW,IACpCv1H,KAAKy1H,cAAeuB,GAASA,EAAKD,oBAAoBnrH,IACtD5L,KAAKs2H,uBAAuB,CAAEhB,UAAU,EAAMC,UAAW3pH,EAAK2pH,WAClE,CACAkB,oBACIz2H,KAAK2pF,OAAS3pF,KAAKi3H,uBAAyBnE,GAAWH,EAC3D,CACAiE,gBACI,OAAO52H,KAAK+uH,UAAY/uH,KAAK+uH,UAAU/uH,MAAQ,IACnD,CACA82H,mBAAmBJ,EAAmBnB,GAClC,GAAIv1H,KAAKixH,eAAgB,CACrBjxH,KAAK2pF,OAASkpC,GACd7yH,KAAK6zH,6BAA+B,CAAE0B,WAAyB,IAAdA,GACjD,MAAMxzC,EAAM4sC,GAAa3uH,KAAKixH,eAAejxH,OAC7CA,KAAKk3H,6BAA+Bn1C,EAAI99E,UAAWnE,IAC/CE,KAAK6zH,6BAA+B,KAIpC7zH,KAAKm3H,UAAUr3H,EAAQ,CAAEy1H,YAAWmB,qBAAmB,EAE/D,CACJ,CACAC,8BACI,GAAI32H,KAAKk3H,6BAA8B,CACnCl3H,KAAKk3H,6BAA6Bz2H,cAGlC,MAAMi2H,EAAoB12H,KAAK6zH,8BAA8B0B,YAAa,EAC1E,OAAAv1H,KAAK6zH,6BAA+B,KAC7B6C,CACX,CACA,OAAO,CACX,CACAS,UAAUr3H,EAAQ8L,EAAO,CAAC,GACtB5L,KAAKF,OAASA,EACdE,KAAKo3H,uBAAyC,IAAnBxrH,EAAK2pH,UAAqBv1H,KAAM4L,EAAK8qH,kBACpE,CA+BAzmH,IAAIwjB,GACA,IAAI4jG,EAAW5jG,EAKf,OAJgB,MAAZ4jG,IAEC33H,MAAMD,QAAQ43H,KACfA,EAAWA,EAAS90F,MAAM,MACN,IAApB80F,EAASz7H,QACF,KACJy7H,EAASv1H,OAAO,CAACs1F,EAAS/2F,IAAS+2F,GAAWA,EAAQkgC,MAAMj3H,GAAOL,KAC9E,CA4BAqxH,SAASD,EAAW39F,GAChB,MAAM2jE,EAAU3jE,EAAOzzB,KAAKiQ,IAAIwjB,GAAQzzB,KACxC,OAAOo3F,GAAWA,EAAQt3F,OAASs3F,EAAQt3F,OAAOsxH,GAAa,IACnE,CA+BAnrH,SAASmrH,EAAW39F,GAChB,QAASzzB,KAAKqxH,SAASD,EAAW39F,EACtC,CAIA,QAAI6F,GACA,IAAI56B,EAAIsB,KACR,KAAOtB,EAAEi1D,SACLj1D,EAAIA,EAAEi1D,QAEV,OAAOj1D,CACX,CAEA04H,sBAAsB7B,EAAWgC,EAAgBb,GAC7C12H,KAAK2pF,OAAS3pF,KAAK62H,mBACftB,GACAv1H,KAAK2wH,cAAcp6F,KAAKv2B,KAAK2pF,SAK7B4rC,GAAamB,IACb12H,KAAKm0H,QAAQ50H,KAAK,IAAI4zH,GAAkBnzH,KAAK2pF,OAAQ4tC,IAErDv3H,KAAK2zD,SACL3zD,KAAK2zD,QAAQyjE,sBAAsB7B,EAAWgC,EAAgBb,EAEtE,CAEAc,mBACIx3H,KAAK4wH,aAAe,IAAI16F,GACxBl2B,KAAK2wH,cAAgB,IAAIz6F,EAC7B,CACA2gG,mBACI,OAAI72H,KAAKi3H,uBACEnE,GACP9yH,KAAKF,OACE8yH,GACP5yH,KAAK6zH,8BAAgC7zH,KAAKy3H,uBAAuB5E,IAC1DA,GACP7yH,KAAKy3H,uBAAuB7E,IACrBA,GACJD,EACX,CAEA8E,uBAAuB9tC,GACnB,OAAO3pF,KAAK03H,aAActgC,GAAYA,EAAQzN,SAAWA,EAC7D,CAEAguC,oBACI,OAAO33H,KAAK03H,aAActgC,GAAYA,EAAQ38F,MAClD,CAEAm9H,sBACI,OAAO53H,KAAK03H,aAActgC,GAAYA,EAAQq5B,QAClD,CAEAqF,gBAAgBlqH,EAAM2rH,GAClB,MAAMM,GAAe73H,KAAK23H,oBACpBvC,EAAUp1H,KAAKwwH,WAAaqH,EAClC73H,KAAKwwH,SAAWqH,EACZ73H,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQmiE,gBAAgBlqH,EAAM2rH,GAEnCnC,GACAp1H,KAAKm0H,QAAQ50H,KAAK,IAAI0zH,GAAoBjzH,KAAKwwH,SAAU+G,GAEjE,CAEA5B,eAAe/pH,EAAO,CAAC,EAAG2rH,GACtBv3H,KAAKywH,QAAUzwH,KAAK43H,sBACpB53H,KAAKm0H,QAAQ50H,KAAK,IAAI2zH,GAAmBlzH,KAAKywH,QAAS8G,IACnDv3H,KAAK2zD,UAAY/nD,EAAK0pH,UACtBt1H,KAAK2zD,QAAQgiE,eAAe/pH,EAAM2rH,EAE1C,CAEAO,4BAA4Bl0H,GACxB5D,KAAK+zH,oBAAsBnwH,CAC/B,CAEAm0H,mBAAmBnsH,GACX4nH,GAAa5nH,IAA0B,MAAjBA,EAAK8oH,WAC3B10H,KAAK20H,UAAY/oH,EAAK8oH,SAE9B,CAMAuB,mBAAmBX,GAEf,OAAQA,MADYt1H,KAAK2zD,UAAW3zD,KAAK2zD,QAAQl5D,SACXuF,KAAK2zD,QAAQgkE,mBACvD,CAEAL,MAAMj3H,GACF,OAAO,IACX,CAMAi0H,kBAAkB9F,GACdxuH,KAAK2vH,eAAiBjwH,MAAMD,QAAQ+uH,GAAcA,EAAWnoH,QAAUmoH,EACvExuH,KAAK8wH,qBAv1Bb,SAASkH,GAAkBjJ,GACvB,OAAOrvH,MAAMD,QAAQsvH,GAAaM,GAAkBN,GAAaA,GAAa,IAClF,CAq1BoCiJ,CAAkBh4H,KAAK2vH,eACvD,CAMA4E,uBAAuB/F,GACnBxuH,KAAK6vH,oBAAsBnwH,MAAMD,QAAQ+uH,GAAcA,EAAWnoH,QAAUmoH,EAC5ExuH,KAAKgxH,0BA/0Bb,SAASiH,GAAuBhH,GAC5B,OAAOvxH,MAAMD,QAAQwxH,GACf3B,GAAuB2B,GACvBA,GAAkB,IAC5B,CA20ByCgH,CAAuBj4H,KAAK6vH,oBACjE,EAoHJ,MAAMqI,WAAkBvE,GAcpBnzH,YAAY23H,EAAU5E,EAAiBtC,GACnC5uH,MAAMixH,GAAeC,GAAkBE,GAAoBxC,EAAgBsC,IAE3EvzH,KAAKm4H,SAAWA,EAChBn4H,KAAKw3H,mBACLx3H,KAAK+3H,mBAAmBxE,GACxBvzH,KAAKo4H,iBACLp4H,KAAKs2H,uBAAuB,CACxBhB,UAAU,EAIVC,YAAav1H,KAAKixH,gBAE1B,CACAoH,gBAAgBh4H,EAAM+2F,GAClB,OAAIp3F,KAAKm4H,SAAS93H,GACPL,KAAKm4H,SAAS93H,IACzBL,KAAKm4H,SAAS93H,GAAQ+2F,EACtBA,EAAQm/B,UAAUv2H,MAClBo3F,EAAQ0gC,4BAA4B93H,KAAK+zH,qBAClC38B,EACX,CACAkhC,WAAWj4H,EAAM+2F,EAASprF,EAAU,CAAC,GACjChM,KAAKq4H,gBAAgBh4H,EAAM+2F,GAC3Bp3F,KAAKs2H,uBAAuB,CAAEf,UAAWvpH,EAAQupH,YACjDv1H,KAAK+zH,qBACT,CAcAwE,cAAcl4H,EAAM2L,EAAU,CAAC,GACvBhM,KAAKm4H,SAAS93H,IACdL,KAAKm4H,SAAS93H,GAAMy3H,4BAA4B,eAC7C93H,KAAKm4H,SAAS93H,GACrBL,KAAKs2H,uBAAuB,CAAEf,UAAWvpH,EAAQupH,YACjDv1H,KAAK+zH,qBACT,CACAyE,WAAWn4H,EAAM+2F,EAASprF,EAAU,CAAC,GAC7BhM,KAAKm4H,SAAS93H,IACdL,KAAKm4H,SAAS93H,GAAMy3H,4BAA4B,eAC7C93H,KAAKm4H,SAAS93H,GACjB+2F,GACAp3F,KAAKq4H,gBAAgBh4H,EAAM+2F,GAC/Bp3F,KAAKs2H,uBAAuB,CAAEf,UAAWvpH,EAAQupH,YACjDv1H,KAAK+zH,qBACT,CACA5U,SAASsZ,GACL,OAAOz4H,KAAKm4H,SAASluH,eAAewuH,IAAgBz4H,KAAKm4H,SAASM,GAAax9C,OACnF,CAoCAj/B,SAASx+C,EAAOwO,EAAU,CAAC,IA7hC/B,SAAS0sH,GAAuBthC,EAASuhC,EAASn7H,GAC9C45F,EAAQq+B,cAAc,CAAC58G,EAAGpO,KACtB,QAAmB9P,IAAf6C,EAAMiN,GACN,MAAM,IAAIw2E,EAAc,KAA4I,GAAE,EAGlL,EAwhCQy3C,CAAuB14H,KAAM,EAAMxC,GACnC5D,OAAOkoB,KAAKtkB,GAAOqH,QAASxE,KAziCpC,SAASu4H,GAAqB/0H,EAAQ80H,EAASluH,GAC3C,MAAM0tH,EAAWt0H,EAAOs0H,SAExB,KADmBQ,EAAU/+H,OAAOkoB,KAAKq2G,GAAYA,GACrCv8H,OACZ,MAAM,IAAIqlF,EAAc,IAAoH,IAEhJ,IAAKk3C,EAAS1tH,GACV,MAAM,IAAIw2E,EAAc,KAAiI,GAEjK,EAiiCY23C,CAAqB54H,MAAM,EAAMK,GACjCL,KAAKm4H,SAAS93H,GAAM27C,SAASx+C,EAAM6C,GAAO,CACtCi1H,UAAU,EACVC,UAAWvpH,EAAQupH,WACtB,GAELv1H,KAAKs2H,uBAAuBtqH,EAChC,CAgCA6sH,WAAWr7H,EAAOwO,EAAU,CAAC,GAKZ,MAATxO,IAEJ5D,OAAOkoB,KAAKtkB,GAAOqH,QAASxE,IAGxB,MAAM+2F,EAAUp3F,KAAKm4H,SAAS93H,GAC1B+2F,GACAA,EAAQyhC,WACkDr7H,EAAM6C,GAAO,CAAEi1H,UAAU,EAAMC,UAAWvpH,EAAQupH,WAAW,GAG/Hv1H,KAAKs2H,uBAAuBtqH,GAChC,CA0DAuxB,MAAM//B,EAAQ,CAAC,EAAGwO,EAAU,CAAC,GACzBhM,KAAKy1H,cAAc,CAACr+B,EAAS/2F,KACzB+2F,EAAQ75D,MAAM//B,EAAQA,EAAM6C,GAAQ,KAAM,CACtCi1H,UAAU,EACVC,UAAWvpH,EAAQupH,WACtB,GAELv1H,KAAK81H,gBAAgB9pH,EAAShM,MAC9BA,KAAK21H,eAAe3pH,EAAShM,MAC7BA,KAAKs2H,uBAAuBtqH,EAChC,CAMAwqH,cACI,OAAOx2H,KAAK84H,gBAAgB,CAAC,EAAG,CAACC,EAAK3hC,EAAS/2F,KAC3C04H,EAAI14H,GAAQ+2F,EAAQo/B,cACbuC,GAEf,CAEAC,uBACI,IAAIC,EAAiBj5H,KAAK84H,iBAAgB,EAAO,CAACI,EAASttG,MAChDA,EAAMotG,wBAAgCE,GAEjD,OAAID,GACAj5H,KAAKs2H,uBAAuB,CAAEhB,UAAU,IACrC2D,CACX,CAEAxD,cAAcr3F,GACVxkC,OAAOkoB,KAAK9hB,KAAKm4H,UAAUtzH,QAAS4F,IAIhC,MAAM2sF,EAAUp3F,KAAKm4H,SAAS1tH,GAC9B2sF,GAAWh5D,EAAGg5D,EAAS3sF,EAAG,EAElC,CAEA2tH,iBACIp4H,KAAKy1H,cAAer+B,IAChBA,EAAQm/B,UAAUv2H,MAClBo3F,EAAQ0gC,4BAA4B93H,KAAK+zH,oBAAmB,EAEpE,CAEAmC,eACIl2H,KAAKxC,MAAQwC,KAAKm5H,cACtB,CAEAzB,aAAal5C,GACT,UAAYi6C,EAAarhC,KAAYx9F,OAAOsrF,QAAQllF,KAAKm4H,UACrD,GAAIn4H,KAAKm/G,SAASsZ,IAAgBj6C,EAAU4Y,GACxC,OAAO,EAGf,OAAO,CACX,CAEA+hC,eAEI,OAAOn5H,KAAK84H,gBADF,CAAC,EACsB,CAACC,EAAK3hC,EAAS/2F,MACxC+2F,EAAQnc,SAAWj7E,KAAKmiG,YACxB42B,EAAI14H,GAAQ+2F,EAAQ55F,OAEjBu7H,GAEf,CAEAD,gBAAgBM,EAAWx1H,GACvB,IAAImH,EAAMquH,EACV,OAAAp5H,KAAKy1H,cAAc,CAACr+B,EAAS/2F,KACzB0K,EAAMnH,EAAGmH,EAAKqsF,EAAS/2F,EAAI,GAExB0K,CACX,CAEAksH,uBACI,UAAWwB,KAAe7+H,OAAOkoB,KAAK9hB,KAAKm4H,UACvC,GAAIn4H,KAAKm4H,SAASM,GAAax9C,QAC3B,OAAO,EAGf,OAAOrhF,OAAOkoB,KAAK9hB,KAAKm4H,UAAUv8H,OAAS,GAAKoE,KAAKmiG,QACzD,CAEAm1B,MAAMj3H,GACF,OAAOL,KAAKm4H,SAASluH,eAAe5J,GAC9BL,KAAKm4H,SAAS93H,GACd,IACV,EAgDJ,MAQMg5H,GAA0B,IAAItsH,EAAe,uBAAwB,CACvElB,WAAY,OACZC,QAASA,IAAMwtH,KAKbA,GAA0B,SAWhC,SAASC,GAAaniC,EAASpZ,EAAKw7C,EAAuBF,IAOvDG,GAAgBriC,EAASpZ,GACzBA,EAAIyzC,cAAcpF,WAAWj1B,EAAQ55F,QAIjC45F,EAAQ+K,UAAqC,WAAzBq3B,IACpBx7C,EAAIyzC,cAAcpG,mBAAmBj0B,EAAQ+K,UA4IrD,SAASu3B,GAAwBtiC,EAASpZ,GACtCA,EAAIyzC,cAAcrG,iBAAkBrtH,IAChCq5F,EAAQuiC,cAAgB57H,EACxBq5F,EAAQwiC,gBAAiB,EACzBxiC,EAAQw8B,eAAgB,EACC,WAArBx8B,EAAQs9B,UACRmF,GAAcziC,EAASpZ,EAAG,EAEtC,CAlJI07C,CAAwBtiC,EAASpZ,GAmKrC,SAAS87C,GAAyB1iC,EAASpZ,GACvC,MAAMitC,EAAWA,CAACltH,EAAUg8H,KAExB/7C,EAAIyzC,cAAcpF,WAAWtuH,GAEzBg8H,GACA/7C,EAAIg8C,kBAAkBj8H,EAAQ,EAEtCq5F,EAAQg0B,iBAAiBH,GAGzBjtC,EAAIkzC,mBAAmB,KACnB95B,EAAQ6iC,oBAAoBhP,EAAQ,EAE5C,CAhLI6O,CAAyB1iC,EAASpZ,GAkJtC,SAASk8C,GAAkB9iC,EAASpZ,GAChCA,EAAIyzC,cAActG,kBAAkB,KAChC/zB,EAAQ08B,iBAAkB,EACD,SAArB18B,EAAQs9B,UAAuBt9B,EAAQwiC,gBACvCC,GAAcziC,EAASpZ,GACF,WAArBoZ,EAAQs9B,UACRt9B,EAAQ+9B,eAAc,EAElC,CAzJI+E,CAAkB9iC,EAASpZ,GAgD/B,SAASm8C,GAA2B/iC,EAASpZ,GACzC,GAAIA,EAAIyzC,cAAcpG,iBAAkB,CACpC,MAAM+O,EAAoB9O,IACtBttC,EAAIyzC,cAAcpG,iBAAiBC,EAAU,EAEjDl0B,EAAQijC,yBAAyBD,GAGjCp8C,EAAIkzC,mBAAmB,KACnB95B,EAAQkjC,4BAA4BF,EAAgB,EAE5D,CACJ,CA3DID,CAA2B/iC,EAASpZ,EACxC,CAYA,SAASu8C,GAAenjC,EAASpZ,EAAKw8C,GAAkC,GACpE,MAAM5jG,EAAOA,OAUTonD,EAAIyzC,gBACJzzC,EAAIyzC,cAAcrG,iBAAiBx0F,GACnConD,EAAIyzC,cAActG,kBAAkBv0F,IAExC6jG,GAAkBrjC,EAASpZ,GACvBoZ,IACApZ,EAAImzC,4BACJ/5B,EAAQ0gC,4BAA4B,QAE5C,CACA,SAAS4C,GAA0BlM,EAAYvD,GAC3CuD,EAAW3pH,QAASkqH,IACZA,EAAU2L,2BACV3L,EAAU2L,0BAA0BzP,EAAQ,EAExD,CA4BA,SAASwO,GAAgBriC,EAASpZ,GAC9B,MAAMwwC,EAAakB,GAAqBt4B,GAClB,OAAlBpZ,EAAI+wC,UACJ33B,EAAQw9B,cAAcrF,GAAgBf,EAAYxwC,EAAI+wC,YAE3B,mBAAfP,GAQZp3B,EAAQw9B,cAAc,CAACpG,IAE3B,MAAMkF,EAAkB9D,GAA0Bx4B,GACvB,OAAvBpZ,EAAIizC,eACJ75B,EAAQy9B,mBAAmBtF,GAAgBmE,EAAiB11C,EAAIizC,iBAEhC,mBAApByC,GACZt8B,EAAQy9B,mBAAmB,CAACnB,IAGhC,MAAMiH,EAAoBA,IAAMvjC,EAAQk/B,yBACxCoE,GAA0B18C,EAAI2xC,eAAgBgL,GAC9CD,GAA0B18C,EAAI6xC,oBAAqB8K,EACvD,CAUA,SAASF,GAAkBrjC,EAASpZ,GAChC,IAAI48C,GAAmB,EACvB,GAAgB,OAAZxjC,EAAkB,CAClB,GAAsB,OAAlBpZ,EAAI+wC,UAAoB,CACxB,MAAMP,EAAakB,GAAqBt4B,GACxC,GAAI13F,MAAMD,QAAQ+uH,IAAeA,EAAW5yH,OAAS,EAAG,CAEpD,MAAMi/H,EAAoBrM,EAAWrnH,OAAQ4nH,GAAcA,IAAc/wC,EAAI+wC,WACzE8L,EAAkBj/H,SAAW4yH,EAAW5yH,SACxCg/H,GAAmB,EACnBxjC,EAAQw9B,cAAciG,GAE9B,CACJ,CACA,GAA2B,OAAvB78C,EAAIizC,eAAyB,CAC7B,MAAMyC,EAAkB9D,GAA0Bx4B,GAClD,GAAI13F,MAAMD,QAAQi0H,IAAoBA,EAAgB93H,OAAS,EAAG,CAE9D,MAAMk/H,EAAyBpH,EAAgBvsH,OAAQ8pH,GAAmBA,IAAmBjzC,EAAIizC,gBAC7F6J,EAAuBl/H,SAAW83H,EAAgB93H,SAClDg/H,GAAmB,EACnBxjC,EAAQy9B,mBAAmBiG,GAEnC,CACJ,CACJ,CAEA,MAAMlkG,EAAOA,OACb8jG,UAA0B18C,EAAI2xC,eAAgB/4F,GAC9C8jG,GAA0B18C,EAAI6xC,oBAAqBj5F,GAC5CgkG,CACX,CAmBA,SAASf,GAAcziC,EAASpZ,GACxBoZ,EAAQw8B,eACRx8B,EAAQw+B,cACZx+B,EAAQp7C,SAASo7C,EAAQuiC,cAAe,CAAEoB,uBAAuB,IACjE/8C,EAAIg8C,kBAAkB5iC,EAAQuiC,eAC9BviC,EAAQwiC,gBAAiB,CAC7B,CAuBA,SAASoB,GAAmB5jC,EAASpZ,GAGjCy7C,GAAgBriC,EAASpZ,EAC7B,CAgDA,SAASi9C,GAAoBC,EAAM5lF,GAC/B4lF,EAAKlC,uBACL1jF,EAAWzwC,QAASm5E,IAChB,MAAMoZ,EAAUpZ,EAAIoZ,QACK,WAArBA,EAAQs9B,UAAyBt9B,EAAQwiC,iBACzC57C,EAAIg8C,kBAAkB5iC,EAAQuiC,eAC9BviC,EAAQwiC,gBAAiB,IAGrC,CAqDA,MAAMuB,GAA0B,CAC5B98G,QAASizG,GACT1uG,YAAatX,GAAW,IAAM8vH,KAE5BC,GAA2Bx8H,QAAQmG,UACzC,IAgEMo2H,GAAM,MAAZ,MAAMA,UAAe9J,GAKjB,aAAIkB,GACA,OAAOj2C,GAAUv8E,KAAKs7H,kBAC1B,CACA96H,YAAYguH,EAAYkF,EAAiB8F,GACrCn3H,QACArC,KAAKw5H,qBAAuBA,EAE5Bx5H,KAAKuyH,WAAah1H,GAAS,IAAMyC,KAAKs7H,qBACtCt7H,KAAKs7H,kBAAoBprE,IAAO,GAChClwD,KAAKu7H,YAAc,IAAIv+G,IAKvBhd,KAAKw7H,SAAW,IAAItlG,GACpBl2B,KAAKk7H,KAAO,IAAIhD,GAAU,CAAC,EAAG7I,GAAkBb,GAAac,GAAuBoE,GACxF,CAEAxmG,kBACIltB,KAAK+3H,oBACT,CAKA,iBAAIxG,GACA,OAAOvxH,IACX,CAKA,WAAIo3F,GACA,OAAOp3F,KAAKk7H,IAChB,CAMA,QAAIznG,GACA,MAAO,EACX,CAKA,YAAI0kG,GACA,OAAOn4H,KAAKk7H,KAAK/C,QACrB,CAQAG,WAAWt6C,GACPq9C,GAAkB9uD,KAAK,KACnB,MAAM5uD,EAAY3d,KAAKy7H,eAAez9C,EAAIvqD,MAC1CuqD,EAAIoZ,QAAWz5E,EAAU06G,gBAAgBr6C,EAAI39E,KAAM29E,EAAIoZ,SACvDmiC,GAAav7C,EAAIoZ,QAASpZ,EAAKh+E,KAAKw5H,sBACpCx7C,EAAIoZ,QAAQk/B,uBAAuB,CAAEf,WAAW,IAChDv1H,KAAKu7H,YAAYl6H,IAAI28E,EAAG,EAEhC,CAOA09C,WAAW19C,GACP,OAAOh+E,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,KAC7B,CAOA8kG,cAAcv6C,GACVq9C,GAAkB9uD,KAAK,KACnB,MAAM5uD,EAAY3d,KAAKy7H,eAAez9C,EAAIvqD,MACtC9V,GACAA,EAAU46G,cAAcv6C,EAAI39E,MAEhCL,KAAKu7H,YAAYvlG,OAAOgoD,EAAG,EAEnC,CAOA29C,aAAa39C,GACTq9C,GAAkB9uD,KAAK,KACnB,MAAM5uD,EAAY3d,KAAKy7H,eAAez9C,EAAIvqD,MACpCmoG,EAAQ,IAAI1D,GAAU,CAAC,GAC7B8C,GAAmBY,EAAO59C,GAC1BrgE,EAAU06G,gBAAgBr6C,EAAI39E,KAAMu7H,GACpCA,EAAMtF,uBAAuB,CAAEf,WAAW,GAAO,EAEzD,CAOAsG,gBAAgB79C,GACZq9C,GAAkB9uD,KAAK,KACnB,MAAM5uD,EAAY3d,KAAKy7H,eAAez9C,EAAIvqD,MACtC9V,GACAA,EAAU46G,cAAcv6C,EAAI39E,KAAI,EAG5C,CAOAy7H,aAAa99C,GACT,OAAOh+E,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,KAC7B,CAOAsoG,YAAY/9C,EAAKxgF,GACb69H,GAAkB9uD,KAAK,KACNvsE,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC1BuoB,SAASx+C,EAAK,EAE3B,CAOAw+C,SAASx+C,GACLwC,KAAKo3F,QAAQp7C,SAASx+C,EAC1B,CAQAw+H,SAASvP,GACL,OAAAzsH,KAAKs7H,kBAAkBz7G,KAAI,GAC3Bo7G,GAAoBj7H,KAAKk7H,KAAMl7H,KAAKu7H,aACpCv7H,KAAKw7H,SAASjlG,KAAKk2F,GAGe,WAA3BA,GAAQ9hH,QAAQq9E,MAC3B,CAKAi0C,UACIj8H,KAAKk8H,WACT,CAOAA,UAAU1+H,OAAQ7C,GACdqF,KAAKk7H,KAAK39F,MAAM//B,GAChBwC,KAAKs7H,kBAAkBz7G,KAAI,EAC/B,CACAk4G,qBACQ/3H,KAAKgM,SAAoC,MAAzBhM,KAAKgM,QAAQ0oH,WAC7B10H,KAAKk7H,KAAKvG,UAAY30H,KAAKgM,QAAQ0oH,SAE3C,CACA+G,eAAehoG,GACXA,SAAKh3B,MACEg3B,EAAK73B,OAASoE,KAAKk7H,KAAKjrH,IAAIwjB,GAAQzzB,KAAKk7H,IACpD,QACSl7H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFyvD,GAj9GV9iE,EAi9GkCs0D,GAAa,IAj9G/Ct0D,EAi9GwFu0D,GAAmB,IAj9G3Gv0D,EAi9GoJ+gE,GAAuB,IAA8D,QAChUr5H,KAAKwN,UAl9GkF8qD,EAAE,CAAA7sD,KAk9GJ2vH,EAAM7hH,UAAA,yEAAAsC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAl9GJskB,GAAE,kBAAAm0D,GAAA,OAk9GJr5D,EAAA4oE,SAAAvP,EAAgB,EAl9Gdn0D,CAk9GI,0BAANlF,EAAA6oE,SAAS,EAAH,EAAAriH,OAAA,CAAA5N,QAAA,+BAAA6N,QAAA,CAAA2hH,SAAA,YAAA9hH,SAAA,WAAAsC,SAAA,CAl9GJs8C,GAk9GwP,CAAC6iE,KAl9GzP7iE,KAk9GiV,EACpb,OArMK8iE,CAAM,KAuOZ,SAASe,GAAetlH,EAAM4wB,GAC1B,MAAM1mC,EAAQ8V,EAAKnV,QAAQ+lC,GACvB1mC,GAAQ,GACR8V,EAAKhV,OAAOd,EAAO,EAC3B,CAEA,SAASq7H,GAAmBC,GACxB,MAA6B,iBAAdA,GACG,OAAdA,GACkC,IAAlCziI,OAAOkoB,KAAKu6G,GAAWzgI,QACvB,UAAWygI,GACX,aAAcA,CACtB,CACA,MAAMC,GAAc,cAA0B3I,GAC1CnzH,YAEA67H,EAAY,KAAM9I,EAAiBtC,GAC/B5uH,MAAMixH,GAAeC,GAAkBE,GAAoBxC,EAAgBsC,IAE3EvzH,KAAKiI,aAAe,KAEpBjI,KAAKu8H,UAAY,GAEjBv8H,KAAK45H,gBAAiB,EACtB55H,KAAKw8H,gBAAgBH,GACrBr8H,KAAK+3H,mBAAmBxE,GACxBvzH,KAAKw3H,mBACLx3H,KAAKs2H,uBAAuB,CACxBhB,UAAU,EAKVC,YAAav1H,KAAKixH,iBAElBuC,GAAaD,KACZA,EAAgBkJ,aAAelJ,EAAgBmJ,yBAE5C18H,KAAKiI,aADLm0H,GAAmBC,GACCA,EAAU7+H,MAGV6+H,EAGhC,CACArgF,SAASx+C,EAAOwO,EAAU,CAAC,GACvBhM,KAAKxC,MAAQwC,KAAK25H,cAAgBn8H,EAC9BwC,KAAKu8H,UAAU3gI,SAA4C,IAAlCoQ,EAAQ+uH,uBACjC/6H,KAAKu8H,UAAU13H,QAASuxH,GAAaA,EAASp2H,KAAKxC,OAAyC,IAAlCwO,EAAQ2wH,wBAEtE38H,KAAKs2H,uBAAuBtqH,EAChC,CACA6sH,WAAWr7H,EAAOwO,EAAU,CAAC,GACzBhM,KAAKg8C,SAASx+C,EAAOwO,EACzB,CACAuxB,MAAM8+F,EAAYr8H,KAAKiI,aAAc+D,EAAU,CAAC,GAC5ChM,KAAKw8H,gBAAgBH,GACrBr8H,KAAK61H,eAAe7pH,GACpBhM,KAAK01H,gBAAgB1pH,GACrBhM,KAAKg8C,SAASh8C,KAAKxC,MAAOwO,GAC1BhM,KAAK45H,gBAAiB,CAC1B,CAEA1D,eAAiB,CAEjBwB,aAAal5C,GACT,OAAO,CACX,CAEAy4C,uBACI,OAAOj3H,KAAKmiG,QAChB,CACAipB,iBAAiBxnH,GACb5D,KAAKu8H,UAAUv/H,KAAK4G,EACxB,CAEAq2H,oBAAoBr2H,GAChBu4H,GAAen8H,KAAKu8H,UAAW34H,EACnC,CACAy2H,yBAAyBz2H,GACrB5D,KAAKq0H,kBAAkBr3H,KAAK4G,EAChC,CAEA02H,4BAA4B12H,GACxBu4H,GAAen8H,KAAKq0H,kBAAmBzwH,EAC3C,CAEA6xH,cAAcr3F,GAAM,CAEpB46F,uBACI,QAAsB,WAAlBh5H,KAAK00H,WACD10H,KAAK4zH,eACL5zH,KAAK41H,cACL51H,KAAK8zH,iBACL9zH,KAAKm1H,iBACLn1H,KAAK45H,kBACL55H,KAAKg8C,SAASh8C,KAAK25H,cAAe,CAAErE,UAAU,EAAMyF,uBAAuB,IACpE,GAInB,CACAyB,gBAAgBH,GACRD,GAAmBC,IACnBr8H,KAAKxC,MAAQwC,KAAK25H,cAAgB0C,EAAU7+H,MAC5C6+H,EAAUl6B,SACJniG,KAAK4lH,QAAQ,CAAE0P,UAAU,EAAMC,WAAW,IAC1Cv1H,KAAKq2H,OAAO,CAAEf,UAAU,EAAMC,WAAW,KAG/Cv1H,KAAKxC,MAAQwC,KAAK25H,cAAgB0C,CAE1C,GA0LEO,GAAuB,CACzBv+G,QAASmzG,GACT5uG,YAAatX,GAAW,IAAMuxH,KAmB5BC,GAAyBj+H,QAAQmG,UACvC,IAqFM63H,GAAO,MAAb,MAAMA,UAAgBrL,GAClBhxH,YAAYqD,EAAQ2qH,EAAYkF,EAAiBqJ,EAAgBC,EAAoBxD,GACjFn3H,QACArC,KAAKg9H,mBAAqBA,EAC1Bh9H,KAAKw5H,qBAAuBA,EAC5Bx5H,KAAKo3F,QAAU,IAAIklC,GAEnBt8H,KAAKi9H,aAAc,EAMnBj9H,KAAKK,KAAO,GAMZL,KAAKwwD,OAAS,IAAIt6B,GAClBl2B,KAAK2zD,QAAU9vD,EACf7D,KAAK6wH,eAAerC,GACpBxuH,KAAK+wH,oBAAoB2C,GACzB1zH,KAAKyxH,cA3wBb,SAASyL,GAAoBl/C,EAAK++C,GAC9B,IAAKA,EACD,OAAO,KAGX,IAAII,EACAC,EACAC,EAgBJ,OApBK39H,MAAMD,QAAQs9H,GAKnBA,EAAel4H,QAASgrB,IAChBA,EAAErvB,cAAgBurH,GAClBoR,EAAkBttG,EA1B9B,SAASytG,GAAkB7L,GAGvB,OAAO73H,OAAOs4D,eAAeu/D,EAAcjxH,eAAiB+qH,EAChE,CAwBiB+R,CAAkBztG,GAGvButG,EAAkBvtG,EAKlBwtG,EAAiBxtG,IAGrBwtG,GAEAD,GAEAD,GAKG,IACX,CA0uB6BD,CAAoBl9H,EAAM+8H,EACnD,CAEAv2G,YAAYmW,GAER,GADA38B,KAAKu9H,mBACAv9H,KAAKi9H,aAAe,SAAUtgG,EAAS,CACxC,GAAI38B,KAAKi9H,cACLj9H,KAAKw9H,aACDx9H,KAAKuxH,eAAe,CAKpB,MAAMkM,EAAU9gG,EAAQt8B,KAAQwlB,cAChC7lB,KAAKuxH,cAAcgH,cAAc,CAAEl4H,KAAMo9H,EAAShqG,KAAMzzB,KAAK09H,SAASD,IAC1E,CAEJz9H,KAAK29H,eACT,CACI,eAAgBhhG,GAChB38B,KAAK49H,gBAAgBjhG,GAvzBjC,SAASkhG,GAAkBlhG,EAASmhG,GAChC,IAAKnhG,EAAQ1yB,eAAe,SACxB,OAAO,EACX,MAAM2wB,EAAS+B,EAAQohG,MACvB,QAAInjG,EAAO5U,kBAEHpsB,OAAOC,GAAGikI,EAAWljG,EAAO9U,aACxC,CAkzBY+3G,CAAkBlhG,EAAS38B,KAAK89H,aAChC99H,KAAKk2H,aAAal2H,KAAK+9H,OACvB/9H,KAAK89H,UAAY99H,KAAK+9H,MAE9B,CAEAriH,cACI1b,KAAKuxH,eAAiBvxH,KAAKuxH,cAAcgH,cAAcv4H,KAC3D,CAMA,QAAIyzB,GACA,OAAOzzB,KAAK09H,SAAS19H,KAAKK,KAC9B,CAKA,iBAAIkxH,GACA,OAAOvxH,KAAK2zD,QAAU3zD,KAAK2zD,QAAQ49D,cAAgB,IACvD,CAOAyI,kBAAkBj8H,GACdiC,KAAK89H,UAAY//H,EACjBiC,KAAKwwD,OAAOj6B,KAAKx4B,EACrB,CACA4/H,gBACI39H,KAAK+3H,qBACL/3H,KAAKg+H,gBAAkBh+H,KAAKi+H,mBAAqBj+H,KAAKuxH,cAAc+G,WAAWt4H,MAC/EA,KAAKi9H,aAAc,CACvB,CACAlF,qBACQ/3H,KAAKgM,SAAoC,MAAzBhM,KAAKgM,QAAQ0oH,WAC7B10H,KAAKo3F,QAAQu9B,UAAY30H,KAAKgM,QAAQ0oH,SAE9C,CACAsJ,gBACI,OAAQh+H,KAAK2zD,YAAc3zD,KAAKgM,UAAWhM,KAAKgM,QAAQuM,WAC5D,CACA0lH,mBACI1E,GAAav5H,KAAKo3F,QAASp3F,KAAMA,KAAKw5H,sBACtCx5H,KAAKo3F,QAAQk/B,uBAAuB,CAAEf,WAAW,GACrD,CACAgI,kBACSv9H,KAAKg+H,iBACNh+H,KAAKk+H,mBAETl+H,KAAKw9H,YACT,CACAU,mBAUA,CACAV,aACQx9H,KAAKgM,SAAWhM,KAAKgM,QAAQ3L,OAC7BL,KAAKK,KAAOL,KAAKgM,QAAQ3L,MACxBL,KAAKg+H,eAGd,CACA9H,aAAa14H,GACTs/H,GAAgBvwD,KAAK,KACjBvsE,KAAKo3F,QAAQp7C,SAASx+C,EAAO,CAAEm/H,uBAAuB,IACtD38H,KAAKg9H,oBAAoBl8E,cAAa,EAE9C,CACA88E,gBAAgBjhG,GACZ,MAAMwhG,EAAgBxhG,EAAQ2uF,WAAcxlG,aAEtCwlG,EAA+B,IAAlB6S,GAAuBliD,GAAiBkiD,GAC3DrB,GAAgBvwD,KAAK,KACb++C,IAAetrH,KAAKo3F,QAAQ+K,SAC5BniG,KAAKo3F,QAAQwuB,WAEP0F,GAActrH,KAAKo3F,QAAQ+K,UACjCniG,KAAKo3F,QAAQi/B,SAEjBr2H,KAAKg9H,oBAAoBl8E,cAAa,EAE9C,CACA48E,SAASjF,GACL,OAAOz4H,KAAK2zD,QAlpCpB,SAASyqE,GAAY/9H,EAAMwD,GACvB,MAAO,IAAIA,EAAO4vB,KAAMpzB,EAC5B,CAgpC8B+9H,CAAY3F,EAAaz4H,KAAK2zD,SAAW,CAAC8kE,EACpE,QACSz4H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwFkxD,GAzhIVvkE,EAyhImCg5D,GAAgB,GAzhInDh5D,EAyhI4Fs0D,GAAa,IAzhIzGt0D,EAyhIkJu0D,GAAmB,IAzhIrKv0D,EAyhI8MuzD,GAAiB,IAzhI/NvzD,EAyhIwQ2c,GAAiB,GAzhIzR3c,EAyhIsT+gE,GAAuB,IAA8D,QACler5H,KAAKwN,UA1hIkF8qD,EAAE,CAAA7sD,KA0hIJoxH,EAAOtjH,UAAA,8DAAAK,OAAA,CAAAvZ,KAAA,OAAAirH,WAAA,4BAAAyS,MAAA,sBAAA/xH,QAAA,gCAAA6N,QAAA,CAAA22C,OAAA,iBAAA92C,SAAA,YAAAsC,SAAA,CA1hILs8C,GA0hIgQ,CAACskE,KA1hIjQtkE,QA0hI4W,EAC/c,OAjJKukE,CAAO,KA6NPwB,GAAa,MAAnB,MAAMA,SACOr+H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF0yD,EAAa,CAAqD,QACnKr+H,KAAKwN,UAzmIkF8qD,EAAE,CAAA7sD,KAymIJ4yH,EAAa9kH,UAAA,mDAAAE,UAAA,cAAgG,KAAyB,EACvO,OAHK4kH,CAAa,KA2enB,MAAMC,GAAwB,CAC1BjgH,QAASizG,GACT1uG,YAAatX,GAAW,IAAMizH,KAElC,IChpJIC,GDwqJED,GAAkB,MAAxB,MAAMA,UAA2BjN,GAK7B,aAAIkB,GACA,OAAOj2C,GAAUv8E,KAAKy+H,mBAC1B,CAEA,aAAIjM,CAAUh1H,GACVwC,KAAKy+H,mBAAmB5+G,IAAIriB,EAChC,CACAgD,YAAYguH,EAAYkF,EAAiB8F,GACrCn3H,QACArC,KAAKw5H,qBAAuBA,EAE5Bx5H,KAAKuyH,WAAah1H,GAAS,IAAMyC,KAAKy+H,sBACtCz+H,KAAKy+H,mBAAqBvuE,IAAO,GAKjClwD,KAAK+zH,oBAAsB,IAAM/zH,KAAK0+H,kBAKtC1+H,KAAKs1C,WAAa,GAKlBt1C,KAAKk7H,KAAO,KAKZl7H,KAAKw7H,SAAW,IAAItlG,GACpBl2B,KAAK6wH,eAAerC,GACpBxuH,KAAK+wH,oBAAoB2C,EAC7B,CAEAltG,YAAYmW,GACR38B,KAAK2+H,oBACDhiG,EAAQ1yB,eAAe,UACvBjK,KAAK4+H,oBACL5+H,KAAK0+H,kBACL1+H,KAAK6+H,uBACL7+H,KAAK8+H,SAAW9+H,KAAKk7H,KAE7B,CAEAx/G,cACQ1b,KAAKk7H,OACLT,GAAkBz6H,KAAKk7H,KAAMl7H,MAOzBA,KAAKk7H,KAAKnH,sBAAwB/zH,KAAK+zH,qBACvC/zH,KAAKk7H,KAAKpD,4BAA4B,QAGlD,CAKA,iBAAIvG,GACA,OAAOvxH,IACX,CAKA,WAAIo3F,GACA,OAAOp3F,KAAKk7H,IAChB,CAMA,QAAIznG,GACA,MAAO,EACX,CAQA6kG,WAAWt6C,GACP,MAAMg5C,EAAOh3H,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC/B8lG,UAAavC,EAAMh5C,EAAKh+E,KAAKw5H,sBAC7BxC,EAAKV,uBAAuB,CAAEf,WAAW,IACzCv1H,KAAKs1C,WAAWt4C,KAAKghF,GACdg5C,CACX,CAOA0E,WAAW19C,GACP,OAAOh+E,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,KAC7B,CAOA8kG,cAAcv6C,GACVu8C,GAAev8C,EAAIoZ,SAAW,KAAMpZ,GAA2C,GA5iDvF,SAAS+gD,GAAiBloH,EAAM4wB,GAC5B,MAAM1mC,EAAQ8V,EAAKnV,QAAQ+lC,GACvB1mC,GAAQ,GACR8V,EAAKhV,OAAOd,EAAO,EAC3B,CAyiDQg+H,CAAiB/+H,KAAKs1C,WAAY0oC,EACtC,CAMA29C,aAAa39C,GACTh+E,KAAKg/H,oBAAoBhhD,EAC7B,CAOA69C,gBAAgB79C,GACZh+E,KAAKi/H,sBAAsBjhD,EAC/B,CAOA89C,aAAa99C,GACT,OAAOh+E,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,KAC7B,CAMAyrG,aAAalhD,GACTh+E,KAAKg/H,oBAAoBhhD,EAC7B,CAOAmhD,gBAAgBnhD,GACZh+E,KAAKi/H,sBAAsBjhD,EAC/B,CAOAohD,aAAaphD,GACT,OAAOh+E,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,KAC7B,CAOAsoG,YAAY/9C,EAAKxgF,GACAwC,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC1BuoB,SAASx+C,EAClB,CAQAw+H,SAASvP,GACL,OAAAzsH,KAAKy+H,mBAAmB5+G,KAAI,GAC5Bo7G,GAAoBj7H,KAAKk7H,KAAMl7H,KAAKs1C,YACpCt1C,KAAKw7H,SAASjlG,KAAKk2F,GACnBzsH,KAAKk7H,KAAK/G,QAAQ50H,KAAK,IAAI6zH,GAAmBpzH,KAAKo3F,UAIjB,WAA3Bq1B,GAAQ9hH,QAAQq9E,MAC3B,CAKAi0C,UACIj8H,KAAKk8H,WACT,CAOAA,UAAU1+H,OAAQ7C,GACdqF,KAAKk7H,KAAK39F,MAAM//B,GAChBwC,KAAKy+H,mBAAmB5+G,KAAI,GAC5B7f,KAAKk7H,KAAK/G,QAAQ50H,KAAK,IAAI8zH,GAAerzH,KAAKk7H,MACnD,CAEAwD,kBACI1+H,KAAKs1C,WAAWzwC,QAASm5E,IACrB,MAAMqhD,EAAUrhD,EAAIoZ,QACdkoC,EAAUt/H,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC9B4rG,IAAYC,IAGZ/E,GAAe8E,GAAW,KAAMrhD,GAluCzBoZ,IAAYA,aAAmBklC,GAwuClCiD,CAAcD,KACd/F,GAAa+F,EAASthD,EAAKh+E,KAAKw5H,sBAChCx7C,EAAIoZ,QAAUkoC,MAI1Bt/H,KAAKk7H,KAAKnE,oBAAoB,CAAExB,WAAW,GAC/C,CACAyJ,oBAAoBhhD,GAChB,MAAMg5C,EAAOh3H,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC/BunG,GAAmBhE,EAAMh5C,GAIzBg5C,EAAKV,uBAAuB,CAAEf,WAAW,GAC7C,CACA0J,sBAAsBjhD,GAClB,GAAIh+E,KAAKk7H,KAAM,CACX,MAAMlE,EAAOh3H,KAAKk7H,KAAKjrH,IAAI+tE,EAAIvqD,MAC3BujG,GAtwDhB,SAASwI,GAAqBpoC,EAASpZ,GACnC,OAAOy8C,GAAkBrjC,EAASpZ,EACtC,CAqwDyCwhD,CAAqBxI,EAAMh5C,IAIhDg5C,EAAKV,uBAAuB,CAAEf,WAAW,GAGrD,CACJ,CACAsJ,uBACI7+H,KAAKk7H,KAAKpD,4BAA4B93H,KAAK+zH,qBACvC/zH,KAAK8+H,UACL9+H,KAAK8+H,SAAShH,4BAA4B,OAElD,CACA8G,oBACInF,GAAgBz5H,KAAKk7H,KAAMl7H,MACvBA,KAAK8+H,UACLrE,GAAkBz6H,KAAK8+H,SAAU9+H,KAEzC,CACA2+H,oBAIA,QACS3+H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF4yD,GAp4JVjmE,EAo4J8Cs0D,GAAa,IAp4J3Dt0D,EAo4JoGu0D,GAAmB,IAp4JvHv0D,EAo4JgK+gE,GAAuB,IAA8D,QAC5Ur5H,KAAKwN,UAr4JkF8qD,EAAE,CAAA7sD,KAq4JJ8yH,EAAkBhlH,UAAA,sBAAAsC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAr4JhBskB,GAAE,kBAAAm0D,GAAA,OAq4JJr5D,EAAA4oE,SAAAvP,EAAgB,EAr4Jdn0D,CAq4JgB,0BAAlBlF,EAAA6oE,SAAS,EAAS,EAAAriH,OAAA,CAAAshH,KAAA,wBAAArhH,QAAA,CAAA2hH,SAAA,YAAA9hH,SAAA,WAAAsC,SAAA,CAr4JhBs8C,GAq4J+M,CAACgmE,KAr4JhNhmE,QAq4J2T,EAC9Z,OAxRKimE,CAAkB,KAwrDlBkB,GAA0B,MAAhC,MAAMA,SACOz/H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF8zD,EAA0B,CAAoD,QAC/Kz/H,KAAK4N,UAxyMkF0qD,GAAE,CAAA7sD,KAwyMSg0H,GAsCjF,QACjBz/H,KAAK4M,UA/0MkF0rD,GAAE,GA+0MwC,EAC7I,OA1CKmnE,CAA0B,KAgwB1BC,GAAW,MAAjB,MAAMA,EASF,iBAAOjV,CAAW7+G,GACd,MAAO,CACH6R,SAAUiiH,EACVzzH,UAAW,CACP,CACIoS,QAASg7G,GACT96G,SAAU3S,EAAK4tH,sBAAwBF,KAIvD,QACSt5H,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAAwF+zD,EAAW,CAAoD,QAChK1/H,KAAK4N,UA3jOkF0qD,GAAE,CAAA7sD,KA2jOSi0H,GAAqI,QACvO1/H,KAAK4M,UA5jOkF0rD,GAAE,CAAApsD,QAAA,CA4jOgCuzH,KAAgC,EACrK,OAvBKC,CAAW,KC1lOjB,IACIlB,UAA4BmB,KAAS,KAAeA,KAAKC,eAC7D,OAEIpB,IAAqB,CACzB,CACA,IAwEIqB,GApEEC,GAAQ,MAAd,MAAMA,EACFt/H,YAAYu/H,GACR//H,KAAK+/H,YAAcA,EAKnB//H,KAAKggI,UAAYhgI,KAAK+/H,YhC6jK9B,SAASx0F,GAAkB+1C,GACvB,OAAOA,IAAeH,EAC1B,CgC9jKc51C,CAAkBvrC,KAAK+/H,aACH,iBAAbrgG,YAA2BA,SAExC1/B,KAAKigI,KAAOjgI,KAAKggI,WAAa,UAAU5T,KAAKr8B,UAAUC,WAEvDhwF,KAAKkgI,QAAUlgI,KAAKggI,WAAa,kBAAkB5T,KAAKr8B,UAAUC,WAGlEhwF,KAAKmgI,MAAQngI,KAAKggI,cACXr6F,OAAOy6F,SAAU5B,YACb6B,IAAQ,MACdrgI,KAAKigI,OACLjgI,KAAKkgI,QAIVlgI,KAAKsgI,OAAStgI,KAAKggI,WACf,eAAe5T,KAAKr8B,UAAUC,aAC7BhwF,KAAKmgI,QACLngI,KAAKigI,OACLjgI,KAAKkgI,QAEVlgI,KAAKugI,IAAMvgI,KAAKggI,WAAa,mBAAmB5T,KAAKr8B,UAAUC,cAAgB,aAAcrqD,QAM7F3lC,KAAKwgI,QAAUxgI,KAAKggI,WAAa,uBAAuB5T,KAAKr8B,UAAUC,WAGvEhwF,KAAKygI,QAAUzgI,KAAKggI,WAAa,WAAW5T,KAAKr8B,UAAUC,aAAehwF,KAAKkgI,QAK/ElgI,KAAK0gI,OAAS1gI,KAAKggI,WAAa,UAAU5T,KAAKr8B,UAAUC,YAAchwF,KAAKsgI,MAChF,QACStgI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fm0D,GAAVxnE,EAAoCx4B,IAAW,CAA+C,QAC5L9/B,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACYi1H,EAAQh0H,QAARg0H,EAAQhyH,UAAAjC,WAAc,QAAW,EACzJ,OAhDKi0H,CAAQ,KAsEd,MAAMa,GAAsB,CAKxB,QACA,SACA,WACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA,QAGJ,SAASC,KAEL,GAAIf,GACA,OAAOA,GAKX,GAAwB,iBAAbngG,WAA0BA,SACjCmgG,UAAsB,IAAI7iH,IAAI2jH,IACvBd,GAEX,IAAIgB,EAAmBnhG,SAAS0G,cAAc,SAC9Cy5F,UAAsB,IAAI7iH,IAAI2jH,GAAoBx5H,OAAO3J,IACrDqjI,EAAiB1sH,aAAa,OAAQ3W,GAC/BqjI,EAAiBp1H,OAASjO,KAE9BqiI,EACX,CAGA,IAAIiB,GA6HAC,GArGJ,SAASC,GAAgCh1H,GACrC,OApBJ,SAASi1H,KACL,GAA6B,MAAzBH,WAAwCn7F,OAAW,IACnD,IACIA,OAAOkpD,iBAAiB,OAAQ,KAAMj1F,OAAOsQ,eAAe,CAAC,EAAG,UAAW,CACvE+F,IAAKA,IAAO6wH,IAAwB,IAE5C,SAEIA,GAAwBA,KAAyB,CACrD,CAEJ,OAAOA,EACX,CAQWG,GAAkCj1H,IAAYA,EAAQk1H,OACjE,CA4IA,SAASC,GAAgBh6G,GAGrB,OAAQA,EAAMi6G,aAAej6G,EAAMi6G,eAAe,GAAKj6G,EAAMxc,MACjE,CCvTO,MAAM02H,WAAe9gI,GACxBC,YAAYiH,EAAW65H,GACnBj/H,OACJ,CACAsF,SAAS+1F,EAAOM,EAAQ,GACpB,OAAOh+F,IACX,ECNG,MAAMuhI,WAAoBF,GAC7B7gI,YAAYiH,EAAW65H,GACnBj/H,MAAMoF,EAAW65H,GACjBthI,KAAKyH,UAAYA,EACjBzH,KAAKshI,KAAOA,EACZthI,KAAK8qE,SAAU,CACnB,CACAnjE,SAAS+1F,EAAOM,EAAQ,GACpB,GAAIh+F,KAAKV,OACL,OAAOU,KAEXA,KAAK09F,MAAQA,EACb,MAAM1kF,EAAKhZ,KAAKgZ,GACVvR,EAAYzH,KAAKyH,UACvB,OAAU,MAANuR,IACAhZ,KAAKgZ,GAAKhZ,KAAKwhI,eAAe/5H,EAAWuR,EAAIglF,IAEjDh+F,KAAK8qE,SAAU,EACf9qE,KAAKg+F,MAAQA,EACbh+F,KAAKgZ,GAAKhZ,KAAKgZ,IAAMhZ,KAAKyhI,eAAeh6H,EAAWzH,KAAKgZ,GAAIglF,GACtDh+F,IACX,CACAyhI,eAAeh6H,EAAWuR,EAAIglF,EAAQ,GAClC,OAAO0jC,YAAYj6H,EAAUm3C,MAAMr7C,KAAKkE,EAAWzH,MAAOg+F,EAC9D,CACAwjC,eAAe/5H,EAAWuR,EAAIglF,EAAQ,GAClC,GAAc,OAAVA,GAAkBh+F,KAAKg+F,QAAUA,IAA0B,IAAjBh+F,KAAK8qE,QAC/C,OAAO9xD,EAEX2oH,cAAc3oH,EAElB,CACAu9C,QAAQmnC,EAAOM,GACX,GAAIh+F,KAAKV,OACL,OAAO,IAAI7D,MAAM,gCAErBuE,KAAK8qE,SAAU,EACf,MAAMptE,EAAQsC,KAAK4hI,SAASlkC,EAAOM,GACnC,GAAItgG,EACA,OAAOA,GAEe,IAAjBsC,KAAK8qE,SAAgC,MAAX9qE,KAAKgZ,KACpChZ,KAAKgZ,GAAKhZ,KAAKwhI,eAAexhI,KAAKyH,UAAWzH,KAAKgZ,GAAI,MAE/D,CACA4oH,SAASlkC,EAAOM,GACZ,IACI6jC,EADAC,GAAU,EAEd,IACI9hI,KAAKshI,KAAK5jC,EACd,OACO18F,GACH8gI,GAAU,EACVD,IAAe7gI,GAAKA,GAAK,IAAIvF,MAAMuF,EACvC,CACA,GAAI8gI,EACA,OAAA9hI,KAAKS,cACEohI,CAEf,CACAhhI,eACI,MAAMmY,EAAKhZ,KAAKgZ,GACVvR,EAAYzH,KAAKyH,UACjBs6H,EAAUt6H,EAAUs6H,QACpBhhI,EAAQghI,EAAQrgI,QAAQ1B,MAC9BA,KAAKshI,KAAO,KACZthI,KAAK09F,MAAQ,KACb19F,KAAK8qE,SAAU,EACf9qE,KAAKyH,UAAY,MACH,IAAV1G,GACAghI,EAAQlgI,OAAOd,EAAO,GAEhB,MAANiY,IACAhZ,KAAKgZ,GAAKhZ,KAAKwhI,eAAe/5H,EAAWuR,EAAI,OAEjDhZ,KAAKg+F,MAAQ,IACjB,EC7EG,IAAMgkC,GAAS,MAAf,MAAMA,EACTxhI,YAAYyhI,EAAiBC,EAAMF,EAAUE,KACzCliI,KAAKiiI,gBAAkBA,EACvBjiI,KAAKkiI,IAAMA,CACf,CACAv6H,SAAS25H,EAAMtjC,EAAQ,EAAGN,GACtB,OAAO,IAAI19F,KAAKiiI,gBAAgBjiI,KAAMshI,GAAM35H,SAAS+1F,EAAOM,EAChE,EAEJgkC,SAAUE,IAAM,IAAMC,KAAKD,MATdF,CAAS,KCCf,MAAMI,WAAuBJ,GAChCxhI,YAAYyhI,EAAiBC,EAAMF,GAAUE,KACzC7/H,MAAM4/H,EAAiB,IACfG,GAAevoG,UAAYuoG,GAAevoG,WAAa75B,KAChDoiI,GAAevoG,SAASqoG,MAGxBA,KAGfliI,KAAK+hI,QAAU,GACf/hI,KAAK6jF,QAAS,EACd7jF,KAAKuiF,eAAY5nF,CACrB,CACAgN,SAAS25H,EAAMtjC,EAAQ,EAAGN,GACtB,OAAI0kC,GAAevoG,UAAYuoG,GAAevoG,WAAa75B,KAChDoiI,GAAevoG,SAASlyB,SAAS25H,EAAMtjC,EAAON,GAG9Cr7F,MAAMsF,SAAS25H,EAAMtjC,EAAON,EAE3C,CACA9+C,MAAM7S,GACF,MAAQg2F,WAAY/hI,KACpB,GAAIA,KAAK6jF,OAEL,YADAk+C,EAAQ/kI,KAAK+uC,GAGjB,IAAIruC,EACJsC,KAAK6jF,QAAS,EACd,MACQnmF,EAAQquC,EAAOwqB,QAAQxqB,EAAO2xD,MAAO3xD,EAAOiyD,OAC5C,YAECjyD,EAASg2F,EAAQ7vH,SAE1B,GADAlS,KAAK6jF,QAAS,EACVnmF,EAAO,CACP,KAAOquC,EAASg2F,EAAQ7vH,SACpB65B,EAAOtrC,cAEX,MAAM/C,CACV,CACJ,ECxCG,MAAMoiF,GADiB,IAAIsiD,GAAeb,ICGjD,MAAMc,GACF7hI,YAAY8hI,EAAS76H,GACjBzH,KAAKsiI,QAAUA,EACftiI,KAAKyH,UAAYA,CACrB,CACA1H,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIs+H,GAAuBx/H,EAAY/C,KAAKsiI,QAAStiI,KAAKyH,WACtF,EAEJ,MAAM86H,WAA+BpgI,GACjC3B,YAAYmC,EAAa2/H,EAAS76H,GAC9BpF,MAAMM,GACN3C,KAAKsiI,QAAUA,EACftiI,KAAKyH,UAAYA,EACjBzH,KAAKwiI,sBAAwB,KAC7BxiI,KAAKyiI,UAAY,KACjBziI,KAAKyI,UAAW,CACpB,CACAzF,MAAMxF,GACFwC,KAAK0iI,gBACL1iI,KAAKyiI,UAAYjlI,EACjBwC,KAAKyI,UAAW,EAChBzI,KAAKqB,IAAIrB,KAAKwiI,sBAAwBxiI,KAAKyH,UAAUE,SAASg7H,GAAc3iI,KAAKsiI,QAAStiI,MAC9F,CACAkD,YACIlD,KAAK4iI,gBACL5iI,KAAK2C,YAAYnD,UACrB,CACAojI,gBAEI,GADA5iI,KAAK0iI,gBACD1iI,KAAKyI,SAAU,CACf,MAAQg6H,aAAcziI,KACtBA,KAAKyiI,UAAY,KACjBziI,KAAKyI,UAAW,EAChBzI,KAAK2C,YAAYpD,KAAKkjI,EAC1B,CACJ,CACAC,gBACI,MAAMF,EAAwBxiI,KAAKwiI,sBACL,OAA1BA,IACAxiI,KAAKc,OAAO0hI,GACZA,EAAsB/hI,cACtBT,KAAKwiI,sBAAwB,KAErC,EAEJ,SAASG,GAAa5/H,GAClBA,EAAW6/H,eACf,CCpDO,SAAS1+E,GAAKn9C,GACjB,OAAQzC,GAAWA,EAAOF,KAAK,IAAIy+H,GAAa97H,GACpD,CACA,MAAM87H,GACFriI,YAAYsH,GACR9H,KAAK8H,MAAQA,CACjB,CACA/H,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAI6+H,GAAe//H,EAAY/C,KAAK8H,OAChE,EAEJ,MAAMg7H,WAAuB3gI,GACzB3B,YAAYmC,EAAamF,GACrBzF,MAAMM,GACN3C,KAAK8H,MAAQA,EACb9H,KAAK+G,MAAQ,CACjB,CACA/D,MAAMtE,KACIsB,KAAK+G,MAAQ/G,KAAK8H,OACpB9H,KAAK2C,YAAYpD,KAAKb,EAE9B,EClBJ,MAAMqkI,GACFviI,YAAYwiI,EAASC,GACjBjjI,KAAKgjI,QAAUA,EACfhjI,KAAKijI,YAAcA,CACvB,CACAljI,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIi/H,GAA+BngI,EAAY/C,KAAKgjI,QAAShjI,KAAKijI,aAC9F,EAEJ,MAAMC,WAAuC/gI,GACzC3B,YAAYmC,EAAaqgI,EAASC,GAC9B5gI,MAAMM,GACN3C,KAAKijI,YAAcA,EACnBjjI,KAAK+gC,QAAS,EACS,mBAAZiiG,IACPhjI,KAAKgjI,QAAUA,EAEvB,CACAA,QAAQtkI,EAAGykI,GACP,OAAOzkI,IAAMykI,CACjB,CACAngI,MAAMxF,GACF,IAAIiN,EACJ,IACI,MAAQw4H,eAAgBjjI,KACxByK,EAAMw4H,EAAcA,EAAYzlI,GAASA,CAC7C,OACOQ,GACH,OAAOgC,KAAK2C,YAAYjF,MAAMM,EAClC,CACA,IAAIgJ,GAAS,EACb,GAAIhH,KAAK+gC,OACL,IACI,MAAQiiG,WAAYhjI,KACpBgH,EAASg8H,EAAQhjI,KAAKyK,IAAKA,EAC/B,OACOzM,GACH,OAAOgC,KAAK2C,YAAYjF,MAAMM,EAClC,MAGAgC,KAAK+gC,QAAS,EAEb/5B,IACDhH,KAAKyK,IAAMA,EACXzK,KAAK2C,YAAYpD,KAAK/B,GAE9B,EClDG,SAAS4lI,GAAUC,GACtB,OAAQ/+H,GAAWA,EAAOF,KAAK,IAAIk/H,GAAkBD,GACzD,CACA,MAAMC,GACF9iI,YAAY6iI,GACRrjI,KAAKqjI,SAAWA,CACpB,CACAtjI,KAAKgD,EAAYuB,GACb,MAAMi/H,EAAsB,IAAIC,GAAoBzgI,GAC9C0gI,EAAuBtgD,GAAenjF,KAAKqjI,SAAU,IAAIxgD,GAAsB0gD,IACrF,OAAIE,IAAyBF,EAAoBG,WAC7CH,EAAoBliI,IAAIoiI,GACjBn/H,EAAOL,UAAUs/H,IAErBA,CACX,EAEJ,MAAMC,WAA4BvgD,GAC9BziF,YAAYmC,GACRN,MAAMM,GACN3C,KAAK0jI,WAAY,CACrB,CACA5gD,aACI9iF,KAAK0jI,WAAY,EACjB1jI,KAAKR,UACT,CACAwjF,iBACA,ECzBJ,SAAS2gD,GAAsBnmI,GAC3B,OAAgB,MAATA,GAAgC,SAAf,GAAGA,GAC/B,CAmBA,SAASomI,GAAYpmI,GACjB,OAAOkC,MAAMD,QAAQjC,GAASA,EAAQ,CAACA,EAC3C,CAcA,SAASqmI,GAAcC,GACnB,OAAOA,aAAwB1nG,GAAa0nG,EAAaznG,cAAgBynG,CAC7E,CCzCO,MAAMC,WAAwB5hI,GACjC2gF,WAAWkhD,EAAY9gD,EAAY+gD,EAAYC,EAAYC,GACvDnkI,KAAK2C,YAAYpD,KAAK2jF,EAC1B,CACAH,YAAYrlF,EAAOymI,GACfnkI,KAAK2C,YAAYjF,MAAMA,EAC3B,CACAslF,eAAemhD,GACXnkI,KAAK2C,YAAYnD,UACrB,ECTG,MAAM4kI,WAAwBjiI,GACjC3B,YAAYqD,EAAQmgI,EAAYC,GAC5B5hI,QACArC,KAAK6D,OAASA,EACd7D,KAAKgkI,WAAaA,EAClBhkI,KAAKikI,WAAaA,EAClBjkI,KAAKe,MAAQ,CACjB,CACAiC,MAAMxF,GACFwC,KAAK6D,OAAOi/E,WAAW9iF,KAAKgkI,WAAYxmI,EAAOwC,KAAKikI,WAAYjkI,KAAKe,QAASf,KAClF,CACAiD,OAAOvF,GACHsC,KAAK6D,OAAOk/E,YAAYrlF,EAAOsC,MAC/BA,KAAKS,aACT,CACAyC,YACIlD,KAAK6D,OAAOm/E,eAAehjF,MAC3BA,KAAKS,aACT,EChBG,SAAS4jI,GAAkBC,EAAiBt9H,EAAQg9H,EAAYC,EAAY7gD,EAAkB,IAAIghD,GAAgBE,EAAiBN,EAAYC,IAClJ,IAAI7gD,EAAgB9jF,OAGpB,OAAI0H,aAAkBhD,GACXgD,EAAO/C,UAAUm/E,GAErBtB,GAAY96E,EAAZ86E,CAAoBsB,EAC/B,CCNA,MAAM94C,GAAO,CAAC,EAeP,MAAMi6F,GACT/jI,YAAY8iF,GACRtjF,KAAKsjF,eAAiBA,CAC1B,CACAvjF,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIugI,GAAwBzhI,EAAY/C,KAAKsjF,gBACzE,EAEG,MAAMkhD,WAAgCT,GACzCvjI,YAAYmC,EAAa2gF,GACrBjhF,MAAMM,GACN3C,KAAKsjF,eAAiBA,EACtBtjF,KAAK6jF,OAAS,EACd7jF,KAAKuJ,OAAS,GACdvJ,KAAKykI,YAAc,EACvB,CACAzhI,MAAMc,GACF9D,KAAKuJ,OAAOvM,KAAKstC,IACjBtqC,KAAKykI,YAAYznI,KAAK8G,EAC1B,CACAZ,YACI,MAAMuhI,EAAczkI,KAAKykI,YACnBvjI,EAAMujI,EAAY7oI,OACxB,GAAY,IAARsF,EACAlB,KAAK2C,YAAYnD,eAEhB,CACDQ,KAAK6jF,OAAS3iF,EACdlB,KAAK0kI,UAAYxjI,EACjB,QAAS1E,EAAI,EAAGA,EAAI0E,EAAK1E,IAErBwD,KAAKqB,IAAIgjI,GAAkBrkI,KADRykI,EAAYjoI,QACc7B,EAAW6B,GAEhE,CACJ,CACAwmF,eAAe2hD,GACgB,IAAtB3kI,KAAK6jF,QAAU,IAChB7jF,KAAK2C,YAAYnD,UAEzB,CACAsjF,WAAW8hD,EAAa1hD,EAAY+gD,GAChC,MAAM16H,EAASvJ,KAAKuJ,OAEdm7H,EAAa1kI,KAAK0kI,UADTn7H,EAAO06H,KAGL35F,KAAStqC,KAAK0kI,UAAY1kI,KAAK0kI,UAD1C,EAENn7H,EAAO06H,GAAc/gD,EACH,IAAdwhD,IACI1kI,KAAKsjF,eACLtjF,KAAK6kI,mBAAmBt7H,GAGxBvJ,KAAK2C,YAAYpD,KAAKgK,EAAOlD,SAGzC,CACAw+H,mBAAmBt7H,GACf,IAAIvC,EACJ,IACIA,EAAShH,KAAKsjF,eAAe55E,MAAM1J,KAAMuJ,EAC7C,OACOvL,GAEH,YADAgC,KAAK2C,YAAYjF,MAAMM,EAE3B,CACAgC,KAAK2C,YAAYpD,KAAKyH,EAC1B,ECpFG,SAAS89H,GAASvhD,EAAa1lD,OAAOC,mBACzC,OAAOulD,GAASt/E,GAAUw/E,EAC9B,CCFO,SAASniF,MAAUqjI,GACtB,OCFG,SAASM,KACZ,OAAOD,GAAS,EACpB,CDAWC,GAAYpjD,MAAM8iD,GAC7B,CEFO,SAASO,MAAapzH,GACzB,MAAMnK,EAAYmK,EAAMA,EAAMhW,OAAS,GACvC,OAAI2lF,GAAY95E,IACZmK,EAAMnV,MACE6H,GAAWlD,GAAOwQ,EAAOtN,EAAQmD,IAGjCnD,GAAWlD,GAAOwQ,EAAOtN,EAEzC,CCOA,MAAM2gI,GAAqC,IAAIjoH,IAE/C,IAAIkoH,GAEEC,GAAY,MAAlB,MAAMA,EACF3kI,YAAY4kI,EAAWC,GACnBrlI,KAAKolI,UAAYA,EACjBplI,KAAKqlI,OAASA,EACdrlI,KAAKslI,YACDtlI,KAAKolI,UAAUpF,WAAar6F,OAAO4/F,WAG3B5/F,OAAO4/F,WAAWhiI,KAAKoiC,QACzB6/F,EACd,CAOAD,WAAWliC,GACP,OAAIrjG,KAAKolI,UAAU9E,QAAUtgI,KAAKolI,UAAUjF,QA0BpD,SAASsF,GAAqBpiC,EAAO3R,GACjC,IAAIuzC,GAAmChnH,IAAIolF,GAG3C,IACS6hC,KACDA,GAAsBxlG,SAAS0G,cAAc,SACzCsrD,GACAwzC,GAAoB/wH,aAAa,QAASu9E,GAE9CwzC,GAAoB/wH,aAAa,OAAQ,YACzCurB,SAAS+qD,KAAKr7C,YAAY81F,KAE1BA,GAAoBQ,QACpBR,GAAoBQ,MAAMC,WAAW,UAAUtiC,cAAmB,GAClE4hC,GAAmC5jI,IAAIgiG,GAE/C,OACOriG,GACHjC,QAAQrB,MAAMsD,EAClB,CACJ,CA9CYykI,CAAqBpiC,EAAOrjG,KAAKqlI,QAE9BrlI,KAAKslI,YAAYjiC,EAC5B,QACSrjG,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fw5D,GArCV7sE,EAqCwCuxD,IArCxCvxD,EAqCgEt4B,GAAS,IAA+D,QACtOhgC,KAAK2M,WAtCyF2rD,EAAE,CAAAztD,MAsCYs6H,EAAYr5H,QAAZq5H,EAAYr3H,UAAAjC,WAAc,QAAW,EAC7J,OAzBKs5H,CAAY,KAmElB,SAASK,GAAeniC,GAGpB,MAAO,CACHxqD,QAAmB,QAAVwqD,GAA6B,KAAVA,EAC5BuiC,MAAOviC,EACPwiC,YAAaA,OACbC,eAAgBA,OAExB,CAEA,IACMC,GAAkB,MAAxB,MAAMA,EACFvlI,YAAYwlI,EAAej1C,GACvB/wF,KAAKgmI,cAAgBA,EACrBhmI,KAAK+wF,MAAQA,EAEb/wF,KAAKimI,SAAW,IAAIzmH,IAEpBxf,KAAKkmI,gBAAkB,IAAIlgI,EAC/B,CAEA0V,cACI1b,KAAKkmI,gBAAgB3mI,OACrBS,KAAKkmI,gBAAgB1mI,UACzB,CAMA2mI,UAAU3oI,GAEN,OADgB4oI,GAAaxC,GAAYpmI,IAC1B6/B,KAAKgpG,GAAcrmI,KAAKsmI,eAAeD,GAAYE,IAAI1tF,QAC1E,CAOAmxC,QAAQxsF,GAGJ,IAAIgpI,EL/HL,SAASC,MAAiBhC,GAC7B,IAAInhD,EACA77E,EACJ,OAAI85E,GAAYkjD,EAAYA,EAAY7oI,OAAS,MAC7C6L,EAAYg9H,EAAYhoI,OAEuB,mBAAxCgoI,EAAYA,EAAY7oI,OAAS,KACxC0nF,EAAiBmhD,EAAYhoI,OAEN,IAAvBgoI,EAAY7oI,QAAgB6D,GAAQglI,EAAY,MAChDA,EAAcA,EAAY,IAEvB/iD,GAAU+iD,EAAah9H,GAAWrD,KAAK,IAAImgI,GAAsBjhD,GAC5E,CKkH8BmjD,CAFNL,GAAaxC,GAAYpmI,IACb0C,IAAImjG,GAASrjG,KAAKsmI,eAAejjC,GAAOv/F,aAGpE0iI,SAAkBplI,GAAOolI,EAAgBrhI,KAAKyC,GAAK,IAAK4+H,EAAgBrhI,KAAK++C,GAAK,GbrInF,SAASwiF,GAAapE,EAAS76H,EAAYq4E,IAC9C,OAAQx7E,GAAWA,EAAOF,KAAK,IAAIi+H,GAAqBC,EAAS76H,GACrE,CamI8Fi/H,CAAa,KAC5FF,EAAgBrhI,KAAKjF,GAAIymI,IAC5B,MAAM95C,EAAW,CACbh0C,SAAS,EACT+tF,YAAa,CAAC,GAElBD,SAAiB9hI,QAAQ,EAAGg0C,UAASwqD,YACjCxW,EAASh0C,QAAUg0C,EAASh0C,SAAWA,EACvCg0C,EAAS+5C,YAAYvjC,GAASxqD,IAE3Bg0C,IAEf,CAEAy5C,eAAejjC,GAEX,GAAIrjG,KAAKimI,SAAShoH,IAAIolF,GAClB,OAAOrjG,KAAKimI,SAASh2H,IAAIozF,GAE7B,MAAMkjC,EAAMvmI,KAAKgmI,cAAcT,WAAWliC,GAepCwjC,EAAS,CAAE/iI,WAbO,IAAIE,GAAYY,IAMpC,MAAMslF,EAAWlpF,GAAMhB,KAAK+wF,MAAMx3D,IAAI,IAAM30B,EAASrF,KAAKyB,IAC1DulI,SAAIV,YAAY37C,GACT,KACHq8C,EAAIT,eAAe57C,EAAO,CAC9B,GACD/kF,KAAK6/H,GAAUuB,GAAMrmI,GAAI,EAAG24C,cAAQ,CAASwqD,QAAOxqD,aAAauqF,GAAUpjI,KAAKkmI,kBAErCK,OAC9C,OAAAvmI,KAAKimI,SAASpmH,IAAIwjF,EAAOwjC,GAClBA,CACX,QACS7mI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fo6D,GArKVztE,EAqK8C6sE,IArK9C7sE,EAqKuEA,GAAS,CAA+C,QAC7Nt4D,KAAK2M,WAtKyF2rD,EAAE,CAAAztD,MAsKYk7H,EAAkBj6H,QAAlBi6H,EAAkBj4H,UAAAjC,WAAc,QAAW,EACnK,OA1EKk6H,CAAkB,KAmFxB,SAASK,GAAaxwF,GAClB,OAAOA,EACF11C,IAAImjG,GAASA,EAAM9gE,MAAM,MACzBzgC,OAAO,CAACglI,EAAIC,IAAOD,EAAG1lI,OAAO2lI,IAC7B7mI,IAAImjG,GAASA,EAAMlsF,OAC5B,CCouDA,SAAS6vH,GAAgC7/G,GAMrC,OAAyB,IAAlBA,EAAM8/G,SAAkC,IAAjB9/G,EAAM8oC,MACxC,CAEA,SAASi3E,GAAiC//G,GACtC,MAAMggH,EAAShgH,EAAMigH,SAAWjgH,EAAMigH,QAAQ,IAAQjgH,EAAMkgH,gBAAkBlgH,EAAMkgH,eAAe,GAKnG,SAAUF,IACe,IAArBA,EAAMG,YACY,MAAjBH,EAAMI,SAAqC,IAAlBJ,EAAMI,SACd,MAAjBJ,EAAMK,SAAqC,IAAlBL,EAAMK,QACxC,CAMA,MAAMC,GAAkC,IAAI16H,EAAe,uCAiBrD26H,GAA0C,CAC5CC,WAAY,CCr8DJ,GADI,GAgHC,IAtDJ,GA3DC,KDq9DRC,GAA+B5G,GAAgC,CACjE6G,SAAS,EACT3G,SAAS,IAEb,IAcM4G,GAAqB,MAA3B,MAAMA,EAEF,sBAAIC,GACA,OAAO/nI,KAAKgoI,UAAUxqI,KAC1B,CACAgD,YAAY4kI,EAAW3uE,EAAQ/2B,EAAU1zB,GACrChM,KAAKolI,UAAYA,EAKjBplI,KAAKioI,kBAAoB,KAEzBjoI,KAAKgoI,UAAY,IAAIzhI,GAAgB,MAKrCvG,KAAKkoI,aAAe,EAKpBloI,KAAKmoI,WAAchhH,IAGXnnB,KAAKooI,UAAUT,YAAYtqG,KAAKgrG,GAAWA,IAAYlhH,EAAMkhH,WAGjEroI,KAAKgoI,UAAUzoI,KAAK,YACpBS,KAAKioI,kBAAoB9G,GAAgBh6G,GAAK,EAMlDnnB,KAAKsoI,aAAgBnhH,IAIbg7G,KAAKD,MAAQliI,KAAKkoI,aA/DV,MAoEZloI,KAAKgoI,UAAUzoI,KAAKynI,GAAgC7/G,GAAS,WAAa,SAC1EnnB,KAAKioI,kBAAoB9G,GAAgBh6G,GAAK,EAMlDnnB,KAAKuoI,cAAiBphH,IAGd+/G,GAAiC//G,GACjCnnB,KAAKgoI,UAAUzoI,KAAK,aAKxBS,KAAKkoI,aAAe/F,KAAKD,MACzBliI,KAAKgoI,UAAUzoI,KAAK,SACpBS,KAAKioI,kBAAoB9G,GAAgBh6G,GAAK,EAElDnnB,KAAKooI,SAAW,IACTV,MACA17H,GAGPhM,KAAKwoI,iBAAmBxoI,KAAKgoI,UAAU7iI,KAAK++C,GAAK,IACjDlkD,KAAKyoI,gBAAkBzoI,KAAKwoI,iBAAiBrjI,KZljE9C,SAASujI,GAAqB1F,EAASC,GAC1C,OAAQ3+H,GAAWA,EAAOF,KAAK,IAAI2+H,GAA6BC,EAASC,GAC7E,CYgjE0DyF,IAG9CtD,EAAUpF,WACVvpE,EAAOv7B,kBAAkB,KACrBwE,EAASmvD,iBAAiB,UAAW7uF,KAAKmoI,WAAYP,IACtDloG,EAASmvD,iBAAiB,YAAa7uF,KAAKsoI,aAAcV,IAC1DloG,EAASmvD,iBAAiB,aAAc7uF,KAAKuoI,cAAeX,GAA4B,EAGpG,CACAlsH,cACI1b,KAAKgoI,UAAUxoI,WACXQ,KAAKolI,UAAUpF,YACftgG,SAASovD,oBAAoB,UAAW9uF,KAAKmoI,WAAYP,IACzDloG,SAASovD,oBAAoB,YAAa9uF,KAAKsoI,aAAcV,IAC7DloG,SAASovD,oBAAoB,aAAc9uF,KAAKuoI,cAAeX,IAEvE,QACS5nI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fm8D,GA10DVxvE,EA00DiDuxD,IA10DjDvxD,EA00DyEA,GA10DzEA,EA00D+F94B,IA10D/F84B,EA00DoHmvE,GAA+B,IAA+D,QAChTznI,KAAK2M,WA30DyF2rD,EAAE,CAAAztD,MA20DYi9H,EAAqBh8H,QAArBg8H,EAAqBh6H,UAAAjC,WAAc,QAAW,EACtK,OA5FKi8H,CAAqB,KA2T3B,IAAIa,GACH,SAAUA,GAMPA,SAA0BA,EAA0BC,UAAe,GAAK,YAKxED,EAA0BA,EAA0BE,SAAc,GAAK,WAXhEF,CAYX,CAZC,CAYEA,IAA0D,CAAC,GAE9D,MAAMG,GAAgC,IAAI/7H,EAAe,qCAKnDg8H,GAA8B/H,GAAgC,CAChE6G,SAAS,EACT3G,SAAS,IAEb,IACM8H,GAAY,MAAlB,MAAMA,EACFxoI,YAAY4pE,EAASg7D,EAAW6D,EAEhCvpG,EAAU1zB,GACNhM,KAAKoqE,QAAUA,EACfpqE,KAAKolI,UAAYA,EACjBplI,KAAKipI,uBAAyBA,EAE9BjpI,KAAKkpI,QAAU,KAEflpI,KAAKmpI,gBAAiB,EAKtBnpI,KAAKopI,6BAA8B,EAEnCppI,KAAKqpI,aAAe,IAAI7pH,IAExBxf,KAAKspI,uBAAyB,EAO9BtpI,KAAKupI,4BAA8B,IAAI/pH,IAKvCxf,KAAKwpI,qBAAuB,KAGxBxpI,KAAKmpI,gBAAiB,EACtBnpI,KAAKypI,sBAAwB9jG,OAAOvmC,WAAW,IAAOY,KAAKmpI,gBAAiB,EAAM,EAGtFnpI,KAAK0pI,2BAA6B,IAAI1jI,GAKtChG,KAAK2pI,8BAAiCxiH,IAGlC,QAASmhB,EAFM64F,GAAgBh6G,GAEJmhB,EAASA,EAAUA,EAAQmxD,cAC/B,UAAftyE,EAAM1b,KACNzL,KAAK4pI,SAASziH,EAAOmhB,GAGrBtoC,KAAK6pI,QAAQ1iH,EAAOmhB,EAAO,EAIvCtoC,KAAK04F,UAAYh5D,EACjB1/B,KAAK8pI,eAAiB99H,GAAS+9H,eAAiBpB,GAA0BC,SAC9E,CACAoB,QAAQ1hG,EAAS2hG,GAAgB,GAC7B,MAAM5tG,EAAgBwnG,GAAcv7F,GAEpC,IAAKtoC,KAAKolI,UAAUpF,WAAwC,IAA3B3jG,EAAcuL,SAE3C,OAAO+5C,KAKX,MAAMuoD,EpB/mEd,SAASC,GAAe7hG,GACpB,GATJ,SAAS8hG,KACL,GAA4B,MAAxBrJ,GAA8B,CAC9B,MAAMt2C,SAAc/qD,SAAa,IAAcA,SAAS+qD,KAAO,KAC/Ds2C,MAA0Bt2C,IAASA,EAAK4/C,mBAAoB5/C,EAAKqL,aACrE,CACA,OAAOirC,EACX,CAGQqJ,GAAsB,CACtB,MAAMF,EAAW5hG,EAAQgiG,YAAchiG,EAAQgiG,cAAgB,KAG/D,UAAWC,WAAe,KAAeA,YAAcL,aAAoBK,WACvE,OAAOL,CAEf,CACA,OAAO,IACX,CoBqmEyBC,CAAe9tG,IAAkBr8B,KAAKwqI,eACjDC,EAAazqI,KAAKqpI,aAAap5H,IAAIosB,GAEzC,GAAIouG,EACA,OAAIR,IAIAQ,EAAWR,eAAgB,GAExBQ,EAAW7kI,QAGtB,MAAM8kI,EAAO,CACTT,cAAeA,EACfrkI,QAAS,IAAII,GACbkkI,YAEJ,OAAAlqI,KAAKqpI,aAAaxpH,IAAIwc,EAAequG,GACrC1qI,KAAK2qI,yBAAyBD,GACvBA,EAAK9kI,OAChB,CACAglI,eAAetiG,GACX,MAAMjM,EAAgBwnG,GAAcv7F,GAC9BuiG,EAAc7qI,KAAKqpI,aAAap5H,IAAIosB,GACtCwuG,IACAA,EAAYjlI,QAAQpG,WACpBQ,KAAK8qI,YAAYzuG,GACjBr8B,KAAKqpI,aAAarzG,OAAOqG,GACzBr8B,KAAK+qI,uBAAuBF,GAEpC,CACAG,SAAS1iG,EAAS8jD,EAAQpgF,GACtB,MAAMqwB,EAAgBwnG,GAAcv7F,GAKhCjM,IAJmBr8B,KAAKwqI,eAAeS,cAKvCjrI,KAAKkrI,wBAAwB7uG,GAAex3B,QAAQ,EAAEsmI,EAAgBT,KAAU1qI,KAAKorI,eAAeD,EAAgB/+C,EAAQs+C,KAG5H1qI,KAAKqrI,WAAWj/C,GAEmB,mBAAxB/vD,EAAcivG,OACrBjvG,EAAcivG,MAAMt/H,GAGhC,CACA0P,cACI1b,KAAKqpI,aAAaxkI,QAAQ,CAAC0mI,EAAOjjG,IAAYtoC,KAAK4qI,eAAetiG,GACtE,CAEAkiG,eACI,OAAOxqI,KAAK04F,WAAah5D,QAC7B,CAEA8rG,aAEI,OADYxrI,KAAKwqI,eACNiB,aAAe9lG,MAC9B,CACA+lG,gBAAgBC,GACZ,OAAI3rI,KAAKkpI,QAGDlpI,KAAKopI,4BACEppI,KAAK4rI,2BAA2BD,GAAoB,QAAU,UAG9D3rI,KAAKkpI,QAYhBlpI,KAAKmpI,gBAAkBnpI,KAAK6rI,iBACrB7rI,KAAK6rI,iBAMZF,GAAoB3rI,KAAK8rI,iCAAiCH,GACnD,QAEJ,SACX,CASAC,2BAA2BD,GAWvB,OAAQ3rI,KAAK8pI,iBAAmBnB,GAA0BE,YACpD8C,GAAkBxsB,SAASn/G,KAAKipI,uBAAuBhB,kBACjE,CAMA6C,YAAYxiG,EAAS8jD,GACjB9jD,EAAQgtD,UAAUy2C,OAAO,gBAAiB3/C,GAC1C9jD,EAAQgtD,UAAUy2C,OAAO,oBAAgC,UAAX3/C,GAC9C9jD,EAAQgtD,UAAUy2C,OAAO,uBAAmC,aAAX3/C,GACjD9jD,EAAQgtD,UAAUy2C,OAAO,oBAAgC,UAAX3/C,GAC9C9jD,EAAQgtD,UAAUy2C,OAAO,sBAAkC,YAAX3/C,EACpD,CAQAi/C,WAAWj/C,EAAQ4/C,GAAoB,GACnChsI,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bl7B,KAAKkpI,QAAU98C,EACfpsF,KAAKopI,4BAAyC,UAAXh9C,GAAsB4/C,EAMrDhsI,KAAK8pI,iBAAmBnB,GAA0BC,YAClD1xG,aAAal3B,KAAKisI,kBAElBjsI,KAAKisI,iBAAmB7sI,WAAW,IAAOY,KAAKkpI,QAAU,KAD9ClpI,KAAKopI,4BAhkBR,IAgkBwD,GAEpE,EAER,CAMAQ,SAASziH,EAAOmhB,GAOZ,MAAMuiG,EAAc7qI,KAAKqpI,aAAap5H,IAAIq4B,GACpCqjG,EAAmBxK,GAAgBh6G,IACpC0jH,IAAiBA,EAAYZ,eAAiB3hG,IAAYqjG,GAG/D3rI,KAAKorI,eAAe9iG,EAAStoC,KAAK0rI,gBAAgBC,GAAmBd,EACzE,CAMAhB,QAAQ1iH,EAAOmhB,GAGX,MAAMuiG,EAAc7qI,KAAKqpI,aAAap5H,IAAIq4B,IACrCuiG,GACAA,EAAYZ,eACT9iH,EAAM+kH,yBAAyBrkG,MAC/BS,EAAQ62E,SAASh4F,EAAM+kH,iBAG/BlsI,KAAK8qI,YAAYxiG,GACjBtoC,KAAKmsI,YAAYtB,EAAa,MAClC,CACAsB,YAAYzB,EAAMt+C,GACVs+C,EAAK9kI,QAAQC,UAAUjK,QACvBoE,KAAKoqE,QAAQ7wC,IAAI,IAAMmxG,EAAK9kI,QAAQrG,KAAK6sF,GAEjD,CACAu+C,yBAAyBE,GACrB,IAAK7qI,KAAKolI,UAAUpF,UAChB,OAEJ,MAAMkK,EAAWW,EAAYX,SACvBkC,EAAyBpsI,KAAKupI,4BAA4Bt5H,IAAIi6H,IAAa,EAC5EkC,GACDpsI,KAAKoqE,QAAQlvC,kBAAkB,KAC3BgvG,EAASr7C,iBAAiB,QAAS7uF,KAAK2pI,8BAA+BZ,IACvEmB,EAASr7C,iBAAiB,OAAQ7uF,KAAK2pI,8BAA+BZ,GAA2B,GAGzG/oI,KAAKupI,4BAA4B1pH,IAAIqqH,EAAUkC,EAAyB,GAElC,KAAhCpsI,KAAKspI,yBAGPtpI,KAAKoqE,QAAQlvC,kBAAkB,KACZl7B,KAAKwrI,aACb38C,iBAAiB,QAAS7uF,KAAKwpI,qBAAoB,GAG9DxpI,KAAKipI,uBAAuBT,iBACvBrjI,KAAKi+H,GAAUpjI,KAAK0pI,6BACpBzlI,UAAUooI,IACXrsI,KAAKqrI,WAAWgB,GAAU,EAA4B,GAGlE,CACAtB,uBAAuBF,GACnB,MAAMX,EAAWW,EAAYX,SAC7B,GAAIlqI,KAAKupI,4BAA4BtrH,IAAIisH,GAAW,CAChD,MAAMkC,EAAyBpsI,KAAKupI,4BAA4Bt5H,IAAIi6H,GAChEkC,EAAyB,EACzBpsI,KAAKupI,4BAA4B1pH,IAAIqqH,EAAUkC,EAAyB,IAGxElC,EAASp7C,oBAAoB,QAAS9uF,KAAK2pI,8BAA+BZ,IAC1EmB,EAASp7C,oBAAoB,OAAQ9uF,KAAK2pI,8BAA+BZ,IACzE/oI,KAAKupI,4BAA4BvzG,OAAOk0G,GAEhD,GAEOlqI,KAAKspI,yBACOtpI,KAAKwrI,aACb18C,oBAAoB,QAAS9uF,KAAKwpI,sBAEzCxpI,KAAK0pI,2BAA2BnqI,OAEhC23B,aAAal3B,KAAKypI,uBAClBvyG,aAAal3B,KAAKisI,kBAE1B,CAEAb,eAAe9iG,EAAS8jD,EAAQy+C,GAC5B7qI,KAAK8qI,YAAYxiG,EAAS8jD,GAC1BpsF,KAAKmsI,YAAYtB,EAAaz+C,GAC9BpsF,KAAK6rI,iBAAmBz/C,CAC5B,CAMA8+C,wBAAwB5iG,GACpB,MAAMkpB,EAAU,GAChB,OAAAxxD,KAAKqpI,aAAaxkI,QAAQ,CAAC6lI,EAAMS,MACzBA,IAAmB7iG,GAAYoiG,EAAKT,eAAiBkB,EAAehsB,SAAS72E,KAC7EkpB,EAAQx0D,KAAK,CAACmuI,EAAgBT,GAAK,GAGpCl5E,CACX,CAMAs6E,iCAAiCH,GAC7B,MAAQ1D,kBAAmBqE,EAAkBvE,sBAAuB/nI,KAAKipI,uBAIzE,GAA2B,UAAvBlB,IACCuE,GACDA,IAAqBX,GACU,UAA9BA,EAAiBtiG,UAAsD,aAA9BsiG,EAAiBtiG,UAC3DsiG,EAAiBxpC,SACjB,OAAO,EAEX,MAAMoqC,EAASZ,EAAiBY,OAChC,GAAIA,EACA,QAAS/vI,EAAI,EAAGA,EAAI+vI,EAAO3wI,OAAQY,IAC/B,GAAI+vI,EAAO/vI,GAAG2iH,SAASmtB,GACnB,OAAO,EAInB,OAAO,CACX,QACStsI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fq9D,GA56EV1wE,EA46EwCA,GA56ExCA,EA46E8DuxD,IA56E9DvxD,EA46EsFwvE,IA56EtFxvE,EA46EwH94B,GAAQ,GA56EhI84B,EA46E6JwwE,GAA6B,IAA+D,QACvV9oI,KAAK2M,WA76EyF2rD,EAAE,CAAAztD,MA66EYm+H,EAAYl9H,QAAZk9H,EAAYl7H,UAAAjC,WAAc,QAAW,EAC7J,OA1WKm9H,CAAY,KA0alB,IAAIwD,GACH,SAAUA,GACPA,SAAiBA,EAAiBliG,KAAU,GAAK,OACjDkiG,EAAiBA,EAAiBC,eAAoB,GAAK,iBAC3DD,EAAiBA,EAAiBE,eAAoB,GAAK,iBAHpDF,CAIX,CAJC,CAIEA,IAAwC,CAAC,GAE5C,MAAMG,GAA2B,mCAE3BC,GAA2B,mCAE3BC,GAAsC,2BAC5C,IAWMC,GAAwB,MAA9B,MAAMA,EACFtsI,YAAY4kI,EAAW1lG,GACnB1/B,KAAKolI,UAAYA,EACjBplI,KAAK04F,UAAYh5D,EACjB1/B,KAAK+sI,wBAA0B58H,EAAO41H,IACjC/7C,QAAQ,2BACR/lF,UAAU,KACPjE,KAAKgtI,8BACLhtI,KAAKgtI,6BAA8B,EACnChtI,KAAKitI,uCAAqC,EAGtD,CAEAC,sBACI,IAAKltI,KAAKolI,UAAUpF,UAChB,OAAOwM,GAAiBliG,KAK5B,MAAM6iG,EAAcntI,KAAK04F,UAAUtyD,cAAc,OACjD+mG,EAAYj7C,MAAMk7C,gBAAkB,aACpCD,EAAYj7C,MAAMoN,SAAW,WAC7Bt/F,KAAK04F,UAAUz4D,KAAKmP,YAAY+9F,GAKhC,MAAME,EAAiBrtI,KAAK04F,UAAU+yC,aAAe9lG,OAC/C2nG,EAAgBD,GAAkBA,EAAermC,iBACjDqmC,EAAermC,iBAAiBmmC,GAChC,KACAI,GAAkBD,GAAiBA,EAAcF,iBAAoB,IAAI3rH,QAAQ,KAAM,IAE7F,OADA0rH,EAAYrsI,SACJysI,GAEJ,IAAK,aAEL,IAAK,gBACL,IAAK,gBACD,OAAOf,GAAiBE,eAE5B,IAAK,mBAEL,IAAK,mBACD,OAAOF,GAAiBC,eAEhC,OAAOD,GAAiBliG,IAC5B,CACA5uB,cACI1b,KAAK+sI,wBAAwBtsI,aACjC,CAEAwsI,uCACI,IAAKjtI,KAAKgtI,6BAA+BhtI,KAAKolI,UAAUpF,WAAahgI,KAAK04F,UAAUz4D,KAAM,CACtF,MAAMutG,EAAcxtI,KAAK04F,UAAUz4D,KAAKq1D,UACxCk4C,EAAY1sI,OAAO+rI,GAAqCF,GAA0BC,IAClF5sI,KAAKgtI,6BAA8B,EACnC,MAAMn3H,EAAO7V,KAAKktI,sBACdr3H,IAAS22H,GAAiBC,eAC1Be,EAAYnsI,IAAIwrI,GAAqCF,IAEhD92H,IAAS22H,GAAiBE,gBAC/Bc,EAAYnsI,IAAIwrI,GAAqCD,GAE7D,CACJ,QACS5sI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FmhE,GAzkFVx0E,EAykFoDuxD,IAzkFpDvxD,EAykF4E94B,IAAQ,CAA+C,QACjOx/B,KAAK2M,WA1kFyF2rD,EAAE,CAAAztD,MA0kFYiiI,EAAwBhhI,QAAxBghI,EAAwBh/H,UAAAjC,WAAc,QAAW,EACzK,OAtEKihI,CAAwB,KE9uF9B,MAAMW,GAAe,IAAI1gI,EAAe,cAAe,CACnDlB,WAAY,OACZC,QAGJ,SAAS4hI,KACL,OAAOv9H,EAAOqvB,GAClB,IAGMmuG,GAAqB,qHAS3B,IAIMC,GAAc,MAApB,MAAMA,EACFptI,YAAYk4F,GAER14F,KAAKxC,MAAQ,MAEbwC,KAAK46B,OAAS,IAAI1E,GACdwiE,IAGA14F,KAAKxC,MApBjB,SAASqwI,GAAuBC,GAC5B,MAAMtwI,EAAQswI,GAAUv4H,eAAiB,GACzC,MAAc,SAAV/X,UAA2BuyF,UAAc,KAAeA,WAAWg+C,SAC5DJ,GAAmBvhB,KAAKr8B,UAAUg+C,UAAY,MAAQ,MAEhD,QAAVvwI,EAAkB,MAAQ,KACrC,CAcyBqwI,EAFGn1C,EAAUz4D,KAAOy4D,EAAUz4D,KAAK+9C,IAAM,QACtC0a,EAAU+J,gBAAkB/J,EAAU+J,gBAAgBzkB,IAAM,OAClB,OAElE,CACAtiE,cACI1b,KAAK46B,OAAOp7B,UAChB,QACSQ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FiiE,GAAVt1E,EAA0Cm1E,GAAY,IAA+D,QACnNztI,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACY+iI,EAAc9hI,QAAd8hI,EAAc9/H,UAAAjC,WAAc,QAAW,EAC/J,OAjBK+hI,CAAc,KAwFdI,GAAU,MAAhB,MAAMA,SACOhuI,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FqiE,EAAU,CAAoD,QACtKhuI,KAAK4N,UA3EyF0qD,GAAE,CAAA7sD,KA2ESuiI,GAA+C,QACxJhuI,KAAK4M,UA5EyF0rD,GAAE,GA4EwB,EACpI,OAJK01E,CAAU,KCshDmpE,MAAAC,GAAA,+BAAAC,GAAA,MApnD7pEC,GAAyB,IAAIphI,EAAe,oBAAqB,CACnElB,WAAY,OACZC,QANJ,SAASsiI,KACL,OAAO,CACX,IAMA,IAMMC,GAAe,MAArB,MAAMA,EACF7tI,YAAY8tI,EAA0BC,EAAe71C,GACjD14F,KAAKuuI,cAAgBA,EACrBvuI,KAAK04F,UAAYA,EAEjB14F,KAAKwuI,sBAAuB,EAG5BF,EAAyBrB,uCACpBjtI,KAAKwuI,uBACNxuI,KAAKwuI,sBAAuB,EAepC,CAEAC,gBAAgBpuI,GACZ,OvBiPR,SAASquI,KAKL,cAEQC,UAAc,OAAiBA,kBAE3BC,QAAY,OAAiBA,gBAE7BC,KAAS,OAAiBA,aAE1BC,MAAU,OAAiBA,KAC3C,CuB/PYJ,KAG8B,kBAAvB1uI,KAAKuuI,cACLvuI,KAAKuuI,gBAEPvuI,KAAKuuI,cAAcluI,GAChC,QACSL,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F0iE,GAAV/1E,EAA2CuxD,IAA3CvxD,EAAmF61E,GAAsB,GAAzG71E,EAAsI94B,IAAQ,CAA6C,QACzRx/B,KAAK4N,UADyF0qD,GAAE,CAAA7sD,KACS4iI,GAAkE,QAC3KruI,KAAK4M,UAFyF0rD,GAAE,CAAApsD,QAAA,CAEoC8hI,GAAYA,KAAgB,EAC5K,OAvCKK,CAAe,KA8KrB,MAAMU,GACFvuI,YAAYwuI,EAAiBC,EAAWC,EAAkBC,EAAaC,GACnEpvI,KAAKgvI,gBAAkBA,EACvBhvI,KAAKivI,UAAYA,EACjBjvI,KAAKkvI,iBAAmBA,EACxBlvI,KAAKmvI,YAAcA,EACnBnvI,KAAKovI,cAAgBA,EAErBpvI,KAAKqvI,YAAa,CACtB,CAEAC,mBACI,MAAMC,EAAWvvI,KAAKqvI,WAChBxrI,EAAS7D,KAAKkvI,kBAAoBlvI,KAAKmvI,YACvCK,EAAUxvI,KAAKwvI,SAAWxvI,KAAKgvI,gBAC/B53C,EAAUp3F,KAAKivI,UAAYjvI,KAAKivI,UAAU73C,QAAU,KACpDq4C,EAAWD,GAASE,aAAat4C,EAASvzF,KAAW,EACvD4rI,IAAaF,IACbvvI,KAAKqvI,WAAaI,EAClBzvI,KAAKovI,cAAc7vI,OAE3B,EAqcJ,IAYMowI,GAAiB,MAAvB,MAAMA,EACFD,aAAat4C,EAAS8jC,GAClB,SAAU9jC,GAAWA,EAAQm5B,UAAYn5B,EAAQq5B,SAAYyK,GAAQA,EAAK1I,WAC9E,QACSxyH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FgkE,EAAiB,CAAsD,QAC/K3vI,KAAK2M,WArnByF2rD,EAAE,CAAAztD,MAqnBY8kI,EAAiB7jI,QAAjB6jI,EAAiB7hI,UAAAjC,WAAc,QAAW,EAClK,OANK8jI,CAAiB,KAkEvB,IAAIC,GACH,SAAUA,GACPA,SAAYA,EAAYC,UAAe,GAAK,YAC5CD,EAAYA,EAAYE,QAAa,GAAK,UAC1CF,EAAYA,EAAYG,WAAgB,GAAK,aAC7CH,EAAYA,EAAYI,OAAY,GAAK,SAJlCJ,CAKX,CALC,CAKEA,IAA8B,CAAC,GAIlC,MAAMK,GACFzvI,YAAYuqH,EAEZziF,EAEA1pC,EAEAsxI,GAAuC,GACnClwI,KAAK+qH,UAAYA,EACjB/qH,KAAKsoC,QAAUA,EACftoC,KAAKpB,OAASA,EACdoB,KAAKkwI,qCAAuCA,EAE5ClwI,KAAK09F,MAAQkyC,GAAYI,MAC7B,CAEAG,UACInwI,KAAK+qH,UAAUqlB,cAAcpwI,KACjC,EAIJ,MAAMqwI,GAAiCrP,GAAgC,CACnE6G,SAAS,EACT3G,SAAS,IAGb,MAAMoP,GACF9vI,cACIR,KAAKm0H,QAAU,IAAI30G,IAEnBxf,KAAKuwI,sBAAyBppH,IAC1B,MAAMxc,EAASw2H,GAAgBh6G,GAC3Bxc,GACA3K,KAAKm0H,QAAQlkH,IAAIkX,EAAM1b,OAAO5G,QAAQ,CAAC2rI,EAAUloG,MACzCA,IAAY39B,GAAU29B,EAAQ62E,SAASx0G,KACvC6lI,EAAS3rI,QAAQqlF,GAAWA,EAAQumD,YAAYtpH,GAAM,EAE7D,CAGb,CAEAupH,WAAWj6E,EAAQp2D,EAAMioC,EAAS4hD,GAC9B,MAAMymD,EAAmB3wI,KAAKm0H,QAAQlkH,IAAI5P,GAC1C,GAAIswI,EAAkB,CAClB,MAAMC,EAAqBD,EAAiB1gI,IAAIq4B,GAC5CsoG,EACAA,EAAmBvvI,IAAI6oF,GAGvBymD,EAAiB9wH,IAAIyoB,EAAS,IAAItrB,IAAI,CAACktE,IAE/C,MAEIlqF,KAAKm0H,QAAQt0G,IAAIxf,EAAM,IAAImf,IAAI,CAAC,CAAC8oB,EAAS,IAAItrB,IAAI,CAACktE,QACnDzzB,EAAOv7B,kBAAkB,KACrBwE,SAASmvD,iBAAiBxuF,EAAML,KAAKuwI,sBAAuBF,GAA8B,EAGtG,CAEAQ,cAAcxwI,EAAMioC,EAAS4hD,GACzB,MAAMymD,EAAmB3wI,KAAKm0H,QAAQlkH,IAAI5P,GAC1C,IAAKswI,EACD,OAEJ,MAAMC,EAAqBD,EAAiB1gI,IAAIq4B,GAC3CsoG,IAGLA,EAAmB56G,OAAOk0D,GACM,IAA5B0mD,EAAmB36G,MACnB06G,EAAiB36G,OAAOsS,GAEE,IAA1BqoG,EAAiB16G,OACjBj2B,KAAKm0H,QAAQn+F,OAAO31B,GACpBq/B,SAASovD,oBAAoBzuF,EAAML,KAAKuwI,sBAAuBF,KAEvE,EAOJ,MAAMS,GAA+B,CACjCC,cAAe,IACfC,aAAc,KAQZC,GAA+BjQ,GAAgC,CACjE6G,SAAS,EACT3G,SAAS,IAGPgQ,GAAoB,CAAC,YAAa,cAElCC,GAAkB,CAAC,UAAW,aAAc,WAAY,eAQ9D,MAAMC,UACOpxI,KAAKqxI,cAAgB,IAAIf,EAAsB,CACxD9vI,YAAYi/E,EAASrV,EAASknE,EAAqBlM,GAC/CplI,KAAKy/E,QAAUA,EACfz/E,KAAKoqE,QAAUA,EACfpqE,KAAKolI,UAAYA,EAEjBplI,KAAKuxI,gBAAiB,EAOtBvxI,KAAKwxI,eAAiB,IAAIhyH,IAE1Bxf,KAAKyxI,4BAA6B,EAE9BrM,EAAUpF,YACVhgI,KAAK0xI,kBAAoB7N,GAAcyN,GAE/C,CAOAK,aAAajzI,EAAGykI,EAAGvkI,EAAS,CAAC,GACzB,MAAMgzI,EAAiB5xI,KAAK6xI,eACxB7xI,KAAK6xI,gBAAkB7xI,KAAK0xI,kBAAkBI,wBAC5CC,EAAkB,IAAKjB,MAAiClyI,EAAOm0D,WACjEn0D,EAAOozI,WACPtzI,EAAIkzI,EAAcK,KAAOL,EAAcM,MAAQ,EAC/C/O,EAAIyO,EAAcO,IAAMP,EAAcQ,OAAS,GAEnD,MAAMC,EAASzzI,EAAOyzI,QAsR9B,SAASC,GAAyB5zI,EAAGykI,EAAGoP,GACpC,MAAMC,EAAQvwI,KAAKisB,IAAIjsB,KAAK6G,IAAIpK,EAAI6zI,EAAKN,MAAOhwI,KAAK6G,IAAIpK,EAAI6zI,EAAKE,QAC5DC,EAAQzwI,KAAKisB,IAAIjsB,KAAK6G,IAAIq6H,EAAIoP,EAAKJ,KAAMlwI,KAAK6G,IAAIq6H,EAAIoP,EAAKI,SACjE,OAAO1wI,KAAK2wI,KAAKJ,EAAQA,EAAQE,EAAQA,EAC7C,CA1RwCJ,CAAyB5zI,EAAGykI,EAAGyO,GACzDiB,EAAUn0I,EAAIkzI,EAAcK,KAC5Ba,EAAU3P,EAAIyO,EAAcO,IAC5BpB,EAAgBgB,EAAgBhB,cAChCgC,EAASrzG,SAAS0G,cAAc,OACtC2sG,EAAOz9C,UAAUj0F,IAAI,sBACrB0xI,EAAO7gD,MAAM+/C,KAAUY,EAAUR,EAAb,KACpBU,EAAO7gD,MAAMigD,IAASW,EAAUT,EAAb,KACnBU,EAAO7gD,MAAMkgD,OAAqB,EAATC,EAAH,KACtBU,EAAO7gD,MAAMggD,MAAoB,EAATG,EAAH,KAGD,MAAhBzzI,EAAOo0I,QACPD,EAAO7gD,MAAMk7C,gBAAkBxuI,EAAOo0I,OAE1CD,EAAO7gD,MAAM+gD,mBAAqB,GAAGlC,MACrC/wI,KAAK0xI,kBAAkBtiG,YAAY2jG,GAKnC,MAAMG,EAAiBvtG,OAAOqhE,iBAAiB+rC,GAEzCI,EAAyBD,EAAeD,mBAMxCG,EAAiE,SAPxCF,EAAeG,oBAUf,OAA3BF,GAC2B,WAA3BA,GAEyB,IAAxBvB,EAAcM,OAAwC,IAAzBN,EAAcQ,OAE1CkB,EAAY,IAAIrD,GAAUjwI,KAAM+yI,EAAQn0I,EAAQw0I,GAKtDL,EAAO7gD,MAAMvrC,UAAY,mBACzB2sF,EAAU51C,MAAQkyC,GAAYC,UACzBjxI,EAAO20I,aACRvzI,KAAKwzI,2BAA6BF,GAEtC,IAAIG,EAAiB,KAGrB,OAAKL,IAAwCrC,GAAiBgB,EAAgBf,eAC1EhxI,KAAKoqE,QAAQlvC,kBAAkB,KAC3B,MAAMw4G,EAAkBA,KAEhBD,IACAA,EAAeE,cAAgB,MAEnCz8G,aAAay8G,GACb3zI,KAAK4zI,wBAAwBN,EAAS,EAEpCO,EAAqBA,IAAM7zI,KAAK8zI,eAAeR,GAQ/CK,EAAgBv0I,WAAWy0I,EAAoB9C,EAAgB,KACrEgC,EAAOlkD,iBAAiB,gBAAiB6kD,GAIzCX,EAAOlkD,iBAAiB,mBAAoBglD,GAC5CJ,EAAiB,CAAEC,kBAAiBG,qBAAoBF,gBAAc,GAI9E3zI,KAAKwxI,eAAe3xH,IAAIyzH,EAAWG,IAG/BL,IAAwCrC,IACxC/wI,KAAK4zI,wBAAwBN,GAE1BA,CACX,CAEAlD,cAAckD,GAEV,GAAIA,EAAU51C,QAAUkyC,GAAYG,YAAcuD,EAAU51C,QAAUkyC,GAAYI,OAC9E,OAEJ,MAAM+D,EAAWT,EAAUhrG,QACrBypG,EAAkB,IAAKjB,MAAiCwC,EAAU10I,OAAOm0D,WAG/EghF,EAAS7hD,MAAM+gD,mBAAqB,GAAGlB,EAAgBf,iBACvD+C,EAAS7hD,MAAM8hD,QAAU,IACzBV,EAAU51C,MAAQkyC,GAAYG,YAG1BuD,EAAUpD,uCAAyC6B,EAAgBf,eACnEhxI,KAAK4zI,wBAAwBN,EAErC,CAEAW,aACIj0I,KAAKk0I,oBAAoBrvI,QAAQkuI,GAAUA,EAAO5C,UACtD,CAEAgE,0BACIn0I,KAAKk0I,oBAAoBrvI,QAAQkuI,IACxBA,EAAOn0I,OAAO20I,YACfR,EAAO5C,SAAQ,EAG3B,CAEAiE,mBAAmB9C,GACf,MAAMhpG,EAAUu7F,GAAcyN,IACzBtxI,KAAKolI,UAAUpF,YAAc13F,GAAWA,IAAYtoC,KAAKq0I,kBAI9Dr0I,KAAKs0I,uBACLt0I,KAAKq0I,gBAAkB/rG,EAGvB4oG,GAAkBrsI,QAAQ4G,IACtB2lI,GAAeC,cAAcX,WAAW1wI,KAAKoqE,QAAS3+D,EAAM68B,EAAStoC,KAAI,GAEjF,CAKAywI,YAAYtpH,GACW,cAAfA,EAAM1b,KACNzL,KAAKsoI,aAAanhH,GAEE,eAAfA,EAAM1b,KACXzL,KAAKu0I,cAAcptH,GAGnBnnB,KAAKw0I,eAKJx0I,KAAKyxI,6BAMNzxI,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bi2G,GAAgBtsI,QAAQ4G,IACpBzL,KAAKq0I,gBAAgBxlD,iBAAiBpjF,EAAMzL,KAAMixI,GAA4B,EACjF,GAELjxI,KAAKyxI,4BAA6B,EAE1C,CAEAmC,wBAAwBN,GAChBA,EAAU51C,QAAUkyC,GAAYC,UAChC7vI,KAAKy0I,wBAAwBnB,GAExBA,EAAU51C,QAAUkyC,GAAYG,YACrC/vI,KAAK8zI,eAAeR,EAE5B,CAKAmB,wBAAwBnB,GACpB,MAAMoB,EAA8BpB,IAActzI,KAAKwzI,4BAC/CD,cAAeD,EAAU10I,OACjC00I,EAAU51C,MAAQkyC,GAAYE,SAKzByD,KAAgBmB,IAAgC10I,KAAKuxI,iBACtD+B,EAAUnD,SAElB,CAEA2D,eAAeR,GACX,MAAMG,EAAiBzzI,KAAKwxI,eAAevhI,IAAIqjI,IAAc,KAC7DtzI,KAAKwxI,eAAex7G,OAAOs9G,GAEtBtzI,KAAKwxI,eAAev7G,OACrBj2B,KAAK6xI,eAAiB,MAItByB,IAActzI,KAAKwzI,6BACnBxzI,KAAKwzI,2BAA6B,MAEtCF,EAAU51C,MAAQkyC,GAAYI,OACP,OAAnByD,IACAH,EAAUhrG,QAAQwmD,oBAAoB,gBAAiB2kD,EAAeC,iBACtEJ,EAAUhrG,QAAQwmD,oBAAoB,mBAAoB2kD,EAAeI,oBACpC,OAAjCJ,EAAeE,eACfz8G,aAAau8G,EAAeE,gBAGpCL,EAAUhrG,QAAQxnC,QACtB,CAEAwnI,aAAanhH,GAGT,MAAMwtH,EAAkB3N,GAAgC7/G,GAClDytH,EAAmB50I,KAAK60I,sBAC1B1S,KAAKD,MAAQliI,KAAK60I,qBA9QG,KA+QpB70I,KAAKy/E,QAAQq1D,iBAAmBH,IAAoBC,IACrD50I,KAAKuxI,gBAAiB,EACtBvxI,KAAK2xI,aAAaxqH,EAAM4tH,QAAS5tH,EAAM6tH,QAASh1I,KAAKy/E,QAAQw1D,cAErE,CAEAV,cAAcptH,GACV,IAAKnnB,KAAKy/E,QAAQq1D,iBAAmB5N,GAAiC//G,GAAQ,CAI1EnnB,KAAK60I,qBAAuB1S,KAAKD,MACjCliI,KAAKuxI,gBAAiB,EAGtB,MAAMnK,EAAUjgH,EAAMkgH,eAGtB,GAAID,EACA,QAAS5qI,EAAI,EAAGA,EAAI4qI,EAAQxrI,OAAQY,IAChCwD,KAAK2xI,aAAavK,EAAQ5qI,GAAGu4I,QAAS3N,EAAQ5qI,GAAGw4I,QAASh1I,KAAKy/E,QAAQw1D,aAGnF,CACJ,CAEAT,eACSx0I,KAAKuxI,iBAGVvxI,KAAKuxI,gBAAiB,EAEtBvxI,KAAKk0I,oBAAoBrvI,QAAQkuI,KAKxBA,EAAOn0I,OAAO20I,aAFDR,EAAOr1C,QAAUkyC,GAAYE,SAC1CiD,EAAOn0I,OAAOs2I,sBAAwBnC,EAAOr1C,QAAUkyC,GAAYC,YAEpEkD,EAAO5C,SAAQ,GAG3B,CACA+D,oBACI,OAAOx0I,MAAM8jD,KAAKxjD,KAAKwxI,eAAe1vH,OAC1C,CAEAwyH,uBACI,MAAMh3C,EAAUt9F,KAAKq0I,gBACjB/2C,IACA4zC,GAAkBrsI,QAAQ4G,GAAQ2lI,GAAeC,cAAcR,cAAcplI,EAAM6xF,EAASt9F,OACxFA,KAAKyxI,6BACLN,GAAgBtsI,QAAQ4G,GAAQ6xF,EAAQxO,oBAAoBrjF,EAAMzL,KAAMixI,KACxEjxI,KAAKyxI,4BAA6B,GAG9C,EAYJ,MAAM0D,GAA4B,IAAIpoI,EAAe,6BAA6B,IAC5EqoI,GAAS,MAAf,MAAMA,EAKF,YAAIjzC,GACA,OAAOniG,KAAKq1I,SAChB,CACA,YAAIlzC,CAAS3kG,GACLA,GACAwC,KAAKm0I,0BAETn0I,KAAKq1I,UAAY73I,EACjBwC,KAAKs1I,8BACT,CAKA,WAAIh4C,GACA,OAAOt9F,KAAKu1I,UAAYv1I,KAAKgrH,YAAY3uF,aAC7C,CACA,WAAIihE,CAAQA,GACRt9F,KAAKu1I,SAAWj4C,EAChBt9F,KAAKs1I,8BACT,CACA90I,YAAYwqH,EAAav0D,EAAQ8d,EAAUmX,EAAe8pD,GACtDx1I,KAAKgrH,YAAcA,EACnBhrH,KAAKw1I,eAAiBA,EAMtBx1I,KAAKqyI,OAAS,EACdryI,KAAKq1I,WAAY,EAEjBr1I,KAAKy1I,gBAAiB,EACtBz1I,KAAK01I,eAAiBhqD,GAAiB,CAAC,EACxC1rF,KAAK21I,gBAAkB,IAAIvE,GAAepxI,KAAMy2D,EAAQu0D,EAAaz2C,EACzE,CACAxgD,WACI/zB,KAAKy1I,gBAAiB,EACtBz1I,KAAKs1I,8BACT,CACA55H,cACI1b,KAAK21I,gBAAgBrB,sBACzB,CAEAL,aACIj0I,KAAK21I,gBAAgB1B,YACzB,CAEAE,0BACIn0I,KAAK21I,gBAAgBxB,yBACzB,CAKA,gBAAIc,GACA,MAAO,CACHjD,SAAUhyI,KAAKgyI,SACfK,OAAQryI,KAAKqyI,OACbW,MAAOhzI,KAAKgzI,MACZjgF,UAAW,IACJ/yD,KAAK01I,eAAe3iF,aACK,mBAAxB/yD,KAAKw1I,eAAsC,CAAEzE,cAAe,EAAGC,aAAc,GAAM,CAAC,KACrFhxI,KAAK+yD,WAEZmiF,qBAAsBl1I,KAAK01I,eAAeR,qBAElD,CAKA,kBAAIJ,GACA,OAAO90I,KAAKmiG,YAAcniG,KAAK01I,eAAevzC,QAClD,CAEAmzC,gCACSt1I,KAAKmiG,UAAYniG,KAAKy1I,gBACvBz1I,KAAK21I,gBAAgBvB,mBAAmBp0I,KAAKs9F,QAErD,CAEAs4C,OAAOC,EAAW1S,EAAI,EAAGvkI,GACrB,MAAyB,iBAAdi3I,EACA71I,KAAK21I,gBAAgBhE,aAAakE,EAAW1S,EAAG,IAAKnjI,KAAKi1I,gBAAiBr2I,IAG3EoB,KAAK21I,gBAAgBhE,aAAa,EAAG,EAAG,IAAK3xI,KAAKi1I,gBAAiBY,GAElF,QACS71I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FypE,GA5sCV98E,EA4sCqCA,IA5sCrCA,EA4sC+DA,GA5sC/DA,EA4sCqFw9E,IA5sCrFx9E,EA4sC+G68E,GAAyB,GA5sCxI78E,EA4sCqKv4B,GAAqB,IAA8D,QACtV//B,KAAKwN,UA7sCyF8qD,EAAE,CAAA7sD,KA6sCJ2pI,EAAS77H,UAAA,2CAAAE,UAAA,iBAAAD,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GA7sCPskB,GAAE,uBAAAlF,EAAA2iF,UA6sCK,EAAAn8H,OAAA,CAAAo5H,MAAA,6BAAA+C,UAAA,qCAAA/D,SAAA,mCAAAK,OAAA,+BAAAt/E,UAAA,qCAAAovC,SAAA,mCAAA7E,QAAA,kCAAA5jF,SAAA,cAAAnB,YAAA,GAAqgB,EACtnB,OAjGK68H,CAAS,KA8ITY,GAAe,MAArB,MAAMA,SACOh2I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FqqE,EAAe,CAAoD,QAC3Kh2I,KAAK4N,UA7vCyF0qD,GAAE,CAAA7sD,KA6vCSuqI,GAAkG,QAC3Mh2I,KAAK4M,UA9vCyF0rD,GAAE,CAAApsD,QAAA,CA8vCoCmiI,GAAiBA,KAAqB,EACtL,OAJK2H,CAAe,KAykBfC,GAAqB,MAA3B,MAAMA,SACOj2I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FsqE,EAAqB,CAAqD,QAClLj2I,KAAKsN,UAt0DyFgrD,GAAE,CAAA7sD,KAs0DJwqI,EAAqB18H,UAAA,uCAAAE,UAAA,+CAAAD,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAt0DnBskB,GAAE,4BAs0Dc,WAt0DdlF,EAAA8iF,cAs0DiB,EAAAt8H,OAAA,CAAAs8H,cAAA,iBAAA39H,YAAA,EAAAyD,SAAA,CAt0DnBs8C,IAAEvkD,MAAAk6H,GAAAh2H,mBAAAi2H,GAAAr2H,MAAA,EAAAC,KAAA,EAAAC,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,IAAFskB,QAAE,GAs0DsU,EAAA1/C,OAAA,omBAAAD,cAAA,EAAAR,gBAAA,GAAiuB,EACnpC,OAHK89H,CAAqB,KC37CrBE,GAAe,MAArB,MAAMA,SACOn2I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FwqE,EAAe,CAAoD,QAC3Kn2I,KAAK4N,UAhVyF0qD,GAAE,CAAA7sD,KAgVS0qI,GAiBrF,QACpBn2I,KAAK4M,UAlWyF0rD,GAAE,CAAApsD,QAAA,CAkWoCmiI,GACrI2H,GAAiB3H,KAAqB,EACjD,OAtBK8H,CAAe,KCtdrB,MAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,MACMC,GAA+B,IAAIxpI,EAAe,+BAAgC,CACpFlB,WAAY,OACZC,QAAS0qI,KAGb,SAASA,KACL,MAAO,CACHxD,MAAO,SACPyD,YAAa,sBACbC,qBAAqB,EAE7B,CAMA,IAAIC,GACH,SAAUA,GAEPA,SAAqBA,EAAqBC,KAAU,GAAK,OAEzDD,EAAqBA,EAAqBE,QAAa,GAAK,UAE5DF,EAAqBA,EAAqBG,UAAe,GAAK,YAE9DH,EAAqBA,EAAqBI,cAAmB,GAAK,gBAR3DJ,CASX,CATC,CASEA,IAAgD,CAAC,GAKpD,MAAMK,GAAsC,CACxC34H,QAASwtG,GACTjpG,YAAatX,GAAW,IAAM2rI,IAC9B/pI,OAAO,GAGX,MAAMgqI,IAGN,IAAIC,GAAe,EAEnB,MAAM1gC,GAAW+/B,KAAuC,IAClDS,GAAW,MAAjB,MAAMA,EAEF3L,QACItrI,KAAKo3I,cAAc/6G,cAAcivG,OACrC,CAEA+L,mBAAmBC,GACf,MAAMnwH,EAAQ,IAAI+vH,GAClB/vH,SAAM7iB,OAAStE,KACfmnB,EAAMowH,QAAUD,EACTnwH,CACX,CAEAqwH,6BACI,OAAOx3I,KAAKo3I,eAAe/6G,aAC/B,CAEA,WAAIo7G,GACA,MAAO,GAAGz3I,KAAKgZ,IAAMhZ,KAAK03I,iBAC9B,CACAl3I,YAAYwqH,EAAagS,EAAoB5yD,EAASutE,EAAUnC,EAAgBpN,GAC5EpoI,KAAKgrH,YAAcA,EACnBhrH,KAAKg9H,mBAAqBA,EAC1Bh9H,KAAKoqE,QAAUA,EACfpqE,KAAKw1I,eAAiBA,EACtBx1I,KAAKooI,SAAWA,EAEhBpoI,KAAK43I,kBAAoB,CACrBC,mBAAoB,uCACpBC,yBAA0B,6CAC1BC,mBAAoB,uCACpBC,uBAAwB,2CACxBC,uBAAwB,2CACxBC,yBAA0B,8CAM9Bl4I,KAAKm4I,UAAY,GAIjBn4I,KAAKo4I,eAAiB,KAEtBp4I,KAAKk2I,cAAgB,QAErBl2I,KAAKK,KAAO,KAEZL,KAAK46B,OAAS,IAAI1E,GAElBl2B,KAAKq4I,oBAAsB,IAAIniH,GAK/Bl2B,KAAKs4I,WAAa,OAClBt4I,KAAKu4I,uBAAyB,GAC9Bv4I,KAAKw4I,mBAAqB7B,GAAqBC,KAC/C52I,KAAKy4I,8BAAgC,OACrCz4I,KAAK04I,mBAAqB,OAC1B14I,KAAK24I,UAAW,EAChB34I,KAAKq1I,WAAY,EACjBr1I,KAAK44I,gBAAiB,EACtB54I,KAAKooI,SAAWpoI,KAAKooI,UAAY3xB,GACjCz2G,KAAKgzI,MAAQhzI,KAAKooI,SAAS4K,OAASv8B,GAASu8B,MAC7ChzI,KAAK23I,SAAW30F,SAAS20F,IAAa,EACtC33I,KAAKgZ,GAAKhZ,KAAK03I,UAAY,uBAAsBP,GACjDn3I,KAAK02I,oBAAsBtO,GAAUsO,sBAAuB,CAChE,CACAlwH,YAAYmW,GACJA,EAAQw0B,UACRnxD,KAAK04I,oBAEb,CACAxrH,kBACIltB,KAAK64I,mBAAmB74I,KAAK44I,eACjC,CAEA,WAAIrB,GACA,OAAOv3I,KAAK24I,QAChB,CACA,WAAIpB,CAAQ/5I,GACJA,GAASwC,KAAKu3I,UACdv3I,KAAK24I,SAAWn7I,EAChBwC,KAAKg9H,mBAAmBl8E,eAEhC,CAEA,YAAIqhD,GACA,OAAOniG,KAAKq1I,SAChB,CACA,YAAIlzC,CAAS3kG,GACLA,IAAUwC,KAAKmiG,WACfniG,KAAKq1I,UAAY73I,EACjBwC,KAAKg9H,mBAAmBl8E,eAEhC,CAOA,iBAAIg4F,GACA,OAAO94I,KAAK44I,cAChB,CACA,iBAAIE,CAAct7I,GACd,MAAM43H,EAAU53H,GAASwC,KAAK44I,eAC9B54I,KAAK44I,eAAiBp7I,EAClB43H,IAEIp1H,KAAK+4I,sBADL/4I,KAAK44I,eACsBjC,GAAqBI,cAGrB/2I,KAAKu3I,QAAUZ,GAAqBE,QAAUF,GAAqBG,WAElG92I,KAAKq4I,oBAAoB9hH,KAAKv2B,KAAK44I,iBAEvC54I,KAAK64I,mBAAmB74I,KAAK44I,eACjC,CACAI,oBACI,OAAOh5I,KAAKi5I,eAAiBj5I,KAAKmiG,QACtC,CAEA+2C,qBAMIl5I,KAAKg9H,mBAAmB/7E,eAC5B,CAEAorE,WAAW7uH,GACPwC,KAAKu3I,UAAY/5I,CACrB,CAEA4tH,iBAAiBxnH,GACb5D,KAAKy4I,8BAAgC70I,CACzC,CAEAunH,kBAAkBvnH,GACd5D,KAAKs4I,WAAa10I,CACtB,CAEAynH,iBAAiBC,GACbtrH,KAAKmiG,SAAWmpB,CACpB,CAEA4D,SAAS93B,GACL,OAAOp3F,KAAKmxD,WAA8B,IAAlBimC,EAAQ55F,MAAiB,CAAE2zD,UAAY,GAAS,IAC5E,CAEAupE,0BAA0B92H,GACtB5D,KAAK04I,mBAAqB90I,CAC9B,CACAm1I,sBAAsBtJ,GAClB,IAAIF,EAAWvvI,KAAKw4I,mBAChBlwG,EAAUtoC,KAAKw3I,6BACnB,GAAIjI,IAAaE,GAAannG,IAG1BtoC,KAAKu4I,wBACLjwG,EAAQgtD,UAAUx0F,OAAOd,KAAKu4I,wBAElCv4I,KAAKu4I,uBAAyBv4I,KAAKm5I,0CAA0C5J,EAAUE,GACvFzvI,KAAKw4I,mBAAqB/I,EACtBzvI,KAAKu4I,uBAAuB38I,OAAS,GAAG,CACxC0sC,EAAQgtD,UAAUj0F,IAAIrB,KAAKu4I,wBAE3B,MAAMa,EAAiBp5I,KAAKu4I,uBAC5Bv4I,KAAKoqE,QAAQlvC,kBAAkB,KAC3B97B,WAAW,KACPkpC,EAAQgtD,UAAUx0F,OAAOs4I,EAAc,EACxC,IAAI,EAEf,CACJ,CACAC,mBACIr5I,KAAKy4I,8BAA8Bz4I,KAAKu3I,SACxCv3I,KAAK46B,OAAOrE,KAAKv2B,KAAKq3I,mBAAmBr3I,KAAKu3I,UAG1Cv3I,KAAKo3I,gBACLp3I,KAAKo3I,cAAc/6G,cAAck7G,QAAUv3I,KAAKu3I,QAExD,CAEAxL,SACI/rI,KAAKu3I,SAAWv3I,KAAKu3I,QACrBv3I,KAAKy4I,8BAA8Bz4I,KAAKu3I,QAC5C,CACA+B,oBACI,MAAM7C,EAAcz2I,KAAKooI,UAAUqO,YAE9Bz2I,KAAKmiG,UAA4B,SAAhBs0C,GAeZz2I,KAAKmiG,UAAYniG,KAAK02I,sBAC1B12I,KAAKmiG,UAA4B,SAAhBs0C,KAGnBz2I,KAAKo3I,cAAc/6G,cAAck7G,QAAUv3I,KAAKu3I,QAChDv3I,KAAKo3I,cAAc/6G,cAAcy8G,cAAgB94I,KAAK84I,gBAlBlD94I,KAAK84I,eAAiC,UAAhBrC,GACtB53I,QAAQmG,UAAUunE,KAAK,KACnBvsE,KAAK44I,gBAAiB,EACtB54I,KAAKq4I,oBAAoB9hH,KAAKv2B,KAAK44I,eAAc,GAGzD54I,KAAK24I,UAAY34I,KAAK24I,SACtB34I,KAAK+4I,sBAAsB/4I,KAAK24I,SAAWhC,GAAqBE,QAAUF,GAAqBG,WAI/F92I,KAAKq5I,mBASb,CACAE,oBAAoBpyH,GAIhBA,EAAMqyH,iBACV,CACA3P,UAMIhrI,QAAQmG,UAAUunE,KAAK,KACnBvsE,KAAKs4I,aACLt4I,KAAKg9H,mBAAmBl8E,cAAa,EAE7C,CACAq4F,0CAA0C5J,EAAUE,GAEhD,GAA4B,mBAAxBzvI,KAAKw1I,eACL,MAAO,GAEX,OAAQjG,GACJ,KAAKoH,GAAqBC,KAGtB,GAAInH,IAAakH,GAAqBE,QAClC,OAAO72I,KAAK43I,kBAAkBC,mBAE7B,GAAIpI,GAAYkH,GAAqBI,cACtC,OAAO/2I,KAAK24I,SACN34I,KAAK43I,kBAAkBI,uBACvBh4I,KAAK43I,kBAAkBE,yBAEjC,MACJ,KAAKnB,GAAqBG,UACtB,OAAOrH,IAAakH,GAAqBE,QACnC72I,KAAK43I,kBAAkBC,mBACvB73I,KAAK43I,kBAAkBE,yBACjC,KAAKnB,GAAqBE,QACtB,OAAOpH,IAAakH,GAAqBG,UACnC92I,KAAK43I,kBAAkBG,mBACvB/3I,KAAK43I,kBAAkBI,uBACjC,KAAKrB,GAAqBI,cACtB,OAAOtH,IAAakH,GAAqBE,QACnC72I,KAAK43I,kBAAkBK,uBACvBj4I,KAAK43I,kBAAkBM,yBAErC,MAAO,EACX,CASAW,mBAAmBr7I,GACf,MAAMi8I,EAAiBz5I,KAAKo3I,cACxBqC,IACAA,EAAep9G,cAAcy8G,cAAgBt7I,EAErD,CACAk8I,gBACI15I,KAAKs5I,mBACT,CACAK,sBACI35I,KAAKs5I,oBACAt5I,KAAKmiG,UAGNniG,KAAKo3I,cAAc/6G,cAAcivG,OAEzC,CAQAsO,0BAA0BzyH,GAChBA,EAAMxc,QAAU3K,KAAK65I,cAAcx9G,cAAc8iF,SAASh4F,EAAMxc,SAClEwc,EAAMqyH,iBAEd,QACSx5I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FsrE,GAAV3+E,EAAuCA,IAAvCA,EAAiEA,IAAjEA,EAAkGA,GAAlGA,GAAwH,YAAxHA,EAAgKv4B,GAAqB,GAArLu4B,EAAkNi+E,GAA4B,IAA8D,QAC1Yv2I,KAAKsN,UADyFgrD,GAAE,CAAA7sD,KACJwrI,EAAW19H,UAAA,mBAAAS,UAAA,SAAAg6B,EAAAof,GAOkJ,GAPlJ,EAAApf,IADTskB,GAAE89E,GAAA,GAAF99E,GAAE+9E,GAAA,GAAF/9E,GAQkJ88E,GAAS,MAAAphG,EAAA,KAAA8lG,EAR3JxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAgkF,cAAA0C,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAymF,cAAAC,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAA2/E,OAAA+G,EAAA98G,MAAA,GAAAvjB,UAAA,uBAAAD,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,IAAFskB,GAAE,KAAAlF,EAAAp6C,IAAFs/C,GAAE,WACJ,KADEA,CACE,aAAJ,KADEA,CACE,kBAAJ,MADEA,GAAElF,EAAA4/E,MACI,OAAM5/E,EAAA4/E,MAAW,cADvB16E,GAAE,0BACe,mBADflF,EAAAoiF,eAAFl9E,CACS,yBAAAlF,EAAA+uC,SADT7pC,CACS,4BAAAlF,EAAA+uC,SADT7pC,CACS,2BAAAlF,EAAAmkF,QADTj/E,CACS,wCAAAlF,EAAAsjF,qBAAA,EAAA98H,OAAA,CAAAu+H,UAAA,6BAAAC,eAAA,uCAAA2B,gBAAA,yCAAA/gI,GAAA,KAAAm4C,SAAA,yBAAgQ8qB,IAAgBi6D,cAAA,gBAAA71I,KAAA,OAAA7C,MAAA,QAAAy7I,cAAA,mCAAmHh9D,IAAgB07D,SAAA,yBAAuCn6I,GAAoB,MAATA,OAAgB7C,EAAYuhF,GAAgB1+E,IAAOw1I,MAAA,QAAA0D,oBAAA,+CAAuFz6D,IAAgBs7D,QAAA,uBAAmCt7D,IAAgBkmB,SAAA,yBAAsClmB,IAAgB68D,cAAA,mCAAqD78D,KAAgBpiE,QAAA,CAAA+gB,OAAA,SAAAy9G,oBAAA,uBAAA3+H,SAAA,gBAAAnB,YAAA,EAAAyD,SAAA,CADtxBs8C,GAC21C,CAC17C0+E,GACA,CACI34H,QAASuuG,GACThqG,YAAaq0H,EACb/pI,OAAO,KANoForD,UAAErgD,mBAAAq+H,GAAAz+H,MAAA,GAAAC,KAAA,GAAAE,OAAA,+tBAAAD,SAAA,SAAAi8B,EAAAof,GAAA,KAAApf,EAAA,OAAAgmG,EAAF1hF,YAAE,WAAFA,GAAE,iBAAAm0D,GAAFn0D,SAAE0hF,GAAF1hF,EAQqUlF,EAAAwmF,0BAAAntB,GAAiC,GARtWn0D,EAAE,YAAFA,CAQmZ,WARnZA,GAAE,mBAAFA,SAAE0hF,GAAF1hF,EAQghBlF,EAAAumF,sBAAqB,GARriBrhF,MAAE,eAAFA,GAAE,kBAAFA,SAAE0hF,GAAF1hF,EAQo3ClF,EAAAy2E,UAAS,EAR73CvxE,CAQ+3C,mBAR/3CA,SAAE0hF,GAAF1hF,EAQs5ClF,EAAAsmF,gBAAe,EARr6CphF,CAQu6C,kBAAAm0D,GARv6Cn0D,SAAE0hF,GAAF1hF,EAQ+7ClF,EAAAmmF,oBAAA9sB,GAA2B,GAR19Cn0D,MAAE,WAAFA,EAAE,WAAFA,OAAE,WAAFA,EAAE,aAAFA,I3D49I3G,SAAS2hF,MAOT,SAASC,KACLtxH,EAAiBC,OAAOkD,iBAAmB,IAC/C,CARImuH,EACJ,C2D99I2G5hF,KAAE,aAAFA,MAAE,aAAFA,MAAE,iBAAFA,GAAE,IAAFA,KAQw/E,MAAAtkB,EAAA,OAAAmmG,EARx/E7hF,GAAE,GAAFA,EAAE,gBAAAlF,EAAA8iF,eAAF59E,EAAE,GAAFA,GAAE,yBAAAlF,EAAAmkF,SAAFj/E,EAAE,UAAAlF,EAAAmkF,QAAFj/E,CAQumC,gBAAAlF,EAAA0lF,cARvmCxgF,CAQqpC,WAAAlF,EAAA+uC,WAAA/uC,EAAAsjF,oBARrpCp+E,CAQitC,KAAAlF,EAAAqkF,QARjtCn/E,CAQ8uC,WAAAlF,EAAAjC,SAR9uCmH,CAQkxC,WAAAlF,EAAA+uC,WAAA/uC,EAAAsjF,qBAAA,EAAAtjF,EAAAukF,UARlxCr/E,GAAE,aAAAlF,EAAA+kF,WAAA,KAAF7/E,CAAE,kBAAAlF,EAAAglF,eAAF9/E,CAAE,mBAAAlF,EAAA2mF,gBAAFzhF,CAAE,eAAAlF,EAAA0lF,cAAA,aAAFxgF,CAAE,mBAAAlF,EAAA+uC,WAAA/uC,EAAAsjF,sBAAA,KAAFp+E,CAAE,OAAAlF,EAAA/yD,KAAFi4D,CAAE,QAAAlF,EAAA51D,OAAF86D,EAAE,GAAFA,EAAE,mBAAA6hF,EAAF7hF,CAQ8hE,oBAAAlF,EAAA6lF,eAAA7lF,EAAA+uC,SAR9hE7pC,CAQulE,wBARvlEA,MAAE,MAAAlF,EAAAqkF,QAQk8E,GAAAn/H,aAAA,CAAsxd88H,GAAiQa,IAAqBr9H,OAAA,wqdAAAD,cAAA,EAAAR,gBAAA,GAA2K,EACrwjB,OA3TK8+H,CAAW,KAscXmD,GAAiB,MAAvB,MAAMA,SACOp6I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FyuE,EAAiB,CAAoD,QAC7Kp6I,KAAK4N,UAtJyF0qD,GAAE,CAAA7sD,KAsJS2uI,GAAwG,QACjNp6I,KAAK4M,UAvJyF0rD,GAAE,CAAApsD,QAAA,CAuJsC+qI,GAAa5I,GAAiBA,KAAqB,EACrM,OAJK+L,CAAiB,KCrfhB,MAAMC,GADiB,ICDvB,MAAMC,WAAuBlY,KCA7B,MAAMmY,WAAoBhZ,GAC7B/gI,YAAYiH,EAAW65H,GACnBj/H,MAAMoF,EAAW65H,GACjBthI,KAAKyH,UAAYA,EACjBzH,KAAKshI,KAAOA,CAChB,CACA35H,SAAS+1F,EAAOM,EAAQ,GACpB,OAAIA,EAAQ,EACD37F,MAAMsF,SAAS+1F,EAAOM,IAEjCh+F,KAAKg+F,MAAQA,EACbh+F,KAAK09F,MAAQA,EACb19F,KAAKyH,UAAUm3C,MAAM5+C,MACdA,KACX,CACAu2D,QAAQmnC,EAAOM,GACX,OAAQA,EAAQ,GAAKh+F,KAAKV,OACtB+C,MAAMk0D,QAAQmnC,EAAOM,GACrBh+F,KAAK4hI,SAASlkC,EAAOM,EAC7B,CACAyjC,eAAeh6H,EAAWuR,EAAIglF,EAAQ,GAClC,OAAe,OAAVA,GAAkBA,EAAQ,GAAiB,OAAVA,GAAkBh+F,KAAKg+F,MAAQ,EAC1D37F,MAAMo/H,eAAeh6H,EAAWuR,EAAIglF,GAExCv2F,EAAUm3C,MAAM5+C,KAC3B,ICzBG,SAASw6I,GAAW98I,EAAO+J,GAC9B,OAIW,IAAIzD,GAJVyD,EAIqB1E,GAAc0E,EAAUE,SAAS8yI,GAAU,EAAG,CAAE/8I,QAAOqF,eAHvDA,GAAcA,EAAWrF,MAAMA,GAK7D,CACA,SAAS+8I,IAAW/8I,QAAOqF,eACvBA,EAAWrF,MAAMA,EACrB,CCFO,MAAMg9I,GACTl6I,YAAYm6I,EAAMn9I,EAAOE,GACrBsC,KAAK26I,KAAOA,EACZ36I,KAAKxC,MAAQA,EACbwC,KAAKtC,MAAQA,EACbsC,KAAKyI,SAAoB,MAATkyI,CACpB,CACA3wD,QAAQplF,GACJ,OAAQ5E,KAAK26I,MACT,IAAK,IACD,OAAO/1I,EAASrF,MAAQqF,EAASrF,KAAKS,KAAKxC,OAC/C,IAAK,IACD,OAAOoH,EAASlH,OAASkH,EAASlH,MAAMsC,KAAKtC,OACjD,IAAK,IACD,OAAOkH,EAASpF,UAAYoF,EAASpF,WAEjD,CACAo7I,GAAGr7I,EAAM7B,EAAO8B,GAEZ,OADaQ,KAAK26I,MAEd,IAAK,IACD,OAAOp7I,GAAQA,EAAKS,KAAKxC,OAC7B,IAAK,IACD,OAAOE,GAASA,EAAMsC,KAAKtC,OAC/B,IAAK,IACD,OAAO8B,GAAYA,IAE/B,CACAq7I,OAAOp2I,EAAgB/G,EAAO8B,GAC1B,OAAIiF,GAAiD,mBAAxBA,EAAelF,KACjCS,KAAKgqF,QAAQvlF,GAGbzE,KAAK46I,GAAGn2I,EAAgB/G,EAAO8B,EAE9C,CACAmvH,eAEI,OADa3uH,KAAK26I,MAEd,IAAK,IACD,OAAOh5D,GAAG3hF,KAAKxC,OACnB,IAAK,IACD,OAAOg9I,GAAWx6I,KAAKtC,OAC3B,IAAK,IACD,OAAO2B,KAEf,MAAM,IAAI5D,MAAM,qCACpB,CACA,iBAAOq/I,CAAWt9I,GACd,cAAWA,EAAU,IACV,IAAIk9I,GAAa,IAAKl9I,GAE1Bk9I,GAAaK,0BACxB,CACA,kBAAOC,CAAYh9I,GACf,OAAO,IAAI08I,GAAa,SAAK//I,EAAWqD,EAC5C,CACA,qBAAOi9I,GACH,OAAOP,GAAaQ,oBACxB,EAEJR,GAAaQ,qBAAuB,IAAIR,GAAa,KACrDA,GAAaK,2BAA6B,IAAIL,GAAa,SAAK//I,GCvDzD,MAAMwgJ,WAA4Bh5I,GACrC3B,YAAYmC,EAAa8E,EAAWu2F,EAAQ,GACxC37F,MAAMM,GACN3C,KAAKyH,UAAYA,EACjBzH,KAAKg+F,MAAQA,CACjB,CACA,eAAOy8C,CAAS9pI,GACZ,MAAQyqI,eAAcz4I,eAAgBgO,EACtCyqI,EAAapxD,QAAQrnF,GACrB3C,KAAKS,aACT,CACA46I,gBAAgBD,GACQp7I,KAAK2C,YACbtB,IAAIrB,KAAKyH,UAAUE,SAASwzI,GAAoBV,SAAUz6I,KAAKg+F,MAAO,IAAIs9C,GAAiBF,EAAcp7I,KAAK2C,cAC9H,CACAK,MAAMxF,GACFwC,KAAKq7I,gBAAgBX,GAAaI,WAAWt9I,GACjD,CACAyF,OAAOjF,GACHgC,KAAKq7I,gBAAgBX,GAAaM,YAAYh9I,IAC9CgC,KAAKS,aACT,CACAyC,YACIlD,KAAKq7I,gBAAgBX,GAAaO,kBAClCj7I,KAAKS,aACT,EAEG,MAAM66I,GACT96I,YAAY46I,EAAcz4I,GACtB3C,KAAKo7I,aAAeA,EACpBp7I,KAAK2C,YAAcA,CACvB,ECzCG,MAAM44I,WAAsBv1I,GAC/BxF,YAAYg7I,EAAa39G,OAAOC,kBAAmB29G,EAAa59G,OAAOC,kBAAmBr2B,GACtFpF,QACArC,KAAKyH,UAAYA,EACjBzH,KAAKm0H,QAAU,GACfn0H,KAAK07I,qBAAsB,EAC3B17I,KAAK27I,YAAcH,EAAa,EAAI,EAAIA,EACxCx7I,KAAK47I,YAAcH,EAAa,EAAI,EAAIA,EACpCA,IAAe59G,OAAOC,mBACtB99B,KAAK07I,qBAAsB,EAC3B17I,KAAKT,KAAOS,KAAK67I,wBAGjB77I,KAAKT,KAAOS,KAAK87I,cAEzB,CACAD,uBAAuBr+I,GACnB,IAAKwC,KAAKyC,UAAW,CACjB,MAAM0xH,EAAUn0H,KAAKm0H,QACrBA,EAAQn3H,KAAKQ,GACT22H,EAAQv4H,OAASoE,KAAK27I,aACtBxnB,EAAQjiH,OAEhB,CACA7P,MAAM9C,KAAK/B,EACf,CACAs+I,eAAet+I,GACNwC,KAAKyC,YACNzC,KAAKm0H,QAAQn3H,KAAK,IAAI++I,GAAY/7I,KAAKg8I,UAAWx+I,IAClDwC,KAAKi8I,4BAET55I,MAAM9C,KAAK/B,EACf,CACA2G,WAAWpB,GACP,MAAM24I,EAAsB17I,KAAK07I,oBAC3BvnB,EAAUunB,EAAsB17I,KAAKm0H,QAAUn0H,KAAKi8I,2BACpDx0I,EAAYzH,KAAKyH,UACjBvG,EAAMizH,EAAQv4H,OACpB,IAAI2F,EACJ,GAAIvB,KAAKV,OACL,MAAM,IAAImG,GAYd,GAVSzF,KAAKyC,WAAazC,KAAKiG,SAC5B1E,EAAehB,GAAaiB,OAG5BxB,KAAK6F,UAAU7I,KAAK+F,GACpBxB,EAAe,IAAIoE,GAAoB3F,KAAM+C,IAE7C0E,GACA1E,EAAW1B,IAAI0B,EAAa,IAAIo4I,GAAoBp4I,EAAY0E,IAEhEi0I,EACA,QAASl/I,EAAI,EAAGA,EAAI0E,IAAQ6B,EAAWzD,OAAQ9C,IAC3CuG,EAAWxD,KAAK40H,EAAQ33H,SAI5B,QAASA,EAAI,EAAGA,EAAI0E,IAAQ6B,EAAWzD,OAAQ9C,IAC3CuG,EAAWxD,KAAK40H,EAAQ33H,GAAGgB,OAGnC,OAAIwC,KAAKiG,SACLlD,EAAWrF,MAAMsC,KAAKkG,aAEjBlG,KAAKyC,WACVM,EAAWvD,WAER+B,CACX,CACAy6I,UACI,OAAQh8I,KAAKyH,WAAa4yI,IAAOnY,KACrC,CACA+Z,2BACI,MAAM/Z,EAAMliI,KAAKg8I,UACXL,EAAc37I,KAAK27I,YACnBC,EAAc57I,KAAK47I,YACnBznB,EAAUn0H,KAAKm0H,QACf+nB,EAAc/nB,EAAQv4H,OAC5B,IAAIugJ,EAAc,EAClB,KAAOA,EAAcD,KACZha,EAAM/N,EAAQgoB,GAAah8C,KAAQy7C,IAGxCO,IAEJ,OAAID,EAAcP,IACdQ,EAAcl6I,KAAKisB,IAAIiuH,EAAaD,EAAcP,IAElDQ,EAAc,GACdhoB,EAAQtyH,OAAO,EAAGs6I,GAEfhoB,CACX,EAEJ,MAAM4nB,GACFv7I,YAAY2/F,EAAM3iG,GACdwC,KAAKmgG,KAAOA,EACZngG,KAAKxC,MAAQA,CACjB,ECtFJ,MAAM4+I,GACF57I,YAEA67I,GACIr8I,KAAKq8I,KAAOA,EAEZr8I,KAAKqf,WAAa,IAAIrZ,GAEtBhG,KAAKs8I,eAAiB,IAAIt2I,GAE1BhG,KAAKu8I,oBAAsB,IAAI/8H,WACpBg9H,eAAmB,MAC1Bx8I,KAAKy8I,gBAAkB,IAAID,eAAet3D,GAAWllF,KAAKs8I,eAAe/8I,KAAK2lF,IAEtF,CAMA8E,QAAQr/E,GACJ,OAAK3K,KAAKu8I,oBAAoBt+H,IAAItT,IAC9B3K,KAAKu8I,oBAAoB18H,IAAIlV,EAAQ,IAAI3G,GAAWY,IAChD,MAAMrD,EAAevB,KAAKs8I,eAAer4I,UAAUW,GACnD,OAAA5E,KAAKy8I,iBAAiBzyD,QAAQr/E,EAAQ,CAAE+xI,IAAK18I,KAAKq8I,OAC3C,KACHr8I,KAAKy8I,iBAAiBE,UAAUhyI,GAChCpJ,EAAad,cACbT,KAAKu8I,oBAAoBvmH,OAAOrrB,EAAM,CAC1C,GACDxF,KAAKgC,GAAO+9E,GAAWA,EAAQ7nD,KAAK69E,GAASA,EAAMvwG,SAAWA,IChDtE,SAASiyI,GAAYC,EAAoBpB,EAAYh0I,GACxD,IAAI7I,EACJ,OACIA,EADAi+I,GAAoD,iBAAvBA,EACpBA,EAGA,CACLrB,WAAYqB,EACZpB,aACAqB,UAAU,EACVr1I,aAGAnD,GAAWA,EAAOF,KAE9B,SAAS24I,IAAsBvB,aAAa39G,OAAOC,kBAAmB29G,aAAa59G,OAAOC,kBAAmBg/G,SAAUE,EAAav1I,cAChI,IAAI7B,EAEArE,EADAu7I,EAAW,EAEX72I,GAAW,EACXg3I,GAAa,EACjB,OAAO,SAA8B34I,GAEjC,IAAI6/H,EADJ2Y,KAEKl3I,GAAWK,GACZA,GAAW,EACXL,EAAU,IAAI21I,GAAcC,EAAYC,EAAYh0I,GACpD08H,EAAWv+H,EAAQ3B,UAAUjE,MAC7BuB,EAAe+C,EAAOL,UAAU,CAC5B1E,KAAK/B,GACDoI,EAAQrG,KAAK/B,EACjB,EACAE,MAAMM,GACFiI,GAAW,EACXL,EAAQlI,MAAMM,EAClB,EACAwB,WACIy9I,GAAa,EACb17I,OAAe5G,EACfiL,EAAQpG,UACZ,IAEAy9I,IACA17I,OAAe5G,IAInBwpI,EAAWv+H,EAAQ3B,UAAUjE,MAEjCA,KAAKqB,IAAI,KACLy7I,IACA3Y,EAAS1jI,cACT0jI,OAAWxpI,EACP4G,IAAiB07I,GAAcD,GAA4B,IAAbF,IAC9Cv7I,EAAad,cACbc,OAAe5G,EACfiL,OAAUjL,IAGtB,CACJ,CA/CmCoiJ,CAAoBn+I,GACvD,CDsCYg+I,CAAY,CAAEpB,WAAY,EAAGsB,UAAU,IAAS1Z,GAAUpjI,KAAKqf,cAE5Drf,KAAKu8I,oBAAoBtsI,IAAItF,EACxC,CAEAsV,UACIjgB,KAAKqf,WAAW9f,OAChBS,KAAKqf,WAAW7f,WAChBQ,KAAKs8I,eAAe98I,WACpBQ,KAAKu8I,oBAAoBh8H,OAC7B,EAEJ,IAUM28H,GAAoB,MAA1B,MAAMA,EACF18I,cAEIR,KAAKm9I,WAAa,IAAI39H,IAEtBxf,KAAKoqE,QAAUj6D,EAAOsnB,EAM1B,CACA/b,cACI,UAAW,CAAG9W,KAAa5E,KAAKm9I,WAC5Bv4I,EAASqb,UAEbjgB,KAAKm9I,WAAW58H,OAIpB,CAOAypE,QAAQr/E,EAAQqB,GACZ,MAAM0wI,EAAM1wI,GAAS0wI,KAAO,cAC5B,OAAK18I,KAAKm9I,WAAWl/H,IAAIy+H,IACrB18I,KAAKm9I,WAAWt9H,IAAI68H,EAAK,IAAIN,GAA8BM,IAExD18I,KAAKm9I,WAAWltI,IAAIysI,GAAK1yD,QAAQr/E,EAC5C,QACS3K,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FuxE,EAAoB,CAAsD,QAClLl9I,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACYqyI,EAAoBpxI,QAApBoxI,EAAoBpvI,UAAAjC,WAAc,QAAW,EACrK,OApCKqxI,CAAoB,KEvCpBE,GAAuB,MAA7B,MAAMA,EACF//I,OAAOmjB,GACH,cAAc68H,iBAAqB,IAAc,KAAO,IAAIA,iBAAiB78H,EACjF,QACSxgB,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FyxE,EAAuB,CAAsD,QACrLp9I,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACYuyI,EAAuBtxI,QAAvBsxI,EAAuBtvI,UAAAjC,WAAc,QAAW,EACxK,OANKuxI,CAAuB,KAgKvBE,GAAe,MAArB,MAAMA,SACOt9I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F2xE,EAAe,CAAoD,QAC3Kt9I,KAAK4N,UA9JyF0qD,GAAE,CAAA7sD,KA8JS6xI,GAAgF,QACzLt9I,KAAK4M,UA/JyF0rD,GAAE,CAAArsD,UA+JqC,CAACmxI,KAA6B,EAC/K,OAJKE,CAAe,KCvLrB,MAAAlH,GAAA,UAAAC,GAAA,kCAAAC,GAAA,MAAAiH,GAAA,cAAAC,GAAA,wBAAAvP,GAAA,wBAAAC,GAAA,wBAAAuP,GAAA,wBAAAC,GAAA,qQAAAC,GAAA,2MAAAC,GAAA5pG,EAAAof,GAAA,EAAApf,GAE2GskB,EAAE,YA+4BsiG,UAAAulF,GAAA7pG,EAAAof,GAAuB,GAAvB,EAAApf,IA/4BxiGskB,EAAE,cAAFA,GAAE,KAAFA,EAAE,EAAAslF,GAAA,eAAFtlF,KA+4B+jG,EAAAtkB,EAAA,OAAA8pG,EA/4B/jGxlF,EAAE,GAAFA,EAAE,WAAAwlF,EAAAC,oBAAFzlF,CA+4B25E,gBAAAwlF,EAAAE,cA/4B35E1lF,CA+4Bo8E,KAAAwlF,EAAAG,UA/4Bp8E3lF,GAAE,MAAAwlF,EAAAI,SAAAC,yBAAA,KAAAL,EAAAI,SAAAllI,IAAFs/C,EAAE,GAAFA,IAAEwlF,EAAAM,oBAAAN,EAAAI,SAAA/sF,SAAA,KA+4B+iG,WAAAktF,GAAArqG,EAAAof,GAAA,EAAApf,GA/4BjjGskB,EAAE,EAAAulF,GAAA,gBA+4Bk0E,EAAA7pG,GA/4Bp0EskB,OAAEgmF,oBAAA,KA+4BkkG,UAAAC,GAAAvqG,EAAAof,GAAA,EAAApf,GA/4BpkGskB,EAAE,UA+4B4lH,UAAAkmF,GAAAxqG,EAAAof,GAAA,UAAAqrF,GAAAzqG,EAAAof,GAAA,EAAApf,GA/4B9lHskB,EAAE,EAAAkmF,GAAA,sBA+4Bk3H,EAAAxqG,IA/4Bp3HskB,EAAE,GAAFA,EAAE,mBAAFA,GAAE,IA+4Bi3H,UAAAomF,GAAA1qG,EAAAof,GAAwC,GAAxC,EAAApf,IA/4Bn3HskB,EAAE,WAAFA,EAAE,EAAAmmF,GAAA,aAAFnmF,KA+4B25H,EAAAtkB,EAAA,OAAA8pG,EA/4B35HxlF,MAAE,iCAAAwlF,EAAAC,qBAAFzlF,OAAEwlF,EAAAa,2BAAA,IA+4B24H,WAAAC,GAAA5qG,EAAAof,GAAA,EAAApf,IA/4B74HskB,EAAE,cAAFA,GAAE,KAAFA,IA+4BomI,UAAAumF,GAAA7qG,EAAAof,GAAA,EAAApf,IA/4BpmIskB,EAAE,cAAFA,GAAE,KAAFA,IA+4BgyI,UAAAwmF,GAAA9qG,EAAAof,GAAA,UAAA2rF,GAAA/qG,EAAAof,GAAA,EAAApf,GA/4BhyIskB,EAAE,EAAAwmF,GAAA,sBA+4B48I,EAAA9qG,IA/4B98IskB,MAAE,mBAAFA,GAAE,IA+4B28I,UAAA0mF,GAAAhrG,EAAAof,GAAA,EAAApf,IA/4B78IskB,EAAE,cAAFA,GAAE,KAAFA,IA+4BysJ,UAAA2mF,GAAAjrG,EAAAof,GAAA,EAAApf,IA/4BzsJskB,EAAE,cAAFA,GAAE,KAAFA,IA+4Bk5J,UAAA4mF,GAAAlrG,EAAAof,GAAA,EAAApf,GA/4Bl5JskB,EAAE,WA+4Bq+J,UAAA6mF,GAAAnrG,EAAAof,GAAA,EAAApf,IA/4Bv+JskB,EAAE,YAAFA,GAAE,KAAFA,KA+4B67K,EAAAtkB,GA/4B77KskB,EAAE,sBAAFA,IAAE8mF,yBA+4Bg2K,UAAAC,GAAArrG,EAAAof,GAAmU,GAAnU,EAAApf,IA/4Bl2KskB,EAAE,iBAAFA,EAAE,GAAFA,KA+4BqqL,EAAAtkB,EAAA,OAAA8pG,EA/4BrqLxlF,EAAE,GAAFA,EAAE,KAAAwlF,EAAAwB,cAAFhnF,OAAEwlF,EAAAyB,UA+4BwpL,WAAAC,GAAAxrG,EAAAof,GAAgP,GAAhP,EAAApf,IA/4B1pLskB,EAAE,YAAFA,EAAE,EAAA+mF,GAAA,mBAAF/mF,GAAE,KAAFA,EAAE,YAAFA,GAAE,KAAFA,KA+4B04L,EAAAtkB,EAAA,OAAA8pG,EA/4B14LxlF,MAAE,sBAAAwlF,EAAAsB,0BAAF9mF,OAAEwlF,EAAAyB,UAAA,KA+4B8qL,MAh5BrxLE,GAAQ,MAAd,MAAMA,SACOz/I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F8zE,EAAQ,CAAqD,QACrKz/I,KAAKwN,UADyF8qD,EAAE,CAAA7sD,KACJg0I,EAAQlmI,UAAA,gBAAAhB,YAAA,GAA8D,EAC9K,OAHKknI,CAAQ,KAkBd,MAAMC,GAAY,IAAI3yI,EAAe,YACrC,IAgCI4yI,GAAiB,EAEfC,GAAO,MAAb,MAAMA,EACFp/I,cAEIR,KAAK6/I,MAAQ,QAEb7/I,KAAKgZ,GAAK,gBAAgB2mI,IAC9B,QACS3/I,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fi0E,EAAO,CAAqD,QACpK5/I,KAAKwN,UA5DyF8qD,EAAE,CAAA7sD,KA4DJm0I,EAAOrmI,UAAA,eAAAE,UAAA,gEAAAD,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,IA5DLskB,GAAE,KAAAlF,EAAAp6C,IAAFs/C,GAAE,QA4DJ,MA5DEA,GAAE,8BA4DM,QA5DNlF,EAAAysF,OA4DG,EAAAjmI,OAAA,CAAAimI,MAAA,QAAA7mI,GAAA,MAAAT,YAAA,GAAoS,EACnZ,OATKqnI,CAAO,KAkCb,MAAME,GAAa,IAAI/yI,EAAe,aA6BhCgzI,GAAa,IAAIhzI,EAAe,aAyBhCizI,GAAwB,IAAIjzI,EAAe,uBACjD,IAaMkzI,GAAyB,MAA/B,MAAMA,EAEF,YAAIC,GACA,OAAOlgJ,KAAKmgJ,SAChB,CACA,YAAID,CAAS1iJ,GACTwC,KAAKmgJ,UAAY3iJ,EACbwC,KAAKogJ,eACLpgJ,KAAKqgJ,eAEb,CAEA,iBAAID,GACA,OAAOpgJ,KAAKsgJ,cAChB,CACA,iBAAIF,CAAc5iJ,GACdwC,KAAKsgJ,eAAiB9iJ,EAClBwC,KAAKsgJ,eACLtgJ,KAAKugJ,qBAGLvgJ,KAAKwgJ,oBAAoB//I,aAEjC,CACAD,YAAYwqH,GACRhrH,KAAKgrH,YAAcA,EACnBhrH,KAAKmgJ,WAAY,EACjBngJ,KAAKsgJ,gBAAiB,EAEtBtgJ,KAAKy8I,gBAAkBtsI,EAAO+sI,IAE9Bl9I,KAAKoqE,QAAUj6D,EAAOsnB,GAEtBz3B,KAAK2zD,QAAUxjD,EAAO6vI,IAEtBhgJ,KAAKwgJ,oBAAsB,IAAIjgJ,EACnC,CACAmb,cACI1b,KAAKwgJ,oBAAoB//I,aAC7B,CAEAggJ,WACI,OAiDR,SAASC,GAAoBp4G,GAMzB,GAA4B,OADbA,EACJq4G,aACP,OAFWr4G,EAEGs4G,YAElB,MAAMz0F,EAJS7jB,EAIMu4G,WAAU,GAC/B10F,EAAM+lC,MAAM79E,YAAY,WAAY,YACpC83C,EAAM+lC,MAAM79E,YAAY,YAAa,+BACrCqrB,SAAS+iE,gBAAgBrzD,YAAY+c,GACrC,MAAMy0F,EAAcz0F,EAAMy0F,YAC1Bz0F,SAAMrrD,SACC8/I,CACX,CAjEeF,CAAoB1gJ,KAAKgrH,YAAY3uF,cAChD,CAEA,WAAIiM,GACA,OAAOtoC,KAAKgrH,YAAY3uF,aAC5B,CAEAgkH,gBASIjhJ,WAAW,IAAMY,KAAK2zD,QAAQmtF,sBAClC,CAEAP,qBACIvgJ,KAAKwgJ,oBAAoB//I,cACzBT,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bl7B,KAAKwgJ,oBAAsBxgJ,KAAKy8I,gBAC3BzyD,QAAQhqF,KAAKgrH,YAAY3uF,cAAe,CAAEqgH,IAAK,eAC/Cz4I,UAAU,IAAMjE,KAAKqgJ,gBAAe,EAEjD,QACSrgJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fs0E,GA/NV3nF,EA+NqDA,IAAa,CAA8C,QAC9Mt4D,KAAKwN,UAhOyF8qD,EAAE,CAAA7sD,KAgOJw0I,EAAyB1mI,UAAA,2CAAAE,UAAA,kDAAAD,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAhOvBskB,GAAE,kCAAAlF,EAAA8sF,SAgOqB,EAAAtmI,OAAA,CAAAsmI,SAAA,WAAAE,cAAA,iBAAA7nI,YAAA,GAAmS,EACpa,OAvEK0nI,CAAyB,KA8G/B,MAAMc,GAAiB,0BAEjBC,GAAqB,gCAC3B,IAQMC,GAAsB,MAA5B,MAAMA,EACFzgJ,YAAYwqH,EAAav0D,GACrBz2D,KAAKgrH,YAAcA,EACnBhrH,KAAKkhJ,qBAAwB/5H,IACzB,MAAMmuE,EAAYt1F,KAAKgrH,YAAY3uF,cAAci5D,UAC3C6rD,EAAiB7rD,EAAU6pB,SAAS6hC,IACf,YAAvB75H,EAAMggF,cAA8Bg6C,GACpC7rD,EAAUx0F,OAAOigJ,GAAgBC,GAAkB,EAG3DvqF,EAAOv7B,kBAAkB,KACrB8vF,EAAY3uF,cAAcwyD,iBAAiB,gBAAiB7uF,KAAKkhJ,qBAAoB,EAE7F,CACAE,WACI,MAAM9rD,EAAYt1F,KAAKgrH,YAAY3uF,cAAci5D,UACjDA,EAAUx0F,OAAOkgJ,IACjB1rD,EAAUj0F,IAAI0/I,GAClB,CACAM,aACIrhJ,KAAKgrH,YAAY3uF,cAAci5D,UAAUj0F,IAAI2/I,GACjD,CACAtlI,cACI1b,KAAKgrH,YAAY3uF,cAAcyyD,oBAAoB,gBAAiB9uF,KAAKkhJ,qBAC7E,QACSlhJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fs1E,GA5SV3oF,EA4SkDA,IA5SlDA,EA4S4EA,GAAS,CAA8C,QACjOt4D,KAAKwN,UA7SyF8qD,EAAE,CAAA7sD,KA6SJw1I,EAAsB1nI,UAAA,sCAAAE,UAAA,sBAAAlB,YAAA,GAA6H,EAC3P,OA3BK0oI,CAAsB,KA6CtBK,GAA0B,MAAhC,MAAMA,EACF9gJ,YAAYwqH,EAAa5gD,GACrBpqE,KAAKgrH,YAAcA,EACnBhrH,KAAKoqE,QAAUA,EAEfpqE,KAAKuhJ,MAAO,CAChB,CACAr0H,kBACI,MAAMs0H,EAAQxhJ,KAAKgrH,YAAY3uF,cAAc6D,cAAc,uBACvDshH,GACAxhJ,KAAKgrH,YAAY3uF,cAAci5D,UAAUj0F,IAAI,iCACR,mBAA1B81B,wBACPqqH,EAAMtvD,MAAM+gD,mBAAqB,KACjCjzI,KAAKoqE,QAAQlvC,kBAAkB,KAC3B/D,sBAAsB,IAAOqqH,EAAMtvD,MAAM+gD,mBAAqB,GAAG,KAKzEjzI,KAAKgrH,YAAY3uF,cAAci5D,UAAUj0F,IAAI,gCAErD,CACAogJ,eAAeC,GAOP1hJ,KAAK2hJ,OAAOtlH,cAAc61D,MAAMggD,MAN/BlyI,KAAKuhJ,MAASG,EAMyB,QAAQA,oEALR,EAOhD,QACS1hJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F21E,GAhWVhpF,EAgWsDA,IAhWtDA,EAgWgFA,GAAS,CAA8C,QACrOt4D,KAAKsN,UAjWyFgrD,GAAE,CAAA7sD,KAiWJ61I,EAA0B/nI,UAAA,0CAAAS,UAAA,SAAAg6B,EAAAof,GAjWtB,GAiWsB,EAAApf,GAjWxBskB,GAAE89E,GAAA,KAAApiG,EAAA,KAAA8lG,EAAFxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAuuF,OAAA7H,EAAA98G,MAAA,GAAAvjB,UAAA,0BAAAD,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAAFskB,GAAE,+BAAAlF,EAAAmuF,KAiWsB,EAAA3nI,OAAA,CAAA2nI,KAAA,6CAAAhpI,YAAA,EAAAyD,SAAA,CAjWxBs8C,IAAEvkD,MAAAsiI,GAAAp+H,mBAAAq+H,GAAAz+H,MAAA,EAAAC,KAAA,EAAAE,OAAA,yLAAAD,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,IAAFskB,OAAE,WAAFA,EAAE,aAAFA,GAAE,GAAFA,MAAE,WAiW2nB,EAAA3/C,cAAA,EAAAR,gBAAA,GAAsG,EAC70B,OAlCKmpI,CAA0B,KAuDhC,MAAMM,GAAyB,CAE3BC,mBAAoBvkD,GAAQ,qBAAsB,CAE9CI,GAAM,QAASxL,GAAM,CAAE8hD,QAAS,EAAGrtF,UAAW,oBAC9Cg3C,GAAW,gBAAiB,CACxBzL,GAAM,CAAE8hD,QAAS,EAAGrtF,UAAW,qBAC/B62C,GAAQ,+CAKpB,IACMskD,GAAmB,MAAzB,MAAMA,SACO9hJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fm2E,EAAmB,CAAqD,QAChL9hJ,KAAKwN,UAtYyF8qD,EAAE,CAAA7sD,KAsYJq2I,GAAsC,EAC9I,OAHKA,CAAmB,KA0BzB,MAAMC,GAAiB,IAAIh1I,EAAe,gBAKpCi1I,GAAiC,IAAIj1I,EAAe,kCAC1D,IAAIoqI,GAAe,EAiBb8K,GAAY,MAAlB,MAAMA,EAEF,sBAAI7D,GACA,OAAOp+I,KAAKkiJ,mBAChB,CACA,sBAAI9D,CAAmB5gJ,GACnBwC,KAAKkiJ,oBAAsBve,GAAsBnmI,EACrD,CAEA,cAAI2kJ,GACA,OAAOniJ,KAAKoiJ,aAAepiJ,KAAKqiJ,WAAWF,YApBvB,MAqBxB,CACA,cAAIA,CAAW3kJ,GACPA,IAAUwC,KAAKoiJ,cACfpiJ,KAAKoiJ,YAAc5kJ,EAKnBwC,KAAKg9H,mBAAmBl8E,eAEhC,CAEA,cAAIwhG,GACA,OAAOtiJ,KAAKuiJ,WAChB,CACA,cAAID,CAAW9kJ,GACX,MAAMM,EAAWkC,KAAKuiJ,YAOtBviJ,KAAKuiJ,YANiB/kJ,GAASwC,KAAKqiJ,WAAWC,YA3C5B,OAkDM,YAArBtiJ,KAAKuiJ,aAA6BviJ,KAAKuiJ,cAAgBzkJ,IAIvDkC,KAAKwiJ,gCAAiC,EAE9C,CAMA,mBAAIC,GACA,OAAOziJ,KAAK0iJ,kBAAoB1iJ,KAAKqiJ,WAAWI,iBAxDvB,OAyD7B,CACA,mBAAIA,CAAgBjlJ,GAChBwC,KAAK0iJ,iBAAmBllJ,GAASwC,KAAKqiJ,WAAWI,iBA3DxB,OA4D7B,CAEA,aAAIlD,GACA,OAAOv/I,KAAK2iJ,UAChB,CACA,aAAIpD,CAAU/hJ,GACVwC,KAAK2iJ,WAAanlJ,EAClBwC,KAAK4iJ,eACT,CAEA,YAAI1E,GACA,OAAOl+I,KAAK6iJ,2BAA6B7iJ,KAAK8iJ,iBAClD,CACA,YAAI5E,CAAS1gJ,GACTwC,KAAK6iJ,0BAA4BrlJ,CACrC,CACAgD,YAAYwqH,EAAagS,EAKzB+lB,EAAeC,EAAM5d,EAAWid,EAAW7M,EAK3CyN,GACIjjJ,KAAKgrH,YAAcA,EACnBhrH,KAAKg9H,mBAAqBA,EAC1Bh9H,KAAKgjJ,KAAOA,EACZhjJ,KAAKolI,UAAYA,EACjBplI,KAAKqiJ,UAAYA,EACjBriJ,KAAKw1I,eAAiBA,EACtBx1I,KAAKkjJ,YAActxF,GAAa6tF,IAChCz/I,KAAKkiJ,qBAAsB,EAQ3BliJ,KAAKgzI,MAAQ,UACbhzI,KAAKuiJ,YA9Gc,OA+GnBviJ,KAAK0iJ,iBAAmB,KACxB1iJ,KAAK2iJ,WAAa,GAClB3iJ,KAAKmjJ,gBAAiB,EACtBnjJ,KAAKojJ,gBAAiB,EACtBpjJ,KAAKqjJ,gBAAiB,EACtBrjJ,KAAKsjJ,gBAAiB,EAEtBtjJ,KAAKi+I,SAAW,4BAA4B9G,KAE5Cn3I,KAAKs/I,aAAe,gBAAgBnI,KAEpCn3I,KAAKo/I,yBAA2B,GAChCp/I,KAAKqf,WAAa,IAAIrZ,GACtBhG,KAAKujJ,WAAa,KAClBvjJ,KAAKwiJ,gCAAiC,EACtCxiJ,KAAKwjJ,iBAAmB,KACxBxjJ,KAAKioE,UAAY93D,EAAOglB,IAIxBn1B,KAAKyjJ,WAAalmJ,GAAS,IAAOyC,KAAKs+I,oBAAsBt+I,KAAKi+I,SAAW,MAC7Ej+I,KAAKs+I,kBAAoB/gJ,GAAS,MAAQyC,KAAKkjJ,eAC3Cb,IACIA,EAAUC,aACVtiJ,KAAKsiJ,WAAaD,EAAUC,YAEhCtiJ,KAAKkiJ,sBAA8BG,GAAWjE,mBAC1CiE,EAAUrP,QACVhzI,KAAKgzI,MAAQqP,EAAUrP,OAGnC,CACA9lH,kBAGIltB,KAAK0jJ,oBAEL1jJ,KAAKo/I,yBAA2B,QAGhCp/I,KAAKg9H,mBAAmB/7E,eAC5B,CACAj0B,qBACIhtB,KAAK2jJ,0BACL3jJ,KAAK4jJ,uBACL5jJ,KAAK6jJ,6BACL7jJ,KAAK8jJ,4CACT,CACA72H,wBACIjtB,KAAK2jJ,0BACD3jJ,KAAKk+I,WAAal+I,KAAKwjJ,mBACvBxjJ,KAAK+jJ,mBAAmB/jJ,KAAKwjJ,kBAC7BxjJ,KAAKwjJ,iBAAmBxjJ,KAAKk+I,SAErC,CACAxiI,cACI1b,KAAKovI,eAAe3uI,cACpBT,KAAKgkJ,eAAevjJ,cACpBT,KAAKqf,WAAW9f,OAChBS,KAAKqf,WAAW7f,UACpB,CAKAykJ,4BACI,OAAOjkJ,KAAKkkJ,YAAclkJ,KAAKgrH,WACnC,CAEAm5B,uBASQnkJ,KAAKs+I,sBACLt+I,KAAKmiJ,WAAa,SAE1B,CAEA4B,mBAAmBK,GACf,MAAMhtD,EAAUp3F,KAAKk+I,SACfmG,EAAc,2BAChBD,GACApkJ,KAAKgrH,YAAY3uF,cAAci5D,UAAUx0F,OAAOujJ,EAAcD,EAAgBE,aAE9EltD,EAAQktD,aACRtkJ,KAAKgrH,YAAY3uF,cAAci5D,UAAUj0F,IAAIgjJ,EAAcjtD,EAAQktD,aAGvEtkJ,KAAKovI,eAAe3uI,cACpBT,KAAKovI,cAAgBh4C,EAAQmtD,aAAatgJ,UAAU,KAChDjE,KAAK0jJ,oBACL1jJ,KAAKwkJ,sBACLxkJ,KAAKg9H,mBAAmBl8E,cAAa,GAEzC9gD,KAAKgkJ,eAAevjJ,cAEhB22F,EAAQ63C,WAAa73C,EAAQ63C,UAAUre,eACvC5wH,KAAKgkJ,cAAgB5sD,EAAQ63C,UAAUre,aAClCzrH,KAAKi+H,GAAUpjI,KAAKqf,aACpBpb,UAAU,IAAMjE,KAAKg9H,mBAAmBl8E,gBAErD,CACA2jG,6BACIzkJ,KAAKmjJ,iBAAmBnjJ,KAAK0kJ,gBAAgBvnH,KAAKijE,IAAMA,EAAEukD,SAC1D3kJ,KAAKojJ,iBAAmBpjJ,KAAK0kJ,gBAAgBvnH,KAAKijE,GAAKA,EAAEukD,SACzD3kJ,KAAKqjJ,iBAAmBrjJ,KAAK4kJ,gBAAgBznH,KAAKkH,IAAMA,EAAEsgH,SAC1D3kJ,KAAKsjJ,iBAAmBtjJ,KAAK4kJ,gBAAgBznH,KAAKkH,GAAKA,EAAEsgH,QAC7D,CAEAd,6BACI7jJ,KAAKykJ,6BCnpBN,SAAS79G,MAAS69F,GACrB,IAAIlhD,EAAa1lD,OAAOC,kBACpBr2B,EAAY,KACZw1B,EAAOwnG,EAAYA,EAAY7oI,OAAS,GAU5C,OATI2lF,GAAYtkD,IACZx1B,EAAYg9H,EAAYhoI,MACpBgoI,EAAY7oI,OAAS,GAAoD,iBAAxC6oI,EAAYA,EAAY7oI,OAAS,KAClE2nF,EAAakhD,EAAYhoI,QAGR,iBAATwgC,IACZsmD,EAAakhD,EAAYhoI,OAEX,OAAdgL,GAA6C,IAAvBg9H,EAAY7oI,QAAgB6oI,EAAY,aAAczgI,GACrEygI,EAAY,GAEhBK,GAASvhD,EAATuhD,CAAqBpjD,GAAU+iD,EAAah9H,GACvD,CDsoBQm/B,CAAM5mC,KAAK0kJ,gBAAgB/nH,QAAS38B,KAAK4kJ,gBAAgBjoH,SAAS14B,UAAU,KACxEjE,KAAKykJ,6BACLzkJ,KAAKg9H,mBAAmBl8E,cAAa,EAE7C,CAMA8iG,uBAEI5jJ,KAAK6kJ,cAAcloH,QAAQ14B,UAAU,KACjCjE,KAAK4iJ,gBACL5iJ,KAAKg9H,mBAAmBl8E,cAAa,GAGzC9gD,KAAK8kJ,eAAenoH,QAAQ14B,UAAU,KAClCjE,KAAKwkJ,sBACLxkJ,KAAKg9H,mBAAmBl8E,cAAa,GAGzC9gD,KAAK+kJ,iBACL/kJ,KAAKwkJ,qBACT,CAEAb,0BAIA,CACAD,oBAMQ1jJ,KAAKk+I,SAAS8G,UAAYhlJ,KAAKujJ,YAC/BvjJ,KAAKujJ,YAAa,EAClBvjJ,KAAKilJ,aAAa7D,aAEZphJ,KAAKk+I,SAAS8G,UAAYhlJ,KAAKujJ,YAAkC,OAApBvjJ,KAAKujJ,cACxDvjJ,KAAKujJ,YAAa,EAClBvjJ,KAAKilJ,aAAa5D,cAEtBrhJ,KAAKkkJ,YAAY7nH,cAAci5D,UAAUy2C,OAAO,0BAA2B/rI,KAAKk+I,SAAS8G,QAC7F,CAOAlB,6CAGI9jJ,KAAK0kJ,gBAAgB/nH,QAAQ14B,UAAU,IAAOjE,KAAKwiJ,gCAAiC,GtEijlB5F,SAAS0C,GAAYztF,EAAgBzrD,IAIhCA,GAAS6D,UAAYqT,KACtB,MAAMrT,EAAW7D,GAAS6D,UAAYM,EAAOglB,IAC7C,OAAKoW,GAAkB17B,IAGvBigD,GAAuB,iBAChB4H,GAAgBD,EAAgB5nD,EAAU7D,GAAoB,IAH1D2rD,EAIf,CsEzjlBQutF,CAAY,KACJllJ,KAAKwiJ,iCACLxiJ,KAAKwiJ,gCAAiC,EACtCxiJ,KAAKmlJ,4BAA0B,EAEpC,CACCt1I,SAAU7P,KAAKioE,YAEnBjoE,KAAKgjJ,KAAKpoH,OACLz1B,KAAKi+H,GAAUpjI,KAAKqf,aACpBpb,UAAU,IAAOjE,KAAKwiJ,gCAAiC,EAChE,CAEA4C,qBACI,MAA2B,WAApBplJ,KAAKmiJ,UAChB,CACAnE,cACI,MAA2B,YAApBh+I,KAAKsiJ,UAChB,CASA3D,0BACI,OAAQ3+I,KAAKolI,UAAUpF,WAAahgI,KAAK0kJ,gBAAgB9oJ,SAAWoE,KAAK+9I,mBAC7E,CACAA,oBACI,QAAK/9I,KAAKs+I,sBAGHt+I,KAAKk+I,SAASmH,kBAAoBrlJ,KAAKolJ,qBAClD,CAKAE,eAAe7qF,GACX,MAAM28B,EAAUp3F,KAAKk+I,SAAWl+I,KAAKk+I,SAASjP,UAAY,KAC1D,OAAO73C,GAAWA,EAAQ38B,EAC9B,CAEA8qF,wBACI,OAAOvlJ,KAAK8kJ,gBAAkB9kJ,KAAK8kJ,eAAelpJ,OAAS,GAAKoE,KAAKk+I,SAAS7O,WACxE,QACA,MACV,CAEAyR,sBACI9gJ,KAAKwlJ,2BACT,CAEAA,4BACSxlJ,KAAKg+I,eAAkBh+I,KAAKylJ,gBAAmBzlJ,KAAK+9I,oBAIrD/9I,KAAK0lJ,iBAAiBjE,eAAezhJ,KAAKylJ,eAAehF,YAHzDzgJ,KAAK0lJ,iBAAiBjE,eAAe,EAK7C,CAEAmB,gBACI5iJ,KAAK+kJ,iBACL/kJ,KAAKwkJ,qBACT,CAOAO,iBAmBA,CAKAP,sBACI,GAAIxkJ,KAAKk+I,SAAU,CACf,IAAIyH,EAAM,GAMV,GAJI3lJ,KAAKk+I,SAAS0H,qBAC+B,iBAAtC5lJ,KAAKk+I,SAAS0H,qBACrBD,EAAI3oJ,QAAQgD,KAAKk+I,SAAS0H,oBAAoBrjH,MAAM,MAEnB,SAAjCviC,KAAKulJ,wBAAoC,CACzC,MAAMM,EAAY7lJ,KAAK6kJ,cACjB7kJ,KAAK6kJ,cAAc1nH,KAAK2oH,GAAuB,UAAfA,EAAKjG,OACrC,KACAkG,EAAU/lJ,KAAK6kJ,cACf7kJ,KAAK6kJ,cAAc1nH,KAAK2oH,GAAuB,QAAfA,EAAKjG,OACrC,KACFgG,EACAF,EAAI3oJ,KAAK6oJ,EAAU7sI,IAEdhZ,KAAK2iJ,YACVgD,EAAI3oJ,KAAKgD,KAAKs/I,cAEdyG,GACAJ,EAAI3oJ,KAAK+oJ,EAAQ/sI,GAEzB,MACShZ,KAAK8kJ,gBACVa,EAAI3oJ,QAAQgD,KAAK8kJ,eAAe5kJ,IAAIxC,GAASA,EAAMsb,KAEvDhZ,KAAKk+I,SAAS8H,kBAAkBL,EACpC,CACJ,CAUAR,4BACI,IAAKnlJ,KAAKg+I,gBAAkBh+I,KAAKylJ,eAC7B,OAEJ,MAAMQ,EAAgBjmJ,KAAKylJ,eAAen9G,QAG1C,IAAMtoC,KAAKkmJ,uBAAwBlmJ,KAAKmmJ,qBAEpC,YADAF,EAAc/zD,MAAMvrC,UAAY,IAKpC,IAAK3mD,KAAKomJ,mBAEN,YADApmJ,KAAKwiJ,gCAAiC,GAG1C,MAAM6D,EAAsBrmJ,KAAKkmJ,sBAAsB7pH,cACjDiqH,EAAsBtmJ,KAAKmmJ,sBAAsB9pH,cACjDkqH,EAAsBvmJ,KAAKwmJ,sBAAsBnqH,cACjDoqH,EAAsBzmJ,KAAK0mJ,sBAAsBrqH,cACjDsqH,EAA2BN,GAAqBvU,wBAAwBI,OAAS,EACjF0U,EAA2BN,GAAqBxU,wBAAwBI,OAAS,EACjF2U,EAA2BN,GAAqBzU,wBAAwBI,OAAS,EACjF4U,EAA2BL,GAAqB3U,wBAAwBI,OAAS,EAUvF+T,EAAc/zD,MAAMvrC,UAAY,iGAPG,QAApB3mD,KAAKgjJ,KAAKxlJ,MAAkB,KAAO,UAC3BmpJ,EAA2BC,gEAelD5mJ,KAAKgrH,YAAY3uF,cAAc61D,MAAM79E,YAAY,mCAAoC,eAJxDsyI,EACzBC,EACAC,EACAC,OAER,CAEAV,mBACI,MAAM99G,EAAUtoC,KAAKgrH,YAAY3uF,cACjC,GAAIiM,EAAQgiG,YAAa,CACrB,MAAMJ,EAAW5hG,EAAQgiG,cAGzB,OAAOJ,GAAYA,IAAa5hG,CACpC,CAGA,OAAO5I,SAAS+iE,gBAAgB0c,SAAS72E,EAC7C,QACStoC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+Fs2E,GA34BV3pF,EA24BwCA,IA34BxCA,EA24BkEA,IA34BlEA,EA24BmGA,GA34BnGA,EA24ByHuxD,IA34BzHvxD,EA24BuJyuF,IA34BvJzuF,EA24B+K0pF,GAA8B,GA34B7M1pF,EA24B0Ov4B,GAAqB,GA34B/Pu4B,EA24B4R94B,IAAQ,CAA8C,QAChbx/B,KAAKsN,UA54ByFgrD,GAAE,CAAA7sD,KA44BJw2I,EAAY1oI,UAAA,qBAAAQ,eAAA,SAAAi6B,EAAAof,EAAA7Y,GAG2Y,GAH3Y,EAAAvG,IA54BVskB,GAAE/d,EAAA6Y,EAAA8vF,YA+4BjCzD,GAAQ,GA/4BuBnnF,GAAE/d,EA+4B2EunG,GAAmB,GA/4BhGxpF,GAAE/d,EA+4BmKulG,GAAU,GA/4B/KxnF,GAAE/d,EA+4BkPwlG,GAAU,GA/4B9PznF,GAAE/d,EA+4BgUmlG,GAAS,GA/4B3UpnF,GAAE/d,EA+4B4YqlG,GAAO,MAAA5rG,EAAA,CA/4BnZ,IAAA8lG,GtE4y1B7G,SAASkN,GAAeC,EAAc,GAClCn8H,GAAqBF,KAAyBq8H,EAClD,EsE9y1B2G3uF,MAAEwhF,EAAFxhF,QAAElF,EAAA0vF,kBAAAhJ,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAsxF,gBAAA5K,GAAFxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAwxF,gBAAA9K,GAAFxhF,GAAEwhF,EAAFxhF,QAAElF,EAAA0xF,eAAAhL,GAAFxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAyxF,cAAA/K,EAAA,GAAA9/H,UAAA,SAAAg6B,EAAAof,GA+4B8uC,GA/4B9uC,EAAApf,IAAFskB,GAAEilF,GAAA,GAAFjlF,GAAEklF,GAAA,GAAFllF,GAAE21E,GAAA,GAAF31E,GAAE41E,GAAA,GAAF51E,GAAEmlF,GAAA,GAAFnlF,GA+4BugC2nF,GAAyB,GA/4BhiC3nF,GA+4BknCgpF,GAA0B,GA/4B5oChpF,GA+4B0tC2oF,GAAsB,MAAAjtG,EAAA,KAAA8lG,EA/4BhvCxhF,GAAEwhF,EAAFxhF,QAAElF,EAAA8wF,WAAApK,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAA8yF,qBAAApM,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAA+yF,qBAAArM,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAozF,qBAAA1M,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAszF,qBAAA5M,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAqyF,eAAA3L,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAAsyF,gBAAA5L,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAA6xF,YAAAnL,EAAA98G,MAAA,GAAAvjB,UAAA,yBAAAD,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAAFskB,GAAE,wCA44BJlF,EAAAgyF,qBA54BE9sF,CA44BU,qCAAAlF,EAAA+vF,eA54BV7qF,CA44BU,qCAAAlF,EAAAiwF,eA54BV/qF,CA44BU,yBAAAlF,EAAA8qF,SAAA7O,WA54BV/2E,CA44BU,0BAAAlF,EAAA8qF,SAAA/7C,SA54BV7pC,CA44BU,4BAAAlF,EAAA8qF,SAAAgJ,WA54BV5uF,CA44BU,+BAAO,mBAAPlF,EAAAoiF,eA54BVl9E,CA44BU,iCAAE,QAAFlF,EAAAkvF,WA54BVhqF,CA44BU,oCAAE,WAAFlF,EAAAkvF,WA54BVhqF,CA44BU,kCAAZlF,EAAAkrF,sBAAwBlrF,EAAA2qF,oBA54BtBzlF,CA44BU,cAAAlF,EAAA8qF,SAAA8G,QA54BV1sF,CA44BU,cAAF,WAAElF,EAAA4/E,OAAoB,SAAd5/E,EAAA4/E,MA54BhB16E,CA44BU,aAAF,WAAElF,EAAA4/E,MA54BV16E,CA44BU,WAAF,SAAElF,EAAA4/E,MA54BV16E,CA44BU,eAAZlF,EAAAkyF,eAAe,aA54BbhtF,CA44BU,aAAZlF,EAAAkyF,eAAe,WA54BbhtF,CA44BU,cAAZlF,EAAAkyF,eAAe,YA54BbhtF,CA44BU,WAAZlF,EAAAkyF,eAAe,SA54BbhtF,CA44BU,WAAZlF,EAAAkyF,eAAe,SA54BbhtF,CA44BU,aAAZlF,EAAAkyF,eAAe,WA54BbhtF,CA44BU,aAAZlF,EAAAkyF,eAAe,WAAH,EAAA1rI,OAAA,CAAAwkI,mBAAA,qBAAApL,MAAA,QAAAmP,WAAA,aAAAG,WAAA,aAAAG,gBAAA,kBAAAlD,UAAA,aAAA7lI,SAAA,iBAAAnB,YAAA,EAAAyD,SAAA,CA54BVs8C,GA44B2/C,CAC1lD,CAAEj6C,QAAS0jI,GAAgBn/H,YAAaq/H,GACxC,CAAE5jI,QAAS2hI,GAAuBp9H,YAAaq/H,KA94BgD3pF,IAAErgD,mBAAA0lI,GAAA9lI,MAAA,GAAAC,KAAA,GAAAE,OAAA,06BAAAD,SAAA,SAAAi8B,EAAAof,GAAA,KAAApf,EAAA,OAAAgmG,EAAF1hF,QAAEolF,IAAFplF,EAAE,EAAA+lF,GAAA,yBAAF/lF,MAAE,aAAFA,GAAE,iBAAAm0D,GAAFn0D,SAAE0hF,GAAF1hF,EA+4B48GlF,EAAA8qF,SAAAiJ,iBAAA16B,GAAiC,GA/4B7+Gn0D,EAAE,EAAAimF,GAAA,aAAFjmF,EAAE,WAAFA,EAAE,EAAAomF,GAAA,YAAFpmF,CA+4ByqH,EAAAsmF,GAAA,aA/4BzqHtmF,CA+4Bg8H,EAAAumF,GAAA,cA/4Bh8HvmF,EAAE,YAAFA,EAAE,GAAAymF,GAAA,aAAFzmF,GAAE,IAAFA,MAAE,GAAA0mF,GAAA,aAAF1mF,CA+4BkjJ,GAAA2mF,GAAA,cA/4BljJ3mF,MAAE,GAAA4mF,GAAA,cAAF5mF,MAAE,aAAFA,EAAE,GAAA6mF,GAAA,aAAF7mF,CA+4BsuK,GAAAknF,GAAA,cA/4BtuKlnF,GA+4B85L,MAAAtkB,EAAA,KAAAozG,EA/4B95L9uF,EAAE,GAAFA,GAAE,0BAAAlF,EAAA4qF,cAAF1lF,CA+4BstG,2BAAAlF,EAAA4qF,cA/4BttG1lF,CA+4B4wG,4BAAAlF,EAAAkrF,oBA/4B5wGhmF,CA+4By0G,2BAAAlF,EAAA8qF,SAAA/7C,SA/4Bz0G7pC,CA+4Bm4G,0BAAAlF,EAAA8qF,SAAA7O,YA/4Bn4G/2E,EAAE,GAAFA,GAAElF,EAAA4qF,eAAA5qF,EAAA8qF,SAAA/7C,UAAA,KAAF7pC,EAAE,GAAFA,GAAElF,EAAA4qF,cAAA,MAAF1lF,OAAElF,EAAA+vF,eAAA,MAAF7qF,OAAElF,EAAAgwF,eAAA,MAAF9qF,EAAE,GAAFA,IAAElF,EAAA4qF,eAAA5qF,EAAAurF,0BAAA,OAAFrmF,EAAE,GAAFA,GAAElF,EAAAkwF,eAAA,OAAFhrF,OAAElF,EAAAiwF,eAAA,OAAF/qF,OAAElF,EAAA4qF,eAAA,MAAF1lF,OAAE,wDAAAlF,EAAAqvF,iBAAFnqF,OA+4B4qK,WA/4B1qK8uF,EAAAh0F,EAAAmyF,yBA+4BirK,GAAP,SAAO6B,EAAD,MAAouB,GAAA9uI,aAAA,CAA8g+B2nI,GAA6IqB,GAAkJxiE,GAAoKmiE,GAA8FrB,IAAOhnI,OAAA,s89BAAAD,cAAA,EAAAD,KAAA,CAAAq6C,UAAgE,CAAC6uF,GAAuBC,qBAAmB1pI,gBAAA,GAAmG,EACpwrC,OA3dK8pI,CAAY,KAokBZoF,GAAkB,MAAxB,MAAMA,SACOrnJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F07E,EAAkB,CAAoD,QAC9KrnJ,KAAK4N,UA3/ByF0qD,GAAE,CAAA7sD,KA2/BS47I,GAQE,QAC3GrnJ,KAAK4M,UApgCyF0rD,GAAE,CAAApsD,QAAA,CAogCuCmiI,GACxIntD,GACAo8D,GAAiBjP,KAAqB,EACjD,OAdKgZ,CAAkB,KEhgCxB,MAAMC,GACF9mJ,YAAYoV,GACR5V,KAAK4V,SAAWA,CACpB,CACA7V,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIsjJ,GAAgBxkJ,EAAY/C,KAAK4V,SAAU5V,KAAKwnJ,QAChF,EAEJ,MAAMD,WAAwBtkE,GAC1BziF,YAAYmC,EAAaiT,EAAU4xI,GAC/BnlJ,MAAMM,GACN3C,KAAK4V,SAAWA,EAChB5V,KAAKwnJ,OAASA,CAClB,CACA9pJ,MAAMM,GACF,IAAKgC,KAAKyC,UAAW,CACjB,IAAIuE,EACJ,IACIA,EAAShH,KAAK4V,SAAS5X,EAAKgC,KAAKwnJ,OACrC,OACOC,GAEH,YADAplJ,MAAM3E,MAAM+pJ,EAEhB,CACAznJ,KAAKmD,yBACL,MAAMigF,EAAkB,IAAIP,GAAsB7iF,MAClDA,KAAKqB,IAAI+hF,GACT,MAAMa,EAAoBd,GAAen8E,EAAQo8E,GAC7Ca,IAAsBb,GACtBpjF,KAAKqB,IAAI4iF,EAEjB,CACJ,ECnCJ,MAAMyjE,GACFlnJ,YAAYggB,GACRxgB,KAAKwgB,SAAWA,CACpB,CACAzgB,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAI0jJ,GAAkB5kJ,EAAY/C,KAAKwgB,UACnE,EAEJ,MAAMmnI,WAA0BxlJ,GAC5B3B,YAAYmC,EAAa6d,GACrBne,MAAMM,GACN3C,KAAKqB,IAAI,IAAId,GAAaigB,GAC9B,EChBG,SAASs8H,KACZ,OAAO,SAAkCx4I,GACrC,OAAOA,EAAOF,KAAK,IAAIwjJ,GAAiBtjJ,GAC5C,CACJ,CACA,MAAMsjJ,GACFpnJ,YAAYqnJ,GACR7nJ,KAAK6nJ,YAAcA,CACvB,CACA9nJ,KAAKgD,EAAYuB,GACb,MAAQujJ,eAAgB7nJ,KACxB6nJ,EAAYC,YACZ,MAAMC,EAAa,IAAIC,GAAmBjlJ,EAAY8kJ,GAChDtmJ,EAAe+C,EAAOL,UAAU8jJ,GACtC,OAAKA,EAAWzoJ,SACZyoJ,EAAWE,WAAaJ,EAAYK,WAEjC3mJ,CACX,EAEJ,MAAMymJ,WAA2B7lJ,GAC7B3B,YAAYmC,EAAaklJ,GACrBxlJ,MAAMM,GACN3C,KAAK6nJ,YAAcA,CACvB,CACAhnJ,eACI,MAAQgnJ,eAAgB7nJ,KACxB,IAAK6nJ,EAED,YADA7nJ,KAAKioJ,WAAa,MAGtBjoJ,KAAK6nJ,YAAc,KACnB,MAAM/K,EAAW+K,EAAYC,UAC7B,GAAIhL,GAAY,EAEZ,YADA98I,KAAKioJ,WAAa,MAItB,GADAJ,EAAYC,UAAYhL,EAAW,EAC/BA,EAAW,EAEX,YADA98I,KAAKioJ,WAAa,MAGtB,MAAQA,cAAejoJ,KACjBmoJ,EAAmBN,EAAYO,YACrCpoJ,KAAKioJ,WAAa,KACdE,KAAsBF,GAAcE,IAAqBF,IACzDE,EAAiB1nJ,aAEzB,EC5CG,MAAM4nJ,WAA8BrkJ,GACvCxD,YAAY8D,EAAQgkJ,GAChBjmJ,QACArC,KAAKsE,OAASA,EACdtE,KAAKsoJ,eAAiBA,EACtBtoJ,KAAK8nJ,UAAY,EACjB9nJ,KAAKuoJ,aAAc,CACvB,CACApkJ,WAAWpB,GACP,OAAO/C,KAAKwoJ,aAAavkJ,UAAUlB,EACvC,CACAylJ,aACI,MAAM5iJ,EAAU5F,KAAKyoJ,SACrB,QAAK7iJ,GAAWA,EAAQnD,aACpBzC,KAAKyoJ,SAAWzoJ,KAAKsoJ,kBAElBtoJ,KAAKyoJ,QAChB,CACAP,UACI,IAAID,EAAajoJ,KAAKooJ,YACtB,OAAKH,IACDjoJ,KAAKuoJ,aAAc,EACnBN,EAAajoJ,KAAKooJ,YAAc,IAAI7nJ,GACpC0nJ,EAAW5mJ,IAAIrB,KAAKsE,OACfL,UAAU,IAAIykJ,GAAsB1oJ,KAAKwoJ,aAAcxoJ,QACxDioJ,EAAW3oJ,SACXU,KAAKooJ,YAAc,KACnBH,EAAa1nJ,GAAaiB,QAG3BymJ,CACX,CACAnL,WACI,OAAO6L,KAAsB3oJ,KACjC,EAEG,MAAM4oJ,SACT,MAAMC,EAAmBR,GAAsB/nJ,UAC/C,MAAO,CACH+D,SAAU,CAAE7G,MAAO,MACnBsqJ,UAAW,CAAEtqJ,MAAO,EAAGsrJ,UAAU,GACjCL,SAAU,CAAEjrJ,MAAO,KAAMsrJ,UAAU,GACnCV,YAAa,CAAE5qJ,MAAO,KAAMsrJ,UAAU,GACtC3kJ,WAAY,CAAE3G,MAAOqrJ,EAAiB1kJ,YACtCokJ,YAAa,CAAE/qJ,MAAOqrJ,EAAiBN,YAAaO,UAAU,GAC9DN,WAAY,CAAEhrJ,MAAOqrJ,EAAiBL,YACtCN,QAAS,CAAE1qJ,MAAOqrJ,EAAiBX,SACnCpL,SAAU,CAAEt/I,MAAOqrJ,EAAiB/L,UAE5C,EAba8L,GAcb,MAAMF,WAA8B3iJ,GAChCvF,YAAYmC,EAAaklJ,GACrBxlJ,MAAMM,GACN3C,KAAK6nJ,YAAcA,CACvB,CACA5kJ,OAAOjF,GACHgC,KAAKa,eACLwB,MAAMY,OAAOjF,EACjB,CACAkF,YACIlD,KAAK6nJ,YAAYU,aAAc,EAC/BvoJ,KAAKa,eACLwB,MAAMa,WACV,CACArC,eACI,MAAMgnJ,EAAc7nJ,KAAK6nJ,YACzB,GAAIA,EAAa,CACb7nJ,KAAK6nJ,YAAc,KACnB,MAAMI,EAAaJ,EAAYO,YAC/BP,EAAYC,UAAY,EACxBD,EAAYY,SAAW,KACvBZ,EAAYO,YAAc,KACtBH,GACAA,EAAWxnJ,aAEnB,CACJ,EC5DG,MAAMsoJ,GACTvoJ,YAAY8nJ,EAAgB1yI,GACxB5V,KAAKsoJ,eAAiBA,EACtBtoJ,KAAK4V,SAAWA,CACpB,CACA7V,KAAKgD,EAAYuB,GACb,MAAQsR,YAAa5V,KACf4F,EAAU5F,KAAKsoJ,iBACf/mJ,EAAeqU,EAAShQ,GAAS3B,UAAUlB,GACjDxB,SAAaF,IAAIiD,EAAOL,UAAU2B,IAC3BrE,CACX,EC7BJ,SAASynJ,KACL,OAAO,IAAIhjJ,EACf,CCMA,MAAAowI,GAAA,MAIA,IAAItyG,GA4BJ,SAASC,GAAsBC,GAC3B,OAxBJ,SAASQ,KACL,QAAe7pC,IAAXmpC,KACAA,GAAS,YACE6B,OAAW,KAAa,CAC/B,MAAMsjH,EAAWtjH,YACahrC,IAA1BsuJ,EAAS/kH,eACTJ,GAASmlH,EAAS/kH,aAAaC,aAAa,qBAAsB,CAC9DC,WAAaC,GAAMA,IAG/B,CAEJ,OAAOP,EACX,CAWWU,IAAaJ,WAAWJ,IAASA,CAC5C,CAOA,SAASklH,GAA4BC,GACjC,OAAO1tJ,MAAM,sCAAsC0tJ,KACvD,CAeA,SAASC,GAAmCzkH,GACxC,OAAOlpC,MAAM,wHACyCkpC,MAC1D,CAMA,SAAS0kH,GAAuCC,GAC5C,OAAO7tJ,MAAM,0HACyC6tJ,MAC1D,CAKA,MAAMC,GACF/oJ,YAAYmkC,EAAK6kH,EAASx9I,GACtBhM,KAAK2kC,IAAMA,EACX3kC,KAAKwpJ,QAAUA,EACfxpJ,KAAKgM,QAAUA,CACnB,EAEJ,IAOMy9I,GAAe,MAArB,MAAMA,EACFjpJ,YAAYkpJ,EAAaC,EAAYjqH,EAAUkqH,GAC3C5pJ,KAAK0pJ,YAAcA,EACnB1pJ,KAAK2pJ,WAAaA,EAClB3pJ,KAAK4pJ,cAAgBA,EAIrB5pJ,KAAK6pJ,gBAAkB,IAAIrqI,IAK3Bxf,KAAK8pJ,gBAAkB,IAAItqI,IAE3Bxf,KAAK+pJ,kBAAoB,IAAIvqI,IAE7Bxf,KAAKgqJ,sBAAwB,IAAIxqI,IAEjCxf,KAAKiqJ,uBAAyB,IAAIzqI,IAElCxf,KAAKkqJ,WAAa,GAMlBlqJ,KAAKmqJ,qBAAuB,CAAC,iBAAkB,qBAC/CnqJ,KAAK04F,UAAYh5D,CACrB,CAMA0qH,WAAWjB,EAAUxkH,EAAK34B,GACtB,OAAOhM,KAAKqqJ,sBAAsB,GAAIlB,EAAUxkH,EAAK34B,EACzD,CAMAs+I,kBAAkBnB,EAAUG,EAASt9I,GACjC,OAAOhM,KAAKuqJ,6BAA6B,GAAIpB,EAAUG,EAASt9I,EACpE,CAOAq+I,sBAAsBn9G,EAAWi8G,EAAUxkH,EAAK34B,GAC5C,OAAOhM,KAAKwqJ,kBAAkBt9G,EAAWi8G,EAAU,IAAII,GAAc5kH,EAAK,KAAM34B,GACpF,CASAy+I,mBAAmBC,GACf,OAAA1qJ,KAAKkqJ,WAAWltJ,KAAK0tJ,GACd1qJ,IACX,CAOAuqJ,6BAA6Br9G,EAAWi8G,EAAUG,EAASt9I,GACvD,MAAM2+I,EAAe3qJ,KAAK2pJ,WAAW5+G,SAASV,GAAgBE,KAAM++G,GAEpE,IAAKqB,EACD,MAAMtB,GAAuCC,GAGjD,MAAMsB,EAAiB7mH,GAAsB4mH,GAC7C,OAAO3qJ,KAAKwqJ,kBAAkBt9G,EAAWi8G,EAAU,IAAII,GAAc,GAAIqB,EAAgB5+I,GAC7F,CAKA6+I,cAAclmH,EAAK34B,GACf,OAAOhM,KAAK8qJ,yBAAyB,GAAInmH,EAAK34B,EAClD,CAKA++I,qBAAqBzB,EAASt9I,GAC1B,OAAOhM,KAAKgrJ,gCAAgC,GAAI1B,EAASt9I,EAC7D,CAMA8+I,yBAAyB59G,EAAWvI,EAAK34B,GACrC,OAAOhM,KAAKirJ,qBAAqB/9G,EAAW,IAAIq8G,GAAc5kH,EAAK,KAAM34B,GAC7E,CAMAg/I,gCAAgC99G,EAAWo8G,EAASt9I,GAChD,MAAM2+I,EAAe3qJ,KAAK2pJ,WAAW5+G,SAASV,GAAgBE,KAAM++G,GACpE,IAAKqB,EACD,MAAMtB,GAAuCC,GAGjD,MAAMsB,EAAiB7mH,GAAsB4mH,GAC7C,OAAO3qJ,KAAKirJ,qBAAqB/9G,EAAW,IAAIq8G,GAAc,GAAIqB,EAAgB5+I,GACtF,CAsBAk/I,uBAAuBhhD,EAAOihD,EAAajhD,GACvC,OAAAlqG,KAAKiqJ,uBAAuBpqI,IAAIqqF,EAAOihD,GAChCnrJ,IACX,CAKAorJ,sBAAsBlhD,GAClB,OAAOlqG,KAAKiqJ,uBAAuBh6I,IAAIi6F,IAAUA,CACrD,CAKAmhD,0BAA0BF,GACtB,OAAAnrJ,KAAKmqJ,qBAAuBgB,EACrBnrJ,IACX,CAKAsrJ,yBACI,OAAOtrJ,KAAKmqJ,oBAChB,CASAoB,kBAAkBC,GACd,MAAM7mH,EAAM3kC,KAAK2pJ,WAAW5+G,SAASV,GAAgBM,aAAc6gH,GACnE,IAAK7mH,EACD,MAAMykH,GAAmCoC,GAE7C,MAAMC,EAAazrJ,KAAK+pJ,kBAAkB95I,IAAI00B,GAC9C,OAAI8mH,EACO9pE,GAAG+pE,GAASD,IAEhBzrJ,KAAK2rJ,uBAAuB,IAAIpC,GAAciC,EAAS,OAAOrmJ,KAAK++E,GAAImP,GAAOrzF,KAAK+pJ,kBAAkBlqI,IAAI8kB,EAAK0uD,IAAOnzF,GAAImzF,GAAOq4D,GAASr4D,IACpJ,CASAu4D,gBAAgBvrJ,EAAM6sC,EAAY,IAC9B,MAAMziC,EAAMohJ,GAAQ3+G,EAAW7sC,GAC/B,IAAIzB,EAASoB,KAAK6pJ,gBAAgB55I,IAAIxF,GAEtC,GAAI7L,EACA,OAAOoB,KAAK8rJ,kBAAkBltJ,GAIlC,GADAA,EAASoB,KAAK+rJ,4BAA4B7+G,EAAW7sC,GACjDzB,EACA,OAAAoB,KAAK6pJ,gBAAgBhqI,IAAIpV,EAAK7L,GACvBoB,KAAK8rJ,kBAAkBltJ,GAGlC,MAAMotJ,EAAiBhsJ,KAAK8pJ,gBAAgB75I,IAAIi9B,GAChD,OAAI8+G,EACOhsJ,KAAKisJ,0BAA0B5rJ,EAAM2rJ,GAEzCxR,GAAW0O,GAA4Bz+I,GAClD,CACAiR,cACI1b,KAAKkqJ,WAAa,GAClBlqJ,KAAK6pJ,gBAAgBtpI,QACrBvgB,KAAK8pJ,gBAAgBvpI,QACrBvgB,KAAK+pJ,kBAAkBxpI,OAC3B,CAIAurI,kBAAkBltJ,GACd,OAAIA,EAAO4qJ,QAEA7nE,GAAG+pE,GAAS1rJ,KAAKksJ,sBAAsBttJ,KAIvCoB,KAAK2rJ,uBAAuB/sJ,GAAQuG,KAAKjF,GAAImzF,GAAOq4D,GAASr4D,IAE5E,CASA44D,0BAA0B5rJ,EAAM2rJ,GAG5B,MAAMG,EAAYnsJ,KAAKosJ,+BAA+B/rJ,EAAM2rJ,GAC5D,GAAIG,EAIA,OAAOxqE,GAAGwqE,GAId,MAAME,EAAuBL,EACxB7kJ,OAAOmlJ,IAAkBA,EAAc9C,SACvCtpJ,IAAIosJ,GACEtsJ,KAAKusJ,0BAA0BD,GAAennJ,KNlW1D,SAASqnJ,GAAW52I,GACvB,OAAO,SAAoCtR,GACvC,MAAMD,EAAW,IAAIijJ,GAAc1xI,GAC7B4xI,EAASljJ,EAAOF,KAAKC,GAC3B,OAAQA,EAASmjJ,OAASA,CAC9B,CACJ,CM4VsEgF,CAAYxuJ,IAIlE,MAAMsQ,EAAe,yBAHTtO,KAAK2pJ,WAAW5+G,SAASV,GAAgBM,aAAc2hH,EAAc3nH,gBAGpB3mC,EAAIiC,UACjE,OAAAD,KAAK4pJ,cAAc3uH,YAAY,IAAIx/B,MAAM6S,IAClCqzE,GAAG,KAAI,KAKtB,OAAO+oC,GAAS2hC,GAAsBlnJ,KAAKjF,GAAI,KAC3C,MAAMusJ,EAAYzsJ,KAAKosJ,+BAA+B/rJ,EAAM2rJ,GAE5D,IAAKS,EACD,MAAMvD,GAA4B7oJ,GAEtC,OAAOosJ,IAEf,CAMAL,+BAA+BjD,EAAU6C,GAErC,QAASxvJ,EAAIwvJ,EAAepwJ,OAAS,EAAGY,GAAK,EAAGA,IAAK,CACjD,MAAMoC,EAASotJ,EAAexvJ,GAK9B,GAAIoC,EAAO4qJ,SAAW5qJ,EAAO4qJ,QAAQrpJ,WAAWuB,QAAQynJ,IAAY,EAAI,CACpE,MAAM91D,EAAMrzF,KAAKksJ,sBAAsBttJ,GACjC6tJ,EAAYzsJ,KAAK0sJ,uBAAuBr5D,EAAK81D,EAAUvqJ,EAAOoN,SACpE,GAAIygJ,EACA,OAAOA,CAEf,CACJ,CACA,OAAO,IACX,CAKAd,uBAAuB/sJ,GACnB,OAAOoB,KAAK2sJ,WAAW/tJ,GAAQuG,KAAK++E,GAAIslE,GAAY5qJ,EAAO4qJ,QAAUA,GAAWtpJ,GAAI,IAAMF,KAAKksJ,sBAAsBttJ,IACzH,CAKA2tJ,0BAA0B3tJ,GACtB,OAAIA,EAAO4qJ,QACA7nE,GAAG,MAEP3hF,KAAK2sJ,WAAW/tJ,GAAQuG,KAAK++E,GAAIslE,GAAY5qJ,EAAO4qJ,QAAUA,GACzE,CAMAkD,uBAAuBE,EAASzD,EAAUn9I,GAGtC,MAAM6gJ,EAAaD,EAAQ1sH,cAAc,QAAQipH,OACjD,IAAK0D,EACD,OAAO,KAIX,MAAMC,EAAcD,EAAWhM,WAAU,GAIzC,GAHAiM,EAAYlqH,gBAAgB,MAGe,QAAvCkqH,EAAYzjH,SAAS9zB,cACrB,OAAOvV,KAAK+sJ,kBAAkBD,EAAa9gJ,GAK/C,GAA2C,WAAvC8gJ,EAAYzjH,SAAS9zB,cACrB,OAAOvV,KAAK+sJ,kBAAkB/sJ,KAAKgtJ,cAAcF,GAAc9gJ,GAOnE,MAAMqnF,EAAMrzF,KAAKitJ,sBAAsBlpH,GAAsB,gBAE7DsvD,SAAIjkD,YAAY09G,GACT9sJ,KAAK+sJ,kBAAkB15D,EAAKrnF,EACvC,CAIAihJ,sBAAsBtnD,GAClB,MAAMunD,EAAMltJ,KAAK04F,UAAUtyD,cAAc,OACzC8mH,EAAI7mH,UAAYs/D,EAChB,MAAMtS,EAAM65D,EAAIhtH,cAAc,OAE9B,IAAKmzD,EACD,MAAM53F,MAAM,uBAEhB,OAAO43F,CACX,CAIA25D,cAAc1kH,GACV,MAAM+qD,EAAMrzF,KAAKitJ,sBAAsBlpH,GAAsB,gBACvD2E,EAAaJ,EAAQI,WAE3B,QAASlsC,EAAI,EAAGA,EAAIksC,EAAW9sC,OAAQY,IAAK,CACxC,MAAQ6D,OAAM7C,SAAUkrC,EAAWlsC,GACtB,OAAT6D,GACAgzF,EAAIl/E,aAAa9T,EAAM7C,EAE/B,CACA,QAAShB,EAAI,EAAGA,EAAI8rC,EAAQ8yC,WAAWx/E,OAAQY,IACvC8rC,EAAQ8yC,WAAW5+E,GAAGorC,WAAa5nC,KAAK04F,UAAU5wD,cAClDurD,EAAIjkD,YAAY9G,EAAQ8yC,WAAW5+E,GAAGqkJ,WAAU,IAGxD,OAAOxtD,CACX,CAIA05D,kBAAkB15D,EAAKrnF,GACnBqnF,SAAIl/E,aAAa,MAAO,IACxBk/E,EAAIl/E,aAAa,SAAU,QAC3Bk/E,EAAIl/E,aAAa,QAAS,QAC1Bk/E,EAAIl/E,aAAa,sBAAuB,iBACxCk/E,EAAIl/E,aAAa,YAAa,SAC1BnI,GAAWA,EAAQmhJ,SACnB95D,EAAIl/E,aAAa,UAAWnI,EAAQmhJ,SAEjC95D,CACX,CAKAs5D,WAAWS,GACP,MAAQzoH,IAAK6mH,EAASx/I,WAAYohJ,EAC5BhlE,EAAkBp8E,GAASo8E,kBAAmB,EACpD,IAAKpoF,KAAK0pJ,YACN,MA/bZ,SAAS2D,KACL,OAAO5xJ,MAAM,mHAEjB,CA4bkB4xJ,GAGV,GAAe,MAAX7B,EACA,MAAM/vJ,MAAM,+BAA+B+vJ,OAE/C,MAAM7mH,EAAM3kC,KAAK2pJ,WAAW5+G,SAASV,GAAgBM,aAAc6gH,GAEnE,IAAK7mH,EACD,MAAMykH,GAAmCoC,GAK7C,MAAM8B,EAAkBttJ,KAAKgqJ,sBAAsB/5I,IAAI00B,GACvD,GAAI2oH,EACA,OAAOA,EAEX,MAAMljE,EAAMpqF,KAAK0pJ,YAAYz5I,IAAI00B,EAAK,CAAE0jD,aAAc,OAAQD,oBAAmBjjF,KAAKjF,GAAImzF,GAG/EtvD,GAAsBsvD,IL9gBlC,SAASk6D,GAAS/sI,GACrB,OAAQlc,GAAWA,EAAOF,KAAK,IAAIsjJ,GAAgBlnI,GACvD,CK6gBY+sI,CAAS,IAAMvtJ,KAAKgqJ,sBAAsBh0H,OAAO2O,ID3gBtD,SAAS6oH,KACZ,OAAQlpJ,GAAWw4I,KDNhB,SAAS2Q,GAAUC,EAAyB93I,GAC/C,OAAO,SAAmCtR,GACtC,IAAIgkJ,EASJ,GAPIA,EADmC,mBAA5BoF,EACUA,EAGA,WACb,OAAOA,CACX,EAEoB,mBAAb93I,EACP,OAAOtR,EAAOF,KAAK,IAAI2kJ,GAAkBT,EAAgB1yI,IAE7D,MAAMiyI,EAAcjuJ,OAAOyD,OAAOiH,EAAQskJ,IAC1Cf,SAAYvjJ,OAASA,EACrBujJ,EAAYS,eAAiBA,EACtBT,CACX,CACJ,CCbkC4F,CAAUzE,GAAVyE,CAA+BnpJ,GACjE,CCygBoEkpJ,IAC5D,OAAAxtJ,KAAKgqJ,sBAAsBnqI,IAAI8kB,EAAKylD,GAC7BA,CACX,CAOAogE,kBAAkBt9G,EAAWi8G,EAAUvqJ,GACnC,OAAAoB,KAAK6pJ,gBAAgBhqI,IAAIgsI,GAAQ3+G,EAAWi8G,GAAWvqJ,GAChDoB,IACX,CAMAirJ,qBAAqB/9G,EAAWtuC,GAC5B,MAAM+uJ,EAAkB3tJ,KAAK8pJ,gBAAgB75I,IAAIi9B,GACjD,OAAIygH,EACAA,EAAgB3wJ,KAAK4B,GAGrBoB,KAAK8pJ,gBAAgBjqI,IAAIqtB,EAAW,CAACtuC,IAElCoB,IACX,CAEAksJ,sBAAsBttJ,GAClB,IAAKA,EAAOgvJ,WAAY,CACpB,MAAMv6D,EAAMrzF,KAAKitJ,sBAAsBruJ,EAAO4qJ,SAC9CxpJ,KAAK+sJ,kBAAkB15D,EAAKz0F,EAAOoN,SACnCpN,EAAOgvJ,WAAav6D,CACxB,CACA,OAAOz0F,EAAOgvJ,UAClB,CAEA7B,4BAA4B7+G,EAAW7sC,GACnC,QAAS7D,EAAI,EAAGA,EAAIwD,KAAKkqJ,WAAWtuJ,OAAQY,IAAK,CAC7C,MAAMwK,EAAShH,KAAKkqJ,WAAW1tJ,GAAG6D,EAAM6sC,GACxC,GAAIlmC,EACA,OAAO6mJ,GAAqB7mJ,GACtB,IAAIuiJ,GAAcviJ,EAAO29B,IAAK,KAAM39B,EAAOgF,SAC3C,IAAIu9I,GAAcviJ,EAAQ,KAExC,CAEJ,QACShH,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F89E,GAAVnxF,EAA2CuxD,GAAa,GAAxDvxD,EAAqFyuF,IAArFzuF,EAAiH94B,GAAQ,GAAzH84B,EAAsJA,IAAe,CAA+C,QAClTt4D,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACY4+I,EAAe39I,QAAf29I,EAAe37I,UAAAjC,WAAc,QAAW,EAChK,OAjeK49I,CAAe,KA+frB,SAASiC,GAASr4D,GACd,OAAOA,EAAIwtD,WAAU,EACzB,CAEA,SAASgL,GAAQ3+G,EAAW7sC,GACxB,OAAO6sC,EAAY,IAAM7sC,CAC7B,CACA,SAASwtJ,GAAqBrwJ,GAC1B,SAAUA,EAAMmnC,MAAOnnC,EAAMwO,QACjC,CAGA,MAAM8hJ,GAA2B,IAAI/gJ,EAAe,4BAM9CghJ,GAAoB,IAAIhhJ,EAAe,oBAAqB,CAC9DlB,WAAY,OACZC,QAGJ,SAASkiJ,KACL,MAAMt1D,EAAYvoF,EAAOqvB,IACnByuH,EAAYv1D,EAAYA,EAAUppE,SAAW,KACnD,MAAO,CAGH4+H,YAAaA,IAAOD,EAAYA,EAAUr+D,SAAWq+D,EAAUE,OAAS,GAEhF,IAEMC,GAAoB,CACtB,YACA,gBACA,MACA,SACA,OACA,SACA,SACA,eACA,aACA,aACA,OACA,UAGEC,GAA2BD,GAAkBluJ,IAAIwW,GAAQ,IAAIA,MAAStW,KAAK,MAE3EkuJ,GAAiB,4BACvB,IAgCMC,GAAO,MAAb,MAAMA,EAQF,SAAIvb,GACA,OAAOhzI,KAAKwuJ,QAAUxuJ,KAAKyuJ,aAC/B,CACA,SAAIzb,CAAMx1I,GACNwC,KAAKwuJ,OAAShxJ,CAClB,CAEA,WAAIkxJ,GACA,OAAO1uJ,KAAK2uJ,QAChB,CACA,WAAID,CAAQlxJ,GACJA,IAAUwC,KAAK2uJ,WACXnxJ,EACAwC,KAAK4uJ,eAAepxJ,GAEfwC,KAAK2uJ,UACV3uJ,KAAK6uJ,mBAET7uJ,KAAK2uJ,SAAWnxJ,EAExB,CAEA,WAAIsxJ,GACA,OAAO9uJ,KAAK+uJ,QAChB,CACA,WAAID,CAAQtxJ,GACR,MAAMO,EAAWiC,KAAKgvJ,kBAAkBxxJ,GACpCO,IAAaiC,KAAK+uJ,WAClB/uJ,KAAK+uJ,SAAWhxJ,EAChBiC,KAAKivJ,yBAEb,CAEA,YAAIC,GACA,OAAOlvJ,KAAKmvJ,SAChB,CACA,YAAID,CAAS1xJ,GACT,MAAMO,EAAWiC,KAAKgvJ,kBAAkBxxJ,GACpCO,IAAaiC,KAAKmvJ,YAClBnvJ,KAAKmvJ,UAAYpxJ,EACjBiC,KAAKivJ,yBAEb,CACAzuJ,YAAYwqH,EAAaokC,EAAeC,EAAYpB,EAAWrE,EAAenzC,GAC1Ez2G,KAAKgrH,YAAcA,EACnBhrH,KAAKovJ,cAAgBA,EACrBpvJ,KAAKiuJ,UAAYA,EACjBjuJ,KAAK4pJ,cAAgBA,EAKrB5pJ,KAAKsvJ,QAAS,EACdtvJ,KAAKuvJ,sBAAwB,GAE7BvvJ,KAAKwvJ,kBAAoBjvJ,GAAaiB,MAClCi1G,IACIA,EAASu8B,QACThzI,KAAKgzI,MAAQhzI,KAAKyuJ,cAAgBh4C,EAASu8B,OAE3Cv8B,EAASq4C,UACT9uJ,KAAK8uJ,QAAUr4C,EAASq4C,UAK3BO,GACDrkC,EAAY3uF,cAAcloB,aAAa,cAAe,OAE9D,CAcAs7I,eAAetG,GACX,IAAKA,EACD,MAAO,CAAC,GAAI,IAEhB,MAAM3nI,EAAQ2nI,EAAS5mH,MAAM,KAC7B,OAAQ/gB,EAAM5lB,QACV,KAAK,EACD,MAAO,CAAC,GAAI4lB,EAAM,IACtB,KAAK,EACD,OAAOA,EACX,QACI,MAAM/lB,MAAM,uBAAuB0tJ,MAE/C,CACAp1H,WAGI/zB,KAAKivJ,wBACT,CACA9hI,qBACI,MAAMuiI,EAAiB1vJ,KAAK2vJ,gCAC5B,GAAID,GAAkBA,EAAez5H,KAAM,CACvC,MAAM25H,EAAU5vJ,KAAKiuJ,UAAUC,cAO3B0B,IAAY5vJ,KAAK6vJ,gBACjB7vJ,KAAK6vJ,cAAgBD,EACrB5vJ,KAAK8vJ,yBAAyBF,GAEtC,CACJ,CACAl0I,cACI1b,KAAKwvJ,kBAAkB/uJ,cACnBT,KAAK2vJ,iCACL3vJ,KAAK2vJ,gCAAgCpvI,OAE7C,CACAwvI,iBACI,OAAQ/vJ,KAAK0uJ,OACjB,CACAsB,eAAe38D,GACXrzF,KAAK6uJ,mBAGL,MAAMp7H,EAAOzzB,KAAKiuJ,UAAUC,cAC5BluJ,KAAK6vJ,cAAgBp8H,EACrBzzB,KAAKiwJ,qCAAqC58D,GAC1CrzF,KAAK8vJ,yBAAyBr8H,GAC9BzzB,KAAKgrH,YAAY3uF,cAAc+S,YAAYikD,EAC/C,CACAw7D,mBACI,MAAMqB,EAAgBlwJ,KAAKgrH,YAAY3uF,cACvC,IAAI8zH,EAAaD,EAAc90E,WAAWx/E,OAM1C,IALIoE,KAAK2vJ,iCACL3vJ,KAAK2vJ,gCAAgCpvI,QAIlC4vI,KAAc,CACjB,MAAMvkI,EAAQskI,EAAc90E,WAAW+0E,IAGhB,IAAnBvkI,EAAMgc,UAAmD,QAAjChc,EAAMyd,SAAS9zB,gBACvCqW,EAAM9qB,QAEd,CACJ,CACAmuJ,yBACI,IAAKjvJ,KAAK+vJ,iBACN,OAEJ,MAAM9jF,EAAOjsE,KAAKgrH,YAAY3uF,cACxB+zH,GAAkBpwJ,KAAK8uJ,QACvB9uJ,KAAKovJ,cAAchE,sBAAsBprJ,KAAK8uJ,SAASvsH,MAAM,MAC7DviC,KAAKovJ,cAAc9D,0BAA0BnkJ,OAAOoM,GAAaA,EAAU3X,OAAS,GAC1FoE,KAAKuvJ,sBAAsB1qJ,QAAQ0O,GAAa04D,EAAKqpB,UAAUx0F,OAAOyS,IACtE68I,EAAevrJ,QAAQ0O,GAAa04D,EAAKqpB,UAAUj0F,IAAIkS,IACvDvT,KAAKuvJ,sBAAwBa,EACzBpwJ,KAAKkvJ,WAAalvJ,KAAKqwJ,yBACtBD,EAAetyF,SAAS,uBACrB99D,KAAKqwJ,wBACLpkF,EAAKqpB,UAAUx0F,OAAOd,KAAKqwJ,wBAE3BrwJ,KAAKkvJ,UACLjjF,EAAKqpB,UAAUj0F,IAAIrB,KAAKkvJ,UAE5BlvJ,KAAKqwJ,uBAAyBrwJ,KAAKkvJ,SAE3C,CAMAF,kBAAkBxxJ,GACd,MAAwB,iBAAVA,EAAqBA,EAAM2Z,OAAOorB,MAAM,KAAK,GAAK/kC,CACpE,CAMAsyJ,yBAAyBr8H,GACrB,MAAMm/D,EAAW5yF,KAAK2vJ,gCAClB/8D,GACAA,EAAS/tF,QAAQ,CAACkP,EAAOu0B,KACrBv0B,EAAMlP,QAAQ6R,IACV4xB,EAAQn0B,aAAauC,EAAKrW,KAAM,QAAQozB,KAAQ/c,EAAKlZ,UAAS,EACjE,EAGb,CAKAyyJ,qCAAqC3nH,GACjC,MAAMgoH,EAAsBhoH,EAAQuqD,iBAAiBw7D,IAC/Cz7D,EAAY5yF,KAAK2vJ,gCACnB3vJ,KAAK2vJ,iCAAmC,IAAInwI,IAChD,QAAShjB,EAAI,EAAGA,EAAI8zJ,EAAoB10J,OAAQY,IAC5C4xJ,GAAkBvpJ,QAAQ6R,IACtB,MAAM65I,EAAuBD,EAAoB9zJ,GAC3CgB,EAAQ+yJ,EAAqBpwH,aAAazpB,GAC1C8vB,EAAQhpC,EAAQA,EAAMgpC,MAAM8nH,IAAkB,KACpD,GAAI9nH,EAAO,CACP,IAAIkC,EAAakqD,EAAS3iF,IAAIsgJ,GACzB7nH,IACDA,EAAa,GACbkqD,EAAS/yE,IAAI0wI,EAAsB7nH,IAEvCA,EAAW1rC,KAAK,CAAEqD,KAAMqW,EAAMlZ,MAAOgpC,EAAM,IAC/C,GAGZ,CAEAooH,eAAe4B,GAIX,GAHAxwJ,KAAKywJ,cAAgB,KACrBzwJ,KAAK0wJ,SAAW,KAChB1wJ,KAAKwvJ,kBAAkB/uJ,cACnB+vJ,EAAS,CACT,MAAOtjH,EAAWi8G,GAAYnpJ,KAAKyvJ,eAAee,GAC9CtjH,IACAltC,KAAKywJ,cAAgBvjH,GAErBi8G,IACAnpJ,KAAK0wJ,SAAWvH,GAEpBnpJ,KAAKwvJ,kBAAoBxvJ,KAAKovJ,cACzBxD,gBAAgBzC,EAAUj8G,GAC1B/nC,KAAKyC,GAAK,IACV3D,UAAUovF,GAAOrzF,KAAKgwJ,eAAe38D,GAAOr1F,IAE7CgC,KAAK4pJ,cAAc3uH,YAAY,IAAIx/B,MADd,yBAAyByxC,KAAai8G,MAAanrJ,EAAIiC,WACtB,EAE9D,CACJ,QACSD,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F4iF,GAhXVj2F,EAgXmCA,IAhXnCA,EAgX6DmxF,IAhX7DnxF,GAgXyF,eAhXzFA,EAgXoIy1F,IAhXpIz1F,EAgXkKA,IAhXlKA,EAgX8Lw1F,GAAwB,IAA8D,QAClX9tJ,KAAKsN,UAjXyFgrD,GAAE,CAAA7sD,KAiXJ8iJ,EAAOh1I,UAAA,eAAAE,UAAA,QAAoN,MAAK,4BAAAD,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,IAjX9NskB,GAAE,qBAiXJlF,EAAA28F,iBAAmB,OAAS,MAjX1Bz3F,CAiX+B,qBAAAlF,EAAAs9F,UAAAt9F,EAAA87F,SAjX/B52F,CAiX+B,0BAAAlF,EAAAq9F,eAAAr9F,EAAA07F,QAjX/Bx2F,CAiX+B,WAAjClF,EAAA28F,iBAAgB38F,EAAA87F,SAAc,MAjX5B52F,GAAElF,EAAA4/E,MAiXI,OAAM5/E,EAAA4/E,MAAW,IAjXvB16E,GAAE,kBAAAlF,EAAAk8F,OAAFh3F,CAiXK,oBAAG,YAAHlF,EAAA4/E,OAA0B,WAAd5/E,EAAA4/E,OAAoC,SAAd5/E,EAAA4/E,OAAlC,EAAAp5H,OAAA,CAAAo5H,MAAA,QAAAsc,OAAA,qBAAmGrzE,IAAgByyE,QAAA,UAAAI,QAAA,UAAAI,SAAA,YAAAx1I,SAAA,YAAAnB,YAAA,EAAAyD,SAAA,CAjXxHs8C,OAAErgD,mBAAAm+H,GAAAv+H,MAAA,EAAAC,KAAA,EAAAC,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,IAAFskB,QAAE,GAiX8vB,EAAA1/C,OAAA,u3BAAAD,cAAA,EAAAR,gBAAA,GAAo/B,EAC91D,OA/PKo2I,CAAO,KAqSPoC,GAAa,MAAnB,MAAMA,SACO3wJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FglF,EAAa,CAAoD,QACzK3wJ,KAAK4N,UA1ZyF0qD,GAAE,CAAA7sD,KA0ZSklJ,GAA4F,QACrM3wJ,KAAK4M,UA3ZyF0rD,GAAE,CAAApsD,QAAA,CA2ZkCmiI,GAAiBA,KAAqB,EACpL,OAJKsiB,CAAa,KCj9BnB,MAAMC,GAAkB5vB,GAAgC,CAAE6G,SAAS,IACnE,IAKMgpB,GAAe,MAArB,MAAMA,EACFrwJ,YAAY4kI,EAAWh7D,GACnBpqE,KAAKolI,UAAYA,EACjBplI,KAAKoqE,QAAUA,EACfpqE,KAAK8wJ,mBAAqB,IAAItxI,GAClC,CACAwqH,QAAQlG,GACJ,IAAK9jI,KAAKolI,UAAUpF,UAChB,OAAOx+H,GAEX,MAAM8mC,EAAUu7F,GAAcC,GACxB4G,EAAO1qI,KAAK8wJ,mBAAmB7gJ,IAAIq4B,GACzC,GAAIoiG,EACA,OAAOA,EAAK9kI,QAEhB,MAAMoB,EAAS,IAAIhB,GACb+qJ,EAAW,4BACXrhF,EAAavoD,IAIa,kCAAxBA,EAAM6pI,eACL1oH,EAAQgtD,UAAU6pB,SAAS4xC,GAIC,gCAAxB5pI,EAAM6pI,eACX1oH,EAAQgtD,UAAU6pB,SAAS4xC,KAC3BzoH,EAAQgtD,UAAUx0F,OAAOiwJ,GACzB/wJ,KAAKoqE,QAAQ7wC,IAAI,IAAMvyB,EAAOzH,KAAK,CAAEoL,OAAQwc,EAAMxc,OAAQsmJ,cAAc,OANzE3oH,EAAQgtD,UAAUj0F,IAAI0vJ,GACtB/wJ,KAAKoqE,QAAQ7wC,IAAI,IAAMvyB,EAAOzH,KAAK,CAAEoL,OAAQwc,EAAMxc,OAAQsmJ,cAAc,KAKQ,EAGzF,OAAAjxJ,KAAKoqE,QAAQlvC,kBAAkB,KAC3BoN,EAAQumD,iBAAiB,iBAAkBnf,EAAUkhF,IACrDtoH,EAAQgtD,UAAUj0F,IAAI,oCAAmC,GAE7DrB,KAAK8wJ,mBAAmBjxI,IAAIyoB,EAAS,CACjC1iC,QAASoB,EACTkqJ,SAAUA,KACN5oH,EAAQwmD,oBAAoB,iBAAkBpf,EAAUkhF,GAAe,IAGxE5pJ,CACX,CACA4jI,eAAe9G,GACX,MAAMx7F,EAAUu7F,GAAcC,GACxB4G,EAAO1qI,KAAK8wJ,mBAAmB7gJ,IAAIq4B,GACrCoiG,IACAA,EAAKwmB,WACLxmB,EAAK9kI,QAAQpG,WACb8oC,EAAQgtD,UAAUx0F,OAAO,qCACzBwnC,EAAQgtD,UAAUx0F,OAAO,6BACzBd,KAAK8wJ,mBAAmB96H,OAAOsS,GAEvC,CACA5sB,cACI1b,KAAK8wJ,mBAAmBjsJ,QAAQ,CAAC0mI,EAAOjjG,IAAYtoC,KAAK4qI,eAAetiG,GAC5E,QACStoC,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FklF,GAAVv4F,EAA2CuxD,IAA3CvxD,EAAmEA,GAAS,CAA+C,QACzNt4D,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACYgmJ,EAAe/kJ,QAAf+kJ,EAAe/iJ,UAAAjC,WAAc,QAAW,EAChK,OA5DKglJ,CAAe,KAoYfM,GAAe,MAArB,MAAMA,SACOnxJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FwlF,EAAe,CAAoD,QAC3KnxJ,KAAK4N,UA5UyF0qD,GAAE,CAAA7sD,KA4US0lJ,GAA8G,QACvNnxJ,KAAK4M,UA7UyF0rD,GAAE,GA6U6B,EACzI,OAJK64F,CAAe,KCzXrB,MAAMC,GAA2B,IAAIrkJ,EAAe,4BAG9CskJ,GAA0B,CAC5B,SACA,WACA,OACA,SACA,QACA,QACA,QACA,QACA,UAEJ,IAAIla,GAAe,EACbma,GAAQ,MAAd,MAAMA,EAKF,YAAInvD,GACA,OAAOniG,KAAKq1I,SAChB,CACA,YAAIlzC,CAAS3kG,GACTwC,KAAKq1I,UAAY1R,GAAsBnmI,GAGnCwC,KAAKglJ,UACLhlJ,KAAKglJ,SAAU,EACfhlJ,KAAKukJ,aAAahlJ,OAE1B,CAKA,MAAIyZ,GACA,OAAOhZ,KAAKuxJ,GAChB,CACA,MAAIv4I,CAAGxb,GACHwC,KAAKuxJ,IAAM/zJ,GAASwC,KAAKwxJ,IAC7B,CAKA,YAAIrgG,GACA,OAAOnxD,KAAKyxJ,WAAazxJ,KAAKivI,WAAW73C,SAAS24B,aAAahD,GAAW57D,YAAa,CAC3F,CACA,YAAIA,CAAS3zD,GACTwC,KAAKyxJ,UAAY9tB,GAAsBnmI,EAC3C,CAEA,QAAIiO,GACA,OAAOzL,KAAK0xJ,KAChB,CACA,QAAIjmJ,CAAKjO,GACLwC,KAAK0xJ,MAAQl0J,GAAS,OACtBwC,KAAK2xJ,iBAIA3xJ,KAAK4xJ,aAAehxB,KAAyB3iH,IAAIje,KAAK0xJ,SACvD1xJ,KAAKgrH,YAAY3uF,cAAc5wB,KAAOzL,KAAK0xJ,OAE/C1xJ,KAAK6xJ,6BACT,CAEA,qBAAIC,GACA,OAAO9xJ,KAAK+xJ,mBAAmBviB,OACnC,CACA,qBAAIsiB,CAAkBt0J,GAClBwC,KAAK+xJ,mBAAmBviB,QAAUhyI,CACtC,CAKA,SAAIA,GACA,OAAOwC,KAAKgyJ,oBAAoBx0J,KACpC,CACA,SAAIA,CAAMA,GACFA,IAAUwC,KAAKxC,QACfwC,KAAKgyJ,oBAAoBx0J,MAAQA,EACjCwC,KAAKukJ,aAAahlJ,OAE1B,CAEA,YAAI0yJ,GACA,OAAOjyJ,KAAKkyJ,SAChB,CACA,YAAID,CAASz0J,GACTwC,KAAKkyJ,UAAYvuB,GAAsBnmI,EAC3C,CAEA,cAAI6xI,GACA,OAAOrvI,KAAK+xJ,mBAAmB1iB,UACnC,CACA,cAAIA,CAAW7xI,GACXwC,KAAK+xJ,mBAAmB1iB,WAAa7xI,CACzC,CACAgD,YAAYwqH,EAAaoa,EAAW6J,EAAWkjB,EAAYC,EAAiBC,EAA0BC,EAAoBC,EAAkBnoF,EAG5IooF,GACIxyJ,KAAKgrH,YAAcA,EACnBhrH,KAAKolI,UAAYA,EACjBplI,KAAKivI,UAAYA,EACjBjvI,KAAKuyJ,iBAAmBA,EACxBvyJ,KAAKoqE,QAAUA,EACfpqE,KAAKwyJ,WAAaA,EAClBxyJ,KAAKwxJ,KAAO,aAAara,KACzBn3I,KAAKyyJ,mCAAoC,EAKzCzyJ,KAAKglJ,SAAU,EAKfhlJ,KAAKukJ,aAAe,IAAIv+I,GAKxBhG,KAAKskJ,YAAc,YAKnBtkJ,KAAKknJ,YAAa,EAClBlnJ,KAAKq1I,WAAY,EACjBr1I,KAAK0xJ,MAAQ,OACb1xJ,KAAKkyJ,WAAY,EACjBlyJ,KAAK0yJ,sBAAwB,CACzB,OACA,WACA,iBACA,QACA,OACA,QACFvrJ,OAAOw/B,GAAKi6F,KAAyB3iH,IAAI0oB,IAC3C3mC,KAAK2yJ,kBAAqBxrI,IACtB,MAAMsgB,EAAKtgB,EAAMxc,QAOZ88B,EAAGjqC,OAA+B,IAAtBiqC,EAAGmrH,gBAA4C,IAApBnrH,EAAGorH,eAK3CprH,EAAGqrH,kBAAkB,EAAG,GACxBrrH,EAAGqrH,kBAAkB,EAAG,GAAC,EAGjC9yJ,KAAK+yJ,0BAA4B,OAKjC,MAAMzqH,EAAUtoC,KAAKgrH,YAAY3uF,cAC3BgN,EAAWf,EAAQe,SAAS9zB,cAGlCvV,KAAKgyJ,oBAAsBM,GAAsBhqH,EACjDtoC,KAAKgzJ,qBAAuBhzJ,KAAKxC,MAEjCwC,KAAKgZ,GAAKhZ,KAAKgZ,GAIXosH,EAAU7E,KACVn2D,EAAQlvC,kBAAkB,KACtB8vF,EAAY3uF,cAAcwyD,iBAAiB,QAAS7uF,KAAK2yJ,kBAAiB,GAGlF3yJ,KAAK+xJ,mBAAqB,IAAIhjB,GAAmBsjB,EAA0BpjB,EAAWmjB,EAAiBD,EAAYnyJ,KAAKukJ,cACxHvkJ,KAAKizJ,WAAajzJ,KAAKolI,UAAUpF,UACjChgI,KAAKkzJ,gBAA+B,WAAb7pH,EACvBrpC,KAAK4xJ,YAA2B,aAAbvoH,EACnBrpC,KAAKmzJ,iBAAmBX,EACpBxyJ,KAAKkzJ,kBACLlzJ,KAAKskJ,YAAch8G,EAAQ8qH,SACrB,6BACA,oBAEd,CACAlmI,kBACQltB,KAAKolI,UAAUpF,WACfhgI,KAAKuyJ,iBAAiBvoB,QAAQhqI,KAAKgrH,YAAY3uF,eAAep4B,UAAUkjB,IACpEnnB,KAAKknJ,WAAa//H,EAAM8pI,aACxBjxJ,KAAKukJ,aAAahlJ,MAAK,EAGnC,CACAinB,cACIxmB,KAAKukJ,aAAahlJ,MACtB,CACAmc,cACI1b,KAAKukJ,aAAa/kJ,WACdQ,KAAKolI,UAAUpF,WACfhgI,KAAKuyJ,iBAAiB3nB,eAAe5qI,KAAKgrH,YAAY3uF,eAEtDr8B,KAAKolI,UAAU7E,KACfvgI,KAAKgrH,YAAY3uF,cAAcyyD,oBAAoB,QAAS9uF,KAAK2yJ,mBAEjE3yJ,KAAKyyJ,mCACLzyJ,KAAKgrH,YAAY3uF,cAAcyyD,oBAAoB,QAAS9uF,KAAK+yJ,0BAEzE,CACA/+H,YACQh0B,KAAKivI,YAILjvI,KAAKsvI,mBAK2B,OAA5BtvI,KAAKivI,UAAU9sC,UAAqBniG,KAAKivI,UAAU9sC,WAAaniG,KAAKmiG,WACrEniG,KAAKmiG,SAAWniG,KAAKivI,UAAU9sC,SAC/BniG,KAAKukJ,aAAahlJ,SAM1BS,KAAKqzJ,yBAGLrzJ,KAAKszJ,wBACT,CAEAhoB,MAAMt/H,GACFhM,KAAKgrH,YAAY3uF,cAAcivG,MAAMt/H,EACzC,CAEAsjI,mBACItvI,KAAK+xJ,mBAAmBziB,kBAC5B,CAEAikB,cAAcC,GACNA,IAAcxzJ,KAAKglJ,UACnBhlJ,KAAKglJ,QAAUwO,EACfxzJ,KAAKukJ,aAAahlJ,OAE1B,CACAk0J,WAOI,CAGJJ,yBACI,MAAMt1J,EAAWiC,KAAKgrH,YAAY3uF,cAAc7+B,MAC5CwC,KAAKgzJ,uBAAyBj1J,IAC9BiC,KAAKgzJ,qBAAuBj1J,EAC5BiC,KAAKukJ,aAAahlJ,OAE1B,CAEA+zJ,yBACI,MAAMI,EAAc1zJ,KAAK2zJ,kBACzB,GAAID,IAAgB1zJ,KAAK4zJ,qBAAsB,CAC3C,MAAMtrH,EAAUtoC,KAAKgrH,YAAY3uF,cACjCr8B,KAAK4zJ,qBAAuBF,EAC5BA,EACMprH,EAAQn0B,aAAa,cAAeu/I,GACpCprH,EAAQ1F,gBAAgB,cAClC,CACJ,CAEA+wH,kBACI,OAAO3zJ,KAAK0zJ,aAAe,IAC/B,CAEA/B,gBACQN,GAAwB3vJ,QAAQ1B,KAAK0xJ,MAI7C,CAEAmC,gBACI,OAAO7zJ,KAAK0yJ,sBAAsBhxJ,QAAQ1B,KAAK0xJ,QAAS,CAC5D,CAEAoC,cAEI,IAAIC,EAAW/zJ,KAAKgrH,YAAY3uF,cAAc03H,SAC9C,OAAOA,GAAYA,EAASC,QAChC,CAKA,SAAI30J,GACA,QAASW,KAAK6zJ,iBACT7zJ,KAAKgrH,YAAY3uF,cAAc7+B,OAC/BwC,KAAK8zJ,eACL9zJ,KAAKknJ,WACd,CAKA,oBAAI7B,GACA,GAAIrlJ,KAAKkzJ,gBAAiB,CAItB,MAAMe,EAAgBj0J,KAAKgrH,YAAY3uF,cACjC63H,EAAcD,EAAcjoJ,QAAQ,GAG1C,OAAQhM,KAAKglJ,SACTiP,EAAcb,WACbpzJ,KAAKX,UACH40J,EAAcpoI,eAAgB,GAAMqoI,GAAeA,EAAY1S,MAC1E,CAEI,OAAOxhJ,KAAKglJ,UAAYhlJ,KAAKX,KAErC,CAKA2mJ,kBAAkBL,GACVA,EAAI/pJ,OACJoE,KAAKgrH,YAAY3uF,cAAcloB,aAAa,mBAAoBwxI,EAAIvlJ,KAAK,MAGzEJ,KAAKgrH,YAAY3uF,cAAcuG,gBAAgB,mBAEvD,CAKAukH,mBAISnnJ,KAAKglJ,SACNhlJ,KAAKsrI,OAEb,CAEA6oB,kBACI,MAAM7rH,EAAUtoC,KAAKgrH,YAAY3uF,cACjC,OAAOr8B,KAAKkzJ,kBAAoB5qH,EAAQ8qH,UAAY9qH,EAAQrS,KAAO,EACvE,CASA47H,+BACS7xJ,KAAKyyJ,mCACS,WAAfzyJ,KAAK0xJ,QACJ1xJ,KAAKolI,UAAUjF,OAASngI,KAAKolI,UAAU9E,UACxCtgI,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bl7B,KAAKgrH,YAAY3uF,cAAcwyD,iBAAiB,QAAS7uF,KAAK+yJ,0BAAyB,GAE3F/yJ,KAAKyyJ,mCAAoC,GAEzCzyJ,KAAKyyJ,mCAAoD,WAAfzyJ,KAAK0xJ,QAC/C1xJ,KAAKgrH,YAAY3uF,cAAcyyD,oBAAoB,QAAS9uF,KAAK+yJ,2BACjE/yJ,KAAKyyJ,mCAAoC,EAEjD,QACSzyJ,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F2lF,GAAVh5F,EAAoCA,IAApCA,EAA8DuxD,IAA9DvxD,EAAsFyuF,GAAY,IAAlGzuF,EAA2IyuF,GAAS,GAApJzuF,EAAiLyuF,GAAqB,GAAtMzuF,EAAmO87F,IAAnO97F,EAAoQ84F,GAAwB,IAA5R94F,EAAqU+7F,IAArU/7F,EAAoWA,GAApWA,EAA0XypF,GAAc,IAA8D,QACpiB/hJ,KAAKwN,UADyF8qD,EAAE,CAAA7sD,KACJ6lJ,EAAQ/3I,UAAA,yJAAAE,UAAA,4BAAAD,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GADNskB,GAAE,0BACJlF,EAAAmgG,eAAc,EAAK,EADjBj7F,CACM,yBAARlF,EAAAmgG,eAAc,EAAM,EADlBj7F,CACM,0BAARlF,EAAAqgG,UAAU,GAAF,EAAAz/G,IADNskB,GAAE,KAAAlF,EAAAp6C,GAAFs/C,CACM,WAAAlF,EAAA+uC,SADN7pC,CACM,WAAAlF,EAAAjC,UADNmH,GAAE,OAAAlF,EAAA/yD,MACI,KADNi4D,CACU,WAAAlF,EAAA6+F,WAAA7+F,EAAA8/F,iBAAoB,KAD9B56F,CACkC,eAAAlF,EAAA/zD,OAAA+zD,EAAAjC,SAAd,KAAIiC,EAAAi8E,WADxB/2E,CACwB,gBAAAlF,EAAAjC,SADxBmH,CACwB,KAAAlF,EAAAp6C,IADxBs/C,GAAE,mBAAAlF,EAAA6/F,UAAF36F,CACM,sCAAAlF,EAAA+/F,gBAAA//F,EAAAw+F,YADNt5F,CACM,mCAAAlF,EAAA+/F,eADN76F,CACM,wBAAAlF,EAAA+/F,eADN76F,CACM,+BAARlF,EAAA+gG,mBAAQ,EAAAv6I,OAAA,CAAAuoF,SAAA,WAAAnpF,GAAA,KAAA06I,YAAA,cAAArzJ,KAAA,OAAA8wD,SAAA,WAAA1lD,KAAA,OAAAqmJ,kBAAA,oBAAAlM,oBAAA,6CAAApoJ,MAAA,QAAAy0J,SAAA,YAAAv4I,SAAA,aAAAnB,YAAA,EAAAyD,SAAA,CADNs8C,GACmoC,CAAC,CAAEj6C,QAASyjI,GAAqBl/H,YAAa0uI,KADjrCh5F,KAC4vC,EACt2C,OArXKg5F,CAAQ,KAscRgD,GAAc,MAApB,MAAMA,SACOt0J,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F2oF,EAAc,CAAoD,QAC1Kt0J,KAAK4N,UArFyF0qD,GAAE,CAAA7sD,KAqFS6oJ,GAAwJ,QACjQt0J,KAAK4M,UAtFyF0rD,GAAE,CAAApsD,QAAA,CAsFmCmiI,GAAiBgZ,GAAoBA,GAAoB8J,GAAiB9iB,KAAqB,EAC9O,OAJKimB,CAAc,KCladC,GAAgB,MAAtB,MAAMA,SACOv0J,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F4oF,EAAgB,CAAoD,QAC5Kv0J,KAAK4N,UAzEyF0qD,GAAE,CAAA7sD,KAyES8oJ,GAAmI,QAC5Ov0J,KAAK4M,UA1EyF0rD,GAAE,CAAApsD,QAAA,CA0EqCmiI,GAAiBA,KAAqB,EACvL,OAJKkmB,CAAgB,KCkWhBC,GAAyB,MAA/B,MAAMA,EACFh0J,cACIR,KAAKy0J,WAAa,EACtB,CAMAjsI,OAAOxP,EAAI3Y,GACP,QAASqvE,KAAY1vE,KAAKy0J,WACtB/kF,EAAS12D,EAAI3Y,EAErB,CAKAmiE,OAAOkN,GACH,OAAA1vE,KAAKy0J,WAAWz3J,KAAK0yE,GACd,KACH1vE,KAAKy0J,WAAaz0J,KAAKy0J,WAAWttJ,OAAQutJ,GAC/BhlF,IAAaglF,EACvB,CAET,CACAh5I,cACI1b,KAAKy0J,WAAa,EACtB,QACSz0J,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+F6oF,EAAyB,CAAsD,QACvLx0J,KAAK2M,WADyF2rD,EAAE,CAAAztD,MACY2pJ,EAAyB1oJ,QAAzB0oJ,EAAyB1mJ,UAAAjC,WAAc,QAAW,EAC1K,OA/BK2oJ,CAAyB,KCxa/B,MAAApe,GAAA,UAAAC,GAAA,cAAAC,GAAA,MACA,IAAIa,GAAe,EAEnB,MAAMwd,GACFn0J,YAEA8D,EAEA9G,GACIwC,KAAKsE,OAASA,EACdtE,KAAKxC,MAAQA,CACjB,EAOJ,MAAMo3J,GAAyC,CAC3Cv2I,QAASwtG,GACTjpG,YAAatX,GAAW,IAAMupJ,IAC9B3nJ,OAAO,GAOL4nJ,GAAkB,IAAI/nJ,EAAe,iBACrCgoJ,GAA4B,IAAIhoJ,EAAe,4BAA6B,CAC9ElB,WAAY,OACZC,QAEJ,SAASkpJ,KACL,MAAO,CACHhiB,MAAO,SACP0D,qBAAqB,EAE7B,IACA,IAGMme,GAAa,MAAnB,MAAMA,EAEF,QAAIx0J,GACA,OAAOL,KAAKi1J,KAChB,CACA,QAAI50J,CAAK7C,GACLwC,KAAKi1J,MAAQz3J,EACbwC,KAAKk1J,yBACT,CAEA,iBAAIhf,GACA,OAAOl2I,KAAKm1J,cAChB,CACA,iBAAIjf,CAAcrmH,GACd7vB,KAAKm1J,eAAuB,WAANtlI,EAAiB,SAAW,QAClD7vB,KAAKo1J,qBACT,CAOA,SAAI53J,GACA,OAAOwC,KAAKwG,MAChB,CACA,SAAIhJ,CAAMO,GACFiC,KAAKwG,SAAWzI,IAEhBiC,KAAKwG,OAASzI,EACdiC,KAAKq1J,gCACLr1J,KAAKs1J,4BAEb,CACAA,4BACQt1J,KAAKu1J,YAAcv1J,KAAKu1J,UAAUhe,UAClCv3I,KAAKu1J,UAAUhe,SAAU,EAEjC,CAKA,YAAIie,GACA,OAAOx1J,KAAKu1J,SAChB,CACA,YAAIC,CAASA,GACTx1J,KAAKu1J,UAAYC,EACjBx1J,KAAKxC,MAAQg4J,EAAWA,EAASh4J,MAAQ,KACzCwC,KAAKs1J,2BACT,CAEA,YAAInzD,GACA,OAAOniG,KAAKq1I,SAChB,CACA,YAAIlzC,CAAS3kG,GACTwC,KAAKq1I,UAAY73I,EACjBwC,KAAKo1J,qBACT,CAEA,YAAIjkG,GACA,OAAOnxD,KAAKyxJ,SAChB,CACA,YAAItgG,CAAS3zD,GACTwC,KAAKyxJ,UAAYj0J,EACjBwC,KAAKo1J,qBACT,CAEA,uBAAI1e,GACA,OAAO12I,KAAKy1J,oBAChB,CACA,uBAAI/e,CAAoBl5I,GACpBwC,KAAKy1J,qBAAuBj4J,EAC5BwC,KAAKo1J,qBACT,CACA50J,YAAYk1J,GACR11J,KAAK01J,gBAAkBA,EAEvB11J,KAAKwG,OAAS,KAEdxG,KAAKi1J,MAAQ,mBAAmB9d,KAEhCn3I,KAAKu1J,UAAY,KAEjBv1J,KAAKy1I,gBAAiB,EAEtBz1I,KAAKm1J,eAAiB,QAEtBn1J,KAAKq1I,WAAY,EAEjBr1I,KAAKyxJ,WAAY,EAEjBzxJ,KAAKy4I,8BAAgC,OAKrCz4I,KAAKkrH,UAAY,OAMjBlrH,KAAK46B,OAAS,IAAI1E,GAClBl2B,KAAKy1J,sBAAuB,CAChC,CAKAzoI,qBAIIhtB,KAAKy1I,gBAAiB,EAKtBz1I,KAAK21J,eAAiB31J,KAAK41J,QAAQj5H,QAAQ14B,UAAU,KAC7CjE,KAAKw1J,WAAax1J,KAAK41J,QAAQz4H,KAAK04H,GAASA,IAAU71J,KAAKw1J,YAC5Dx1J,KAAKu1J,UAAY,OAG7B,CACA75I,cACI1b,KAAK21J,gBAAgBl1J,aACzB,CAKAq1J,SACQ91J,KAAKkrH,WACLlrH,KAAKkrH,WAEb,CACAgqC,0BACQl1J,KAAK41J,SACL51J,KAAK41J,QAAQ/wJ,QAAQgxJ,IACjBA,EAAMx1J,KAAOL,KAAKK,KAClBw1J,EAAME,eAAc,EAGhC,CAEAV,gCAGQr1J,KAAK41J,UADoC,OAAnB51J,KAAKu1J,WAAsBv1J,KAAKu1J,UAAU/3J,QAAUwC,KAAKwG,UAE/ExG,KAAKu1J,UAAY,KACjBv1J,KAAK41J,QAAQ/wJ,QAAQgxJ,IACjBA,EAAMte,QAAUv3I,KAAKxC,QAAUq4J,EAAMr4J,MACjCq4J,EAAMte,UACNv3I,KAAKu1J,UAAYM,KAIjC,CAEAxc,mBACQr5I,KAAKy1I,gBACLz1I,KAAK46B,OAAOrE,KAAK,IAAIo+H,GAAe30J,KAAKu1J,UAAWv1J,KAAKwG,QAEjE,CACA4uJ,sBACQp1J,KAAK41J,SACL51J,KAAK41J,QAAQ/wJ,QAAQgxJ,GAASA,EAAME,gBAE5C,CAKA1pC,WAAW7uH,GACPwC,KAAKxC,MAAQA,EACbwC,KAAK01J,gBAAgB50G,cACzB,CAMAsqE,iBAAiBxnH,GACb5D,KAAKy4I,8BAAgC70I,CACzC,CAMAunH,kBAAkBvnH,GACd5D,KAAKkrH,UAAYtnH,CACrB,CAKAynH,iBAAiBC,GACbtrH,KAAKmiG,SAAWmpB,EAChBtrH,KAAK01J,gBAAgB50G,cACzB,QACS9gD,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FkpF,GAAVv8F,EAAyCA,IAAoB,CAA8C,QACzMt4D,KAAKwN,UADyF8qD,EAAE,CAAA7sD,KACJopJ,EAAat7I,UAAA,sBAAAQ,eAAA,SAAAi6B,EAAAof,EAAA7Y,GAGzB,GAHyB,EAAAvG,GADXskB,GAAE/d,EAI9By7G,GAAc,KAAAhiH,EAAA,KAAA8lG,EAJcxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAwiG,QAAA9b,EAAA,GAAArgI,UAAA,QAC4a,aAAY,yBAAAG,OAAA,CAAAo5H,MAAA,QAAA3yI,KAAA,OAAA61I,cAAA,gBAAA14I,MAAA,QAAAg4J,SAAA,WAAArzD,SAAA,yBAA3OlmB,IAAgB9qB,SAAA,yBAAsC8qB,IAAgBy6D,oBAAA,+CAAuEz6D,KAAgBpiE,QAAA,CAAA+gB,OAAA,UAAAlhB,SAAA,kBAAAnB,YAAA,EAAAyD,SAAA,CAD5Ws8C,GACkf,CACjlBs8F,GACA,CAAEv2I,QAASy2I,GAAiBlyI,YAAaiyI,KAHsDv8F,KAIyD,EACnK,OA/MKu8F,CAAa,KAwPbmB,GAAc,MAApB,MAAMA,EAEF,WAAIze,GACA,OAAOv3I,KAAK24I,QAChB,CACA,WAAIpB,CAAQ/5I,GACJwC,KAAK24I,WAAan7I,IAClBwC,KAAK24I,SAAWn7I,EACZA,GAASwC,KAAKi2J,YAAcj2J,KAAKi2J,WAAWz4J,QAAUwC,KAAKxC,MAC3DwC,KAAKi2J,WAAWT,SAAWx1J,MAErBxC,GAASwC,KAAKi2J,YAAcj2J,KAAKi2J,WAAWz4J,QAAUwC,KAAKxC,QAGjEwC,KAAKi2J,WAAWT,SAAW,MAE3Bh4J,GAEAwC,KAAKk2J,iBAAiB1tI,OAAOxoB,KAAKgZ,GAAIhZ,KAAKK,MAE/CL,KAAK01J,gBAAgB50G,eAE7B,CAEA,SAAItjD,GACA,OAAOwC,KAAKwG,MAChB,CACA,SAAIhJ,CAAMA,GACFwC,KAAKwG,SAAWhJ,IAChBwC,KAAKwG,OAAShJ,EACU,OAApBwC,KAAKi2J,aACAj2J,KAAKu3I,UAENv3I,KAAKu3I,QAAUv3I,KAAKi2J,WAAWz4J,QAAUA,GAEzCwC,KAAKu3I,UACLv3I,KAAKi2J,WAAWT,SAAWx1J,OAI3C,CAEA,iBAAIk2I,GACA,OAAOl2I,KAAKm1J,gBAAmBn1J,KAAKi2J,YAAcj2J,KAAKi2J,WAAW/f,eAAkB,OACxF,CACA,iBAAIA,CAAc14I,GACdwC,KAAKm1J,eAAiB33J,CAC1B,CAEA,YAAI2kG,GACA,OAAOniG,KAAKq1I,WAAkC,OAApBr1I,KAAKi2J,YAAuBj2J,KAAKi2J,WAAW9zD,QAC1E,CACA,YAAIA,CAAS3kG,GACTwC,KAAKm2J,aAAa34J,EACtB,CAEA,YAAI2zD,GACA,OAAOnxD,KAAKyxJ,WAAczxJ,KAAKi2J,YAAcj2J,KAAKi2J,WAAW9kG,QACjE,CACA,YAAIA,CAAS3zD,GACTwC,KAAKyxJ,UAAYj0J,CACrB,CAQA,SAAIw1I,GAGA,OAAQhzI,KAAKwuJ,QACRxuJ,KAAKi2J,YAAcj2J,KAAKi2J,WAAWjjB,OACnChzI,KAAKo2J,iBAAmBp2J,KAAKo2J,gBAAgBpjB,OAC9C,QACR,CACA,SAAIA,CAAMj1I,GACNiC,KAAKwuJ,OAASzwJ,CAClB,CAEA,uBAAI24I,GACA,OAAQ12I,KAAKy1J,sBAA6C,OAApBz1J,KAAKi2J,YAAuBj2J,KAAKi2J,WAAWvf,mBACtF,CACA,uBAAIA,CAAoBl5I,GACpBwC,KAAKy1J,qBAAuBj4J,CAChC,CAEA,WAAIi6I,GACA,MAAO,GAAGz3I,KAAKgZ,IAAMhZ,KAAK03I,iBAC9B,CACAl3I,YAAYy1J,EAAYjrC,EAAa0qC,EAAiBW,EAAeH,EAAkBI,EAAeF,EAAiBze,GACnH33I,KAAKgrH,YAAcA,EACnBhrH,KAAK01J,gBAAkBA,EACvB11J,KAAKq2J,cAAgBA,EACrBr2J,KAAKk2J,iBAAmBA,EACxBl2J,KAAKo2J,gBAAkBA,EACvBp2J,KAAKoqE,QAAUj6D,EAAOsnB,GACtBz3B,KAAK03I,UAAY,gBAAeP,GAEhCn3I,KAAKgZ,GAAKhZ,KAAK03I,UAEf13I,KAAKi5I,eAAgB,EAErBj5I,KAAK23I,SAAW,EAMhB33I,KAAK46B,OAAS,IAAI1E,GAElBl2B,KAAK24I,UAAW,EAEhB34I,KAAKwG,OAAS,KAEdxG,KAAKu2J,+BAAiC,OACtCv2J,KAAKioE,UAAY93D,EAAOglB,IAExBn1B,KAAK05I,cAAiBvyH,IAQdnnB,KAAKmiG,UAAYniG,KAAK02I,qBACtBvvH,EAAMwuE,gBAAe,EAK7B31F,KAAKi2J,WAAaA,EAClBj2J,KAAKw2J,gBAAoC,mBAAlBF,EACvBt2J,KAAKy1J,qBAAuBW,GAAiB1f,sBAAuB,EAChEiB,IACA33I,KAAK23I,SAAWz7D,GAAgBy7D,EAAU,GAElD,CAEArM,MAAMt/H,EAASogF,GACPA,EACApsF,KAAKq2J,cAAcrrB,SAAShrI,KAAKo3I,cAAehrD,EAAQpgF,GAGxDhM,KAAKo3I,cAAc/6G,cAAcivG,MAAMt/H,EAE/C,CAMA+pJ,gBAGI/1J,KAAK01J,gBAAgB50G,cACzB,CACA/sB,WACQ/zB,KAAKi2J,aAELj2J,KAAKu3I,QAAUv3I,KAAKi2J,WAAWz4J,QAAUwC,KAAKwG,OAC1CxG,KAAKu3I,UACLv3I,KAAKi2J,WAAWT,SAAWx1J,MAG/BA,KAAKK,KAAOL,KAAKi2J,WAAW51J,MAEhCL,KAAKu2J,+BAAiCv2J,KAAKk2J,iBAAiB1zF,OAAO,CAACxpD,EAAI3Y,KAChE2Y,IAAOhZ,KAAKgZ,IAAM3Y,IAASL,KAAKK,OAChCL,KAAKu3I,SAAU,IAG3B,CACAvjH,YACIh0B,KAAKy2J,iBACT,CACAvpI,kBACIltB,KAAKy2J,kBACLz2J,KAAKq2J,cAAcrsB,QAAQhqI,KAAKgrH,aAAa,GAAM/mH,UAAUyyJ,KACpDA,GAAe12J,KAAKi2J,YACrBj2J,KAAKi2J,WAAWH,QAAO,GAM/B91J,KAAKoqE,QAAQlvC,kBAAkB,KAC3Bl7B,KAAKo3I,cAAc/6G,cAAcwyD,iBAAiB,QAAS7uF,KAAK05I,cAAa,EAErF,CACAh+H,cAEI1b,KAAKo3I,eAAe/6G,cAAcyyD,oBAAoB,QAAS9uF,KAAK05I,eACpE15I,KAAKq2J,cAAczrB,eAAe5qI,KAAKgrH,aACvChrH,KAAKu2J,gCACT,CAEAld,mBACIr5I,KAAK46B,OAAOrE,KAAK,IAAIo+H,GAAe30J,KAAMA,KAAKwG,QACnD,CACAwyI,oBACI,OAAOh5I,KAAKi5I,eAAiBj5I,KAAKmiG,QACtC,CAEAw0D,oBAAoBxvI,GAKhB,GADAA,EAAMqyH,mBACDx5I,KAAKu3I,UAAYv3I,KAAKmiG,SAAU,CACjC,MAAMy0D,EAAoB52J,KAAKi2J,YAAcj2J,KAAKxC,QAAUwC,KAAKi2J,WAAWz4J,MAC5EwC,KAAKu3I,SAAU,EACfv3I,KAAKq5I,mBACDr5I,KAAKi2J,aACLj2J,KAAKi2J,WAAWxd,8BAA8Bz4I,KAAKxC,OAC/Co5J,GACA52J,KAAKi2J,WAAW5c,mBAG5B,CACJ,CAEAM,oBAAoBxyH,GAChBnnB,KAAK22J,oBAAoBxvI,KACpBnnB,KAAKmiG,UAAYniG,KAAK02I,sBAGvB12I,KAAKo3I,eAAe/6G,cAAcivG,OAE1C,CAEA6qB,aAAa34J,GACLwC,KAAKq1I,YAAc73I,IACnBwC,KAAKq1I,UAAY73I,EACjBwC,KAAK01J,gBAAgB50G,eAE7B,CAEA21G,kBACI,MAAM76B,EAAQ57H,KAAKi2J,WACnB,IAAIz4J,EAWJ,GAFIA,EAJCo+H,GAAUA,EAAM45B,WAAYx1J,KAAKmiG,SAI1By5B,EAAM45B,WAAax1J,KAAOA,KAAK23I,UAAW,EAH1C33I,KAAK23I,SAKbn6I,IAAUwC,KAAK62J,kBAAmB,CAGlC,MAAMtxJ,EAAQvF,KAAKo3I,eAAe/6G,cAC9B92B,IACAA,EAAM4O,aAAa,WAAY3W,EAAQ,IACvCwC,KAAK62J,kBAAoBr5J,EAEzBg6D,GAAgB,KACZngC,eAAe,KAKPukG,GACAA,EAAM45B,UACN55B,EAAM45B,WAAax1J,MACnB0/B,SAASurG,gBAAkB1lI,IAC3Bq2H,EAAM45B,UAAUpe,cAAc/6G,cAAcivG,QAGxC5rG,SAASurG,gBAAkB1lI,GAC3BvF,KAAKo3I,cAAc/6G,cAAcy6H,OAAK,EAGjD,EACF,CAAEjnJ,SAAU7P,KAAKioE,YAE5B,CACJ,QACSjoE,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FqqF,GAzUV19F,EAyU0Cw8F,GAAe,GAzUzDx8F,EAyUsFA,IAzUtFA,EAyUgHA,IAzUhHA,EAyUiJuxD,IAzUjJvxD,EAyU6KyuF,IAzU7KzuF,EAyUsNv4B,GAAqB,GAzU3Ou4B,EAyUwQy8F,GAAyB,GAzUjSz8F,GAyU8T,YAAU,CAA+D,QACret4D,KAAKsN,UA1UyFgrD,GAAE,CAAA7sD,KA0UJuqJ,EAAcz8I,UAAA,uBAAAS,UAAA,SAAAg6B,EAAAof,GAAihD,GAAjhD,EAAApf,IA1UZskB,GAAE89E,GAAA,GAAF99E,GAAE+9E,GAAA,EA0UihDj6G,KAAU,EAAA4X,EAAA,KAAA8lG,EA1U7hDxhF,GAAEwhF,EAAFxhF,QAAElF,EAAAgkF,cAAA0C,EAAA98G,OAAFs7B,GAAEwhF,EAAFxhF,QAAElF,EAAA2jG,eAAAjd,EAAA98G,MAAA,GAAAvjB,UAAA,2BAAAD,SAAA,GAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAAFskB,GAAE,0BA0UJlF,EAAAgkF,cAAA/6G,cAAAivG,OAAmC,GAArB,EAAAt3F,IA1UZskB,GAAE,KAAAlF,EAAAp6C,GAAFs/C,CAAE,WA0UJ,KA1UEA,CA0UE,aAAJ,KA1UEA,CA0UE,kBAAJ,KA1UEA,CA0UE,mBAAJ,MA1UEA,GAAE,cA0UM,YA1UNlF,EAAA4/E,MAAF16E,CA0UY,aAAJ,WAAIlF,EAAA4/E,MA1UZ16E,CA0UY,WAAJ,SAAIlF,EAAA4/E,MA1UZ16E,CA0UY,wBAAAlF,EAAAmkF,QA1UZj/E,CA0UY,yBAAAlF,EAAA+uC,SA1UZ7pC,CA0UY,qCAAAlF,EAAAsjF,oBA1UZp+E,CA0UY,0BAAAlF,EAAAojG,iBAAA,EAAA58I,OAAA,CAAAZ,GAAA,KAAA3Y,KAAA,OAAA83I,UAAA,6BAAAC,eAAA,uCAAA2B,gBAAA,yCAAAd,cAAA,mCAAiSh9D,IAAgB07D,SAAA,yBAAuCn6I,GAAoB,MAATA,EAAgB,EAAI0+E,GAAgB1+E,IAAO+5I,QAAA,uBAAmCt7D,IAAgBz+E,MAAA,QAAA04I,cAAA,gBAAA/zC,SAAA,yBAAsFlmB,IAAgB9qB,SAAA,yBAAsC8qB,IAAgB+2D,MAAA,QAAA0D,oBAAA,+CAAuFz6D,KAAgBpiE,QAAA,CAAA+gB,OAAA,UAAAlhB,SAAA,mBAAAnB,YAAA,EAAAyD,SAAA,CA1UhtBs8C,OAAErgD,mBAAAq+H,GAAAz+H,MAAA,GAAAC,KAAA,GAAAE,OAAA,ghBAAAD,SAAA,SAAAi8B,EAAAof,GAAA,KAAApf,EAAA,OAAAgmG,EAAF1hF,YAAE,YAAFA,CA0UirD,UA1UjrDA,CA0UuvD,WA1UvvDA,GAAE,iBAAAm0D,GAAFn0D,SAAE0hF,GAAF1hF,EA0Ui3DlF,EAAAumF,oBAAAltB,GAA2B,GA1U54Dn0D,MAAE,eAAFA,GAAE,kBAAAm0D,GAAFn0D,SAAE0hF,GAAF1hF,EA0Uq8ElF,EAAAujG,oBAAAlqC,GAA2B,GA1Uh+En0D,MAAE,WAAFA,EAAE,UAAFA,CA0UmkF,WA1UnkFA,MAAE,WAAFA,EAAE,aAAFA,QAAE,eAAFA,GAAE,IAAFA,KA0U8iG,GAAAtkB,IA1U9iGskB,EAAE,gBAAAlF,EAAA8iF,eAAF59E,EAAE,GAAFA,GAAE,sBAAAlF,EAAA+uC,UAAF7pC,EAAE,GAAFA,EAAE,KAAAlF,EAAAqkF,QAAFn/E,CA0Uw/D,UAAAlF,EAAAmkF,QA1Ux/Dj/E,CA0U0hE,WAAAlF,EAAA+uC,WAAA/uC,EAAAsjF,oBA1U1hEp+E,CA0UslE,WAAAlF,EAAAjC,UA1UtlEmH,GAAE,OAAAlF,EAAA/yD,KAAFi4D,CAAE,QAAAlF,EAAA51D,MAAF86D,CAAE,aAAAlF,EAAA+kF,UAAF7/E,CAAE,kBAAAlF,EAAAglF,eAAF9/E,CAAE,mBAAAlF,EAAA2mF,gBAAFzhF,CAAE,gBAAAlF,EAAA+uC,UAAA/uC,EAAAsjF,oBAAA,aAAFp+E,EAAE,GAAFA,EAAE,mBAAAlF,EAAA2jG,eAAA16H,cAAFi8B,CA0U0wF,oBAAAlF,EAAA4lF,oBA1U1wF1gF,CA0Ug0F,wBA1Uh0FA,EAAE,GAAFA,EAAE,MAAAlF,EAAAqkF,SA0Uw/F,EAAAn/H,aAAA,CAAwmT88H,GAAiQa,IAAqBr9H,OAAA,w/SAAAD,cAAA,EAAAR,gBAAA,GAA2K,EAC7oa,OA7RK69I,CAAc,KAuXdgB,GAAc,MAApB,MAAMA,SACOh3J,KAAK8N,UAAI,SAAA69D,GAAA,WAAAA,GAA+FqrF,EAAc,CAAoD,QAC1Kh3J,KAAK4N,UAvayF0qD,GAAE,CAAA7sD,KAuaSurJ,GAAwK,QACjRh3J,KAAK4M,UAxayF0rD,GAAE,CAAApsD,QAAA,CAwamCmiI,GAAiBntD,GAAc80D,GAAiBggB,GAAgB3nB,KAAqB,EACpO,OAJK2oB,CAAc,KCjqBb,MAAMh3B,UAAmBr6F,OAAW,IAE9BsxH,kBACKj3B,IAAa,mBAAoBtgG,SAASO,KAAKiyD,MAGpDglE,OACNl3B,MAAer6F,OAAOoqD,UAAUC,UAAUxpD,MAAM,kBCF1C2wH,GAAoB,CAC/BC,aAAc,gBACdC,YAAa,6BCER,IAAMC,GAAoB,MAA3B,MAAOA,oDAAoB,iCAApBA,EAAoB/9I,UAAA,mBAAAhB,YAAA,EAAAyD,SAAA,CAAAs8C,IAAAzgD,MAAA,GAAAC,KAAA,EAAAE,OAAA,8RAAAD,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,SCRjCskB,EAAA,WA0BEA,EAjBA,cAiBAA,CAfE,MAeFA,CAdO,MAcPA,CAbO,MAaPA,CAZO,MAYPA,CAXO,MAWPA,CAVO,MAUPA,CATO,MASPA,CARO,MAQPA,CAPO,OAOPA,CANO,OAMPA,CALO,OAKPA,CAJO,OAIPA,CAHO,OAGPA,CAFO,OAEPA,CADO,QAETA,6KDnBag/F,CAAoB,4GEH/Bh/F,EAAA,SACEA,EAAA,kBACFA,2CARFA,EAAA,cAIEA,GAAA,0BAAAA,EAAA0hF,GAAA1hF,MAASi/F,OAAA,GAAS,GAElBj/F,EAAA,EAAAk/F,GAAA,aAGFl/F,wBAHQA,IAAsBA,EAAtB,QAAAwlF,EAAA2Z,cAAsBn/F,CAAA,WAAAwlF,EAAA2Z,sCAM5Bn/F,EAAA,oCAkBMA,EAAA,YAIEA,EAAA,YAIFA,iCAFIA,OAAA,2BAAAo/F,EAAAC,kCAPNr/F,GAAA,GACEA,EAAA,EAAAs/F,GAAA,sCACGt/F,IAAsBA,EAAtB,QAAAwlF,EAAA+Z,cAAsBv/F,CAAA,WAAAwlF,EAAA+Z,sDAV7Bv/F,GAAA,GACEA,EAAA,YAIEA,GADA,kBAAAA,EAAAw/F,GAAA,MAAAJ,EAAAp/F,IAAAukB,UAAA,OAAAvkB,MAAQy/F,aAAAL,GAAmB,GAAK,EAChCp/F,CADiC,mBAAAA,EAAAw/F,GAAA,MAAAJ,EAAAp/F,IAAAukB,UAAA,OAAAvkB,MACxBy/F,aAAAL,GAAmB,GAAM,GAJpCp/F,IAOAA,EAAA,EAAA0/F,GAAA,0DANE1/F,IACAA,EADA,MAAAo/F,EAAAO,UAAA,GAAA3/F,GACAA,CAD2B,MAAAo/F,EAAAxgE,KAMd5+B,MAAA,OAAAo/F,EAAAQ,qCAcf5/F,GAAA,4BAAAA,EAAA,EAAA6/F,GAAA,sEAGe7/F,EAFZ,mBAAAwlF,EAAAsa,cAEY9/F,CAAA,0BAAAA,GAAA,EAAAg+E,GAAA+hB,EAAAva,EAAAjyH,cAAA6rI,2CAjCnBp/F,EAAA,aAMEA,GADA,iBAAAm0D,GAAA,MAAA6rC,EAAAhgG,EAAAigG,GAAAb,EAAAY,EAAAz7E,UAAAw7E,EAAAC,EAAAv3J,MAAA+8I,EAAAxlF,IAAA,OAAAA,EAASwlF,EAAAvoB,UAAA8iC,EAAAX,EAAAjrC,EAAAqxB,EAAA0a,YAAsC,EAC/ClgG,CADgD,sBAAAm0D,GAAA,MAAAgsC,EAAAngG,EAAAigG,GAAAb,EAAAe,EAAA57E,UAAAw7E,EAAAI,EAAA13J,MAAA+8I,EAAAxlF,IAAA,OAAAA,EAClCwlF,EAAAvoB,UAAA8iC,EAAAX,EAAAjrC,EAAAqxB,EAAA4a,YAAsC,GAuBpDpgG,EArBA,EAAAqgG,GAAA,qBAqBArgG,CArB+D,EAAAsgG,GAAA,yBAAAtgG,IA6BjEA,0CAlCEA,GAAA,wBAAA+/F,IAAAva,EAAAjyH,eAKeysC,EAAA,GAAsBA,EAAtB,QAAAwlF,EAAAsa,cAAsB9/F,CAAA,WAAAugG,2BAsCvCvgG,EAAA,SACEA,EAAA,kBACFA,2CARFA,EAAA,eAIEA,GAAA,0BAAAA,EAAAwgG,GAAAxgG,MAASi/F,MAAM,GAAE,GAEjBj/F,EAAA,EAAAygG,GAAA,aAGFzgG,wBAHQA,IAAsBA,EAAtB,QAAAwlF,EAAA2Z,cAAsBn/F,CAAA,WAAAwlF,EAAA2Z,gBCvBvB,IAAMuB,GAAe,MAAtB,MAAOA,EA0BX,YACIjI,GACF,MAAO,WAAW/wJ,KAAKi5J,aACzB,CAEA,kBAAYC,GACV,OAAOl5J,KAAKm5J,SACRn5J,KAAKo5J,MAAM/8H,cAAcg9H,aACzBr5J,KAAKo5J,MAAM/8H,cAAci9H,WAC/B,CAEA,aAAYC,GACV,OAAOv5J,KAAKm5J,SAAW,YAAc,YACvC,CAEA,eAAYK,GACV,OAAQx5J,KAAKy5J,YAAcz5J,KAAKy5J,UAAU79J,MAC5C,CAEA,YAAYu9J,GACV,MAA4B,SAArBn5J,KAAKi5J,aAA+C,UAArBj5J,KAAKi5J,WAC7C,CAEAz4J,YACUmxH,EACAynC,GADAp5J,KAAA2xH,KACA3xH,KAAAo5J,QAlDDp5J,KAAA05J,MAA+B,GAa9B15J,KAAAw4J,WAAa,IAAItiI,GACjBl2B,KAAA04J,WAAa,IAAIxiI,GAK3Bl2B,KAAA25J,gBAAiB,EACjB35J,KAAA45J,cAAe,EA6LP55J,KAAA65J,iBAAiD30E,IACvD,GAAIllF,KAAKw5J,YAAa,OAEtB,MAAMM,EAAc50E,EAAQ,GAAGv6E,QACvBqyB,QAAOC,QAASj9B,KAAKy5J,UAO7Bz5J,KAAK+5J,kBAJHD,IAAgB98H,EAAMX,cAAgB6oD,EAAQ,GAAKA,EAAQ,GAE3D40E,IAAgB78H,EAAKZ,cAAgB6oD,EAAQ,GAAKA,EAAQ,IAI5DllF,KAAK2xH,GAAG1wE,eAAa,CA3KpB,CAEHz6B,aAAcwzI,SAAQN,UAChBM,IACEA,EAAOl0I,aACT9lB,KAAKi6J,gBACKD,EAAOl0I,eACjB9lB,KAAK25J,eAAiB35J,KAAK45J,cAAe,EAC1C55J,KAAKk6J,oBAILR,GACFt6J,WAAW,KACLY,KAAKg6J,QACPh6J,KAAKi6J,gBAEPj6J,KAAKm6J,oBAAoBn6J,KAAK6rB,cAAa,EAGjD,CAEAnQ,cACE1b,KAAKk6J,iBACP,CAEA3C,MAAM6C,GACJ,IAAItoH,EAEJ,GAAI9xC,KAAKq6J,mBACPvoH,EAAQ9xC,KAAKq6J,uBACR,CAIL,MAAMC,EAAYt6J,KAAKu6J,aAAal+H,cAI9Bm+H,EAAsBx6J,KAAKm5J,SAC7BmB,EAAUjB,aACViB,EAAUhB,YAEdxnH,EAAQ7vC,KAAKq+F,IACXk6D,GAR0Bx6J,KAAKm5J,SAC7BmB,EAAUG,aACVH,EAAU1Z,aAOU4Z,EAE1B,CACAx6J,KAAK06J,OAAO5oH,EAAQsoH,EACtB,CAEAD,oBAAoBp5J,GAClB,IAAKf,KAAK05J,OAAS15J,KAAK05J,MAAM99J,QAAU,EACtC,OAGF,MAAM++J,EAAc36J,KAAKy5J,UAAUn8H,UAAUv8B,GAE7C,IAAK45J,EACH,OAGF,MAAMC,EAAaD,EAAYt+H,eACvBw+H,aAAYC,YAAWxB,cAAaD,gBAAiBuB,EAEvDG,EAAa/6J,KAAKm5J,SAAW2B,EAAYD,EACzCG,EAAiBh7J,KAAKm5J,SAAWE,EAAeC,EAEhD2B,EAAiBj7J,KAAKk5J,eACtBgC,EAAkBl7J,KAAKu6J,aAAal+H,cAAcr8B,KAAKu5J,YAM3D2B,EAAkBD,EAAiBF,EAAaC,GAChDE,EAAkBH,IAElB/6J,KAAK06J,OANLK,EAAaC,EAAiB,EAAIC,EAAiB,EAAIC,EAQ3D,CAEAC,OAAOp6J,GACLf,KAAK6rB,cAAgB9qB,EACrBf,KAAK2xH,GAAG1wE,gBAEJjhD,KAAKo7J,YACPh8J,WAAW,IAAMY,KAAKm6J,oBAAoBp5J,GAE9C,CAEAw0H,UACEx0H,EACA6T,EACAuS,EACAk0I,GAEAA,EAAQ9kI,KAAK,CACXx1B,QACA6T,OACAuS,SAEJ,CAEA4wI,aAAanjJ,EAA2B0mJ,GACtC1mJ,EAAKsjJ,cAAgBoD,CACvB,CAEQZ,OAAOa,GACb,IAAKv7B,GACH,OAEF,GAAIi3B,mBAAkD,SAAxBj3J,KAAKw7J,eAEjC,YADAx7J,KAAKy7J,aAAaF,GAGC,MAAjBv7J,KAAK07J,UACPzkI,qBAAqBj3B,KAAK07J,UAG5B,MAAMC,EAAgB15J,KAAK6G,IAAIyyJ,GACzB7vD,EAAYy2B,KAAKD,MAEvB,IAAIxjC,EADuB,KACVz8F,KAAK25J,MAAMD,GAAiB,KACzCj9D,EAAY,IACdA,EAHyB,KAK3B,IAAIm9D,EAAgB,EAMpB,MAAMr+D,EAAUA,KACd,MAAMs+D,EAAkB75J,KAAK85J,MACzB55B,KAAKD,MAAQx2B,GAAahN,EAAai9D,GAE3C,IAAIK,EAAc/5J,KAAKq+F,IACrBw7D,EAAkBD,EAClBF,EAAgBE,GAElBG,GAAe/5J,KAAKg6J,KAAKV,GACzBM,EAAgBC,EAEhB97J,KAAKy7J,aAAaO,GAEdH,GAAiBF,IACnB37J,KAAK07J,SAAWvkI,sBAAsBqmE,GAAO,EAIjDx9F,KAAK07J,SAAWvkI,sBAAsBqmE,EACxC,CAEQi+D,aAAa3pH,GACnB9xC,KAAKu6J,aAAal+H,cAAcr8B,KAAKu5J,YAAcznH,CACrD,CAkBQmoH,gBACFj6J,KAAKw5J,cAAgBx5B,KAEpBhgI,KAAKk8J,cAMRl8J,KAAKk6J,kBALLl6J,KAAKk8J,cAAgB,IAAIC,qBAAqBn8J,KAAK65J,iBAAkB,CACnEvgI,KAAMt5B,KAAKu6J,aAAal+H,cACxB+/H,UAAW,IAKfp8J,KAAKk8J,cAAclyE,QAAQhqF,KAAKy5J,UAAUz8H,MAAMX,eAChDr8B,KAAKk8J,cAAclyE,QAAQhqF,KAAKy5J,UAAUx8H,KAAKZ,eACjD,CAEQ09H,kBACNsC,EACAC,GAEgBt8J,KAAKu8J,QAAUv8J,KAAKm5J,UAG9BmD,IAAWt8J,KAAK25J,eAAiB2C,EAAUE,kBAAoB,GAC/DH,IAAYr8J,KAAK45J,aAAeyC,EAAWG,kBAAoB,KAE/DH,IAAYr8J,KAAK25J,eAAiB0C,EAAWG,kBAAoB,GACjEF,IAAWt8J,KAAK45J,aAAe0C,EAAUE,kBAAoB,GAErE,CAEQtC,kBACNl6J,KAAKk8J,eAAiBl8J,KAAKk8J,cAAcO,YAC3C,iDAlQWzD,GAAe1gG,YAAA,iCAAf0gG,EAAez/I,UAAA,aAAAS,UAAA,SAAAg6B,EAAAof,MAAA,EAAApf,gJAAfskB,GAAAlF,EAAA29F,wvCDpCbz4F,EAAA,EAAAokG,GAAA,gBAWApkG,EAAA,eAEEA,EADA,EAAAqkG,GAAA,WACArkG,CADgE,EAAAskG,GAAA,YAuClEtkG,IAEAA,EAAA,EAAAukG,GAAA,uBApDGvkG,EAAA,OAAAlF,EAAAumG,gBAUSrhG,OAAA,kBAAAlF,EAAAooG,gBAAwCljG,GAAA,MAAAlF,EAAAmpG,OAC7CjkG,EAAA,GAAAA,EAAA,QAAAlF,EAAAsmG,QAAAtmG,EAAAsmG,MAAA99J,QAGc08D,MAAA,UAAAlF,EAAAsmG,OAuClBphG,MAAA,OAAAlF,EAAAwmG,8BCpBS14E,GAAY2oC,SAAEytC,IAAoB1+I,OAAA,6sLAAAT,gBAAA,YAEjC6gJ,CAAe,KCvBf8D,GAAc,MAArB,MAAOA,EAMXt8J,YAAYu8J,GAJZ/8J,KAAAg9J,eAAiB,IAAI9mI,GAgBrBl2B,KAAAi9J,OAAUC,IACQ,UAAZA,EAAGzxJ,MACLzL,KAAKg9J,eAAezmI,MAAI,EAb1Bv2B,KAAKm9J,SAAWJ,EAAQ1gI,aAC1B,CAEAtI,WACE/zB,KAAKm9J,SAAStuE,iBAAiB,QAAS7uF,KAAKi9J,QAAQ,EACvD,CAEAvhJ,cACE1b,KAAKm9J,SAASruE,oBAAoB,QAAS9uF,KAAKi9J,QAAQ,EAC1D,iDAhBWH,GAAcxkG,MAAA,gCAAdwkG,EAAcvjJ,UAAA,kBAAAM,QAAA,CAAAmjJ,eAAA,kBAAAzkJ,YAAA,YAAdukJ,CAAc,KCNdM,GAAQ,MAAf,MAAOA,EACX58J,YAAoBqqC,GAAA7qC,KAAA6qC,WAA0B,CAE9C8b,UAAUhiB,GACR,OAAO3kC,KAAK6qC,UAAU2wD,+BAA+B72D,EACvD,iDALWy4H,GAAQ9kG,EAAAuxD,GAAA,kDAARuzC,EAAQ5hJ,MAAA,EAAAjD,YAAA,YAAR6kJ,CAAQ,KCaRC,GAAgB,MAAvB,MAAOA,oDAAgB,iCAAhBA,EAAgB9jJ,UAAA,cAAAC,SAAA,EAAAqC,aAAA,SAAAm4B,EAAAof,GAAA,EAAApf,GAAhBskB,GAAAlF,EAAA6lG,mNART3gG,EAAA,YACEA,EAAA,GACFA,WADEA,OAAA,IAAAlF,EAAAvnC,cAAA,MAAAunC,EAAAkqG,cAAA,wbAOOD,CAAgB,oJCb3B/kG,EAAA,wDAPFA,EAAA,eAKEA,GADA,qBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,EAAam0D,EAAA+sB,kBAAwB,EACrClhF,CADsC,mBAAAA,EAAA0hF,GAAA,MAAA8D,EAAAxlF,IAAA,OAAAA,EAC7BwlF,EAAAyf,eAAAzf,EAAA0f,aAA2B,GAEpCllG,EAAA,EAAAmlG,GAAA,uBACFnlG,wBADiBA,IAAsBA,EAAtB,QAAAwlF,EAAA2Z,cAAsBn/F,CAAA,WAAAwlF,EAAA2Z,sCAIrCn/F,EAAA,oCAgBMA,EAAA,wCAEEA,EAAA,SAAAolG,EAAAC,uFAHJrlG,EAAA,aACEA,EAAA,EAAAslG,GAAA,iBAOAtlG,EAAA,YAMFA,uCAd6BA,EAAA,qBAAA39D,GAEN29D,MAAA,UAAAulG,EAAAC,gBAUnBxlG,OAAA,aAAAwlF,EAAAigB,WAFAzlG,EADA,MAAAulG,EAAAnpJ,IAAA4jD,GACAA,CADgB,MAAAulG,EAAA3mE,uDAOpB5+B,EAAA,gDAMEA,GAAA,aAAAwlF,EAAAigB,WAFAzlG,EAFA,qBAAA39D,EAEA29D,CAFa,MAAAulG,EAAAnpJ,IAAA4jD,GAEbA,CADgB,SAAAulG,EAAA5F,UAAA,GAAA3/F,kFAQlBA,EAAA,+DAIEA,EAFA,qBAAA39D,EAEA29D,CAFa,MAAAA,GAAA,IAAAulG,EAAAnpJ,KAAA4jD,uDA9BjBA,GAAA,GA4BEA,EA3BA,EAAA0lG,GAAA,iBA2BA1lG,CA3B2C,EAAA2lG,GAAA,eA2B3C3lG,CAFC,EAAA4lG,GAAA,wDAzBS5lG,MAAA,QAAAulG,EAAAlG,OAiBPr/F,MAAA,QAAAwlF,EAAAqgB,UAAAN,MAAAlG,OAWAr/F,MAAA,OAAAwlF,EAAAqgB,UAAAN,+BAcDvlG,EAJF,WAIEA,CADD,YACgCA,EAAA,YAACA,IAChCA,EAAA,UACEA,EAAA,GAEJA,yBAFIA,EAAA,GAAAA,GAAA,IAAAwlF,EAAAsgB,WAAA,+DAPN9lG,GAAA,GACEA,EAAA,EAAA+lG,GAAA,sCACG/lG,IAAsBA,EAAtB,QAAAwlF,EAAA+Z,cAAsBv/F,CAAA,WAAAwlF,EAAA+Z,sCAiBzBv/F,GAAA,4BAAAA,EAAA,EAAAgmG,GAAA,uDAINhmG,EAHS,mBAAAwlF,EAAAygB,aAGTjmG,CAAA,0BAAAA,GAAA,EAAAilF,GAAA,MAAAO,EAAA4b,MAAA,KAAA5b,EAAA4b,MAAAh4J,QAAAm8J,GAAA/f,EAAAjyH,cAAAgyI,IAAAlG,+CA1EEr/F,EAAA,aAWEA,GAHA,iBAAAm0D,GAAA,MAAAoxC,EAAAvlG,EAAAigG,GAAA17E,UAAA,OAAAvkB,MAASkmG,aAAAX,EAAApxC,GAA0B,EAGnCn0D,CAHoC,kCAAAulG,EAAAvlG,EAAAigG,GAAA17E,UAAA,OAAAvkB,MAClBmmG,cAAAZ,GAAmB,EAErCvlG,CAFsC,+BAAAomG,EAAApmG,EAAAigG,GAAAx3J,MAAA,OAAAu3D,MACvBqmG,MAAAD,EAAU,GAAE,EAC3BpmG,CAD4B,qCAAAomG,EAAApmG,EAAAigG,GAAAx3J,MAAA,OAAAu3D,MACPqmG,MAAAD,EAAU,GAAE,GAwCjCpmG,EAtCA,EAAAsmG,GAAA,sBAsCAtmG,CAtCyD,EAAAumG,GAAA,uBAkDzDvmG,EAAA,aAMAA,EAAA,EAAAwmG,GAAA,yBAAAxmG,IAaFA,wDA3EEA,GAAA,qBAAAwlF,EAAAihB,aAAAL,+GAMepmG,EAAA,GAAqBA,EAArB,QAAAwlF,EAAAygB,aAAqBjmG,CAAA,WAAA0mG,GAsCrB1mG,MAAA,OAAAwlF,EAAAmhB,iBAAApB,IAabvlG,IAEAA,EAFA,gCAAAomG,EAEApmG,CAFqC,YAAAulG,EAAAqB,YAAA5mG,2BA4BzCA,EAAA,wDAPFA,EAAA,eAKEA,GADA,qBAAAm0D,GAAAn0D,SAAAw/F,GAAAx/F,EAAam0D,EAAA+sB,kBAAwB,EACrClhF,CADsC,mBAAAA,EAAAw/F,GAAA,MAAAha,EAAAxlF,IAAA,OAAAA,EAC7BwlF,EAAAyf,cAAAzf,EAAA0f,aAA0B,GAEnCllG,EAAA,EAAA6mG,GAAA,uBACF7mG,wBADiBA,IAAsBA,EAAtB,QAAAwlF,EAAA2Z,cAAsBn/F,CAAA,WAAAwlF,EAAA2Z,yCAGvCn/F,EAAA,iCAIEA,EAFA,eAAAwlF,EAAA4b,MAAA99J,OAEA08D,CAF6B,gBAAAwlF,EAAAshB,aAE7B9mG,CAD8B,cAAAwlF,EAAAuhB,2CAIhC/mG,GAAA,yCAiBEA,EAAA,YAIEA,GAAA,iBAAAm0D,GAAA,OAAAn0D,EAAAgnG,GAAAhnG,IAAA,GAASinG,iBAAAhpI,KAAAk2F,GAA6B,GACvCn0D,SAFCA,EAAA,mBAAAA,8BAXJA,EAAA,YAQEA,EAAA,EAAAknG,GAAA,cAMFlnG,sBAXEA,GAAA,oCAAAwlF,EAAA2hB,SAAA,WAAA3hB,EAAAuhB,oBAMG/mG,MAAA,aAAAwlF,EAAA4b,MAAA5b,EAAAjyH,eAAA,KAAAiyH,EAAA4b,MAAA5b,EAAAjyH,eAAAqzI,cC5FE,MAEDQ,GAA2B,CAC/B73B,SAAS,GA0BJ,IAAM83B,GAAe,MAAtB,MAAOA,EA+CX,eAAIC,CAAYpiK,GACdwC,KAAK6/J,YAAYxjI,cAAc61D,MAAM+gD,mBAAqBz1I,EACtD,MACA,OACN,CAEA,gBAAI4hK,GACF,OAAOn9J,KAAK69J,MAAM9/J,KAAK6rB,cAAgB7rB,KAAKw9J,YAC9C,CAEA,aAAIuC,GACF,OAAO//J,KAAKg6J,QAAUh6J,KAAK05J,OAAS15J,KAAK05J,MAAM99J,OAAS,CAC1D,CAEA,iBAAIokK,GACF,OAAOhgK,KAAK+/J,YAAc//J,KAAK6rB,cAAgB,GAAK7rB,KAAKigK,WAC3D,CAEA,iBAAIC,GACF,OACElgK,KAAK+/J,YACJ//J,KAAK6rB,cAAgB7rB,KAAK05J,MAAM99J,OAAS,GAAKoE,KAAKigK,WAExD,CAEAz/J,YACU2/J,EACAvuC,EACAwuC,EACArvE,GAHA/wF,KAAAmgK,WACAngK,KAAA4xH,MACA5xH,KAAAogK,cACApgK,KAAA+wF,QA7CA/wF,KAAAqgK,UAAY,IAAInqI,GAChBl2B,KAAAu/J,iBAAmB,IAAIrpI,GACvBl2B,KAAAsgK,UAAY,IAAIpqI,GAO1Bl2B,KAAAugK,YAAcvgK,KAAKwgK,iBAEXxgK,KAAAygK,WAAa,EAEbzgK,KAAA0gK,cAAgB,EAChB1gK,KAAA2gK,SAAU,EA+XV3gK,KAAA4gK,mBAAmD17E,IACzD,IAAKllF,KAAKigK,aAAejgK,KAAK2gK,QAC5B,OAEF,MAAQ3jI,SAAUh9B,KAAK6gK,SAGO,IAFP37E,EAAQ/9E,OAAOnG,GAAKA,EAAE8/J,gBAE1BllK,SAMnBoE,KAAK0gK,gBAFoBx7E,EAAQ,GAAGv6E,SAAWqyB,EAAMX,eAG/B,EAAK,GAAKr8B,KAAK05J,MAAM99J,OAASoE,KAAKygK,aAGnDzgK,KAAA+gK,iBAAmB,KACzB/gK,KAAKygK,WACHzgK,KAAKmgK,SAAS9jI,cAAc6D,cAAc,MAAOo5H,aA4B7Ct5J,KAAAy7J,aAAgB3pH,IACtB9xC,KAAK0gK,eAAiB5uH,EACtB9xC,KAAKkS,MAAMlS,KAAK0gK,cAAa,CAhZ5B,CAEHl6I,aAAcw6I,eAActH,QAAOuH,SAC7BD,IACFhhK,KAAK6/J,YAAYxjI,cAAc61D,MAAM79E,YACnC,eACA,eAAerU,KAAKghK,iBAEtB5hK,WAAWY,KAAK+gK,oBAEdE,GAAQvH,KACV15J,KAAKigK,WAAajgK,KAAK05J,MAAM99J,OAAS,GAAIoE,KAAKihK,KAE3CjhK,KAAKigK,YACP7gK,WAAW,IAAMY,KAAKkhK,oBAGtBxH,GAASsH,GAAgBC,KAC3BjhK,KAAKugK,YAAcvgK,KAAKwgK,iBACxBxgK,KAAKmhK,eAAiBnhK,KAAKohK,sBAAsBphK,KAAKugK,aAElDvgK,KAAKigK,aACPjgK,KAAK4/J,aAAc,EACnB5/J,KAAKqhK,UAGX,CAEAttI,WACOisG,KAILhgI,KAAKshK,gBAEDthK,KAAKuhK,eACPvhK,KAAKwhK,oBAGHxhK,KAAKyhK,eACPzhK,KAAK0hK,oBAEP1hK,KAAKogK,YAAY3kJ,UAAU,IAAMzb,KAAK2hK,gBAAgBlF,cACxD,CAEAvvI,kBACEltB,KAAKqhK,SACLjiK,WAAW,IAAOY,KAAK4/J,aAAc,EACvC,CAEAzB,UAAUvpJ,GACR,QAASA,EAAKF,IAAI8xB,MAAM,qBAC1B,CAEA20H,OAAOp6J,EAAe6gK,GAAY,GAChC,GAAI5hK,KAAK6rB,gBAAkB9qB,EACzB,OAAOf,KAAKqhK,SAUd,GAPIrhK,KAAK05J,MAAM15J,KAAK6rB,gBAAgB8rI,OAClC33J,KAAK6hK,mBAMH7hK,KAAKghK,aAAe,GAAKY,EAAW,CACtC,MAAME,EAAW9hK,KAAK05J,MAAM99J,OAASoE,KAAKghK,aAEf,IAAvBhhK,KAAK6rB,eAAuB9qB,EAAQ,EACtCA,EAAQ,EACCf,KAAK6rB,cAAgBi2I,EAE9B/gK,EAAQkB,KAAKq+F,IAAIwhE,EAAU/gK,GAClBA,EAAQ+gK,IAGjB/gK,EAAQf,KAAK05J,MAAM99J,OAEvB,CAEA,MAAMmmK,GAAoB/hK,KAAK05J,MAAM34J,GAGrC,GAFgBf,KAAKigK,YAAc8B,EAGjC,OAAA/hK,KAAKgiK,OAAOjhK,GACLf,KAAKsgK,UAAU/pI,KAAKv2B,KAAK6rB,eAGlC7rB,KAAK6rB,cAAgBk2I,EACjB/hK,KAAKiiK,wBAAwBlhK,GAC7BA,EAEJf,KAAKqhK,SACLrhK,KAAKsgK,UAAU/pI,KAAKv2B,KAAK6rB,cAC3B,CAEA0xI,cAAczrH,GACZ9xC,KAAKm7J,OAAOn7J,KAAK6rB,cAAgBimB,EACnC,CAEA0sH,aAAa5pJ,EAA2BuS,GACtCnnB,KAAKqgK,UAAU9pI,KAAK,CAClBpP,QACAvS,OACA7T,MAAOf,KAAK05J,MAAMh4J,QAAQkT,IAE9B,CAEA+pJ,MAAMuD,IACJA,GAAgCliK,KAAKugK,cAEhB,GAAK2B,EAAgBliK,KAAK05J,MAAM99J,SACnDoE,KAAKm7J,OAAO+G,GAEZ/qI,sBAAsB,IAAOn3B,KAAKmgK,SAAS9jI,cAAc8lI,WAAa,GAE1E,CAEA1D,cAAc7pJ,GACP5U,KAAKoiK,aAGVxtJ,EAAKytJ,SAAU,EACfriK,KAAK4xH,IAAI3wE,gBACX,CAEAg+G,iBAAiBrqJ,GACf,OAAOA,EAAKytJ,OACd,CAEAtD,aAAah+J,GACXA,UAAgBf,KAAKugK,aACN,GAAKx/J,GAASf,KAAK05J,MAAM99J,MAC1C,CAEQylK,SACNrhK,KAAKkS,OACP,CAEQ+vJ,wBAAwBlhK,GAC9B,OAAOA,EAAQ,EAAI,EAAIf,KAAK05J,MAAM99J,OAAS,CAC7C,CAEQ4kK,iBACN,OAAOxgK,KAAKigK,WACRh+J,KAAKq+F,IAAIr+F,KAAK85J,KAAK/7J,KAAKghK,cAAehhK,KAAK05J,MAAM99J,QAClD,CACN,CAEQwlK,sBAAsBb,GAC5B,OAAOvgK,KAAKigK,WACR,IACKjgK,KAAK05J,MAAMrzJ,OAAOk6J,MAClBvgK,KAAK05J,SACL15J,KAAK05J,MAAMrzJ,MAAM,EAAGk6J,IAEzBvgK,KAAK05J,KACX,CAEQ8H,oBACNxhK,KAAK+wF,MAAM71D,kBAAkB,KAC3B,MAAM06D,EAAS51F,KAAKmgK,SAAS9jI,cAC7B,IAAIimI,EACAC,EAAY,EACZC,EAAY,EAEhB,MAAMC,EAAezhK,IACnBshK,EAAYthK,EACZhB,KAAK4/J,YAAc5/J,KAAK2gK,SAAU,EAElCjhI,SAASmvD,iBACP,YACA6zE,EACAhD,IAEFhgI,SAASmvD,iBACP,UACA8zE,EACAjD,GAAwB,EAItBgD,EAAe1hK,IACnBuhK,EAAYtgK,KAAKisB,IAAIjsB,KAAK6G,IAAIw5J,EAAUvtB,QAAU/zI,EAAE+zI,UACpDytB,EAAYvgK,KAAKisB,IAAIjsB,KAAK6G,IAAIw5J,EAAUttB,QAAUh0I,EAAEg0I,UACpDh1I,KAAKy7J,aAAaz6J,EAAE4hK,UAAS,EAGzBD,EAAYA,KAChB3iK,KAAK4/J,YAAc5/J,KAAK2gK,SAAU,EAClC3gK,KAAK+wF,MAAMx3D,IAAI,IAAMv5B,KAAK6iK,mBAAmB7iK,KAAK0gK,gBAClD1gK,KAAK0gK,cAAgB,EAErBhhI,SAASovD,oBAAoB,YAAa4zE,GAC1ChjI,SAASovD,oBAAoB,UAAW6zE,EAAS,EAG7CG,EAAW9hK,KACXuhK,EAAY,IAAMC,EAAY,MAChCxhK,EAAEw4I,kBAEFx4I,EAAE20F,kBAEJ6sE,EAAYD,EAAY,GAGpBQ,EAAe/hK,GAAiBA,EAAE20F,iBAExCC,EAAO/G,iBACL,YACA4zE,EACA/C,IAEF9pE,EAAO/G,iBAAiB,QAASi0E,EAAS,CAAE5hC,SAAS,IACrDtrC,EAAO/G,iBAAiB,YAAak0E,GAErC/iK,KAAKogK,YAAY3kJ,UAAU,KACzBm6E,EAAO9G,oBAAoB,YAAa2zE,GACxC7sE,EAAO9G,oBAAoB,QAASg0E,GACpCltE,EAAO9G,oBAAoB,YAAai0E,EAAW,EACpD,EAEL,CAEQrB,oBACN1hK,KAAK+wF,MAAM71D,kBAAkB,KAC3B,MAAM06D,EAAS51F,KAAKmgK,SAAS9jI,cAC7B,IAAI2mI,EACAC,EACAC,EAEJ,MAAMC,EAAgBniK,IACpBiiK,EAAajiK,EACbhB,KAAK4/J,YAAc5/J,KAAK2gK,SAAU,GAG9ByC,EAAepiK,IACnB,IAAKiiK,GAAmC,IAArBjiK,EAAEomI,QAAQxrI,OAC3B,OAEF,MAAMynK,EAAaJ,EAAW77B,QAAQ,GAChCk8B,EAAYtiK,EAAEomI,QAAQ,GAE5B,GAAkB,MAAd47B,EAAoB,CACtB,MAAMO,EAASthK,KAAK6G,IAAIw6J,EAAUvuB,QAAUsuB,EAAWtuB,SACjDyuB,EAASvhK,KAAK6G,IAAIw6J,EAAUtuB,QAAUquB,EAAWruB,UAEnDuuB,GAAUC,KACZR,EAAsB,IAATO,GAAgBC,EAEjC,CAEIR,IACFhjK,KAAKy7J,aACH6H,EAAUvuB,SAAWmuB,GAAiBD,GAAY77B,QAAQ,GAAG2N,SAE/DmuB,EAAgBliK,EACZk2J,SACFl2J,EAAE20F,iBACF30F,EAAEw4I,mBAAe,EAKjBiqB,EAAaA,KACjBzjK,KAAK4/J,YAAc5/J,KAAK2gK,SAAU,EAClC3gK,KAAK+wF,MAAMx3D,IAAI,IAAMv5B,KAAK6iK,mBAAmB7iK,KAAK0gK,gBAClD1gK,KAAK0gK,cAAgB,EAErBsC,OAAaroK,EACbsoK,OAAatoK,EACbuoK,OAAgBvoK,GAGlBi7F,EAAO/G,iBACL,aACAs0E,EACAzD,IAEFhgI,SAASmvD,iBAAiB,YAAau0E,EAAa,CAClDv7B,SAAUqvB,SAEZx3H,SAASmvD,iBACP,WACA40E,EACA/D,IAEF1/J,KAAKogK,YAAY3kJ,UAAU,KACzBm6E,EAAO9G,oBAAoB,aAAcq0E,GACzCzjI,SAASovD,oBAAoB,YAAas0E,GAC1C1jI,SAASovD,oBAAoB,WAAY20E,EAAU,EACpD,EAEL,CAEQnC,gBACN37H,OAAOkpD,iBACL,SACA7uF,KAAK+gK,iBACLrB,IAGF1/J,KAAKogK,YAAY3kJ,UAAU,KACzBkqB,OAAOmpD,oBAAoB,SAAU9uF,KAAK+gK,iBAAgB,EAE9D,CAEQiB,OAAO0B,GACb1jK,KAAK4/J,aAAc,EAEnB,MAAM1tJ,EAAQjQ,KAAKg6J,KAAKyH,GAAgB1jK,KAAK05J,MAAM99J,OAASoE,KAAKygK,WAEjEzgK,KAAKy7J,aAAavpJ,GAClBlS,KAAK6rB,cACH63I,EAAe,EACXA,EAAe1jK,KAAK05J,MAAM99J,OAC1B8nK,EAAe1jK,KAAK05J,MAAM99J,OAShCu7B,sBAAsB,IACpB/3B,WAAW,KACTY,KAAK0gK,cAAgB,EACrB1gK,KAAK4/J,aAAc,EACnB5/J,KAAKqhK,QAAM,GAGjB,CAEQH,iBACN,IAAKlhC,GACH,OAEFhgI,KAAK2hK,gBAAgBlF,aAErB,MAAM73J,EAAW,IAAIu3J,qBAAqBn8J,KAAK4gK,mBAAoB,CACjEtnI,KAAMt5B,KAAKmgK,SAAS9jI,cACpB+/H,UAAW,IAEbx3J,EAASolF,QAAQhqF,KAAK6gK,SAAS7jI,MAAMX,eACrCz3B,EAASolF,QAAQhqF,KAAK6gK,SAAS5jI,KAAKZ,eAEpCr8B,KAAK2hK,eAAiB/8J,CACxB,CAwBQi+J,mBAAmBc,GAOzB,MAAMC,EACJ3hK,KAAKyyG,OACFzyG,KAAK6G,IAAI66J,GAAY3jK,KAAKygK,WAAa,MAAQzgK,KAAKygK,aAClDx+J,KAAKg6J,KAAK0H,GAGjB3jK,KAAKm7J,OAFYn7J,KAAK6rB,cAAgB+3I,GAEhB,EACxB,CAEQ1xJ,MAAM4/B,EAAQ,GACpB,MAAM+xH,EAAa7jK,KAAKu8J,MAAQ,GAAI,EAKpCv8J,KAAK6/J,YAAYxjI,cAAc61D,MAAMvrC,UAAY,qBAJlC3mD,KAAK6rB,cAAgB7rB,KAAKugK,aAAesD,2BACxD/xH,IAAU+xH,aAIZ,CAOQhC,mBACN,MAAMiC,EAAU9jK,KAAK6gK,SAClB5wJ,IAAIjQ,KAAK6rB,gBACRwQ,cAAc6D,cAAc,SAE5B4jI,GACFA,EAAQ5kE,OAEZ,iDAxeWygE,GAAernG,uBAAA,iCAAfqnG,EAAepmJ,UAAA,aAAAS,UAAA,SAAAg6B,EAAAof,MAAA,EAAApf,8IAAfskB,GAAA,OAAAlF,EAAA2wG,KAAAzrG,CAAe,MAAAlF,EAAAmpG,05EDrE5BjkG,EAAA,EAAA0rG,GAAA,gBAUA1rG,EAAA,eAEEA,EADA,EAAA2rG,GAAA,WACA3rG,CADgE,EAAA4rG,GAAA,aAoFlE5rG,IA4BAA,EA1BA,EAAA6rG,GAAA,eA0BA7rG,CApBC,EAAA8rG,GAAA,gBAoBD9rG,CAXC,EAAA+rG,GAAA,qBAWD/rG,CAFC,EAAAgsG,GAAA,oBAxHEhsG,EAAA,OAAAlF,EAAA4sG,eASW1nG,0DACPA,EAAA,GAAAA,EAAA,eAAAlF,EAAA+tG,gBAAA/tG,EAAA+tG,eAAAvlK,SAGc08D,MAAA,UAAAlF,EAAA+tG,gBAoFlB7oG,MAAA,OAAAlF,EAAA8sG,eAUA5nG,MAAA,OAAAlF,EAAAqsG,SAAArsG,EAAAsmG,MAAA99J,QAOA08D,IAEMA,EAFN,mBAAAlF,EAAAmxG,gBAEMjsG,CAAA,0B7Fu14BT,SAASksG,GAAgBh8F,EAAYC,EAAQa,EAAK3iE,GAC9C,OAAO0iE,GAAsBjgD,IAAYe,KAAkBq+C,EAAYC,EAAQa,EAAK3iE,EACxF,C6Fz14BS2xD,CAAA,EAAAg+E,GAAAljF,EAAAvnC,gBAONysC,MAAA,OAAAlF,EAAAqxG,cAAArxG,EAAAsmG,uBC9DCx4E,GAAY2oC,SACZwzC,GACA/F,GACAwF,GACAM,IAAQxkJ,OAAA,4wEAAAF,KAAA,CAAAq6C,UAfE,CACVuqC,GAAQ,eAAgB,CACtBK,GAAW,SAAUH,GAAQ,cAC7BG,GAAW,SAAU,CACnBzL,GAAM,CAAE8hD,QAAS,IACjBx2C,GAAQ,QAAiCtL,GAAM,CAAE8hD,QAAS,WAG/D77H,gBAAA,YAUUwnJ,CAAe,+BCrE5BrnG,EAAA,YACEA,EAAA,GACFA,sBADEA,OAAA,IAAAosG,EAAAC,KAAAvN,aAAA,6CAGF9+F,EAAA,cAeEA,GADA,sBAAAm0D,GAAA,OAAAn0D,EAAAssG,GAAAtsG,MAAcusG,cAAAp4C,GAAqB,EACnCn0D,CADoC,sBAAAm0D,GAAA,OAAAn0D,EAAAssG,GAAAtsG,MACtBogG,WAAAniI,KAAAk2F,GAAuB,GACtCn0D,wBAHCA,EAXA,QAAAosG,EAAAhL,MAWAphG,CAXe,gBAAAosG,EAAA74I,cAWfysC,CAV+B,cAAAosG,EAAAI,kBAU/BxsG,CATiC,SAAAosG,EAAAK,aASjCzsG,CARuB,qBAAAosG,EAAAM,yBAQvB1sG,CAP+C,aAAAosG,EAAAO,iBAO/C3sG,CAN+B,iBAAAosG,EAAAQ,qBAM/B5sG,CALuC,gBAAAosG,EAAAtM,cAKvC9/F,CAJ+B,gBAAAosG,EAAAS,oBAI/B7sG,CAHqC,gBAAAosG,EAAAU,mBAGrC9sG,CAFoC,OAAAosG,EAAAC,KAEpCrsG,CADa,QAAAosG,EAAAnI,QCwBR,IAAM8I,GAAgB,MAAvB,MAAOA,EARb7kK,cAYWR,KAAA05J,MAAuB,GAIvB15J,KAAA6rB,cAAgB,EAIhB7rB,KAAA2kK,KAAaxN,GAIbn3J,KAAAg6J,QAAS,EAITh6J,KAAAykK,cAAe,EAQfzkK,KAAAoiK,YAAa,EAIbpiK,KAAAuhK,eAAgB,EAIhBvhK,KAAAyhK,eAAgB,EAMhBzhK,KAAA+jK,MAAO,EAIP/jK,KAAAy/J,SAAU,EACVz/J,KAAAq/J,mBAA0C,SAI1Cr/J,KAAAslK,QAAmB,OAInBtlK,KAAAihK,MAAO,EAIPjhK,KAAA+9J,UAAuB,QAMhC/9J,KAAAu8J,OAAQ,EAICv8J,KAAAghK,aAAe,EAIfhhK,KAAAw9J,YAAcx9J,KAAKghK,aAoBnBhhK,KAAAulK,QAAS,EAITvlK,KAAAilK,kBAAmB,EAInBjlK,KAAA8kK,kBAAiC,SAIjC9kK,KAAA+kK,cAAe,EAQf/kK,KAAAklK,qBAAuC,SActCllK,KAAAqgK,UAAY,IAAInqI,GAChBl2B,KAAAw4J,WAAa,IAAItiI,GACjBl2B,KAAA04J,WAAa,IAAIxiI,GACjBl2B,KAAAu/J,iBAAmB,IAAIrpI,GAIvBl2B,KAAAsgK,UAAY,IAAIpqI,GAO1B,kBACIsvI,GACF,MAC6B,QAA3BxlK,KAAK8kK,mBAA0D,WAA3B9kK,KAAK8kK,iBAE7C,CAEA,0BAAIW,GACF,OAAOzlK,KAAKwlK,eACT,EACA,EACL,CAEAh/I,aAAckzI,UACRA,IAAUA,EAAM5zI,eAClB9lB,KAAK05J,MAAQ,GAEjB,CAEApuB,QACEtrI,KAAK0lK,aAAarpI,cAAcivG,OAClC,CAGA/rI,OACES,KAAK2lK,WAAWpI,cAAc,EAChC,CAGAljK,OACE2F,KAAK2lK,WAAWpI,eAAc,EAChC,CAEApC,OAAOp6J,GACLf,KAAK2lK,WAAWxK,OAAOp6J,GACvBf,KAAK4lK,YAAYzK,OAAOp6J,GACxBf,KAAK6lK,gBAAgB9kK,EACvB,CAEA+kK,YAAY1L,GACVp6J,KAAK4lK,YAAYrO,MAAM6C,EACzB,CAEAyK,cAAc19I,GACZnnB,KAAK2lK,WAAWxK,OAAOh0I,EAAMpmB,OAC7Bf,KAAKw4J,WAAWjiI,KAAKpP,GACrBnnB,KAAK6lK,gBAAgB1+I,EAAMpmB,MAC7B,CAEA8kK,gBAAgB9kK,GACdf,KAAK6rB,cAAgB9qB,EACrBf,KAAKsgK,UAAU/pI,KAAKv2B,KAAK05J,MAAM34J,GACjC,iDAjMWskK,EAAgB,iCAAhBA,EAAgB9rJ,UAAA,cAAAS,UAAA,SAAAg6B,EAAAof,MAAA,EAAApf,OAwIhB2rH,GAAe,MACf3G,GAAe,MACf2G,GAAe,EAAUvjI,wKA1IzBk8B,GAAA,uCAAAlF,EAAA7zD,MAAM,EAAN+4D,CAAgB,sCAAhBlF,EAAA/4D,MAAM,QAANi+D,GAAA,MAAAlF,EAAAmpG,MAAAjkG,CAAgB,kBAAAlF,EAAAoyG,i3DDpC7BltG,EAJA,EAAAytG,GAAA,aAIAztG,CAJ8D,EAAA0tG,GAAA,iBAsB9D1tG,EAAA,cA0BEA,GAFA,qBAAAm0D,GAAA,OAAar5D,EAAAitG,UAAA9pI,KAAAk2F,EAAsB,EAEnCn0D,CAFoC,4BAAAm0D,GAAA,OAChBr5D,EAAAmsG,iBAAAhpI,KAAAk2F,EAA6B,EACjDn0D,CADkD,qBAAAm0D,GACrCr5D,SAAAyyG,gBAAAp5C,GAAuB,MAAAr5D,EAAAwyG,WAAA,KAAAxyG,EAAAwyG,WAAAzK,OAAA1uC,EAAA,GAEtCn0D,WAlDOA,EAAA,aAAAlF,EAAAuxG,KAAA,KAAAvxG,EAAAuxG,KAAAvN,cAKJ9+F,MAAA,OAAAlF,EAAAmyG,QAkBDjtG,IAsBAA,EAtBA,QAAAlF,EAAAsmG,MAsBAphG,CAtBe,iBAAAlF,EAAAvnC,cAsBfysC,CArBgC,SAAAlF,EAAA4mG,OAqBhC1hG,CApBiB,eAAAlF,EAAAqxG,aAoBjBnsG,CAnB6B,YAAAlF,EAAAgrG,UAmB7B9lG,CAlBuB,aAAAlF,EAAAgvG,WAkBvB9pG,CAjByB,gBAAAlF,EAAAmuG,cAiBzBjpG,CAhB+B,gBAAAlF,EAAAquG,cAgB/BnpG,CAf+B,OAAAlF,EAAA2wG,KAe/BzrG,CAda,UAAAlF,EAAAqsG,QAcbnnG,CAbmB,qBAAAlF,EAAAisG,mBAanB/mG,CAZyC,eAAAlF,EAAA4tG,aAYzC1oG,CAX6B,cAAAlF,EAAAoqG,YAW7BllG,CAV2B,YAAAlF,EAAA2qG,UAU3BzlG,CATuB,UAAAlF,EAAAkyG,QASvBhtG,CARmB,eAAAlF,EAAAmrG,aAQnBjmG,CAP6B,gBAAAlF,EAAAykG,cAO7Bv/F,CAN+B,kBAAAlF,EAAAmxG,gBAM/BjsG,CALmC,OAAAlF,EAAA6tG,KAKnC3oG,CAJa,oBAAAlF,EAAAqyG,uBAIbntG,CAH4C,gBAAAlF,EAAAqkG,cAG5Cn/F,CAF+B,OAAAlF,EAAAuxG,KAE/BrsG,CADa,QAAAlF,EAAAmpG,uBCNHr7E,GAAY2oC,GAAEmvC,GAAiB2G,IAAe/mJ,OAAA,0lBAAAT,gBAAA,YAE7CktJ,CAAgB,KCrCtB,SAASY,GAAUv/J,EAAS48E,GAC/B,MAA8B,mBAAnBA,EACCh/E,GAAWA,EAAOa,KAAK8gK,GAAU,CAACvsK,EAAG8C,IAAMgnD,GAAK98C,EAAQhN,EAAG8C,IAAI2I,KAAKjF,GAAI,CAACvG,EAAG6pF,IAAOF,EAAe5pF,EAAGC,EAAG6C,EAAGgnF,OAE/Gl/E,GAAWA,EAAOF,KAAK,IAAI8hK,GAAkBx/J,GACzD,CACA,MAAMw/J,GACF1lK,YAAYkG,GACR1G,KAAK0G,QAAUA,CACnB,CACA3G,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIkiK,GAAoBpjK,EAAY/C,KAAK0G,SACrE,EAEJ,MAAMy/J,WAA4BljF,GAC9BziF,YAAYmC,EAAa+D,GACrBrE,MAAMM,GACN3C,KAAK0G,QAAUA,EACf1G,KAAKe,MAAQ,CACjB,CACAiC,MAAMxF,GACF,IAAIwJ,EACJ,MAAMjG,EAAQf,KAAKe,QACnB,IACIiG,EAAShH,KAAK0G,QAAQlJ,EAAOuD,EACjC,OACOrD,GAEH,YADAsC,KAAK2C,YAAYjF,MAAMA,EAE3B,CACAsC,KAAK+jF,UAAU/8E,EACnB,CACA+8E,UAAU/8E,GACN,MAAMi9E,EAAoBjkF,KAAKikF,kBAC3BA,GACAA,EAAkBxjF,cAEtB,MAAM2iF,EAAkB,IAAIP,GAAsB7iF,MAC5C2C,EAAc3C,KAAK2C,YACzBA,EAAYtB,IAAI+hF,GAChBpjF,KAAKikF,kBAAoBd,GAAen8E,EAAQo8E,GAC5CpjF,KAAKikF,oBAAsBb,GAC3BzgF,EAAYtB,IAAIrB,KAAKikF,kBAE7B,CACA/gF,YACI,MAAQ+gF,qBAAsBjkF,OACzBikF,GAAqBA,EAAkB3kF,SACxC+C,MAAMa,YAEVlD,KAAKS,aACT,CACAI,eACIb,KAAKikF,uBAAoBtpF,CAC7B,CACAqoF,iBACIhjF,KAAKikF,uBAAoBtpF,EACrBqF,KAAKyC,WACLJ,MAAMa,WAEd,CACA4/E,WAAWI,GACPljF,KAAK2C,YAAYpD,KAAK2jF,EAC1B,ECzDJ,MAAMkjF,GACF5lK,YAAYw9F,EAAOv2F,GACfzH,KAAKg+F,MAAQA,EACbh+F,KAAKyH,UAAYA,CACrB,CACA1H,KAAKgD,EAAYuB,GACb,OAAOA,EAAOL,UAAU,IAAIoiK,GAAgBtjK,EAAY/C,KAAKg+F,MAAOh+F,KAAKyH,WAC7E,EAEJ,MAAM4+J,WAAwBlkK,GAC1B3B,YAAYmC,EAAaq7F,EAAOv2F,GAC5BpF,MAAMM,GACN3C,KAAKg+F,MAAQA,EACbh+F,KAAKyH,UAAYA,EACjBzH,KAAKq6I,MAAQ,GACbr6I,KAAK6jF,QAAS,EACd7jF,KAAK8hI,SAAU,CACnB,CACA,eAAO2Y,CAAS/8C,GACZ,MAAMp5F,EAASo5F,EAAMp5F,OACf+1I,EAAQ/1I,EAAO+1I,MACf5yI,EAAYi2F,EAAMj2F,UAClB9E,EAAc+6F,EAAM/6F,YAC1B,KAAO03I,EAAMz+I,OAAS,GAAMy+I,EAAM,GAAGl6C,KAAO14F,EAAUy6H,OAAU,GAC5DmY,EAAMnoI,QAAQkpI,aAAapxD,QAAQrnF,GAEvC,GAAI03I,EAAMz+I,OAAS,EAAG,CAClB,MAAMoiG,EAAQ/7F,KAAKisB,IAAI,EAAGmsH,EAAM,GAAGl6C,KAAO14F,EAAUy6H,OACpDliI,KAAK2H,SAAS+1F,EAAOM,EACzB,MAEIh+F,KAAKS,cACL6D,EAAOu/E,QAAS,CAExB,CACAyiF,UAAU7+J,GACNzH,KAAK6jF,QAAS,EACM7jF,KAAK2C,YACbtB,IAAIoG,EAAUE,SAAS0+J,GAAgB5rB,SAAUz6I,KAAKg+F,MAAO,CACrE15F,OAAQtE,KAAM2C,YAAa3C,KAAK2C,YAAa8E,UAAWA,IAEhE,CACA8+J,qBAAqBnrB,GACjB,IAAqB,IAAjBp7I,KAAK8hI,QACL,OAEJ,MAAMr6H,EAAYzH,KAAKyH,UACjBxH,EAAU,IAAIumK,GAAa/+J,EAAUy6H,MAAQliI,KAAKg+F,MAAOo9C,GAC/Dp7I,KAAKq6I,MAAMr9I,KAAKiD,IACI,IAAhBD,KAAK6jF,QACL7jF,KAAKsmK,UAAU7+J,EAEvB,CACAzE,MAAMxF,GACFwC,KAAKumK,qBAAqB7rB,GAAaI,WAAWt9I,GACtD,CACAyF,OAAOjF,GACHgC,KAAK8hI,SAAU,EACf9hI,KAAKq6I,MAAQ,GACbr6I,KAAK2C,YAAYjF,MAAMM,GACvBgC,KAAKS,aACT,CACAyC,YACIlD,KAAKumK,qBAAqB7rB,GAAaO,kBACvCj7I,KAAKS,aACT,EAEJ,MAAM+lK,GACFhmK,YAAY2/F,EAAMi7C,GACdp7I,KAAKmgG,KAAOA,EACZngG,KAAKo7I,aAAeA,CACxB,wCCoHF9iF,EAAA,8BAqBEA,GAAA,qCAAAA,EAAAssG,GAAAtsG,MAAAmuG,cAAAhC,cAAiD,EAAK,GACvDnsG,wBAFCA,EAlBA,QAAAA,GAAA,KAAAouG,EAAAhN,OAkBAphG,CAlBuB,SAAAouG,EAAAD,cAAAzM,OAkBvB1hG,CAjB+B,eAAAouG,EAAAD,cAAAhC,aAiB/BnsG,CAhB2C,gBAAAouG,EAAAD,cAAAlF,cAgB3CjpG,CAf6C,gBAAAouG,EAAAD,cAAAhF,cAe7CnpG,CAd6C,UAAAouG,EAAAD,cAAAhH,QAc7CnnG,CAbiC,qBAAAouG,EAAAD,cAAApH,mBAajC/mG,CAZuD,eAAAouG,EAAAD,cAAAzF,aAYvD1oG,CAX2C,YAAAouG,EAAAD,cAAA1I,UAW3CzlG,CAVqC,UAAAouG,EAAAD,cAAAnB,QAUrChtG,CATiC,OAAAouG,EAAAD,cAAAxF,KASjC3oG,CAR2B,QAAAouG,EAAAD,cAAAE,IAQ3BruG,CAP2B,gBAAAouG,EAAAD,cAAA56I,cAO3BysC,CAN6C,SAAAouG,EAAAD,cAAAlB,OAM7CjtG,CAL+B,mBAAAouG,EAAAD,cAAAxB,iBAK/B3sG,CAJmD,oBAAAouG,EAAAD,cAAA3B,kBAInDxsG,CAHqD,eAAAouG,EAAAD,cAAA1B,aAGrDzsG,CAF2C,2BAAAouG,EAAAD,cAAAzB,yBAE3C1sG,CADmE,uBAAAouG,EAAAD,cAAAvB,8CAOrE5sG,EAAA,YAA4BA,EAAA,wBAAkBA,2BAU9CA,GAAA,0BAIEA,EAAA,YACEA,EAAA,+BACFA,+BAHAA,EAAA,cACAA,EAAA,EAAAsuG,GAAA,iDAD+BtuG,EAAA,MAAAuuG,SAAAnyJ,IAAA,GAAA4jD,IACFA,EAAA,GAAAA,EAAA,OAAAuuG,GAAAC,EAAAC,eAAA,6BAK7BzuG,EAAA,iCAGEA,EAAA,oBAAA5jD,IAAA,GAAA4jD,8BAJJA,EARA,EAAA0uG,GAAA,sBAQA1uG,CARuE,EAAA2uG,GAAA,yBAAA3uG,GAQvEA,CAN0B,EAAA4uG,GAAA,yBAAA5uG,wCAF2BA,EAAtC,OAAA6uG,EAAAxP,MAAsCr/F,CAApB,WAAA8uG,EAAoB9uG,CAAA,WAAA+uG,6BAwBrD/uG,EAAA,gCAA0BA,EAAA,MAAAgvG,EAAArP,UAAAqP,EAAA5yJ,IAAA4jD,4BAI1BA,EAAA,YAA0BA,EAAA,0BAAoBA,4BAI9CA,EAAA,YAAgCA,EAAA,gCAA0BA,4BAKxDA,EADF,cACEA,CAD2B,cACjBA,EAAA,uBACZA,OC/NK,IAAMivG,GAAwB,MAA/B,MAAOA,EAgCX/mK,YAAoBmxH,GAAA3xH,KAAA2xH,KA5BpB3xH,KAAAwnK,gBAAiB,EACjBxnK,KAAAynK,oBAAsB,EAItBznK,KAAAymK,cAA+B,CAC7BzM,QAASh6J,KAAK0nK,OACdjD,cAAc,EACdlD,eAAe,EACfE,eAAe,EACfhC,SAAS,EACTJ,mBAAoB,SACpB2B,aAAc,EACdjD,UAAW,QACXuH,QAAS,OACTrE,MAAM,EACN0F,KAAK,EACL96I,cAAe,EACf05I,QAAQ,EACRN,kBAAkB,EAClBH,kBAAmB,SACnBC,cAAc,EACdC,yBAA0B,EAC1BE,qBAAsB,UA8ChBllK,KAAA2nK,mBAAqB,KAC3BC,eAAeC,QAAQ,gBAAiBluJ,KAAK/O,UAAU5K,KAAKymK,eAAc,EAzC1EjvG,GAAgB,CACd1K,KAAMA,KACJ9sD,KAAKymK,cAAgBzmK,KAAK8nK,oBAAsB9nK,KAAKymK,cACrDzmK,KAAK0nK,OAASniC,WAAW,sBAAsB1sF,QAC/ClT,OAAOkpD,iBAAiB,WAAY7uF,KAAK2nK,mBAAkB,GAGjE,CAEA5zI,WACE/zB,KAAK05J,MAAQ/3E,GAAG3hF,KAAK+nK,QAAQ5iK,KAC3B8gK,GAAUvM,GCxFT,SAASsO,GAAMC,GAClB,OAAO,IAAIjkK,GAAWjB,IAClB,IAAIwC,EACJ,IACIA,EAAQ0iK,GACZ,OACOjqK,GAEH,YADA+E,EAAWrF,MAAMM,EAErB,CAEA,OADeuH,EAAQi+C,GAAKj+C,GAASlG,MACvB4E,UAAUlB,EAAU,EAE1C,CD4EQilK,CAAM,IAAMrmF,GAAG+3E,GAAOv0J,KFxFvB,SAAS64F,GAAMA,EAAOv2F,EAAYq4E,IAErC,MAAMooF,EINH,SAASC,GAAO3qK,GACnB,OAAOA,aAAiB2kI,OAAS9lD,OAAO7+E,EAC5C,CJG0B2qK,CAAOnqE,IACMA,EAAQv2F,EAAUy6H,MAASjgI,KAAK6G,IAAIk1F,GACvE,OAAQ15F,GAAWA,EAAOF,KAAK,IAAIgiK,GAAc8B,EAAUzgK,GAC/D,CEoFmCu2F,CAAMh+F,KAAKynK,wBAG5C,CAEAW,eAAe3tG,EAA2Bj9D,GAC1B,KAAVA,IAGJwC,KAAKymK,cAAchsG,IAAgBj9D,EACnCwC,KAAKqoK,gBACP,CAEAA,gBACEroK,KAAKwnK,gBAAiB,EACtBxnK,KAAK2xH,GAAG1wE,gBACRjhD,KAAKwnK,gBAAiB,EACtBxnK,KAAK2xH,GAAG1wE,eACV,CAEUqnH,cAAcnhJ,GACtB,OAAQA,EAAMxc,OAA4BnN,KAC5C,CAEQsqK,mBACN,OAAOnuJ,KAAKknB,MAAM+mI,eAAeW,QAAQ,iBAC3C,iDAvEWhB,GAAwBjvG,MAAA,iCAAxBivG,EAAwBhuJ,UAAA,4BAAAS,UAAA,SAAAg6B,EAAAof,MAAA,EAAApf,MA8BxBqxH,GAAgB,69ED3EzB/sG,EAFJ,SAEIA,CAFE,QAEFA,CADG,QACCA,EAAA,+BAAyBA,IAG3BA,EADF,YACEA,CADO,qBACqBA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAzM,OAAAvtC,KAAAr5D,EAAAqzG,cAAAzM,OAAAvtC,GAAAn0D,EAAAm0D,EAAA,GACzBn0D,EAAA,YAELA,MAGEA,EADF,YACEA,CADO,qBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAhC,aAAAh4C,KAAAr5D,EAAAqzG,cAAAhC,aAAAh4C,GAAAn0D,EAAAm0D,EAAA,GAEAn0D,EAAA,oBAEJA,MAGEA,EADF,aACEA,CADO,sBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAlF,cAAA90C,KAAAr5D,EAAAqzG,cAAAlF,cAAA90C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GAEzB/vG,EAAA,uBAEJA,MAGEA,EADF,aACEA,CADO,sBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAhF,cAAAh1C,KAAAr5D,EAAAqzG,cAAAhF,cAAAh1C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GAEzB/vG,EAAA,uBAEJA,MAGEA,EADF,aACEA,CADO,sBACsBA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAhH,QAAAhzC,KAAAr5D,EAAAqzG,cAAAhH,QAAAhzC,GAAAn0D,EAAAm0D,EAAA,GAC1Bn0D,EAAA,cAELA,MAGEA,EADF,aACEA,CADO,sBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAxF,KAAAx0C,KAAAr5D,EAAAqzG,cAAAxF,KAAAx0C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GACxB/vG,EAAA,WAELA,MAGEA,EADF,aACEA,CADO,sBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAE,IAAAl6C,KAAAr5D,EAAAqzG,cAAAE,IAAAl6C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GACxB/vG,EAAA,oBAELA,MAGEA,EADF,aACEA,CADO,gBACIA,EAAA,2BAAoBA,IAC/BA,EAAA,yBAEEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAApH,mBAAA5yC,KAAAr5D,EAAAqzG,cAAApH,mBAAA5yC,GAAAn0D,EAAAm0D,EAAA,GAEAn0D,EAAA,0BAA8BA,EAAA,UAAGA,IACjCA,EAAA,0BAAiCA,EAAA,aAErCA,QAGEA,EADF,aACEA,CADO,gBACIA,EAAA,iBAAUA,IACrBA,EAAA,yBAAkCA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAA1I,UAAAtxC,KAAAr5D,EAAAqzG,cAAA1I,UAAAtxC,GAAAn0D,EAAAm0D,EAAA,GAChCn0D,EAAA,0BAAkCA,EAAA,cAAOA,IACzCA,EAAA,0BAAgCA,EAAA,YAEpCA,QAGEA,EADF,aACEA,CADO,gBACIA,EAAA,8BAAuBA,IAClCA,EAAA,yBAEEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAnB,QAAA74C,KAAAr5D,EAAAqzG,cAAAnB,QAAA74C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GAEzB/vG,EAAA,0BAA+BA,EAAA,WAAIA,IACnCA,EAAA,0BAA+BA,EAAA,WAEnCA,QAIIA,EAFJ,aAEIA,CAFK,oBAELA,CADc,gBACHA,EAAA,gCAAyBA,IACpCA,EAAA,eAGEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAzF,aAAAv0C,KAAAr5D,EAAAqzG,cAAAzF,aAAAv0C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GAG/B/vG,QAIIA,EAFJ,aAEIA,CAFK,oBAELA,CADc,gBACHA,EAAA,qBAAcA,IACzBA,EAAA,eAKEA,GAAA,iBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,EAASlF,EAAAg1G,eAAe,gBAAiBh1G,EAAAk1G,cAAA77C,IAAsB,GAIvEn0D,UAGEA,EADF,SACEA,CADG,SACCA,EAAA,4BAAqBA,IAEvBA,EADF,aACEA,CADO,sBACqBA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAlB,OAAA94C,KAAAr5D,EAAAqzG,cAAAlB,OAAA94C,GAAAn0D,EAAAm0D,EAAA,GACzBn0D,EAAA,iBAELA,MAGEA,EADF,aACEA,CADO,sBAGLA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAxB,iBAAAx4C,KAAAr5D,EAAAqzG,cAAAxB,iBAAAx4C,GAAAn0D,EAAAm0D,EAAA,GACCn0D,EAAA,wBAELA,MAGEA,EADF,aACEA,CADO,sBAC2BA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAA1B,aAAAt4C,KAAAr5D,EAAAqzG,cAAA1B,aAAAt4C,GAAAn0D,EAAAm0D,EAAA,GAC/Bn0D,EAAA,uBAELA,MAGEA,EADF,aACEA,CADO,gBACIA,EAAA,8BAAuBA,IAClCA,EAAA,yBAEEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAA3B,kBAAAr4C,KAAAr5D,EAAAqzG,cAAA3B,kBAAAr4C,GAAAn0D,EAAAm0D,EAAA,GAEAn0D,EAAA,0BAA8BA,EAAA,UAAGA,IACjCA,EAAA,0BAAiCA,EAAA,aAAMA,IACvCA,EAAA,0BAA+BA,EAAA,WAAIA,IACnCA,EAAA,0BAAgCA,EAAA,YAEpCA,QAGEA,EADF,aACEA,CADO,gBACIA,EAAA,kCAA2BA,IACtCA,EAAA,yBAEEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAvB,qBAAAz4C,KAAAr5D,EAAAqzG,cAAAvB,qBAAAz4C,GAAAn0D,EAAAm0D,EAAA,GAEAn0D,EAAA,0BAAiCA,EAAA,aAAMA,IACvCA,EAAA,0BAA+BA,EAAA,WAEnCA,QAIIA,EAFJ,aAEIA,CAFK,oBAELA,CADc,gBACHA,EAAA,sCAA+BA,IAC1CA,EAAA,eAGEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAqzG,cAAAzB,yBAAAv4C,KAAAr5D,EAAAqzG,cAAAzB,yBAAAv4C,GAAAn0D,EAAAm0D,EAAA,GAGNn0D,QAEAA,EAAA,SAEAA,EAAA,SAAIA,EAAA,gBAASA,IAITA,EAFJ,gBAEIA,CAFmC,qBAEnCA,CADc,iBACHA,EAAA,2CAAmCA,IAC9CA,EAAA,gBAGEA,GAAA,yBAAAm0D,GAAAn0D,SAAA0hF,GAAA1hF,GAAAlF,EAAAq0G,oBAAAh7C,KAAAr5D,EAAAq0G,oBAAAh7C,GAAAn0D,EAAAm0D,EAAA,GACAn0D,GAAA,oBAAAA,SAAA0hF,GAAA1hF,EAAUlF,EAAAi1G,gBAAe,GAKnC/vG,YAEAA,EAAA,cACEA,EAAA,IAAAkwG,GAAA,mBAuBFlwG,IAgDAA,EA9CA,IAAAmwG,GAAA,yBAAAnwG,GA8CAA,CA9C8B,IAAAowG,GAAA,yBAAApwG,GA8C9BA,CApCC,IAAAqwG,GAAA,yBAAArwG,GAoCDA,CAZC,IAAAswG,GAAA,yBAAAtwG,GAYDA,CAR4B,IAAAuwG,GAAA,yBAAAvwG,GAQ5BA,CAJiC,IAAAwwG,GAAA,yBAAAxwG,UAlQCA,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAzM,QAQ1B1hG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAhC,cASAnsG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAlF,eAUAjpG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAhF,eAQ2BnpG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAhH,SAQ3BnnG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAxF,MASA3oG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAE,KAUAruG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAApH,oBASgC/mG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAA1I,WAUhCzlG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAnB,SAcEhtG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAzF,cAaA1oG,EAAA,GAAAA,EAAA,QAAAlF,EAAAqzG,cAAA56I,eAUwBysC,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAlB,QAQ1BjtG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAxB,kBAMgC3sG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAA1B,cAShCzsG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAA3B,mBAaAxsG,EAAA,IAAAA,GAAA,UAAAlF,EAAAqzG,cAAAvB,sBAaE5sG,EAAA,GAAAA,GAAA,UAAAlF,EAAAqzG,cAAAzB,0BAeA1sG,EAAA,GAAAA,GAAA,UAAAlF,EAAAq0G,qBAULnvG,EAAA,GAAAA,EAAA,OAAAlF,EAAAo0G,goDCtJQD,CAAwB,KGvCxBwB,GAAe,MAAtB,MAAOA,oDAAe,iCAAfA,EAAexvJ,UAAA,iBAAA1B,MAAA,GAAAC,KAAA,EAAAE,OAAA,obAAAD,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,ICLtBskB,EAHN,WAGMA,CAHE,UAGFA,CAFgC,QAEhCA,CADG,WAEDA,EAAA,WACAA,EAAA,QAAIA,EAAA,iBACNA,MACAA,EAAA,WACEA,EAAA,gEACFA,IAGEA,EADF,UACEA,CADiB,UAKfA,EAAA,YACFA,IACAA,EAAA,UAKEA,EAAA,YAKVA,q6DDpBaywG,CAAe,0FEF1BzwG,EAAA,SAMEA,EAAA,WAAsDA,EAAA,yBAAkBA,UAJxEA,EAAA,WAAA0wG,WAAA1wG,ICAG,IAAM2wG,GAAiB,MAAxB,MAAOA,oDAAiB,iCAAjBA,EAAiB1vJ,UAAA,mBAAAK,OAAA,CAAAsvJ,QAAA,UAAAC,WAAA,aAAAH,WAAA,cAAA/wJ,mBAAAo+H,GAAAx+H,MAAA,EAAAC,KAAA,EAAAE,OAAA,sNAAAD,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,WDP5BskB,EADF,UACEA,CAD2B,QACvBA,EAAA,GAAaA,IACjBA,EAAA,WACEA,EAAA,GACAA,GAAA,GACFA,IACAA,EAAA,EAAA8wG,GAAA,WAQF9wG,IAEAA,GAAA,YAfMA,EAAA,GAAAA,GAAAlF,EAAA81G,SAEF5wG,EAAA,GAAAA,GAAA,IAAAlF,EAAA+1G,WAAA,KAIC7wG,EAAA,GAAAA,EAAA,OAAAlF,EAAA41G,myBCCQC,CAAiB,2BCYxB3wG,EAAA,gBAAoBA,EAAA,eAAA5jD,IAAA4jD,0BACpBA,EAAA,kBAAqBA,EAAA,eAAA5jD,IAAA4jD,0CAPzBA,EAAA,WAGEA,GAAA,yBAAA+wG,EAAA/wG,EAAA0hF,GAAAplI,KAAA,OAAA0jD,MAAAgxG,aAAAD,EAAA,GAEA/wG,EAAA,WAEEA,EADA,EAAAixG,GAAA,YACAjxG,CADuC,EAAAkxG,GAAA,eAEzClxG,IAGIA,EAFJ,UAEIA,CAFkB,MAElBA,CADC,YACOA,EAAA,GACVA,MACAA,EAAA,OAAGA,EAAA,GAEPA,yCAbEA,GAAA,4BAAAgxG,eAAAD,GAIQ/wG,EAAA,GAAAA,EAAA,QAAAmxG,GACEnxG,MAAA,OAAAmxG,GAIEnxG,EAAA,GAAAA,GAAA+wG,EAAAnyE,KAEP5+B,EAAA,GAAAA,GAAA+wG,EAAAnK,qCAMP5mG,EAAA,iBAA+BA,EAAA,uBAAiBA,KCxB3C,IAAMoxG,GAA4B,MAAnC,MAAOA,EANblpK,cAUER,KAAA+nK,OAAwB,CACtB,CACErzJ,IAAK,qCACLujJ,SAAU,qCACV/gE,IAAK,YACLgoE,YAAa,kDAEf,CACExqJ,IAAK,8BACLwiF,IAAK,QACLgoE,YAAa,oCACbvH,OAAO,GAET,CACEjjJ,IAAK,kCACLujJ,SAAU,kCACV/gE,IAAK,SACLgoE,YAAa,mCAEf,CACExqJ,IAAK,kCACLwiF,IAAK,SACLgoE,YAAa,qCAEf,CACExqJ,IAAK,yCACLwiF,IAAK,MACLgoE,YAAa,kBAEf,CACExqJ,IAAK,qCACLujJ,SAAU,qCACV/gE,IAAK,YACLgoE,YAAa,oBAEf,CACExqJ,IAAK,gCACLujJ,SAAU,gCACV/gE,IAAK,OACLgoE,YAAa,kEA3CNwK,EAA4B,iCAA5BA,EAA4BnwJ,UAAA,gCAAAK,OAAA,CAAA8tJ,OAAA,SAAAiC,OAAA,UAAA9xJ,MAAA,EAAAC,KAAA,EAAAE,OAAA,2UAAAD,SAAA,SAAAi8B,EAAAof,MAAA,EAAApf,IDTzCskB,EAAA,eAgCAA,EAnBA,EAAAsxG,GAAA,0BAAAtxG,GAmBAA,CAnB2D,EAAAuxG,GAAA,yBAAAvxG,gCAJzDA,EARA,QAAAlF,EAAA20G,OAQAzvG,CARgB,eAAAwxG,EAQhBxxG,CAP2B,eAAAlF,EAAAs0G,OAAA,EAAAt0G,EAAAu2G,OAAA,IAO3BrxG,CAN4C,cAAAlF,EAAAs0G,OAAA,EAAAt0G,EAAAu2G,OAAA,IAM5CrxG,CAL2C,UAK3CA,CAJc,aAIdA,CAHiB,gBAAAyxG,EAGjBzxG,CAF6B,UAE7BA,CADa,spDCCFoxG,CAA4B,KCK5BM,GAAY,MAAnB,MAAOA,EAyHXxpK,YAAoBmxH,GAAA3xH,KAAA2xH,KAxHpB3xH,KAAAiqK,cAAgB,2CAIhBjqK,KAAAkqK,cAAgB,2QAYhBlqK,KAAAmqK,sBAAwB,iDAIxBnqK,KAAA+nK,OAAwB,CACtB,CACErzJ,IAAK,qCACLujJ,SAAU,qCACV/gE,IAAK,YACLgoE,YAAa,oBAEf,CACExqJ,IAAK,iCACLujJ,SAAU,iCACV/gE,IAAK,QACLgoE,YAAa,iCAEf,CACExqJ,IAAK,kCACLujJ,SAAU,kCACV/gE,IAAK,iBACLgoE,YAAa,6CAEf,CACExqJ,IAAK,gCACLujJ,SAAU,gCACV/gE,IAAK,OACLgoE,YAAa,kBAEf,CACExqJ,IAAK,oCACLujJ,SAAU,oCACV/gE,IAAK,YACLgoE,YAAa,qBAEf,CACExqJ,IAAK,iCACLujJ,SAAU,iCACV/gE,IAAK,QACLgoE,YAAa,gEAIjBl/J,KAAAoqK,eAAgC,IAC3BpqK,KAAK+nK,OACR,CACErzJ,IAAK,kCACLujJ,SAAU,kCACV/gE,IAAK,SACLgoE,YAAa,qBAEf,CACExqJ,IAAK,+BACLujJ,SAAU,+BACV/gE,IAAK,MACLgoE,YAAa,kBAEf,CACExqJ,IAAK,kCACLujJ,SAAU,kCACV/gE,IAAK,SACLgoE,YAAa,mCAEf,CACExqJ,IAAK,kCACLujJ,SAAU,kCACV/gE,IAAK,SACLgoE,YAAa,qCAEf,CACExqJ,IAAK,qCACLujJ,SAAU,qCACV/gE,IAAK,YACLgoE,YAAa,oBAEf,CACExqJ,IAAK,gCACLujJ,SAAU,gCACV/gE,IAAK,OACLgoE,YAAa,kBAIjBl/J,KAAAqqK,cAA+B,CAC7B,CACE31J,IAAK,2CACLwiF,IAAK,wBAEP,CACExiF,IAAK,yCACLwiF,IAAK,qBACLygE,OAAO,MAEN33J,KAAKoqK,eAAe/jK,MAAM,EAAG,IAGlCrG,KAAAsqK,OAAwB,CACtB,CAAE51J,IAAK,8BAA+BijJ,OAAO,GAC7C,CAAEjjJ,IAAK,4CAA6CijJ,OAAO,IAO3DngG,GAAgB,CACd1K,KAAMA,KACJ,MAAMy9G,EAAgBhlC,WAAW,sBAC3BilC,EAAgBjlC,WAAW,uBAEjCglC,EAAcE,SAAWzpK,IACvBhB,KAAK0nK,OAAS1mK,EAAE63C,QAChB74C,KAAK2xH,GAAG1wE,eAAa,EAGvBupH,EAAcC,SAAWzpK,IACvBhB,KAAK2pK,OAAS3oK,EAAE63C,QAChB74C,KAAK2xH,GAAG1wE,eAAa,EAGvBjhD,KAAK0nK,OAAS6C,EAAc1xH,QAC5B74C,KAAK2pK,OAASa,EAAc3xH,UAGlC,iDA7IWmxH,GAAY1xG,MAAA,iCAAZ0xG,EAAYzwJ,UAAA,eAAA1B,MAAA,GAAAC,KAAA,GAAAE,OAAA,s6CAAAD,SAAA,SAAAi8B,EAAAof,GAAA,EAAApf,ICdzBskB,EAAA,gBAG4BA,EAD5B,UAC4BA,CADrB,UACqBA,CAAA,SAAiBA,EAAA,WAASA,MAC1BA,EAA1B,UAA0BA,CAAA,SAAiBA,EAAA,eAAaA,MAElDA,EADN,OACMA,CADF,OACEA,CAAA,UAA2BA,EAAA,iBAAcA,MAE3CA,EADF,QACEA,CADE,UACqBA,EAAA,uBACzBA,MACIA,EAAJ,QAAIA,CAAA,UAAoBA,EAAA,oBAAiBA,MACrCA,EAAJ,QAAIA,CAAA,UAA6BA,EAAA,mBAAgBA,MAC7CA,EAAJ,QAAIA,CAAA,UAA+BA,EAAA,qBAAkBA,MACjDA,EAAJ,QAAIA,CAAA,UAAuBA,EAAA,aAAUA,MAEjCA,EAAJ,QAAIA,CAAA,UAA4BA,EAAA,yBAClCA,QAEAA,EAAA,YAA0BA,EAAA,WAAIA,IAG1BA,EAFJ,QAEIA,CAFA,QAEAA,CADE,WAICA,EAAA,oBAITA,UAKMA,EAHN,aAGMA,CAHY,YAGZA,CAFsB,YAEtBA,CAD4B,SACxBA,EAAA,YAAKA,IAILA,EAFJ,YAEIA,CAFoB,SAEpBA,CADG,SACCA,EAAA,cAAOA,IACNA,EAAL,SAAKA,CAAA,WAAMA,EAAA,IACbA,QAGEA,EADF,SACEA,CADG,SACCA,EAAA,gBAASA,IACRA,EAAL,SAAKA,CAAA,WAAMA,EAAA,IACbA,QAGEA,EADF,SACEA,CADG,SACCA,EAAA,eAAQA,IACPA,EAAL,SAAKA,CAAA,WAAMA,EAAA,IAGjBA,YAEAA,EAAA,YAAeA,EAAA,gBAASA,IAExBA,EAAA,sBAKEA,EAAA,iBACFA,IAOEA,EALF,qBAKEA,CADD,aAEGA,EAAA,wKAGAA,EAAA,WAGGA,EAAA,qBAELA,MACAA,EAAA,mCAIFA,IAEAA,EAAA,sBACEA,EAAA,iBACFA,IAEAA,EAAA,sBAKEA,EAAA,iBAMFA,IAEAA,EAAA,sBACEA,EAAA,iBAKFA,IAEAA,EAAA,sBAKEA,EAAA,iBACFA,IAGEA,EADF,qBACEA,CAD+D,aAE7DA,EAAA,8EACAA,EAAA,WAGGA,EAAA,qBAELA,MACAA,EAAA,+BAGNA,QAEAA,EAAA,aAAQA,EAAA,8BAAuBA,WA7FVA,EAAA,IAAAA,GAAAlF,EAAA62G,eAKA3xG,EAAA,GAAAA,GAAAlF,EAAA82G,eAKA5xG,EAAA,GAAAA,GAAAlF,EAAA+2G,uBAYN7xG,EAAA,GAAAA,EAAA,QAAAlF,EAAA20G,QAmBPzvG,EAAA,GACAA,EADA,SAAAlF,EAAAs0G,OACApvG,CADiB,SAAAlF,EAAAu2G,QAMVrxG,EAAA,GAAgCA,EAAhC,QAAAlF,EAAA20G,OAAgCzvG,CAAhB,YAUvBA,EAAA,GACAA,EADA,QAAAlF,EAAA20G,OACAzvG,CADgB,mBAQhBA,EAAA,GAEAA,EAFA,QAAAlF,EAAAi3G,cAEA/xG,CAFuB,iBAWhBA,EAAA,GAAAA,EAAA,QAAAlF,EAAAk3G,QAYchyG,EAAA,GAAAA,EAAA,SAAAlF,EAAA20G,0+DDhHhBiC,CAAY,KEczB,MAAMU,GAAkB,CACtBv0B,GACAiE,GACAiN,GACAsJ,GACA2D,GACA0C,GACAzC,IAgCK,IAAMoW,GAAS,MAAhB,MAAOA,oDAAS,iCAATA,EAASnwJ,UAAA,CAFRwvJ,KAAY,qCATb,CAGT,CACE3rJ,QAAS2jI,GACTzjI,SAAU,CAAE+jI,WAAY,YAE1BrmD,MACD/vF,QAAA,CAfIw+J,GACH5wE,GACA0wB,GACAtpC,GACAw+C,GACA2lC,KAAgB,SAaPsF,CAAS,KCzDtBC,KACGh3F,gBAAgB+2F,IAChBt9F,MAAMrvE,GAAOe,QAAQrB,MAAMM","names":["defaultEquals","a","b","Object","is","activeConsumer","inNotificationPhase","epoch","SIGNAL","Symbol","setActiveConsumer","consumer","prev","REACTIVE_NODE","version","lastCleanEpoch","dirty","producerNode","undefined","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","consumerOnSignalRead","producerAccessed","node","Error","idx","assertConsumerNode","length","consumerIsLive","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","consumerBeforeComputation","consumerAfterComputation","prevConsumer","i","pop","producer","seenVersion","consumerDestroy","indexOfThis","assertProducerNode","isConsumerNode","push","lastIdx","idxProducer","createComputed","computation","create","COMPUTED_NODE","computed","value","ERRORED","error","UNSET","COMPUTING","equal","oldValue","newValue","err","throwInvalidWriteToSignalErrorFn","defaultThrowError","throwInvalidWriteToSignalError","postSignalSetFn","signalSetFn","signalValueChanged","producerIncrementEpoch","SIGNAL_NODE","isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","useDeprecatedSynchronousErrorHandling","console","warn","stack","log","hostReportError","setTimeout","empty","closed","next","complete","isArray","Array","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","call","this","message","map","toString","join","name","prototype","Subscription","constructor","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","remove","index","e","flattenUnsubscriptionErrors","len","sub","concat","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Math","random","Subscriber","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","emptyObserver","SafeSubscriber","rxSubscriberSymbol","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","identity","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","toSubscriber","nextOrObserver","_trySubscribe","canReportError","observer","forEach","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","pipe","operations","pipeFromArray","fns","input","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","AnonymousSubject","copy","slice","asObservable","BehaviorSubject","_value","getValue","project","thisArg","TypeError","MapOperator","MapSubscriber","count","result","EmptyError","EmptyErrorImpl","filter","predicate","FilterOperator","FilterSubscriber","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","scheduler","emptyScheduled","schedule","take","TakeOperator","total","TakeSubscriber","DefaultIfEmptyOperator","defaultValue","DefaultIfEmptySubscriber","isEmpty","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","ThrowIfEmptySubscriber","hasValue","XSS_SECURITY_URL","RuntimeError","code","formatRuntimeError","abs","noSideEffects","PARAMETERS","makeParamDecorator","props","parentClass","metaCtor","makeMetadataCtor","args","values","propName","ParamDecoratorFactory","apply","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","hasOwnProperty","defineProperty","ngMetadataName","annotationCls","_global","globalThis","getClosureSafeProperty","objWithPropertyToExtract","key","fillProperties","target","stringify","token","overriddenName","res","newLineIndex","substring","concatStringsWithSpace","before","after","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","type","isForwardRef","ɵɵdefineInjectable","opts","providedIn","factory","ɵɵdefineInjector","options","providers","imports","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ɵprov","ɵinj","ngInjectableDef","ngInjectorDef","InjectionToken","_desc","__NG_ELEMENT_ID__","multi","isEnvironmentProviders","ɵproviders","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","ɵdir","NG_PIPE_DEF","ɵpipe","NG_MOD_DEF","ɵmod","NG_FACTORY_DEF","ɵfac","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","String","throwProviderNotFoundError","injectorName","errorMessage","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","impl","previous","injectRootLimpMode","notFoundValue","flags","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","injector","former","injectInjectorOnly","ngDevMode","get","ɵɵinject","inject","convertToBitFlags","optional","host","self","skipSelf","injectArgs","types","arg","j","meta","flag","getInjectFlag","attachInjectFlag","decorator","getFactoryDef","throwNotFound","deepForEach","addToArray","arr","removeFromArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","array","value1","value2","end","keyValueArrayGet","_arrayIndexOfSorted","shift","start","middle","current","EMPTY_OBJ","EMPTY_ARRAY","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","None","ShadowDom","InputFlags","SignalBased","HasDecoratorInputTransform","classIndexOf","className","classToSearch","startingIndex","foundIndex","charCodeAt","setUpAttributes","renderer","native","attrs","namespaceURI","attrName","attrVal","setAttribute","isAnimationProp","setProperty","isNameOnlyAttributeMarker","marker","mergeHostAttrs","dst","src","srcMarker","item","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","toLowerCase","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","selector","mode","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","bindingsMode","maybeAttrName","matchTemplateAttribute","attr","isNodeMatchingSelectorList","isSelectorInSelectorList","list","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","chunk","trim","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","def","decls","vars","template","consts","ngContentSelectors","onPush","changeDetection","directiveDefs","pipeDefs","dependencies","standalone","getStandaloneInjector","signals","data","encapsulation","styles","_","schemas","tView","id","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hash","hashSelectors","selectors","hostVars","hostAttrs","exportAs","JSON","inputs","outputs","getOwnPropertyNames","contentQueries","viewQuery","char","imul","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","bootstrap","declarations","exports","transitiveCompileScopes","parseAndConvertBindingsForDefinition","obj","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","pure","onDestroy","ngOnDestroy","getPipeDef$1","providersResolver","hostBindings","inputTransforms","inputConfig","features","setInput","findHostDirectiveDefs","hostDirectives","debugInfo","definition","defExtractor","dep","makeEnvironmentProviders","importProvidersFrom","sources","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","Set","injectorTypesWithProviders","collectProviders","provider","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","visitor","ngModule","deepForEachProvider","container","parents","defType","injDef","cmpDef","isDuplicate","has","deps","importTypesWithProviders","imported","provide","useFactory","useValue","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","destroyed","_destroyed","scopes","records","Map","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","set","makeRecord","record","injectorDefTypes","destroy","assertNotDestroyed","setActiveConsumer$1","service","onDestroyHooks","hook","clear","callback","removeOnDestroy","runInContext","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","unshift","catchInjectorError","injectorErrorName","tokenPath","formatError","text","charAt","parts","replace","resolveInjectorInitializers","initializers","initializer","tokens","keys","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","Function","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","useExisting","classRef","useClass","hasDeps","isInInjectionContext","getCurrentInjector","assertInInjectionContext","debugFn","HOST","TVIEW","FLAGS","PARENT","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","ID","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","TYPE","DEHYDRATED_VIEWS","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","previousValue","currentValue","firstChange","isFirstChange","applyValueToInputField","instance","inputSignalNode","privateName","applyValueToInputSignal","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","event","hookOrListener","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","load","view","getComponentLViewByIndex","nodeIndex","hostView","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","notify","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","_isRefreshingViews","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","setCurrentTNode","isParent","isCurrentTNodeParent","setCurrentTNodeAsNotParent","isRefreshingViews","setIsRefreshingViews","getBindingRoot","bindingRootIndex","bindingStartIndex","nextBindingIndex","bindingIndex","incrementBindingIndex","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","firstChild","inI18n","currentLFrame","childLFrame","child","selectedIndex","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","getNamespace$1","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","max","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ChainedInjector","parentInjector","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","location","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","v","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","tData","isFactory","throwCyclicDependencyError","path","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","ngOnInit","ngDoCheck","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","getFactoryOf","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","classes","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","Injector","NULL","getOriginalError","SCHEDULE_IN_ROOT_ZONE_DEFAULT","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","PendingTasks","taskId","pendingTasks","hasPendingTasks","_hasPendingTasks","delete","size","EventEmitter","EventEmitter_","isAsync","destroyRef","__isAsync","emit","nextFn","errorFn","completeFn","wrapInTimeout","noop","scheduleCallbackWithRafRace","timeoutId","animationFrameId","cleanup","cancelAnimationFrame","clearTimeout","requestAnimationFrame","scheduleCallbackWithMicrotask","queueMicrotask","isAngularZoneProperty","angularZoneInstanceIdProperty","ngZoneInstanceId","NgZone","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","onError","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","scheduleInRootZone","Zone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","callbackScheduled","forkInnerZoneWithAngularBehavior","zone","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","scheduleCheckStable","updateMicroTaskStatus","isCheckStableRunning","checkStable","root","run","instanceId","properties","xh","Uc","onInvokeTask","delegate","task","applyThis","applyArgs","shouldBeIgnoredByZone","hasApplyArgsData","invokeTask","onEnter","onLeave","onInvoke","invoke","isSchedulerTick","onHasTask","hasTaskState","hasTask","change","_hasPendingMicrotasks","microTask","macroTask","onHandleError","handleError","runOutsideAngular","isInAngularZone","assertInAngularZone","assertNotInAngularZone","runTask","scheduleEventTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","ErrorHandler","_console","originalError","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","userErrorHandler","injectElementRef","createElementRef","ElementRef","nativeElement","unwrapElementRef","symbolIterator","_results","iterator","QueryList","changes","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","first","last","proto","find","init","some","toArray","reset","resultsTree","identityAccessor","newResultFlat","flatten","flat","Number","POSITIVE_INFINITY","arrayEquals","valueA","valueB","notifyOnChanges","onDirty","cb","setDirty","SKIP_HYDRATION_ATTR_NAME","SKIP_HYDRATION_ATTR_NAME_LOWER_CASE","hasSkipHydrationAttrOnTNode","mergedAttrs","hasSkipHydrationAttrOnRElement","rNode","hasAttribute","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","unregisterLView","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","DOCUMENT","getDocument","document","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","PLATFORM_ID","ANIMATION_MODULE_TYPE","CSP_NONCE","body","querySelector","getAttribute","initTransferState","transferState","TransferState","retrieveTransferredState","doc","appId","script","getElementById","textContent","parse","onSerializeCallbacks","hasKey","onSerialize","toJson","REFERENCE_NODE_HOST","REFERENCE_NODE_BODY","NodeNavigationStep","FirstChild","NextSibling","ELEMENT_CONTAINERS","TEMPLATES","CONTAINERS","MULTIPLIER","NUM_ROOT_NODES","TEMPLATE_ID","NODES","DISCONNECTED_NODES","NGH_DATA_KEY","NGH_ATTR_NAME","SSR_CONTENT_INTEGRITY_MARKER","_retrieveHydrationInfoImpl","retrieveHydrationInfoImpl","nghAttrValue","componentViewNgh","rootViewNgh","split","remainingNgh","dehydratedView","setSegmentHead","nextSibling","removeAttribute","retrieveHydrationInfo","getLNodeForHydration","viewRef","hydrationInfo","segmentHeads","getSegmentHead","getSerializedContainerViews","calcSerializedContainerSize","views","numNodes","isDisconnectedNode$1","disconnectedNodes","nodeIds","initDisconnectedNodes","IS_HYDRATION_DOM_REUSE_ENABLED","PRESERVE_HOST_CONTENT","policy$1","policy","trustedHTMLFromString","html","getPolicy$1","trustedTypes","createPolicy","createHTML","s","createScript","createScriptURL","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","url","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","DOMParserHelper","inertDocumentHelper","getInertBodyElement","window","DOMParser","parseFromString","InertDocumentHelper","defaultDoc","inertDocument","implementation","createHTMLDocument","templateEl","createElement","innerHTML","SAFE_URL_PATTERN","_sanitizeUrl","match","tagSet","tags","t","merge","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","sanitizeChildren","el","traverseContent","parentNodes","nodeType","Node","ELEMENT_NODE","startElement","TEXT_NODE","chars","nodeValue","getFirstChild","endElement","getNextSibling","element","tagName","getNodeName","elAttrs","attributes","elAttr","lower","encodeEntities","previousSibling","clobberedElementError","isClobberedElement","parentNode","childNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","nodeName","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","getInertBodyHelper","isDOMParserAvailable","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","content","SecurityContext","NONE","HTML","STYLE","SCRIPT","URL","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","isPlatformBrowser","RendererStyleFlags2","Important","DashCase","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","action","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","destroyNode","applyContainer","parentRElement","anchor","applyView","createTextNode","createText","createCommentNode","createComment","escapeCommentText","createElementNode","namespace","detachViewFromDOM","trackMovedView","declarationContainer","movedViews","detachMovedView","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","getParentRElement","getClosestRElement","isMove","insertBefore","appendChild","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","_processI18nInsertBefore","getInsertInFrontOfRNodeWithNoI18n","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isHostElement","removeChild","clearElementContents","rElement","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","writeDirectStyle","NO_CHANGE","ɵɵadvance","delta","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","writeToDirectiveInput","SIGNAL$1","transformFn","createLView","tHostNode","environment","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","isInI18nBlock","getCurrentParentTNode","allocExpando","numSlotsToAlloc","initialValue","allocIdx","executeTemplate","templateFn","rf","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","createRenderer","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","fill","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","components","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","applyRootElementTransformImpl","rootElement","processTextNodeMarkersBeforeHydration","commentNodesIterator","createNodeIterator","NodeFilter","SHOW_COMMENT","acceptNode","getTextNodeContent","FILTER_ACCEPT","FILTER_REJECT","currentNode","nodes","nextNode","replaceWith","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","bindings","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","registry","matches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","strValue","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","component","getOrCreateLViewCleanup","getOrCreateTViewCleanup","errorHandler","textBindingInternal","updateTextNode","setValue","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","declarationViewLQueries","createEmbeddedView","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","addViewToDOM","parentNativeNode","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","REACTIVE_NODE$1","TEMPORARY_CONSUMER_NODE","viewShouldHaveReactiveConsumer","MAXIMUM_REFRESH_RERUNS$1","detectChangesInternal","notifyErrorHandler","begin","detectChangesInViewWhileDirty","lastIsRefreshingViewsValue","detectChangesInView","retries","inlineEffectRunner","flush","refreshView","returnConsumerToPool","currentConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation$1","getActiveConsumer","getActiveConsumer$1","getOrCreateTemporaryConsumer","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","dirtyBitsToUse","ViewRef$1","rootNodes","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","markForCheck","detach","reattach","detectChanges","checkNoChanges","attachToViewContainerRef","detachFromAppRef","isRoot","attachToAppRef","appRef","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedViewImpl","createTemplateRef","REF_EXTRACTOR_REGEXP","RegExp","getNoOffsetIndex","locateNextRNode","noOffsetIndex","locateI18nRNodeByIndex","i18nNodes","locateRNodeByPath","referenceNode","navigationInstructions","decompressNodeLocation","refNodeId","refNodeName","rest","ref","parseInt","steps","step","matchAll","repeat","ɵɵresolveBody","ownerDocument","navigateToNode","from","instructions","r","previousTNodeParent","previousTNode","isFirstElementInNgContainer","previousRElement","noOffsetPrevSiblingIndex","segmentHead","siblingAfter","skip","_isI18nHydrationSupportEnabled","cleanupDehydratedIcuData","dehydratedIcuData","cases","case","removeDehydratedViews","removeDehydratedView","nodesRemoved","currentRNode","cleanupLContainer","cleanupLView","cleanupI18nHydrationData","dehydratedIcuDataMap","_findMatchingDehydratedViewImpl","findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ZONELESS_ENABLED","ZONELESS_SCHEDULER_DISABLED","SCHEDULE_IN_ROOT_ZONE","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","RendererFactory2","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","isInputMap","templateName","isSignal","refArray","transform","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","preserveContent","selectRootElement","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","feature","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","changeDetectorRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","templateRef","indexOrOptions","insertImpl","createComponent","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","componentRef","insert","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","move","newIndex","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","_populateDehydratedViewsInLContainer","commentNode","insertAnchorNode","nativeNextSibling","populateDehydratedViewsInLContainerImpl","isInSkipHydrationBlock","serializedViews","dehydratedViews","locateDehydratedViewsInContainer","serializedView","locateOrCreateAnchorNode","LQuery_","queryList","clone","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","read","splitQueryMultiSelectors","locator","TQueries_","elementStart","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","track","tquery","TQuery_","metadata","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","loadQueryInternal","createLQuery","storeCleanupWithContext","cleanupFn","createContentQuery","createTQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","getQueryResults","markedFeatures","performanceMarkFeature","performance","mark","detail","signal","signalFn","createSignal","getter","createSignal$1","signalSetFn$1","update","updateFn","signalUpdateFn","updater","signalUpdateFn$1","asReadonly","signalAsReadonlyFn","readonlyFn","isWritableSignal","createQuerySignalFn","firstOnly","required","createComputed$1","_dirtyCounter","refreshSignalQuery","_queryIndex","results","_flatValue","contentChildFn","createSingleResultOptionalQuerySignalFn","contentChild","contentChildRequiredFn","createSingleResultRequiredQuerySignalFn","ɵɵInheritDefinitionFeature","superType","getSuperType","getPrototypeOf","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","animation","defData","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","ctx","prevContentQueries","prevHostBindings","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","NgModuleRef","_parent","runInjectorInitializers","_bootstrapComponents","destroyCbs","componentFactoryResolver","ngModuleDef","getNgModuleDef","maybeUnwrapFn","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","isListLikeIterable","isJsObject","o","updateBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","isDetachedByI18n","declareTemplate","declarationTView","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","comment","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","ɵɵtemplate","attrsIndex","createContainerAnchorImpl","locateOrCreateContainerAnchorImpl","isNodeCreationMode","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","Read","AfterRenderManager","execute","AfterRenderImpl","ngZone","sequences","deferredRegistrations","executing","PHASES","phase","sequence","erroredOrDestroyed","pipelinedValue","afterRun","once","register","unregister","AfterRenderSequence","unregisterOnDestroy","afterNextRender","callbackOrSpec","afterRenderImpl","NOOP_AFTER_RENDER_REF","manager","manualCleanup","getHooks","earlyRead","write","mixedReadWrite","ɵɵattribute","interpolation2","prefix","v0","i0","v1","suffix","getBindingIndex","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","isMap","cursor","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","parseClassNameNext","consumeClassToken","startIndex","consumeWhitespace","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","property","ɵɵstyleProp","prop","checkStylingProperty","ɵɵclassProp","ɵɵclassMap","checkStylingMap","stringParser","stylingFirstUpdatePass","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","newKey","setKey","updateStyling","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","classKeyValueArraySet","classStringParser","parseClassName","resetParserState","normalizeSuffix","isHostBindings","wrapInStaticStylingKey","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","previousNode","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","includes","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","addClass","removeClass","removeStyle","endsWith","setStyle","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵconditional","matchingTemplateIndex","contextValue","prevMatchingTemplateIndex","prevContainer","getLContainer","removeLViewFromLContainer","nextLContainerIndex","nextContainer","getExistingTNode","getLViewFromLContainer","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","locateOrCreateElementNodeImpl","enterSkipHydrationBlock","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","locateOrCreateElementContainerNode","ngContainerSize","getNgContainerSize","ɵɵgetCurrentView","ɵɵhostProperty","DEFAULT_LOCALE_ID","LOCALE_ID$1","stashEventListener","eventName","listenerFn","ɵɵlistener","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","listen","propsLength","executeListenerWithErrorHandling","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","level","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","newArray","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","fallbackTemplateFn","fallbackDecls","fallbackVars","fallbackIndex","insertFallbackContent","fallbackTNode","fallbackLContainer","applyProjection","ɵɵcontentQuery","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","ɵɵcontentQuerySignal","bindQueryToSignal","_queryList","ɵɵreference","getContextLView","ɵɵtext","textNative","_locateOrCreateTextNode","locateOrCreateTextNodeImpl","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","interpolation1","ɵɵtextInterpolate2","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","f","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","createEnvironmentInjector","ɵɵStandaloneFeature","ɵɵpureFunction3","slotOffset","pureFn","exp3","pureFunction3Internal","bindingRoot","bindingUpdated3","getPureFunctionReturnValue","ɵɵpureFunction4","exp4","pureFunction4Internal","bindingUpdated4","returnValueIndex","lastReturnValue","pureFunction1Internal","exp","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","offset","isPure","ɵɵtemplateRefExtractor","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","_ngZone","testabilityGetter","_isZoneStable","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","doneCb","pending","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","timeout","whenStable","registerApplication","unregisterApplication","findProviders","using","exactMatch","__ngFactoryType__","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","elem","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isPromise","then","isSubscribable","APP_INITIALIZER","ApplicationInitStatus","initialized","done","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","all","catch","APP_BOOTSTRAP_LISTENER","optionsReducer","objs","whenStableStore","ApplicationRef","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderManager","zonelessEnabled","dirtyFlags","deferredDirtyFlags","externalTestViews","beforeRender","afterTick","componentTypes","allViews","stable","finally","componentOrFactory","isStandalone","cf","compRef","_loadComponent","tick","_tick","synchronize","runs","synchronizeOnce","useGlobalCheck","detectChangesInViewIfRequired","syncDirtyFlagsWithViews","attachView","listeners","listener","viewCount","warnIfDestroyed","applicationRef","WeakMap","cachedWhenStable","whenStablePromise","hasDefaultValue","defaultIfEmpty","isFirstPass","NgZoneChangeDetectionScheduler","initialize","_onMicrotaskEmptySubscription","runningTick","internalProvideZoneChangeDetection","ngZoneFactory","ignoreChangesOutsideZone","getNgZoneOptions","ngZoneChangeDetectionScheduler","ZoneStablePendingTask","eventCoalescing","runCoalescing","ChangeDetectionSchedulerImpl","taskService","disableScheduling","zoneIsDefined","schedulerTickApplyArgs","__scheduler_tick__","angularZoneId","cancelScheduledCallback","useMicrotaskScheduler","pendingRenderTaskId","shouldScheduleTick","scheduleCallback","LOCALE_ID","getGlobalLocale","$localize","locale","PLATFORM_DESTROY_LISTENERS","isApplicationBootstrapConfig","moduleRef","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","allAppProviders","getNgZone","ngZoneToUse","ngZoneEventCoalescing","ngZoneRunCoalescing","createNgModuleRefWithProviders","envInjector","r3Injector","exceptionHandler","onErrorSubscription","destroyListener","onPlatformDestroyListeners","platformInjector","allPlatformModules","_callAndReportToErrorHandler","initStatus","setLocaleId","localeId","rootComponent","moduleDoBootstrap","ngDoBootstrap","bootstrapModule","compilerOptions","compileNgModuleFactory","module","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","desc","extraProviders","platform","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","supports","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","forEachItem","forEachOperation","nextIt","nextRemove","addRemoveOffset","moveOffsets","currentIndex","getPreviousIndex","adjPreviousIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","forEachAddedItem","_nextAdded","forEachMovedItem","_nextMoved","forEachRemovedItem","forEachIdentityChange","_nextIdentityChange","diff","collection","check","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","put","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","defaultIterableDiffersFactory","IterableDiffers","copied","extend","iterable","platformCore","ApplicationModule","isHydrationSupportEnabled","withDomHydration","isEnabled","setIsI18nHydrationSupportEnabled","enabled","verifySsrContentsIntegrity","hydrationMarker","childNodes","COMMENT_NODE","enableHydrationRuntimeSupport","enableRetrieveHydrationInfoImpl","enableLocateOrCreateElementNodeImpl","enableLocateOrCreateTextNodeImpl","enableLocateOrCreateElementContainerNodeImpl","enableLocateOrCreateContainerAnchorImpl","enableLocateOrCreateContainerRefImpl","enableFindMatchingDehydratedViewImpl","enableApplyRootElementTransformImpl","whenStableWithTimeout","cleanupDehydratedViews","booleanAttribute","numberAttribute","fallbackValue","NaN","isNaN","parseFloat","untracked","nonReactiveReadsFn","_DOM","getDOM","DomAdapter","NgForOfContext","$implicit","ngForOf","even","odd","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","viewContainer","adjustedPreviousIndex","applyViewChange","ilen","ngTemplateContextGuard","dir","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","NgTemplateOutlet","_viewContainerRef","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContainerRef","viewContext","_createContextForwardProxy","Proxy","_target","Reflect","receiver","SubscribableStrategy","createSubscription","async","updateLatestValue","dispose","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","markForCheckOnValueUpdate","_subscription","_obj","_strategy","_ref","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","invalidPipeArgumentError","ɵRuntimeError","CommonModule","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","isPlatformServer","platformId","isScheduler","subscribeToArray","scheduleArray","fromArray","of","getSymbolIterator","isArrayLike","subscribeTo","obs","subscribeToObservable","promise","subscribeToPromise","Symbol_iterator","return","subscribeToIterable","msg","scheduled","isInteropObservable","scheduleObservable","schedulePromise","isIterable","scheduleIterable","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","innerSubscribe","innerSubscriber","mergeMap","resultSelector","concurrent","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","innerSubscription","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","HttpHandler","HttpHeaders","headers","normalizedNames","lazyUpdate","lazyInit","line","maybeSetNormalizedName","Headers","setHeaderEntries","entries","getAll","append","op","lcName","copyFrom","applyUpdate","other","base","toDelete","existing","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeURIComponent","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","encodeURIComponent","valueToString","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","paramParser","rawParams","codec","param","eqIdx","val","appendAll","params","eKey","HttpContext","isArrayBuffer","ArrayBuffer","isBlob","Blob","isFormData","FormData","HttpRequest","method","third","fourth","reportProgress","withCredentials","responseType","toUpperCase","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","defaultStatusText","status","statusText","ok","HttpResponse","addBody","observe","HttpClient","handler","request","req","events$","concatMap","handle","res$","head","jsonp","callbackParam","patch","post","HTTP_ROOT_INTERCEPTOR_FNS","HTTP_TRANSFER_CACHE_ORIGIN_MAP","BODY","HEADERS","STATUS","STATUS_TEXT","REQ_URL","RESPONSE_TYPE","CACHE_OPTIONS","ALLOWED_METHODS","transferCacheInterceptorFn","isCacheActive","globalOptions","requestOptions","requestMethod","includePostRequests","includeRequestsWithAuthHeaders","hasAuthHeaders","originMap","isServer","requestUrl","mapRequestOriginUrl","origin","mappedOrigin","storeKey","makeCacheKey","mappedRequestUrl","encodedParams","sortAndConcatParams","serializedBody","generateHash","response","headersToInclude","includeHeaders","J0","undecodedBody","rx","ex","httpHeaders","tx","nx","ix","TextEncoder","encode","getFilteredHeaders","headersMap","sort","k","withHttpTransferCache","cacheOptions","ɵperformanceMarkFeature","cacheState","ɵwhenStable","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","setRootDomAdapter","adapter","ɵsetRootDomAdapter","onAndCancel","evt","addEventListener","removeEventListener","dispatchEvent","getDefaultDocument","createHtmlDocument","isElementNode","isShadowRoot","DocumentFragment","getGlobalEventTarget","getBaseHref","href","getBaseElementHref","baseElement","relativePath","baseURI","pathname","resetBaseElement","getUserAgent","navigator","userAgent","getCookie","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","cookieValue","ɵparseCookieValue","BrowserXhr","build","XMLHttpRequest","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","plugin","_plugins","reverse","_findPluginFor","getZone","EventManagerPlugin","_doc","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","nonce","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","style","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","elements","querySelectorAll","styleMap","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","createElementNS","newChild","isTemplateNode","refChild","oldChild","selectorOrNode","namespaceUri","setAttributeNS","removeAttributeNS","classList","removeProperty","ɵgetDOM","decoratePreventDefault","eventHandler","preventDefault","hostEl","shadowRoot","attachShadow","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","INTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵPLATFORM_BROWSER_ID","initDomAdapter","_document","ɵsetDocument","setDocument","platformBrowser","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","parentElement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","XhrFactory","BrowserModule","providersAlreadyPresent","withServerTransition","DomSanitizer","__ngConditionalFactory__","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","bypassSecurityTrustHtml","bypassSanitizationTrustHtml","trustedHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","bypassSanitizationTrustStyle","trustedStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","bypassSanitizationTrustScript","trustedScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","bypassSanitizationTrustUrl","trustedUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","ɵbypassSanitizationTrustResourceUrl","HydrationFeatureKind","NoHttpTransferCache","HttpTransferCacheOptions","I18nSupport","EventReplay","provideClientHydration","featuresKind","hasHttpTransferCacheOptions","ɵkind","ɵwithDomHydration","ɵwithHttpTransferCache","AnimationMetadataType","State","Transition","Sequence","Group","Animate","Keyframes","Style","Trigger","Reference","AnimateChild","AnimateRef","Query","Stagger","AUTO_STYLE","trigger","definitions","animate","timings","state","transition","stateChangeExpr","expr","NoopAnimationPlayer","duration","delay","_onDoneFns","_onStartFns","_onDestroyFns","_originalOnDoneFns","_originalOnStartFns","_started","_finished","_position","parentPlayer","totalTime","_onFinish","onStart","onDone","hasStarted","play","_onStart","triggerMicrotask","pause","restart","finish","setPosition","position","getPosition","triggerCallback","phaseName","methods","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","time","p","timeAtPosition","min","longestPlayer","longestSoFar","beforeDestroy","invalidTimingValue","optimizeGroupPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","animationFailed","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","disabled","_data","getOrSetDefaultValue","parseTimelineCommand","command","separatorPos","documentElement","getParentElement","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","query","computeStyle","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","unit","resolveTiming","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","negativeStepValue","negativeDelayValue","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","exec","lastIndex","interpolateParams","original","str","varName","localVal","invalidParamValue","DASH_CASE_REGEXP","m","visitDslNode","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","getComputedStyle","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","stateDef","n","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","matchers","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","separator","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","ast","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","parentContext","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","round","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","stateMap","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","registerFailed","_buildPlayer","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k1","k2","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","deregister","entry","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","d1","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","details","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","contains","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","callbacks","_queueEvent","cloakElement","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","process","eventPhase","SpecialCasedStyles","initialStylesByElement","_element","_startStyles","_endStyles","_state","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_initialized","currentSnapshot","_duration","_delay","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","onFinish","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","cancel","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","ɵtype","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","cache","onRendererDestroy","animationTriggers","_scheduleCountTask","animationCallbacksBuffer","InjectableAnimationEngine","ɵAnimationEngine","i1","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","instantiateRendererFactory","ɵAnimationRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","withConfig","forkJoin","forkJoinInternal","completed","emitted","BaseControlValueAccessor","_renderer","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","isDisabled","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","ɵɵgetInheritedFactory","ownConstructor","ownFactory","objectPrototype","NG_VALUE_ACCESSOR","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","test","writeValue","_handleInput","_compositionStart","_compositionEnd","$event","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","actual","maxValidator","requiredValidator","requiredTrue","requiredTrueValidator","email","emailValidator","minLength","minLengthValidator","minlength","requiredLength","actualLength","maxLength","maxLengthValidator","maxlength","pattern","patternValidator","nullValidator","regex","regexStr","requiredPattern","actualValue","compose","validators","composeAsync","isPresent","toObservable","mergeErrors","arrayOfErrors","executeValidators","validator","normalizeValidators","isValidatorFn","validate","c","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","valid","invalid","pristine","touched","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","_touched","isUntouched","isPristine","_pristine","isValid","_status","isInvalid","isPending","isSubmitted","_submitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","ControlEvent","ValueChangeEvent","PristineChangeEvent","TouchedChangeEvent","StatusChangeEvent","FormSubmittedEvent","FormResetEvent","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","statusReactive","pristineReactive","touchedReactive","_events","events","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","changed","sourceControl","onlySelf","emitEvent","markAllAsTouched","_forEachChild","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","enable","updateValueAndValidity","setParent","getRawValue","_setInitialStatus","shouldHaveEmitted","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","changedControl","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","newPristine","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","controls","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","assertAllValuesPresent","isGroup","assertControlPresent","patchValue","_reduceChildren","acc","_syncPendingControls","subtreeUpdated","updated","_reduceValue","initValue","CALL_SET_DISABLED_STATE","setDisabledStateDefault","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","syncPendingControls","form","formDirectiveProvider$1","NgForm","resolvedPromise$1","submittedReactive","_directives","ngSubmit","_findContainer","getControl","addFormGroup","group","removeFormGroup","getFormGroup","updateModel","onSubmit","onReset","resetForm","removeListItem","isFormControlState","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","formControlBinding$1","NgModel","resolvedPromise","valueAccessors","_changeDetectorRef","_registered","selectValueAccessor","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","isPropertyUpdated","viewModel","model","_isStandalone","_setUpStandalone","_checkParentType","disabledValue","controlPath","ɵNgNoValidate","formDirectiveProvider","FormGroupDirective","hasV8BreakIterator","_submittedReactive","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","ɵInternalFormsSharedModule","FormsModule","Intl","v8BreakIterator","supportedInputTypes","Platform","_platformId","isBrowser","EDGE","TRIDENT","BLINK","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","candidateInputTypes","getSupportedInputTypes","featureTestInput","supportsPassiveEvents","shadowDomIsSupported","normalizePassiveListenerOptions","supportsPassiveEventListeners","capture","_getEventTarget","composedPath","Action","work","AsyncAction","recycleAsyncId","requestAsyncId","setInterval","clearInterval","_execute","errorValue","errored","actions","Scheduler","SchedulerAction","now","Date","AsyncScheduler","DebounceTimeOperator","dueTime","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","SkipOperator","SkipSubscriber","DistinctUntilChangedOperator","compare","keySelector","DistinctUntilChangedSubscriber","y","takeUntil","notifier","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","coerceBooleanProperty","coerceArray","coerceElement","elementOrRef","OuterSubscriber","outerValue","outerIndex","innerIndex","innerSub","InnerSubscriber","subscribeToResult","outerSubscriber","CombineLatestOperator","CombineLatestSubscriber","observables","toRespond","unused","_outerValue","_tryResultSelector","mergeAll","concatAll","startWith","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_platform","_nonce","_matchMedia","matchMedia","noopMatchMedia","createEmptyStyleRule","sheet","insertRule","media","addListener","removeListener","BreakpointObserver","_mediaMatcher","_queries","_destroySubject","isMatched","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","combineLatest","debounceTime","breakpointStates","breakpoints","output","a1","a2","isFakeMousedownFromScreenReader","buttons","isFakeTouchstartFromScreenReader","touch","touches","changedTouches","identifier","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","modalityEventListenerOptions","passive","InputModalityDetector","mostRecentModality","_modality","_mostRecentTarget","_lastTouchMs","_onKeydown","_options","keyCode","_onMousedown","_onTouchstart","modalityDetected","modalityChanged","distinctUntilChanged","FocusMonitorDetectionMode","IMMEDIATE","EVENTUAL","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_origin","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","_onFocus","_onBlur","_detectionMode","detectionMode","monitor","checkChildren","rootNode","_getShadowRoot","_supportsShadowDom","createShadowRoot","getRootNode","ShadowRoot","_getDocument","cachedInfo","info","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","activeElement","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","focus","_info","_getWindow","defaultView","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","_isLastInteractionFromInputLabel","toggle","isFromInteraction","_originTimeoutId","relatedTarget","_emitOrigin","rootNodeFocusListeners","modality","mostRecentTarget","labels","HighContrastMode","BLACK_ON_WHITE","WHITE_ON_BLACK","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","_breakpointSubscription","_hasCheckedHighContrastMode","_applyBodyHighContrastModeCssClasses","getHighContrastMode","testElement","backgroundColor","documentWindow","computedStyle","computedColor","bodyClasses","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","Directionality","_resolveDirectionality","rawValue","language","BidiModule","_c5","_c6","MATERIAL_SANITY_CHECKS","MATERIAL_SANITY_CHECKS_FACTORY","MatCommonModule","highContrastModeDetector","_sanityChecks","_hasDoneGlobalChecks","_checkIsEnabled","_isTestEnvironment","__karma__","jasmine","jest","Mocha","_ErrorStateTracker","_defaultMatcher","ngControl","_parentFormGroup","_parentForm","_stateChanges","errorState","updateErrorState","oldState","matcher","newState","isErrorState","ErrorStateMatcher","RippleState","FADING_IN","VISIBLE","FADING_OUT","HIDDEN","RippleRef","_animationForciblyDisabledThroughCss","fadeOut","fadeOutRipple","passiveCapturingEventOptions$1","RippleEventManager","_delegateEventHandler","handlers","handleEvent","addHandler","handlersForEvent","handlersForElement","removeHandler","defaultRippleAnimationConfig","enterDuration","exitDuration","passiveCapturingEventOptions","pointerDownEvents","pointerUpEvents","RippleRenderer","_eventManager","elementOrElementRef","_isPointerDown","_activeRipples","_pointerUpEventsRegistered","_containerElement","fadeInRipple","containerRect","_containerRect","getBoundingClientRect","animationConfig","centered","left","width","top","height","radius","distanceToFurthestCorner","rect","distX","right","distY","bottom","sqrt","offsetX","offsetY","ripple","color","transitionDuration","computedStyles","userTransitionDuration","animationForciblyDisabledThroughCss","transitionProperty","rippleRef","persistent","_mostRecentTransientRipple","eventListeners","onTransitionEnd","fallbackTimer","_finishRippleTransition","onTransitionCancel","_destroyRipple","rippleEl","opacity","fadeOutAll","_getActiveRipples","fadeOutAllNonPersistent","setupTriggerEvents","_triggerElement","_removeTriggerEvents","_onTouchStart","_onPointerUp","_startFadeOutTransition","isMostRecentTransientRipple","isFakeMousedown","isSyntheticEvent","_lastTouchStartEvent","rippleDisabled","clientX","clientY","rippleConfig","terminateOnPointerUp","MAT_RIPPLE_GLOBAL_OPTIONS","MatRipple","_disabled","_setupTriggerEventsIfEnabled","_trigger","_animationMode","_isInitialized","_globalOptions","_rippleRenderer","launch","configOrX","i1$1","unbounded","MatRippleModule","_MatInternalFormField","labelPosition","MatButtonModule","_c0","_c1","_c2","MAT_CHECKBOX_DEFAULT_OPTIONS","MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY","clickAction","disabledInteractive","TransitionCheckState","Init","Checked","Unchecked","Indeterminate","MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR","MatCheckbox","MatCheckboxChange","nextUniqueId","_inputElement","_createChangeEvent","isChecked","checked","_getAnimationTargetElement","inputId","_uniqueId","tabIndex","_animationClasses","uncheckedToChecked","uncheckedToIndeterminate","checkedToUnchecked","checkedToIndeterminate","indeterminateToChecked","indeterminateToUnchecked","ariaLabel","ariaLabelledby","indeterminateChange","_onTouched","_currentAnimationClass","_currentCheckState","_controlValueAccessorChangeFn","_validatorChangeFn","_checked","_indeterminate","_syncIndeterminate","indeterminate","_transitionCheckState","_isRippleDisabled","disableRipple","_onLabelTextChange","_getAnimationClassForCheckStateTransition","animationClass","_emitChangeEvent","_handleInputClick","_onInteractionEvent","stopPropagation","nativeCheckbox","_onInputClick","_onTouchTargetClick","_preventBubblingFromLabel","_labelElement","_t","ariaDescribedby","_r1","ɵɵnamespaceHTML","namespaceHTMLInternal","checkbox_r2","MatCheckboxModule","queue","QueueScheduler","QueueAction","throwError","dispatch","Notification","kind","do","accept","createNext","undefinedValueNotification","createError","createComplete","completeNotification","ObserveOnSubscriber","notification","scheduleMessage","ObserveOnMessage","ReplaySubject","bufferSize","windowTime","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","SingleBoxSharedResizeObserver","_box","_resizeSubject","_elementObservables","ResizeObserver","_resizeObserver","box","unobserve","shareReplay","configOrBufferSize","refCount","shareReplayOperator","useRefCount","isComplete","SharedResizeObserver","_observers","MutationObserverFactory","MutationObserver","ObserversModule","_c3","_c4","_c7","_c8","_c9","MatFormField_ng_template_0_Conditional_0_Conditional_2_Template","MatFormField_ng_template_0_Conditional_0_Template","ctx_r1","_shouldLabelFloat","_hasOutline","_labelId","_control","disableAutomaticLabeling","hideRequiredMarker","MatFormField_ng_template_0_Template","_hasFloatingLabel","MatFormField_Conditional_4_Template","MatFormField_Conditional_6_Conditional_1_ng_template_0_Template","MatFormField_Conditional_6_Conditional_1_Template","MatFormField_Conditional_6_Template","_forceDisplayInfixLabel","MatFormField_Conditional_7_Template","MatFormField_Conditional_8_Template","MatFormField_Conditional_10_ng_template_0_Template","MatFormField_Conditional_10_Template","MatFormField_Conditional_12_Template","MatFormField_Conditional_13_Template","MatFormField_Conditional_14_Template","MatFormField_Case_16_Template","_subscriptAnimationState","MatFormField_Case_17_Conditional_1_Template","_hintLabelId","hintLabel","MatFormField_Case_17_Template","MatLabel","MAT_ERROR","nextUniqueId$1","MatHint","align","MAT_PREFIX","MAT_SUFFIX","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","floating","_floating","monitorResize","_handleResize","_monitorResize","_subscribeToResize","_resizeSubscription","getWidth","estimateScrollWidth","offsetParent","scrollWidth","cloneNode","_handleLabelResized","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","_handleTransitionEnd","isDeactivating","activate","deactivate","MatFormFieldNotchedOutline","open","label","_setNotchWidth","labelWidth","_notch","matFormFieldAnimations","transitionMessages","MatFormFieldControl","MAT_FORM_FIELD","MAT_FORM_FIELD_DEFAULT_OPTIONS","MatFormField","_hideRequiredMarker","floatLabel","_floatLabel","_defaults","appearance","_appearance","_needsOutlineLabelOffsetUpdate","subscriptSizing","_subscriptSizing","_hintLabel","_processHints","_explicitFormFieldControl","_formFieldControl","_unusedNgZone","_dir","_unusedDocument","_labelChild","_hasIconPrefix","_hasTextPrefix","_hasIconSuffix","_hasTextSuffix","_isFocused","_previousControl","getLabelId","_updateFocusState","_assertFormFieldControl","_initializeSubscript","_initializePrefixAndSuffix","_initializeOutlineLabelOffsetSubscriptions","_initializeControl","_valueChanges","getConnectedOverlayOrigin","_textField","_animateAndLockLabel","previousControl","classPrefix","controlType","stateChanges","_syncDescribedByIds","_checkPrefixAndSuffixTypes","_prefixChildren","_isText","_suffixChildren","_hintChildren","_errorChildren","_validateHints","focused","_lineRipple","afterRender","_updateOutlineLabelOffset","_shouldAlwaysFloat","shouldLabelFloat","_shouldForward","_getDisplayedMessages","_refreshOutlineNotchWidth","_floatingLabel","_notchedOutline","ids","userAriaDescribedBy","startHint","hint","endHint","setDescribedByIds","floatingLabel","_iconPrefixContainer","_textPrefixContainer","_isAttachedToDom","iconPrefixContainer","textPrefixContainer","iconSuffixContainer","_iconSuffixContainer","textSuffixContainer","_textSuffixContainer","iconPrefixContainerWidth","textPrefixContainerWidth","iconSuffixContainerWidth","textSuffixContainerWidth","i2","ɵɵqueryAdvance","indexOffset","autofilled","onContainerClick","tmp_16_0","MatFormFieldModule","CatchOperator","CatchSubscriber","caught","err2","FinallyOperator","FinallySubscriber","RefCountOperator","connectable","_refCount","refCounter","RefCountSubscriber","connection","connect","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","ConnectableSubscriber","higherOrderRefCount","connectableObservableDescriptor","connectableProto","writable","MulticastOperator","shareSubjectFactory","ttWindow","getMatIconNameNotFoundError","iconName","getMatIconFailedToSanitizeUrlError","getMatIconFailedToSanitizeLiteralError","literal","SvgIconConfig","svgText","MatIconRegistry","_httpClient","_sanitizer","_errorHandler","_svgIconConfigs","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_resolvers","_defaultFontSetClass","addSvgIcon","addSvgIconInNamespace","addSvgIconLiteral","addSvgIconLiteralInNamespace","_addSvgIconConfig","addSvgIconResolver","resolver","cleanLiteral","trustedLiteral","addSvgIconSet","addSvgIconSetInNamespace","addSvgIconSetLiteral","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","registerFontClassAlias","classNames","classNameForFontAlias","setDefaultFontSetClass","getDefaultFontSetClass","getSvgIconFromUrl","safeUrl","cachedIcon","cloneSvg","_loadSvgIconFromConfig","getNamedSvgIcon","iconKey","_getSvgFromConfig","_getIconConfigFromResolvers","iconSetConfigs","_getSvgFromIconSetConfigs","_svgElementFromConfig","namedIcon","_extractIconWithNameFromAnySet","iconSetFetchRequests","iconSetConfig","_loadSvgIconSetFromConfig","catchError","foundIcon","_extractSvgIconFromSet","_fetchIcon","iconSet","iconSource","iconElement","_setSvgAttributes","_toSvgElement","_svgElementFromString","div","viewBox","iconConfig","getMatIconNoHttpProviderError","inProgressFetch","finalize","share","multicast","subjectOrSubjectFactory","configNamespace","svgElement","isSafeUrlWithOptions","MAT_ICON_DEFAULT_OPTIONS","MAT_ICON_LOCATION","MAT_ICON_LOCATION_FACTORY","_location","getPathname","search","funcIriAttributes","funcIriAttributeSelector","funcIriPattern","MatIcon","_color","_defaultColor","svgIcon","_svgIcon","_updateSvgIcon","_clearSvgElement","fontSet","_fontSet","_cleanupFontValue","_updateFontIconClasses","fontIcon","_fontIcon","_iconRegistry","ariaHidden","inline","_previousFontSetClass","_currentIconFetch","_splitIconName","cachedElements","_elementsWithExternalReferences","newPath","_previousPath","_prependPathToReferences","_usingFontIcon","_setSvgElement","_cacheChildrenWithExternalReferences","layoutElement","childCount","fontSetClasses","_previousFontIconClass","elementsWithFuncIri","elementWithReference","rawName","_svgNamespace","_svgName","MatIconModule","listenerOptions","AutofillMonitor","_monitoredElements","cssClass","animationName","isAutofilled","unlisten","TextFieldModule","MAT_INPUT_VALUE_ACCESSOR","MAT_INPUT_INVALID_TYPES","MatInput","_id","_uid","_required","_type","_validateType","_isTextarea","_ensureWheelDefaultBehavior","errorStateMatcher","_errorStateTracker","_inputValueAccessor","readonly","_readonly","parentForm","parentFormGroup","defaultErrorStateMatcher","inputValueAccessor","_autofillMonitor","_formField","_webkitBlinkWheelListenerAttached","_neverEmptyInputTypes","_iOSKeyupListener","selectionStart","selectionEnd","setSelectionRange","_webkitBlinkWheelListener","_previousNativeValue","_isServer","_isNativeSelect","_isInFormField","multiple","_dirtyCheckNativeValue","_dirtyCheckPlaceholder","_focusChanged","isFocused","_onInput","placeholder","_getPlaceholder","_previousPlaceholder","_isNeverEmpty","_isBadInput","validity","badInput","selectElement","firstOption","_isInlineSelect","i3","i4","MatInputModule","MatToolbarModule","UniqueSelectionDispatcher","_listeners","registered","MatRadioChange","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR","MatRadioGroup","MAT_RADIO_GROUP","MAT_RADIO_DEFAULT_OPTIONS","MAT_RADIO_DEFAULT_OPTIONS_FACTORY","_name","_updateRadioButtonNames","_labelPosition","_markRadiosForCheck","_updateSelectedRadioFromValue","_checkSelectedRadioButton","_selected","selected","_disabledInteractive","_changeDetector","_buttonChanges","_radios","radio","_touch","_markForCheck","MatRadioButton","radioGroup","_radioDispatcher","_setDisabled","_defaultOptions","_focusMonitor","animationMode","_removeUniqueSelectionListener","_noopAnimations","_updateTabIndex","focusOrigin","_onInputInteraction","groupValueChanged","_previousTabIndex","blur","_rippleTrigger","MatRadioModule","SUPPORT","UA","defaultAria","galleryLabel","viewerLabel","ChevronIconComponent","slide","ThumbsComponent_button_0_div_1_Template","arrowTemplate","item_r5","video","ThumbsComponent_li_4_ng_container_2_ng_container_2_div_1_Template","errorTemplate","_r8","onLoadChange","ThumbsComponent_li_4_ng_container_2_ng_container_2_Template","thumbSrc","_thumbFailed","ThumbsComponent_li_4_ng_template_3_ng_container_0_Template","thumbTemplate","i_r6","ctx_r3","_r3","thumbClick","ctx_r6","thumbHover","ThumbsComponent_li_4_ng_container_2_Template","ThumbsComponent_li_4_ng_template_3_Template","customThumbTemplate_r10","_r11","ThumbsComponent_button_5_div_1_Template","ThumbsComponent","orientation","hostOffsetAxis","vertical","elRef","offsetHeight","offsetWidth","scrollKey","thumbsEmpty","thumbsRef","items","showStartArrow","showEndArrow","onArrowsObserved","firstTarget","setObservedArrows","arrows","observeArrows","unobserveArrows","centerThumbIfNeeded","direction","arrowSlideByLength","thumbList","thumbListRef","thumbListOffsetAxis","scrollHeight","scroll","nextItemRef","nextItemEl","offsetLeft","offsetTop","itemOffset","itemOffsetAxis","hostScrollAxis","thumbListScroll","select","autoScroll","emitter","success","totalScrollDelta","scrollBehavior","shiftByDelta","scrollId","totalDistance","log10","currentScroll","suggestedScroll","ceil","frameScroll","sign","arrowObserver","IntersectionObserver","threshold","firstThumb","lastThumb","isRtl","intersectionRatio","disconnect","ThumbsComponent_button_0_Template","ThumbsComponent_li_3_Template","ThumbsComponent_li_4_Template","ThumbsComponent_button_5_Template","MediaDirective","hostRef","mediaLoadError","onLoad","ev","nativeEl","SafePipe","CounterComponent","itemQuantity","selectByDelta","moveByItems","ViewerComponent_button_0_chevron_icon_1_Template","source_r6","srcset","ViewerComponent_li_4_ng_container_2_picture_1_source_1_Template","item_r4","pictureSources","objectFit","ViewerComponent_li_4_ng_container_2_picture_1_Template","ViewerComponent_li_4_ng_container_2_video_2_Template","ViewerComponent_li_4_ng_container_2_iframe_3_Template","isYoutube","errorText","ViewerComponent_li_4_ng_container_3_div_1_Template","ViewerComponent_li_4_ng_template_5_ng_container_0_Template","itemTemplate","onImageClick","onItemErrored","i_r5","onTab","ViewerComponent_li_4_ng_container_2_Template","ViewerComponent_li_4_ng_container_3_Template","ViewerComponent_li_4_ng_template_5_Template","isItemFringe","customTemplate_r7","itemFailedToLoad","description","ViewerComponent_button_5_chevron_icon_1_Template","counterIndex","counterOrientation","_r9","descriptionClick","ViewerComponent_div_8_div_1_Template","counter","passiveEventListenerOpts","ViewerComponent","noAnimation","itemListRef","floor","showArrow","showPrevArrow","reallyLoop","showNextArrow","_hostRef","_destroyRef","itemClick","selection","fringeCount","getFringeCount","_itemWidth","pointerDeltaX","sliding","repositionOnFringe","itemsRef","isIntersecting","updateDimensions","visibleItems","loop","observeFringes","displayedItems","getItemsToBeDisplayed","center","handleResizes","mouseGestures","handleMouseSlides","touchGestures","handleTouchSlides","fringeObserver","shortPath","stopCurrentVideo","maxIndex","indexOutOfBounds","loopTo","correctIndexOutOfBounds","nextItemIndex","scrollLeft","showErrors","_failed","mousedown","maxDeltaX","maxDeltaY","onmousedown","onmousemove","onmouseup","movementX","selectBySwipeStats","onclick","ondragstart","horizontal","touchstart","lastTouchmove","ontouchstart","ontouchmove","startTouch","moveTouch","deltaX","deltaY","ontouchend","desiredIndex","distance","indexDelta","multiplier","videoEl","clip","ViewerComponent_button_0_Template","ViewerComponent_li_3_Template","ViewerComponent_li_4_Template","ViewerComponent_button_5_Template","ViewerComponent_counter_6_Template","ViewerComponent_ng_container_7_Template","ViewerComponent_div_8_Template","contentTemplate","ɵɵpureFunction1","descriptions","ctx_r0","aria","_r2","_onThumbClick","thumbsOrientation","thumbsArrows","thumbsArrowSlideByLength","thumbsAutoScroll","thumbsScrollBehavior","thumbsArrowTemplate","thumbErrorTemplate","GalleryComponent","loading","thumbs","_galleryColumn","_thumbsOrientationFlag","_viewerElRef","_viewerRef","_thumbsRef","_selectInternal","slideThumbs","GalleryComponent_span_0_Template","GalleryComponent_thumbs_1_Template","switchMap","SwitchMapOperator","SwitchMapSubscriber","DelayOperator","DelaySubscriber","_schedule","scheduleNotification","DelayMessage","galleryConfig","ctx_r2","rtl","DemoWholeConfigComponent_ng_template_108_ng_template_1_div_2_Template","seen_r7","img_r4","naturalHeight","DemoWholeConfigComponent_ng_template_108_ng_container_0_Template","DemoWholeConfigComponent_ng_template_108_ng_template_1_Template","DemoWholeConfigComponent_ng_template_108_ng_template_3_Template","item_r6","videoTemplate_r9","imgTemplate_r8","item_r10","DemoWholeConfigComponent","displayGallery","imageLoadingLatency","mobile","storeGalleryConfig","sessionStorage","setItem","getGalleryConfig","images","defer","observableFactory","delayFor","isDate","onConfigChange","reloadGallery","getInputValue","getItem","DemoWholeConfigComponent_gallery_105_Template","DemoWholeConfigComponent_ng_template_106_Template","DemoWholeConfigComponent_ng_template_108_Template","DemoWholeConfigComponent_ng_template_110_Template","DemoWholeConfigComponent_ng_template_112_Template","DemoWholeConfigComponent_ng_template_114_Template","DemoWholeConfigComponent_ng_template_116_Template","HeaderComponent","stackblitz","ShowcaseComponent","heading","subheading","ShowcaseComponent_a_6_Template","item_r2","selectedItem","DemoCustomTemplatesComponent_ng_template_1_img_2_Template","DemoCustomTemplatesComponent_ng_template_1_video_3_Template","video_r4","DemoCustomTemplatesComponent","tablet","DemoCustomTemplatesComponent_ng_template_1_Template","DemoCustomTemplatesComponent_ng_template_3_Template","customItem_r5","customArrow_r6","AppComponent","installScript","componentCode","componentTemplateCode","extendedImages","erroredImages","videos","mobileMatcher","tabletMatcher","onchange","materialModules","AppModule","__NgCli_bootstrap_1"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./node_modules/@angular/core/fesm2022/primitives/signals.mjs","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/cdk/fesm2022/platform.mjs","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/@angular/cdk/fesm2022/coercion.mjs","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/@angular/cdk/fesm2022/layout.mjs","./node_modules/@angular/cdk/fesm2022/a11y.mjs","./node_modules/@angular/cdk/fesm2022/keycodes.mjs","./node_modules/@angular/cdk/fesm2022/bidi.mjs","./node_modules/@angular/material/fesm2022/core.mjs","./node_modules/@angular/material/fesm2022/button.mjs","./node_modules/@angular/material/fesm2022/checkbox.mjs","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/@angular/cdk/fesm2022/observers/private.mjs","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/@angular/cdk/fesm2022/observers.mjs","./node_modules/@angular/material/fesm2022/form-field.mjs","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/@angular/material/fesm2022/icon.mjs","./node_modules/@angular/cdk/fesm2022/text-field.mjs","./node_modules/@angular/material/fesm2022/input.mjs","./node_modules/@angular/material/fesm2022/toolbar.mjs","./node_modules/@angular/cdk/fesm2022/collections.mjs","./node_modules/@angular/material/fesm2022/radio.mjs","./libs/gallery/src/lib/core/support.ts","./libs/gallery/src/lib/core/aria.ts","./libs/gallery/src/lib/components/icons/chevron/chevron-icon.component.ts","./libs/gallery/src/lib/components/icons/chevron/chevron-icon.component.html","./libs/gallery/src/lib/components/thumbs/thumbs.component.html","./libs/gallery/src/lib/components/thumbs/thumbs.component.ts","./libs/gallery/src/lib/directives/media.directive.ts","./libs/gallery/src/lib/pipes/safe.pipe.ts","./libs/gallery/src/lib/components/counter/counter.component.ts","./libs/gallery/src/lib/components/viewer/viewer.component.html","./libs/gallery/src/lib/components/viewer/viewer.component.ts","./libs/gallery/src/lib/components/gallery/gallery.component.html","./libs/gallery/src/lib/components/gallery/gallery.component.ts","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./apps/demo/src/app/components/demo-whole-config/demo-whole-config.component.html","./apps/demo/src/app/components/demo-whole-config/demo-whole-config.component.ts","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./apps/demo/src/app/components/header/header.component.ts","./apps/demo/src/app/components/header/header.component.html","./apps/demo/src/app/components/showcase/showcase.component.html","./apps/demo/src/app/components/showcase/showcase.component.ts","./apps/demo/src/app/components/demo-custom-templates/demo-custom-templates.component.html","./apps/demo/src/app/components/demo-custom-templates/demo-custom-templates.component.ts","./apps/demo/src/app/app.component.ts","./apps/demo/src/app/app.component.html","./apps/demo/src/app/app.module.ts","./apps/demo/src/main.ts"],"sourcesContent":["/**\n * @license Angular v18.2.9\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * The default equality function used for `signal` and `computed`, which uses referential equality.\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n\n/**\n * The currently active consumer `ReactiveNode`, if running code in a reactive context.\n *\n * Change this via `setActiveConsumer`.\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\n/**\n * Global epoch counter. Incremented whenever a source signal is set.\n */\nlet epoch = 1;\n/**\n * Symbol used to tell `Signal`s apart from other functions.\n *\n * This can be used to auto-unwrap signals in various cases, or to auto-wrap non-signal values.\n */\nconst SIGNAL = /* @__PURE__ */ Symbol('SIGNAL');\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nfunction isReactive(value) {\n return value[SIGNAL] !== undefined;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: undefined,\n producerLastReadVersion: undefined,\n producerIndexOfThis: undefined,\n nextProducerIndex: 0,\n liveConsumerNode: undefined,\n liveConsumerIndexOfThis: undefined,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => { },\n consumerMarkedDirty: () => { },\n consumerOnSignalRead: () => { },\n};\n/**\n * Called by implementations when a producer's signal is read.\n */\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(typeof ngDevMode !== 'undefined' && ngDevMode\n ? `Assertion error: signal read during notification phase`\n : '');\n }\n if (activeConsumer === null) {\n // Accessed outside of a reactive context, so nothing to record.\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n // This producer is the `idx`th dependency of `activeConsumer`.\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n // There's been a change in producers since the last execution of `activeConsumer`.\n // `activeConsumer.producerNode[idx]` holds a stale dependency which will be be removed and\n // replaced with `this`.\n //\n // If `activeConsumer` isn't live, then this is a no-op, since we can replace the producer in\n // `activeConsumer.producerNode` directly. However, if `activeConsumer` is live, then we need\n // to remove it from the stale producer's `liveConsumer`s.\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n // At this point, the only record of `staleProducer` is the reference at\n // `activeConsumer.producerNode[idx]` which will be overwritten below.\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n // We're a new dependency of the consumer (at `idx`).\n activeConsumer.producerNode[idx] = node;\n // If the active consumer is live, then add it as a live consumer. If not, then use 0 as a\n // placeholder value.\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer)\n ? producerAddLiveConsumer(node, activeConsumer, idx)\n : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\n/**\n * Increment the global epoch counter.\n *\n * Called by source producers (that is, not computeds) whenever their values change.\n */\nfunction producerIncrementEpoch() {\n epoch++;\n}\n/**\n * Ensure this producer's `version` is up-to-date.\n */\nfunction producerUpdateValueVersion(node) {\n if (consumerIsLive(node) && !node.dirty) {\n // A live consumer will be marked dirty by producers, so a clean state means that its version\n // is guaranteed to be up-to-date.\n return;\n }\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n // Even non-live consumers can skip polling if they previously found themselves to be clean at\n // the current epoch, since their dependencies could not possibly have changed (such a change\n // would've increased the epoch).\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n // None of our producers report a change since the last time they were read, so no\n // recomputation of our value is necessary, and we can consider ourselves clean.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n // After recomputing the value, we're no longer dirty.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\n/**\n * Propagate a dirty notification to live consumers of this producer.\n */\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === undefined) {\n return;\n }\n // Prevent signal reads when we're updating the graph\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n }\n finally {\n inNotificationPhase = prev;\n }\n}\n/**\n * Whether this `ReactiveNode` in its producer capacity is currently allowed to initiate updates,\n * based on the current consumer context.\n */\nfunction producerUpdatesAllowed() {\n return activeConsumer?.consumerAllowSignalWrites !== false;\n}\nfunction consumerMarkDirty(node) {\n node.dirty = true;\n producerNotifyConsumers(node);\n node.consumerMarkedDirty?.(node);\n}\n/**\n * Prepare this consumer to run a computation in its reactive context.\n *\n * Must be called by subclasses which represent reactive computations, before those computations\n * begin.\n */\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\n/**\n * Finalize this consumer's state after a reactive computation has run.\n *\n * Must be called by subclasses which represent reactive computations, after those computations\n * have finished.\n */\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node ||\n node.producerNode === undefined ||\n node.producerIndexOfThis === undefined ||\n node.producerLastReadVersion === undefined) {\n return;\n }\n if (consumerIsLive(node)) {\n // For live consumers, we need to remove the producer -> consumer edge for any stale producers\n // which weren't dependencies after the recomputation.\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate the producer tracking arrays.\n // Perf note: this is essentially truncating the length to `node.nextProducerIndex`, but\n // benchmarking has shown that individual pop operations are faster.\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\n/**\n * Determine whether this consumer has any dependencies which have changed since the last time\n * they were read.\n */\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n // Poll producers for change.\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n // First check the versions. A mismatch means that the producer's value is known to have\n // changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n // The producer's version is the same as the last time we read it, but it might itself be\n // stale. Force the producer to recompute its version (calculating a new value if necessary).\n producerUpdateValueVersion(producer);\n // Now when we do this check, `producer.version` is guaranteed to be up to date, so if the\n // versions still match then it has not changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\n/**\n * Disconnect this consumer from the graph.\n */\nfunction consumerDestroy(node) {\n assertConsumerNode(node);\n if (consumerIsLive(node)) {\n // Drop all connections from the graph to this node.\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate all the arrays to drop all connection from this node to the graph.\n node.producerNode.length =\n node.producerLastReadVersion.length =\n node.producerIndexOfThis.length =\n 0;\n if (node.liveConsumerNode) {\n node.liveConsumerNode.length = node.liveConsumerIndexOfThis.length = 0;\n }\n}\n/**\n * Add `consumer` as a live consumer of this node.\n *\n * Note that this operation is potentially transitive. If this node becomes live, then it becomes\n * a live consumer of all of its current producers.\n */\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n assertProducerNode(node);\n if (node.liveConsumerNode.length === 0 && isConsumerNode(node)) {\n // When going from 0 to 1 live consumers, we become a live consumer to our producers.\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\n/**\n * Remove the live consumer at `idx`.\n */\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n assertProducerNode(node);\n if (typeof ngDevMode !== 'undefined' && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);\n }\n if (node.liveConsumerNode.length === 1 && isConsumerNode(node)) {\n // When removing the last live consumer, we will no longer be live. We need to remove\n // ourselves from our producers' tracking (which may cause consumer-producers to lose\n // liveness as well).\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Move the last value of `liveConsumers` into `idx`. Note that if there's only a single\n // live consumer, this is a no-op.\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n // Truncate the array.\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n // If the index is still valid, then we need to fix the index pointer from the producer to this\n // consumer, and update it from `lastIdx` to `idx` (accounting for the move above).\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n return node.consumerIsAlwaysLive || (node?.liveConsumerNode?.length ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ??= [];\n node.producerIndexOfThis ??= [];\n node.producerLastReadVersion ??= [];\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ??= [];\n node.liveConsumerIndexOfThis ??= [];\n}\nfunction isConsumerNode(node) {\n return node.producerNode !== undefined;\n}\n\n/**\n * Create a computed signal which derives a reactive value from an expression.\n */\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => {\n // Check if the value needs updating before returning it.\n producerUpdateValueVersion(node);\n // Record that someone looked at this signal.\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n };\n computed[SIGNAL] = node;\n return computed;\n}\n/**\n * A dedicated symbol used before a computed value has been calculated for the first time.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst UNSET = /* @__PURE__ */ Symbol('UNSET');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * is in progress. Used to detect cycles in computation chains.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * failed. The thrown error is cached until the computation gets dirty again.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst ERRORED = /* @__PURE__ */ Symbol('ERRORED');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n // Force a recomputation if there's no current value, or if the current value is in the\n // process of being calculated (which should throw an error).\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n // Our computation somehow led to a cyclic read of itself.\n throw new Error('Detected cycle in computations.');\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n try {\n newValue = node.computation();\n }\n catch (err) {\n newValue = ERRORED;\n node.error = err;\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (oldValue !== UNSET &&\n oldValue !== ERRORED &&\n newValue !== ERRORED &&\n node.equal(oldValue, newValue)) {\n // No change to `valueVersion` - old and new values are\n // semantically equivalent.\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n },\n };\n})();\n\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\nfunction setThrowInvalidWriteToSignalError(fn) {\n throwInvalidWriteToSignalErrorFn = fn;\n}\n\n/**\n * If set, called after `WritableSignal`s are updated.\n *\n * This hook can be used to achieve various effects, such as running effects synchronously as part\n * of setting a signal.\n */\nlet postSignalSetFn = null;\n/**\n * Create a `Signal` that can be set or updated directly.\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = (() => {\n producerAccessed(node);\n return node.value;\n });\n getter[SIGNAL] = node;\n return getter;\n}\nfunction setPostSignalSetFn(fn) {\n const prev = postSignalSetFn;\n postSignalSetFn = fn;\n return prev;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal(node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nfunction signalUpdateFn(node, updater) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n signalSetFn(node, updater(node.value));\n}\nfunction runPostSignalSetFn() {\n postSignalSetFn?.();\n}\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: undefined,\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n postSignalSetFn?.();\n}\n\nfunction createWatch(fn, schedule, allowSignalWrites) {\n const node = Object.create(WATCH_NODE);\n if (allowSignalWrites) {\n node.consumerAllowSignalWrites = true;\n }\n node.fn = fn;\n node.schedule = schedule;\n const registerOnCleanup = (cleanupFn) => {\n node.cleanupFn = cleanupFn;\n };\n function isWatchNodeDestroyed(node) {\n return node.fn === null && node.schedule === null;\n }\n function destroyWatchNode(node) {\n if (!isWatchNodeDestroyed(node)) {\n consumerDestroy(node); // disconnect watcher from the reactive graph\n node.cleanupFn();\n // nullify references to the integration functions to mark node as destroyed\n node.fn = null;\n node.schedule = null;\n node.cleanupFn = NOOP_CLEANUP_FN;\n }\n }\n const run = () => {\n if (node.fn === null) {\n // trying to run a destroyed watch is noop\n return;\n }\n if (isInNotificationPhase()) {\n throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);\n }\n node.dirty = false;\n if (node.hasRun && !consumerPollProducersForChange(node)) {\n return;\n }\n node.hasRun = true;\n const prevConsumer = consumerBeforeComputation(node);\n try {\n node.cleanupFn();\n node.cleanupFn = NOOP_CLEANUP_FN;\n node.fn(registerOnCleanup);\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n };\n node.ref = {\n notify: () => consumerMarkDirty(node),\n run,\n cleanup: () => node.cleanupFn(),\n destroy: () => destroyWatchNode(node),\n [SIGNAL]: node,\n };\n return node.ref;\n}\nconst NOOP_CLEANUP_FN = () => { };\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst WATCH_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n consumerIsAlwaysLive: true,\n consumerAllowSignalWrites: false,\n consumerMarkedDirty: (node) => {\n if (node.schedule !== null) {\n node.schedule(node.ref);\n }\n },\n hasRun: false,\n cleanupFn: NOOP_CLEANUP_FN,\n };\n})();\n\nfunction setAlternateWeakRefImpl(impl) {\n // TODO: remove this function\n}\n\nexport { REACTIVE_NODE, SIGNAL, SIGNAL_NODE, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, createComputed, createSignal, createWatch, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, runPostSignalSetFn, setActiveConsumer, setAlternateWeakRefImpl, setPostSignalSetFn, setThrowInvalidWriteToSignalError, signalSetFn, signalUpdateFn };\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","/**\n * @license Angular v18.2.9\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';\nexport { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { map, first } from 'rxjs/operators';\nimport { Attribute as Attribute$1, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType } from '@angular/core/primitives/event-dispatch';\n\n/**\n * Base URL for the error details page.\n *\n * Keep this constant in sync across:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.dev/errors';\n/**\n * URL for the XSS security documentation.\n */\nconst XSS_SECURITY_URL = 'https://g.co/ng/security#xss';\n\n/**\n * Class that represents a runtime error.\n * Formats and outputs the error message in a consistent way.\n *\n * Example:\n * ```\n * throw new RuntimeError(\n * RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,\n * ngDevMode && 'Injector has already been destroyed.');\n * ```\n *\n * Note: the `message` argument contains a descriptive error message as a string in development\n * mode (when the `ngDevMode` is defined). In production mode (after tree-shaking pass), the\n * `message` argument becomes `false`, thus we account for it in the typings and the runtime\n * logic.\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/**\n * Called to format a runtime error.\n * See additional info on the `message` argument type in the `RuntimeError` class description.\n */\nfunction formatRuntimeError(code, message) {\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n // We also prepend `0` to non-compile-time errors.\n const fullCode = `NG0${Math.abs(code)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && code < 0) {\n const addPeriodSeparator = !errorMessage.match(/[.,;!?\\n]$/);\n const separator = addPeriodSeparator ? '.' : '';\n errorMessage = `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\nconst REQUIRED_UNSET_VALUE = /* @__PURE__ */ Symbol('InputSignalNode#UNSET');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst INPUT_SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...SIGNAL_NODE$1,\n transformFn: undefined,\n applyValueToInputSignal(node, value) {\n signalSetFn$1(node, value);\n },\n };\n})();\n\nconst ɵINPUT_SIGNAL_BRAND_READ_TYPE = /* @__PURE__ */ Symbol();\nconst ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = /* @__PURE__ */ Symbol();\n/**\n * Creates an input signal.\n *\n * @param initialValue The initial value.\n * Can be set to {@link REQUIRED_UNSET_VALUE} for required inputs.\n * @param options Additional options for the input. e.g. a transform, or an alias.\n */\nfunction createInputSignal(initialValue, options) {\n const node = Object.create(INPUT_SIGNAL_NODE);\n node.value = initialValue;\n // Perf note: Always set `transformFn` here to ensure that `node` always\n // has the same v8 class shape, allowing monomorphic reads on input signals.\n node.transformFn = options?.transform;\n function inputValueFn() {\n // Record that someone looked at this signal.\n producerAccessed$1(node);\n if (node.value === REQUIRED_UNSET_VALUE) {\n throw new RuntimeError(-950 /* RuntimeErrorCode.REQUIRED_INPUT_NO_VALUE */, ngDevMode && 'Input is required but no value is available yet.');\n }\n return node.value;\n }\n inputValueFn[SIGNAL$1] = node;\n if (ngDevMode) {\n inputValueFn.toString = () => `[Input Signal: ${inputValueFn()}]`;\n }\n return inputValueFn;\n}\n\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS)\n ? cls[ANNOTATIONS]\n : Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS)\n ? cls[PARAMETERS]\n : Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n // target is undefined with standard decorators. This case is not supported and will throw\n // if this decorator is used in JIT mode with standard decorators.\n if (target === undefined) {\n throw new Error('Standard Angular field decorators are not supported in JIT mode.');\n }\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA)\n ? constructor[PROP_METADATA]\n : Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = (meta.hasOwnProperty(name) && meta[name]) || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\nconst _global = globalThis;\n\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n hydratedNodes: 0,\n hydratedComponents: 0,\n dehydratedViewsRemoved: 0,\n dehydratedViewsCleanupRuns: 0,\n componentsSkippedHydration: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n if (!allowNgDevModeTrue) {\n _global['ngDevMode'] = false;\n }\n else {\n if (typeof _global['ngDevMode'] !== 'object') {\n _global['ngDevMode'] = {};\n }\n Object.assign(_global['ngDevMode'], newCounters);\n }\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object' || Object.keys(ngDevMode).length === 0) {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return before == null || before === ''\n ? after === null\n ? ''\n : after\n : after == null || after === ''\n ? before\n : before + ' ' + after;\n}\n/**\n * Ellipses the string in the middle when longer than the max length\n *\n * @param string\n * @param maxLength of the output string\n * @returns ellipsed string with ... in the middle\n */\nfunction truncateMiddle(str, maxLength = 100) {\n if (!str || maxLength < 1 || str.length <= maxLength)\n return str;\n if (maxLength == 1)\n return str.substring(0, 1) + '...';\n const halfLimit = Math.round(maxLength / 2);\n return str.substring(0, halfLimit) + '...' + str.substring(str.length - halfLimit);\n}\n\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * `forwardRef` is also used to break circularities in standalone components imports.\n *\n * @usageNotes\n * ### Circular dependency example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n *\n * ### Circular standalone reference import example\n * ```ts\n * @Component({\n * standalone: true,\n * imports: [ChildComponent],\n * selector: 'app-parent',\n * template: ` `,\n * })\n * export class ParentComponent {\n * @Input() hideParent: boolean;\n * }\n *\n *\n * @Component({\n * standalone: true,\n * imports: [CommonModule, forwardRef(() => ParentComponent)],\n * selector: 'app-child',\n * template: ` `,\n * })\n * export class ChildComponent {\n * @Input() hideParent: boolean;\n * }\n * ```\n *\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see {@link forwardRef}\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return (typeof fn === 'function' &&\n fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef);\n}\n\n// The functions in this file verify that the assumptions we are making\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n if (!(node instanceof Node)) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertElement(node) {\n if (!(node instanceof Element)) {\n throwError(`The provided value must be an element but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\nfunction assertNotReactive(fn) {\n if (getActiveConsumer$1() !== null) {\n throwError(`${fn}() should never be called in a reactive context.`);\n }\n}\n\n/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call [`inject`](api/core/inject) to access the `Injector` and request injection\n * of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\nfunction isInjectable(type) {\n return getInjectableDef(type) !== null;\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${type.name}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${type.name}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF))\n ? type[NG_INJ_DEF]\n : null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n * \n *\n * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the\n * provider and the injection call. Creating a new instance of `InjectionToken` in different places,\n * even with the same description, will be treated as different tokens by Angular's DI system,\n * leading to a `NullInjectorError`.\n *\n *
\n *\n * \n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the [`inject`](api/core/inject) function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule` (note:\n * this option is now deprecated). As mentioned above, `'root'` is the default value for\n * `providedIn`.\n *\n * The `providedIn: NgModule` and `providedIn: 'any'` options are deprecated.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n /**\n * @internal\n */\n get multi() {\n return this;\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\nlet _injectorProfilerContext;\nfunction getInjectorProfilerContext() {\n !ngDevMode && throwError('getInjectorProfilerContext should never be called in production mode');\n return _injectorProfilerContext;\n}\nfunction setInjectorProfilerContext(context) {\n !ngDevMode && throwError('setInjectorProfilerContext should never be called in production mode');\n const previous = _injectorProfilerContext;\n _injectorProfilerContext = context;\n return previous;\n}\nlet injectorProfilerCallback = null;\n/**\n * Sets the callback function which will be invoked during certain DI events within the\n * runtime (for example: injecting services, creating injectable instances, configuring providers)\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setInjectorProfiler = (injectorProfiler) => {\n !ngDevMode && throwError('setInjectorProfiler should never be called in production mode');\n injectorProfilerCallback = injectorProfiler;\n};\n/**\n * Injector profiler function which emits on DI events executed by the runtime.\n *\n * @param event InjectorProfilerEvent corresponding to the DI event being emitted\n */\nfunction injectorProfiler(event) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n if (injectorProfilerCallback != null /* both `null` and `undefined` */) {\n injectorProfilerCallback(event);\n }\n}\n/**\n * Emits an InjectorProfilerEventType.ProviderConfigured to the injector profiler. The data in the\n * emitted event includes the raw provider, as well as the token that provider is providing.\n *\n * @param eventProvider A provider object\n */\nfunction emitProviderConfiguredEvent(eventProvider, isViewProvider = false) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n let token;\n // if the provider is a TypeProvider (typeof provider is function) then the token is the\n // provider itself\n if (typeof eventProvider === 'function') {\n token = eventProvider;\n }\n // if the provider is an injection token, then the token is the injection token.\n else if (eventProvider instanceof InjectionToken) {\n token = eventProvider;\n }\n // in all other cases we can access the token via the `provide` property of the provider\n else {\n token = resolveForwardRef(eventProvider.provide);\n }\n let provider = eventProvider;\n // Injection tokens may define their own default provider which gets attached to the token itself\n // as `ɵprov`. In this case, we want to emit the provider that is attached to the token, not the\n // token itself.\n if (eventProvider instanceof InjectionToken) {\n provider = eventProvider.ɵprov || eventProvider;\n }\n injectorProfiler({\n type: 2 /* InjectorProfilerEventType.ProviderConfigured */,\n context: getInjectorProfilerContext(),\n providerRecord: { token, provider, isViewProvider },\n });\n}\n/**\n * Emits an event to the injector profiler with the instance that was created. Note that\n * the injector associated with this emission can be accessed by using getDebugInjectContext()\n *\n * @param instance an object created by an injector\n */\nfunction emitInstanceCreatedByInjectorEvent(instance) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 1 /* InjectorProfilerEventType.InstanceCreatedByInjector */,\n context: getInjectorProfilerContext(),\n instance: { value: instance },\n });\n}\n/**\n * @param token DI token associated with injected service\n * @param value the instance of the injected service (i.e the result of `inject(token)`)\n * @param flags the flags that the token was injected with\n */\nfunction emitInjectEvent(token, value, flags) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 0 /* InjectorProfilerEventType.Inject */,\n context: getInjectorProfilerContext(),\n service: { token, value, flags },\n });\n}\nfunction runInInjectorProfilerContext(injector, token, callback) {\n !ngDevMode &&\n throwError('runInInjectorProfilerContext should never be called in production mode');\n const prevInjectContext = setInjectorProfilerContext({ injector, token });\n try {\n callback();\n }\n finally {\n setInjectorProfilerContext(prevInjectContext);\n }\n}\n\nfunction isEnvironmentProviders(value) {\n return value && !!value.ɵproviders;\n}\n\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n/**\n * The `NG_ENV_ID` field on a DI token indicates special processing in the `EnvironmentInjector`:\n * getting such tokens from the `EnvironmentInjector` will bypass the standard DI resolution\n * strategy and instead will return implementation produced by the `NG_ENV_ID` factory function.\n *\n * This particular retrieval of DI tokens is mostly done to eliminate circular dependencies and\n * improve tree-shaking.\n */\nconst NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty });\n\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n *\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n/**\n * Used to stringify a `Type` and including the file path and line number in which it is defined, if\n * possible, for better debugging experience.\n *\n * Important! This function contains a megamorphic read and should only be used for error messages.\n */\nfunction debugStringifyTypeForError(type) {\n // TODO(pmvald): Do some refactoring so that we can use getComponentDef here without creating\n // circular deps.\n let componentDef = type[NG_COMP_DEF] || null;\n if (componentDef !== null && componentDef.debugInfo) {\n return stringifyTypeFromDebugInfo(componentDef.debugInfo);\n }\n return stringifyForError(type);\n}\n// TODO(pmvald): Do some refactoring so that we can use the type ClassDebugInfo for the param\n// debugInfo here without creating circular deps.\nfunction stringifyTypeFromDebugInfo(debugInfo) {\n if (!debugInfo.filePath || !debugInfo.lineNumber) {\n return debugInfo.className;\n }\n else {\n return `${debugInfo.className} (at ${debugInfo.filePath}:${debugInfo.lineNumber})`;\n }\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* RuntimeErrorCode.CYCLIC_DI_DEPENDENCY */, ngDevMode ? `Circular dependency in DI detected for ${token}${depPath}` : token);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n if (ngModuleType && providers) {\n const providerDetail = providers.map((v) => (v == provider ? '?' + provider + '?' : '...'));\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`);\n }\n else if (isEnvironmentProviders(provider)) {\n if (provider.ɵfromNgModule) {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.`);\n }\n else {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.`);\n }\n }\n else {\n throw new Error('Invalid provider');\n }\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const errorMessage = ngDevMode &&\n `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ''}`;\n throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, errorMessage);\n}\n\n/**\n * Injection flags for DI.\n *\n * @publicApi\n * @deprecated use an options object for [`inject`](api/core/inject) instead.\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined\n ? (injectableDef.value = injectableDef.factory())\n : injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(token, 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction getCurrentInjector() {\n return _currentInjector;\n}\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n `inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \\`runInInjectionContext\\`.`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n const value = _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n ngDevMode && emitInjectEvent(token, value, flags);\n return value;\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n throw new RuntimeError(202 /* RuntimeErrorCode.INVALID_FACTORY_DEPENDENCY */, ngDevMode &&\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`);\n}\n/**\n * Injects a token from the currently active injector.\n * `inject` is only supported in an [injection context](guide/di/dependency-injection-context). It\n * can be used during:\n * - Construction (via the `constructor`) of a class being instantiated by the DI system, such\n * as an `@Injectable` or `@Component`.\n * - In the initializer for fields of such classes.\n * - In the factory function specified for `useFactory` of a `Provider` or an `@Injectable`.\n * - In the `factory` function specified for an `InjectionToken`.\n * - In a stackframe of a function call in a DI context\n *\n * @param token A token that represents a dependency that should be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSelf`, and `@Optional`.\n * @returns the injected value if operation is successful, `null` otherwise.\n * @throws if called outside of a supported context.\n *\n * @usageNotes\n * In practice the `inject()` calls are allowed in a constructor, a constructor parameter and a\n * field initializer:\n *\n * ```typescript\n * @Injectable({providedIn: 'root'})\n * export class Car {\n * radio: Radio|undefined;\n * // OK: field initializer\n * spareTyre = inject(Tyre);\n *\n * constructor() {\n * // OK: constructor body\n * this.radio = inject(Radio);\n * }\n * }\n * ```\n *\n * It is also legal to call `inject` from a provider's factory:\n *\n * ```typescript\n * providers: [\n * {provide: Car, useFactory: () => {\n * // OK: a class factory\n * const engine = inject(Engine);\n * return new Car(engine);\n * }}\n * ]\n * ```\n *\n * Calls to the `inject()` function outside of the class creation context will result in error. Most\n * notably, calls to `inject()` are disallowed after a class instance was created, in methods\n * (including lifecycle hooks):\n *\n * ```typescript\n * @Component({ ... })\n * export class CarComponent {\n * ngOnInit() {\n * // ERROR: too late, the component instance was already created\n * const engine = inject(Engine);\n * engine.start();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction inject(token, flags = InjectFlags.Default) {\n // The `as any` here _shouldn't_ be necessary, but without it JSCompiler\n // throws a disambiguation error due to the multiple signatures.\n return ɵɵinject(token, convertToBitFlags(flags));\n}\n// Converts object-based DI flags (`InjectOptions`) to bit flags (`InjectFlags`).\nfunction convertToBitFlags(flags) {\n if (typeof flags === 'undefined' || typeof flags === 'number') {\n return flags;\n }\n // While TypeScript doesn't accept it without a cast, bitwise OR with false-y values in\n // JavaScript is a no-op. We can use that for a very codesize-efficient conversion from\n // `InjectOptions` to `InjectFlags`.\n return (0 /* InternalInjectFlags.Default */ | // comment to force a line break in the formatter\n (flags.optional && 8 /* InternalInjectFlags.Optional */) |\n (flags.host && 1 /* InternalInjectFlags.Host */) |\n (flags.self && 2 /* InternalInjectFlags.Self */) |\n (flags.skipSelf && 4 /* InternalInjectFlags.SkipSelf */));\n}\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new RuntimeError(900 /* RuntimeErrorCode.INVALID_DIFFER_INPUT */, ngDevMode && 'Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* DecoratorFlags.Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.slice(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\nmakeParamDecorator('Inject', (token) => ({ token })), -1 /* DecoratorFlags.Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* InternalInjectFlags.Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* InternalInjectFlags.Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* InternalInjectFlags.SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* InternalInjectFlags.Host */);\n\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list) {\n return list.flat(Number.POSITIVE_INFINITY);\n}\nfunction deepForEach(input, fn) {\n input.forEach((value) => (Array.isArray(value) ? deepForEach(value, fn) : fn(value)));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, \"Can't insert past array end.\");\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, \"Can't insert past array end.\");\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return middle << shift;\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * A multi-provider token for initialization functions that will run upon construction of an\n * environment injector.\n *\n * Note: As opposed to the `APP_INITIALIZER` token, the `ENVIRONMENT_INITIALIZER` functions are not awaited,\n * hence they should not be `async`.\n *\n * @publicApi\n */\nconst ENVIRONMENT_INITIALIZER = new InjectionToken(ngDevMode ? 'ENVIRONMENT_INITIALIZER' : '');\n\n/**\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\n *\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\n * project.\n *\n * @publicApi\n */\nconst INJECTOR$1 = new InjectionToken(ngDevMode ? 'INJECTOR' : '', \n// Disable tslint because this is const enum which gets inlined not top level prop access.\n// tslint:disable-next-line: no-toplevel-property-access\n-1 /* InjectorMarkers.Injector */);\n\nconst INJECTOR_DEF_TYPES = new InjectionToken(ngDevMode ? 'INJECTOR_DEF_TYPES' : '');\n\nclass NullInjector {\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n if (notFoundValue === THROW_IF_NOT_FOUND) {\n const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);\n error.name = 'NullInjectorError';\n throw error;\n }\n return notFoundValue;\n }\n}\n\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see [Change detection usage](/api/core/ChangeDetectorRef?tab=usage-notes)\n * @see [Skipping component subtrees](/best-practices/skipping-subtrees)\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n\n/**\n * Defines the CSS styles encapsulation policies for the {@link Component} decorator's\n * `encapsulation` option.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n // TODO: consider making `ViewEncapsulation` a `const enum` instead. See\n // https://github.com/angular/angular/issues/44119 for additional information.\n /**\n * Emulates a native Shadow DOM encapsulation behavior by adding a specific attribute to the\n * component's host element and applying the same attribute to all the CSS selectors provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls}.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Doesn't provide any sort of CSS style encapsulation, meaning that all the styles provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls} are applicable\n * to any HTML element of the application regardless of their host Component.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Uses the browser's native Shadow DOM API to encapsulate CSS styles, meaning that it creates\n * a ShadowRoot for the component's host element which is then used to encapsulate\n * all the Component's styling.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/** Flags describing an input for a directive. */\nvar InputFlags;\n(function (InputFlags) {\n InputFlags[InputFlags[\"None\"] = 0] = \"None\";\n InputFlags[InputFlags[\"SignalBased\"] = 1] = \"SignalBased\";\n InputFlags[InputFlags[\"HasDecoratorInputTransform\"] = 2] = \"HasDecoratorInputTransform\";\n})(InputFlags || (InputFlags = {}));\n\n/**\n * Returns an index of `classToSearch` in `className` taking token boundaries into account.\n *\n * `classIndexOf('AB A', 'A', 0)` will be 3 (not 0 since `AB!==A`)\n *\n * @param className A string containing classes (whitespace separated)\n * @param classToSearch A class name to locate\n * @param startingIndex Starting location of search\n * @returns an index of the located class (or -1 if not found)\n */\nfunction classIndexOf(className, classToSearch, startingIndex) {\n ngDevMode && assertNotEqual(classToSearch, '', 'can not look for \"\" string.');\n let end = className.length;\n while (true) {\n const foundIndex = className.indexOf(classToSearch, startingIndex);\n if (foundIndex === -1)\n return foundIndex;\n if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has leading whitespace\n const length = classToSearch.length;\n if (foundIndex + length === end ||\n className.charCodeAt(foundIndex + length) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has trailing whitespace\n return foundIndex;\n }\n }\n // False positive, keep searching from where we left off.\n startingIndex = foundIndex + 1;\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* AttributeMarker.NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n renderer.setAttribute(native, attrName, attrVal, namespaceURI);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n renderer.setProperty(native, attrName, attrVal);\n }\n else {\n renderer.setAttribute(native, attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return (marker === 3 /* AttributeMarker.Bindings */ ||\n marker === 4 /* AttributeMarker.Template */ ||\n marker === 6 /* AttributeMarker.I18n */);\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* CharCode.AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* AttributeMarker.ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* AttributeMarker.NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* AttributeMarker.ImplicitAttributes */ ||\n srcMarker === 2 /* AttributeMarker.Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* AttributeMarker.ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\nconst NG_TEMPLATE_SELECTOR = 'ng-template';\n/**\n * Search the `TAttributes` to see if it contains `cssClassToMatch` (case insensitive)\n *\n * @param tNode static data of the node to match\n * @param attrs `TAttributes` to search through.\n * @param cssClassToMatch class to match (lowercase)\n * @param isProjectionMode Whether or not class matching should look into the attribute `class` in\n * addition to the `AttributeMarker.Classes`.\n */\nfunction isCssClassMatching(tNode, attrs, cssClassToMatch, isProjectionMode) {\n ngDevMode &&\n assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), 'Class name expected to be lowercase.');\n let i = 0;\n if (isProjectionMode) {\n for (; i < attrs.length && typeof attrs[i] === 'string'; i += 2) {\n // Search for an implicit `class` attribute and check if its value matches `cssClassToMatch`.\n if (attrs[i] === 'class' &&\n classIndexOf(attrs[i + 1].toLowerCase(), cssClassToMatch, 0) !== -1) {\n return true;\n }\n }\n }\n else if (isInlineTemplate(tNode)) {\n // Matching directives (i.e. when not matching for projection mode) should not consider the\n // class bindings that are present on inline templates, as those class bindings only target\n // the root node of the template, not the template itself.\n return false;\n }\n // Resume the search for classes after the `Classes` marker.\n i = attrs.indexOf(1 /* AttributeMarker.Classes */, i);\n if (i > -1) {\n // We found the classes section. Start searching for the class.\n let item;\n while (++i < attrs.length && typeof (item = attrs[i]) === 'string') {\n if (item.toLowerCase() === cssClassToMatch) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * Checks whether the `tNode` represents an inline template (e.g. `*ngFor`).\n *\n * @param tNode current TNode\n */\nfunction isInlineTemplate(tNode) {\n return tNode.type === 4 /* TNodeType.Container */ && tNode.value !== NG_TEMPLATE_SELECTOR;\n}\n/**\n * Function that checks whether a given tNode matches tag-based selector and has a valid type.\n *\n * Matching can be performed in 2 modes: projection mode (when we project nodes) and regular\n * directive matching mode:\n * - in the \"directive matching\" mode we do _not_ take TContainer's tagName into account if it is\n * different from NG_TEMPLATE_SELECTOR (value different from NG_TEMPLATE_SELECTOR indicates that a\n * tag name was extracted from * syntax so we would match the same directive twice);\n * - in the \"projection\" mode, we use a tag name potentially extracted from the * syntax processing\n * (applicable to TNodeType.Container only).\n */\nfunction hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) {\n const tagNameToCompare = tNode.type === 4 /* TNodeType.Container */ && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value;\n return currentSelector === tagNameToCompare;\n}\n/**\n * A utility function to match an Ivy node static data against a simple CSS selector\n *\n * @param tNode static data of the node to match\n * @param selector The selector to try matching against the node.\n * @param isProjectionMode if `true` we are matching for content projection, otherwise we are doing\n * directive matching.\n * @returns true if node matches the selector.\n */\nfunction isNodeMatchingSelector(tNode, selector, isProjectionMode) {\n ngDevMode && assertDefined(selector[0], 'Selector should have a tag name');\n let mode = 4 /* SelectorFlags.ELEMENT */;\n const nodeAttrs = tNode.attrs;\n // Find the index of first attribute that has no value, only a name.\n const nameOnlyMarkerIdx = nodeAttrs !== null ? getNameOnlyMarkerIndex(nodeAttrs) : 0;\n // When processing \":not\" selectors, we skip to the next \":not\" if the\n // current one doesn't match\n let skipToNextSelector = false;\n for (let i = 0; i < selector.length; i++) {\n const current = selector[i];\n if (typeof current === 'number') {\n // If we finish processing a :not selector and it hasn't failed, return false\n if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) {\n return false;\n }\n // If we are skipping to the next :not() and this mode flag is positive,\n // it's a part of the current :not() selector, and we should keep skipping\n if (skipToNextSelector && isPositive(current))\n continue;\n skipToNextSelector = false;\n mode = current | (mode & 1 /* SelectorFlags.NOT */);\n continue;\n }\n if (skipToNextSelector)\n continue;\n if (mode & 4 /* SelectorFlags.ELEMENT */) {\n mode = 2 /* SelectorFlags.ATTRIBUTE */ | (mode & 1 /* SelectorFlags.NOT */);\n if ((current !== '' && !hasTagAndTypeMatch(tNode, current, isProjectionMode)) ||\n (current === '' && selector.length === 1)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n if (nodeAttrs === null || !isCssClassMatching(tNode, nodeAttrs, current, isProjectionMode)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else {\n const selectorAttrValue = selector[++i];\n const attrIndexInNode = findAttrIndexInNode(current, nodeAttrs, isInlineTemplate(tNode), isProjectionMode);\n if (attrIndexInNode === -1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n continue;\n }\n if (selectorAttrValue !== '') {\n let nodeAttrValue;\n if (attrIndexInNode > nameOnlyMarkerIdx) {\n nodeAttrValue = '';\n }\n else {\n ngDevMode &&\n assertNotEqual(nodeAttrs[attrIndexInNode], 0 /* AttributeMarker.NamespaceURI */, 'We do not match directives on namespaced attributes');\n // we lowercase the attribute value to be able to match\n // selectors without case-sensitivity\n // (selectors are already in lowercase when generated)\n nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase();\n }\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */ && selectorAttrValue !== nodeAttrValue) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n }\n }\n return isPositive(mode) || skipToNextSelector;\n}\nfunction isPositive(mode) {\n return (mode & 1 /* SelectorFlags.NOT */) === 0;\n}\n/**\n * Examines the attribute's definition array for a node to find the index of the\n * attribute that matches the given `name`.\n *\n * NOTE: This will not match namespaced attributes.\n *\n * Attribute matching depends upon `isInlineTemplate` and `isProjectionMode`.\n * The following table summarizes which types of attributes we attempt to match:\n *\n * ===========================================================================================================\n * Modes | Normal Attributes | Bindings Attributes | Template Attributes | I18n\n * Attributes\n * ===========================================================================================================\n * Inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Inline + Directive | NO | NO | YES | NO\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Directive | YES | YES | NO | YES\n * ===========================================================================================================\n *\n * @param name the name of the attribute to find\n * @param attrs the attribute array to examine\n * @param isInlineTemplate true if the node being matched is an inline template (e.g. `*ngFor`)\n * rather than a manually expanded template node (e.g ``).\n * @param isProjectionMode true if we are matching against content projection otherwise we are\n * matching against directives.\n */\nfunction findAttrIndexInNode(name, attrs, isInlineTemplate, isProjectionMode) {\n if (attrs === null)\n return -1;\n let i = 0;\n if (isProjectionMode || !isInlineTemplate) {\n let bindingsMode = false;\n while (i < attrs.length) {\n const maybeAttrName = attrs[i];\n if (maybeAttrName === name) {\n return i;\n }\n else if (maybeAttrName === 3 /* AttributeMarker.Bindings */ ||\n maybeAttrName === 6 /* AttributeMarker.I18n */) {\n bindingsMode = true;\n }\n else if (maybeAttrName === 1 /* AttributeMarker.Classes */ ||\n maybeAttrName === 2 /* AttributeMarker.Styles */) {\n let value = attrs[++i];\n // We should skip classes here because we have a separate mechanism for\n // matching classes in projection mode.\n while (typeof value === 'string') {\n value = attrs[++i];\n }\n continue;\n }\n else if (maybeAttrName === 4 /* AttributeMarker.Template */) {\n // We do not care about Template attributes in this scenario.\n break;\n }\n else if (maybeAttrName === 0 /* AttributeMarker.NamespaceURI */) {\n // Skip the whole namespaced attribute and value. This is by design.\n i += 4;\n continue;\n }\n // In binding mode there are only names, rather than name-value pairs.\n i += bindingsMode ? 1 : 2;\n }\n // We did not match the attribute\n return -1;\n }\n else {\n return matchTemplateAttribute(attrs, name);\n }\n}\nfunction isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) {\n for (let i = 0; i < selector.length; i++) {\n if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) {\n return true;\n }\n }\n return false;\n}\nfunction getProjectAsAttrValue(tNode) {\n const nodeAttrs = tNode.attrs;\n if (nodeAttrs != null) {\n const ngProjectAsAttrIdx = nodeAttrs.indexOf(5 /* AttributeMarker.ProjectAs */);\n // only check for ngProjectAs in attribute names, don't accidentally match attribute's value\n // (attribute names are stored at even indexes)\n if ((ngProjectAsAttrIdx & 1) === 0) {\n return nodeAttrs[ngProjectAsAttrIdx + 1];\n }\n }\n return null;\n}\nfunction getNameOnlyMarkerIndex(nodeAttrs) {\n for (let i = 0; i < nodeAttrs.length; i++) {\n const nodeAttr = nodeAttrs[i];\n if (isNameOnlyAttributeMarker(nodeAttr)) {\n return i;\n }\n }\n return nodeAttrs.length;\n}\nfunction matchTemplateAttribute(attrs, name) {\n let i = attrs.indexOf(4 /* AttributeMarker.Template */);\n if (i > -1) {\n i++;\n while (i < attrs.length) {\n const attr = attrs[i];\n // Return in case we checked all template attrs and are switching to the next section in the\n // attrs array (that starts with a number that represents an attribute marker).\n if (typeof attr === 'number')\n return -1;\n if (attr === name)\n return i;\n i++;\n }\n }\n return -1;\n}\n/**\n * Checks whether a selector is inside a CssSelectorList\n * @param selector Selector to be checked.\n * @param list List in which to look for the selector.\n */\nfunction isSelectorInSelectorList(selector, list) {\n selectorListLoop: for (let i = 0; i < list.length; i++) {\n const currentSelectorInList = list[i];\n if (selector.length !== currentSelectorInList.length) {\n continue;\n }\n for (let j = 0; j < selector.length; j++) {\n if (selector[j] !== currentSelectorInList[j]) {\n continue selectorListLoop;\n }\n }\n return true;\n }\n return false;\n}\nfunction maybeWrapInNotSelector(isNegativeMode, chunk) {\n return isNegativeMode ? ':not(' + chunk.trim() + ')' : chunk;\n}\nfunction stringifyCSSSelector(selector) {\n let result = selector[0];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n let currentChunk = '';\n let isNegativeMode = false;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */) {\n const attrValue = selector[++i];\n currentChunk +=\n '[' + valueOrMarker + (attrValue.length > 0 ? '=\"' + attrValue + '\"' : '') + ']';\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n currentChunk += '.' + valueOrMarker;\n }\n else if (mode & 4 /* SelectorFlags.ELEMENT */) {\n currentChunk += ' ' + valueOrMarker;\n }\n }\n else {\n //\n // Append current chunk to the final result in case we come across SelectorFlag, which\n // indicates that the previous section of a selector is over. We need to accumulate content\n // between flags to make sure we wrap the chunk later in :not() selector if needed, e.g.\n // ```\n // ['', Flags.CLASS, '.classA', Flags.CLASS | Flags.NOT, '.classB', '.classC']\n // ```\n // should be transformed to `.classA :not(.classB .classC)`.\n //\n // Note: for negative selector part, we accumulate content between flags until we find the\n // next negative flag. This is needed to support a case where `:not()` rule contains more than\n // one chunk, e.g. the following selector:\n // ```\n // ['', Flags.ELEMENT | Flags.NOT, 'p', Flags.CLASS, 'foo', Flags.CLASS | Flags.NOT, 'bar']\n // ```\n // should be stringified to `:not(p.foo) :not(.bar)`\n //\n if (currentChunk !== '' && !isPositive(valueOrMarker)) {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n currentChunk = '';\n }\n mode = valueOrMarker;\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector.\n isNegativeMode = isNegativeMode || !isPositive(mode);\n }\n i++;\n }\n if (currentChunk !== '') {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n }\n return result;\n}\n/**\n * Generates string representation of CSS selector in parsed form.\n *\n * ComponentDef and DirectiveDef are generated with the selector in parsed form to avoid doing\n * additional parsing at runtime (for example, for directive matching). However in some cases (for\n * example, while bootstrapping a component), a string version of the selector is required to query\n * for the host element on the page. This function takes the parsed form of a selector and returns\n * its string representation.\n *\n * @param selectorList selector in parsed form\n * @returns string representation of a given selector\n */\nfunction stringifyCSSSelectorList(selectorList) {\n return selectorList.map(stringifyCSSSelector).join(',');\n}\n/**\n * Extracts attributes and classes information from a given CSS selector.\n *\n * This function is used while creating a component dynamically. In this case, the host element\n * (that is created dynamically) should contain attributes and classes specified in component's CSS\n * selector.\n *\n * @param selector CSS selector in parsed form (in a form of array)\n * @returns object with `attrs` and `classes` fields that contain extracted information\n */\nfunction extractAttrsAndClassesFromSelector(selector) {\n const attrs = [];\n const classes = [];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode === 2 /* SelectorFlags.ATTRIBUTE */) {\n if (valueOrMarker !== '') {\n attrs.push(valueOrMarker, selector[++i]);\n }\n }\n else if (mode === 8 /* SelectorFlags.CLASS */) {\n classes.push(valueOrMarker);\n }\n }\n else {\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector. Since attributes and classes are\n // extracted only for \"positive\" part of the selector, we can stop here.\n if (!isPositive(mode))\n break;\n mode = valueOrMarker;\n }\n i++;\n }\n return { attrs, classes };\n}\n\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyComponent {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const baseDef = getNgDirectiveDef(componentDefinition);\n const def = {\n ...baseDef,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n template: componentDefinition.template,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null, // assigned in noSideEffects\n pipeDefs: null, // assigned in noSideEffects\n dependencies: (baseDef.standalone && componentDefinition.dependencies) || null,\n getStandaloneInjector: null,\n signals: componentDefinition.signals ?? false,\n data: componentDefinition.data || {},\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n id: '',\n };\n initFeatures(def);\n const dependencies = componentDefinition.dependencies;\n def.directiveDefs = extractDefListOrFactory(dependencies, /* pipeDef */ false);\n def.pipeDefs = extractDefListOrFactory(dependencies, /* pipeDef */ true);\n def.id = getComponentId(def);\n return def;\n });\n}\nfunction extractDirectiveDef(type) {\n return getComponentDef(type) || getDirectiveDef(type);\n}\nfunction nonNull(value) {\n return value !== null;\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n return res;\n });\n}\nfunction parseAndConvertBindingsForDefinition(obj, declaredInputs) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n const value = obj[minifiedKey];\n let publicName;\n let declaredName;\n let inputFlags = InputFlags.None;\n if (Array.isArray(value)) {\n inputFlags = value[0];\n publicName = value[1];\n declaredName = value[2] ?? publicName; // declared name might not be set to save bytes.\n }\n else {\n publicName = value;\n declaredName = value;\n }\n // For inputs, capture the declared name, or if some flags are set.\n if (declaredInputs) {\n // Perf note: An array is only allocated for the input if there are flags.\n newLookup[publicName] =\n inputFlags !== InputFlags.None ? [minifiedKey, inputFlags] : minifiedKey;\n declaredInputs[publicName] = declaredName;\n }\n else {\n newLookup[publicName] = minifiedKey;\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdefineDirective(directiveDefinition) {\n return noSideEffects(() => {\n const def = getNgDirectiveDef(directiveDefinition);\n initFeatures(def);\n return def;\n });\n}\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n standalone: pipeDef.standalone === true,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null,\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef$1(type) {\n return type[NG_PIPE_DEF] || null;\n}\n/**\n * Checks whether a given Component, Directive or Pipe is marked as standalone.\n * This will return false if passed anything other than a Component, Directive, or Pipe class\n * See [this guide](guide/components/importing) for additional information:\n *\n * @param type A reference to a Component, Directive or Pipe.\n * @publicApi\n */\nfunction isStandalone(type) {\n const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);\n return def !== null ? def.standalone : false;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\nfunction getNgDirectiveDef(directiveDefinition) {\n const declaredInputs = {};\n return {\n type: directiveDefinition.type,\n providersResolver: null,\n factory: null,\n hostBindings: directiveDefinition.hostBindings || null,\n hostVars: directiveDefinition.hostVars || 0,\n hostAttrs: directiveDefinition.hostAttrs || null,\n contentQueries: directiveDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputTransforms: null,\n inputConfig: directiveDefinition.inputs || EMPTY_OBJ,\n exportAs: directiveDefinition.exportAs || null,\n standalone: directiveDefinition.standalone === true,\n signals: directiveDefinition.signals === true,\n selectors: directiveDefinition.selectors || EMPTY_ARRAY,\n viewQuery: directiveDefinition.viewQuery || null,\n features: directiveDefinition.features || null,\n setInput: null,\n findHostDirectiveDefs: null,\n hostDirectives: null,\n inputs: parseAndConvertBindingsForDefinition(directiveDefinition.inputs, declaredInputs),\n outputs: parseAndConvertBindingsForDefinition(directiveDefinition.outputs),\n debugInfo: null,\n };\n}\nfunction initFeatures(definition) {\n definition.features?.forEach((fn) => fn(definition));\n}\nfunction extractDefListOrFactory(dependencies, pipeDef) {\n if (!dependencies) {\n return null;\n }\n const defExtractor = pipeDef ? getPipeDef$1 : extractDirectiveDef;\n return () => (typeof dependencies === 'function' ? dependencies() : dependencies)\n .map((dep) => defExtractor(dep))\n .filter(nonNull);\n}\n/**\n * A map that contains the generated component IDs and type.\n */\nconst GENERATED_COMP_IDS = new Map();\n/**\n * A method can returns a component ID from the component definition using a variant of DJB2 hash\n * algorithm.\n */\nfunction getComponentId(componentDef) {\n let hash = 0;\n // We cannot rely solely on the component selector as the same selector can be used in different\n // modules.\n //\n // `componentDef.style` is not used, due to it causing inconsistencies. Ex: when server\n // component styles has no sourcemaps and browsers do.\n //\n // Example:\n // https://github.com/angular/components/blob/d9f82c8f95309e77a6d82fd574c65871e91354c2/src/material/core/option/option.ts#L248\n // https://github.com/angular/components/blob/285f46dc2b4c5b127d356cb7c4714b221f03ce50/src/material/legacy-core/option/option.ts#L32\n const hashSelectors = [\n componentDef.selectors,\n componentDef.ngContentSelectors,\n componentDef.hostVars,\n componentDef.hostAttrs,\n componentDef.consts,\n componentDef.vars,\n componentDef.decls,\n componentDef.encapsulation,\n componentDef.standalone,\n componentDef.signals,\n componentDef.exportAs,\n JSON.stringify(componentDef.inputs),\n JSON.stringify(componentDef.outputs),\n // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not\n // match in the server and browser bundles.\n Object.getOwnPropertyNames(componentDef.type.prototype),\n !!componentDef.contentQueries,\n !!componentDef.viewQuery,\n ].join('|');\n for (const char of hashSelectors) {\n hash = (Math.imul(31, hash) + char.charCodeAt(0)) << 0;\n }\n // Force positive number hash.\n // 2147483647 = equivalent of Integer.MAX_VALUE.\n hash += 2147483647 + 1;\n const compId = 'c' + hash;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (GENERATED_COMP_IDS.has(compId)) {\n const previousCompDefType = GENERATED_COMP_IDS.get(compId);\n if (previousCompDefType !== componentDef.type) {\n console.warn(formatRuntimeError(-912 /* RuntimeErrorCode.COMPONENT_ID_COLLISION */, `Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`));\n }\n }\n else {\n GENERATED_COMP_IDS.set(compId, componentDef.type);\n }\n }\n return compId;\n}\n\n/**\n * Wrap an array of `Provider`s into `EnvironmentProviders`, preventing them from being accidentally\n * referenced in `@Component` in a component injector.\n */\nfunction makeEnvironmentProviders(providers) {\n return {\n ɵproviders: providers,\n };\n}\n/**\n * Collects providers from all NgModules and standalone components, including transitively imported\n * ones.\n *\n * Providers extracted via `importProvidersFrom` are only usable in an application injector or\n * another environment injector (such as a route injector). They should not be used in component\n * providers.\n *\n * More information about standalone components can be found in [this\n * guide](guide/components/importing).\n *\n * @usageNotes\n * The results of the `importProvidersFrom` call can be used in the `bootstrapApplication` call:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ]\n * });\n * ```\n *\n * You can also use the `importProvidersFrom` results in the `providers` field of a route, when a\n * standalone component is used:\n *\n * ```typescript\n * export const ROUTES: Route[] = [\n * {\n * path: 'foo',\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ],\n * component: YourStandaloneComponent\n * }\n * ];\n * ```\n *\n * @returns Collected providers from the specified list of types.\n * @publicApi\n */\nfunction importProvidersFrom(...sources) {\n return {\n ɵproviders: internalImportProvidersFrom(true, sources),\n ɵfromNgModule: true,\n };\n}\nfunction internalImportProvidersFrom(checkForStandaloneCmp, ...sources) {\n const providersOut = [];\n const dedup = new Set(); // already seen types\n let injectorTypesWithProviders;\n const collectProviders = (provider) => {\n providersOut.push(provider);\n };\n deepForEach(sources, (source) => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && checkForStandaloneCmp) {\n const cmpDef = getComponentDef(source);\n if (cmpDef?.standalone) {\n throw new RuntimeError(800 /* RuntimeErrorCode.IMPORT_PROVIDERS_FROM_STANDALONE */, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component \"${stringifyForError(source)}\"`);\n }\n }\n // Narrow `source` to access the internal type analogue for `ModuleWithProviders`.\n const internalSource = source;\n if (walkProviderTree(internalSource, collectProviders, [], dedup)) {\n injectorTypesWithProviders ||= [];\n injectorTypesWithProviders.push(internalSource);\n }\n });\n // Collect all providers from `ModuleWithProviders` types.\n if (injectorTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders);\n }\n return providersOut;\n}\n/**\n * Collects all providers from the list of `ModuleWithProviders` and appends them to the provided\n * array.\n */\nfunction processInjectorTypesWithProviders(typesWithProviders, visitor) {\n for (let i = 0; i < typesWithProviders.length; i++) {\n const { ngModule, providers } = typesWithProviders[i];\n deepForEachProvider(providers, (provider) => {\n ngDevMode && validateProvider(provider, providers || EMPTY_ARRAY, ngModule);\n visitor(provider, ngModule);\n });\n }\n}\n/**\n * The logic visits an `InjectorType`, an `InjectorTypeWithProviders`, or a standalone\n * `ComponentType`, and all of its transitive providers and collects providers.\n *\n * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\n * the function will return \"true\" to indicate that the providers of the type definition need\n * to be processed. This allows us to process providers of injector types after all imports of\n * an injector definition are processed. (following View Engine semantics: see FW-1349)\n */\nfunction walkProviderTree(container, visitor, parents, dedup) {\n container = resolveForwardRef(container);\n if (!container)\n return false;\n // The actual type which had the definition. Usually `container`, but may be an unwrapped type\n // from `InjectorTypeWithProviders`.\n let defType = null;\n let injDef = getInjectorDef(container);\n const cmpDef = !injDef && getComponentDef(container);\n if (!injDef && !cmpDef) {\n // `container` is not an injector type or a component type. It might be:\n // * An `InjectorTypeWithProviders` that wraps an injector type.\n // * A standalone directive or pipe that got pulled in from a standalone component's\n // dependencies.\n // Try to unwrap it as an `InjectorTypeWithProviders` first.\n const ngModule = container\n .ngModule;\n injDef = getInjectorDef(ngModule);\n if (injDef) {\n defType = ngModule;\n }\n else {\n // Not a component or injector type, so ignore it.\n return false;\n }\n }\n else if (cmpDef && !cmpDef.standalone) {\n return false;\n }\n else {\n defType = container;\n }\n // Check for circular dependencies.\n if (ngDevMode && parents.indexOf(defType) !== -1) {\n const defName = stringify(defType);\n const path = parents.map(stringify);\n throwCyclicDependencyError(defName, path);\n }\n // Check for multiple imports of the same module\n const isDuplicate = dedup.has(defType);\n if (cmpDef) {\n if (isDuplicate) {\n // This component definition has already been processed.\n return false;\n }\n dedup.add(defType);\n if (cmpDef.dependencies) {\n const deps = typeof cmpDef.dependencies === 'function' ? cmpDef.dependencies() : cmpDef.dependencies;\n for (const dep of deps) {\n walkProviderTree(dep, visitor, parents, dedup);\n }\n }\n }\n else if (injDef) {\n // First, include providers from any imports.\n if (injDef.imports != null && !isDuplicate) {\n // Before processing defType's imports, add it to the set of parents. This way, if it ends\n // up deeply importing itself, this can be detected.\n ngDevMode && parents.push(defType);\n // Add it to the set of dedups. This way we can detect multiple imports of the same module\n dedup.add(defType);\n let importTypesWithProviders;\n try {\n deepForEach(injDef.imports, (imported) => {\n if (walkProviderTree(imported, visitor, parents, dedup)) {\n importTypesWithProviders ||= [];\n // If the processed import is an injector type with providers, we store it in the\n // list of import types with providers, so that we can process those afterwards.\n importTypesWithProviders.push(imported);\n }\n });\n }\n finally {\n // Remove it from the parents set when finished.\n ngDevMode && parents.pop();\n }\n // Imports which are declared with providers (TypeWithProviders) need to be processed\n // after all imported modules are processed. This is similar to how View Engine\n // processes/merges module imports in the metadata resolver. See: FW-1349.\n if (importTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(importTypesWithProviders, visitor);\n }\n }\n if (!isDuplicate) {\n // Track the InjectorType and add a provider for it.\n // It's important that this is done after the def's imports.\n const factory = getFactoryDef(defType) || (() => new defType());\n // Append extra providers to make more info available for consumers (to retrieve an injector\n // type), as well as internally (to calculate an injection scope correctly and eagerly\n // instantiate a `defType` when an injector is created).\n // Provider to create `defType` using its factory.\n visitor({ provide: defType, useFactory: factory, deps: EMPTY_ARRAY }, defType);\n // Make this `defType` available to an internal logic that calculates injector scope.\n visitor({ provide: INJECTOR_DEF_TYPES, useValue: defType, multi: true }, defType);\n // Provider to eagerly instantiate `defType` via `INJECTOR_INITIALIZER`.\n visitor({ provide: ENVIRONMENT_INITIALIZER, useValue: () => ɵɵinject(defType), multi: true }, defType);\n }\n // Next, include providers listed on the definition itself.\n const defProviders = injDef.providers;\n if (defProviders != null && !isDuplicate) {\n const injectorType = container;\n deepForEachProvider(defProviders, (provider) => {\n ngDevMode && validateProvider(provider, defProviders, injectorType);\n visitor(provider, injectorType);\n });\n }\n }\n else {\n // Should not happen, but just in case.\n return false;\n }\n return (defType !== container && container.providers !== undefined);\n}\nfunction validateProvider(provider, providers, containerType) {\n if (isTypeProvider(provider) ||\n isValueProvider(provider) ||\n isFactoryProvider(provider) ||\n isExistingProvider(provider)) {\n return;\n }\n // Here we expect the provider to be a `useClass` provider (by elimination).\n const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide));\n if (!classRef) {\n throwInvalidProviderError(containerType, providers, provider);\n }\n}\nfunction deepForEachProvider(providers, fn) {\n for (let provider of providers) {\n if (isEnvironmentProviders(provider)) {\n provider = provider.ɵproviders;\n }\n if (Array.isArray(provider)) {\n deepForEachProvider(provider, fn);\n }\n else {\n fn(provider);\n }\n }\n}\nconst USE_VALUE$1 = getClosureSafeProperty({\n provide: String,\n useValue: getClosureSafeProperty,\n});\nfunction isValueProvider(value) {\n return value !== null && typeof value == 'object' && USE_VALUE$1 in value;\n}\nfunction isExistingProvider(value) {\n return !!(value && value.useExisting);\n}\nfunction isFactoryProvider(value) {\n return !!(value && value.useFactory);\n}\nfunction isTypeProvider(value) {\n return typeof value === 'function';\n}\nfunction isClassProvider(value) {\n return !!value.useClass;\n}\n\n/**\n * An internal token whose presence in an injector indicates that the injector should treat itself\n * as a root scoped injector when processing requests for unknown tokens which may indicate\n * they are provided in the root scope.\n */\nconst INJECTOR_SCOPE = new InjectionToken(ngDevMode ? 'Set Injector scope.' : '');\n\n/**\n * Marker which indicates that a value has not yet been created from the factory function.\n */\nconst NOT_YET = {};\n/**\n * Marker which indicates that the factory function for a token is in the process of being called.\n *\n * If the injector is asked to inject a token with its value set to CIRCULAR, that indicates\n * injection of a dependency has recursively attempted to inject the original token, and there is\n * a circular dependency among the providers.\n */\nconst CIRCULAR = {};\n/**\n * A lazily initialized NullInjector.\n */\nlet NULL_INJECTOR = undefined;\nfunction getNullInjector() {\n if (NULL_INJECTOR === undefined) {\n NULL_INJECTOR = new NullInjector();\n }\n return NULL_INJECTOR;\n}\n/**\n * An `Injector` that's part of the environment injector hierarchy, which exists outside of the\n * component tree.\n */\nclass EnvironmentInjector {\n}\nclass R3Injector extends EnvironmentInjector {\n /**\n * Flag indicating that this injector was previously destroyed.\n */\n get destroyed() {\n return this._destroyed;\n }\n constructor(providers, parent, source, scopes) {\n super();\n this.parent = parent;\n this.source = source;\n this.scopes = scopes;\n /**\n * Map of tokens to records which contain the instances of those tokens.\n * - `null` value implies that we don't have the record. Used by tree-shakable injectors\n * to prevent further searches.\n */\n this.records = new Map();\n /**\n * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\n */\n this._ngOnDestroyHooks = new Set();\n this._onDestroyHooks = [];\n this._destroyed = false;\n // Start off by creating Records for every provider.\n forEachSingleProvider(providers, (provider) => this.processProvider(provider));\n // Make sure the INJECTOR token provides this injector.\n this.records.set(INJECTOR$1, makeRecord(undefined, this));\n // And `EnvironmentInjector` if the current injector is supposed to be env-scoped.\n if (scopes.has('environment')) {\n this.records.set(EnvironmentInjector, makeRecord(undefined, this));\n }\n // Detect whether this injector has the APP_ROOT_SCOPE token and thus should provide\n // any injectable scoped to APP_ROOT_SCOPE.\n const record = this.records.get(INJECTOR_SCOPE);\n if (record != null && typeof record.value === 'string') {\n this.scopes.add(record.value);\n }\n this.injectorDefTypes = new Set(this.get(INJECTOR_DEF_TYPES, EMPTY_ARRAY, InjectFlags.Self));\n }\n /**\n * Destroy the injector and release references to every instance or provider associated with it.\n *\n * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\n * hook was found.\n */\n destroy() {\n this.assertNotDestroyed();\n // Set destroyed = true first, in case lifecycle hooks re-enter destroy().\n this._destroyed = true;\n const prevConsumer = setActiveConsumer$1(null);\n try {\n // Call all the lifecycle hooks.\n for (const service of this._ngOnDestroyHooks) {\n service.ngOnDestroy();\n }\n const onDestroyHooks = this._onDestroyHooks;\n // Reset the _onDestroyHooks array before iterating over it to prevent hooks that unregister\n // themselves from mutating the array during iteration.\n this._onDestroyHooks = [];\n for (const hook of onDestroyHooks) {\n hook();\n }\n }\n finally {\n // Release all references.\n this.records.clear();\n this._ngOnDestroyHooks.clear();\n this.injectorDefTypes.clear();\n setActiveConsumer$1(prevConsumer);\n }\n }\n onDestroy(callback) {\n this.assertNotDestroyed();\n this._onDestroyHooks.push(callback);\n return () => this.removeOnDestroy(callback);\n }\n runInContext(fn) {\n this.assertNotDestroyed();\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n return fn();\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {\n this.assertNotDestroyed();\n if (token.hasOwnProperty(NG_ENV_ID)) {\n return token[NG_ENV_ID](this);\n }\n flags = convertToBitFlags(flags);\n // Set the injection context.\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: token });\n }\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n // Check for the SkipSelf flag.\n if (!(flags & InjectFlags.SkipSelf)) {\n // SkipSelf isn't set, check if the record belongs to this injector.\n let record = this.records.get(token);\n if (record === undefined) {\n // No record, but maybe the token is scoped to this injector. Look for an injectable\n // def with a scope matching this injector.\n const def = couldBeInjectableType(token) && getInjectableDef(token);\n if (def && this.injectableDefInScope(def)) {\n // Found an injectable def and it's scoped to this injector. Pretend as if it was here\n // all along.\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n emitProviderConfiguredEvent(token);\n });\n }\n record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET);\n }\n else {\n record = null;\n }\n this.records.set(token, record);\n }\n // If a record was found, get the instance for it and return it.\n if (record != null /* NOT null || undefined */) {\n return this.hydrate(token, record);\n }\n }\n // Select the next injector based on the Self flag - if self is set, the next injector is\n // the NullInjector, otherwise it's the parent.\n const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector();\n // Set the notFoundValue based on the Optional flag - if optional is set and notFoundValue\n // is undefined, the value is null, otherwise it's the notFoundValue.\n notFoundValue =\n flags & InjectFlags.Optional && notFoundValue === THROW_IF_NOT_FOUND ? null : notFoundValue;\n return nextInjector.get(token, notFoundValue);\n }\n catch (e) {\n if (e.name === 'NullInjectorError') {\n const path = (e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || []);\n path.unshift(stringify(token));\n if (previousInjector) {\n // We still have a parent injector, keep throwing\n throw e;\n }\n else {\n // Format & throw the final error message when we don't have any previous injector\n return catchInjectorError(e, token, 'R3InjectorError', this.source);\n }\n }\n else {\n throw e;\n }\n }\n finally {\n // Lastly, restore the previous injection context.\n setInjectImplementation(previousInjectImplementation);\n setCurrentInjector(previousInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n /** @internal */\n resolveInjectorInitializers() {\n const prevConsumer = setActiveConsumer$1(null);\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n const initializers = this.get(ENVIRONMENT_INITIALIZER, EMPTY_ARRAY, InjectFlags.Self);\n if (ngDevMode && !Array.isArray(initializers)) {\n throw new RuntimeError(-209 /* RuntimeErrorCode.INVALID_MULTI_PROVIDER */, 'Unexpected type of the `ENVIRONMENT_INITIALIZER` token value ' +\n `(expected an array, but got ${typeof initializers}). ` +\n 'Please check that the `ENVIRONMENT_INITIALIZER` token is configured as a ' +\n '`multi: true` provider.');\n }\n for (const initializer of initializers) {\n initializer();\n }\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n setActiveConsumer$1(prevConsumer);\n }\n }\n toString() {\n const tokens = [];\n const records = this.records;\n for (const token of records.keys()) {\n tokens.push(stringify(token));\n }\n return `R3Injector[${tokens.join(', ')}]`;\n }\n assertNotDestroyed() {\n if (this._destroyed) {\n throw new RuntimeError(205 /* RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED */, ngDevMode && 'Injector has already been destroyed.');\n }\n }\n /**\n * Process a `SingleProvider` and add it.\n */\n processProvider(provider) {\n // Determine the token from the provider. Either it's its own token, or has a {provide: ...}\n // property.\n provider = resolveForwardRef(provider);\n let token = isTypeProvider(provider)\n ? provider\n : resolveForwardRef(provider && provider.provide);\n // Construct a `Record` for the provider.\n const record = providerToRecord(provider);\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n // Emit InjectorProfilerEventType.Create if provider is a value provider because\n // these are the only providers that do not go through the value hydration logic\n // where this event would normally be emitted from.\n if (isValueProvider(provider)) {\n emitInstanceCreatedByInjectorEvent(provider.useValue);\n }\n emitProviderConfiguredEvent(provider);\n });\n }\n if (!isTypeProvider(provider) && provider.multi === true) {\n // If the provider indicates that it's a multi-provider, process it specially.\n // First check whether it's been defined already.\n let multiRecord = this.records.get(token);\n if (multiRecord) {\n // It has. Throw a nice error if\n if (ngDevMode && multiRecord.multi === undefined) {\n throwMixedMultiProviderError();\n }\n }\n else {\n multiRecord = makeRecord(undefined, NOT_YET, true);\n multiRecord.factory = () => injectArgs(multiRecord.multi);\n this.records.set(token, multiRecord);\n }\n token = provider;\n multiRecord.multi.push(provider);\n }\n else {\n if (ngDevMode) {\n const existing = this.records.get(token);\n if (existing && existing.multi !== undefined) {\n throwMixedMultiProviderError();\n }\n }\n }\n this.records.set(token, record);\n }\n hydrate(token, record) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n if (ngDevMode && record.value === CIRCULAR) {\n throwCyclicDependencyError(stringify(token));\n }\n else if (record.value === NOT_YET) {\n record.value = CIRCULAR;\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n record.value = record.factory();\n emitInstanceCreatedByInjectorEvent(record.value);\n });\n }\n else {\n record.value = record.factory();\n }\n }\n if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {\n this._ngOnDestroyHooks.add(record.value);\n }\n return record.value;\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n injectableDefInScope(def) {\n if (!def.providedIn) {\n return false;\n }\n const providedIn = resolveForwardRef(def.providedIn);\n if (typeof providedIn === 'string') {\n return providedIn === 'any' || this.scopes.has(providedIn);\n }\n else {\n return this.injectorDefTypes.has(providedIn);\n }\n }\n removeOnDestroy(callback) {\n const destroyCBIdx = this._onDestroyHooks.indexOf(callback);\n if (destroyCBIdx !== -1) {\n this._onDestroyHooks.splice(destroyCBIdx, 1);\n }\n }\n}\nfunction injectableDefOrInjectorDefFactory(token) {\n // Most tokens will have an injectable def directly on them, which specifies a factory directly.\n const injectableDef = getInjectableDef(token);\n const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token);\n if (factory !== null) {\n return factory;\n }\n // InjectionTokens should have an injectable def (ɵprov) and thus should be handled above.\n // If it's missing that, it's an error.\n if (token instanceof InjectionToken) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Token ${stringify(token)} is missing a ɵprov definition.`);\n }\n // Undecorated types can sometimes be created if they have no constructor arguments.\n if (token instanceof Function) {\n return getUndecoratedInjectableFactory(token);\n }\n // There was no way to resolve a factory for this token.\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && 'unreachable');\n}\nfunction getUndecoratedInjectableFactory(token) {\n // If the token has parameters then it has dependencies that we cannot resolve implicitly.\n const paramLength = token.length;\n if (paramLength > 0) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, '?').join(', ')}).`);\n }\n // The constructor function appears to have no parameters.\n // This might be because it inherits from a super-class. In which case, use an injectable\n // def from an ancestor if there is one.\n // Otherwise this really is a simple class with no dependencies, so return a factory that\n // just instantiates the zero-arg constructor.\n const inheritedInjectableDef = getInheritedInjectableDef(token);\n if (inheritedInjectableDef !== null) {\n return () => inheritedInjectableDef.factory(token);\n }\n else {\n return () => new token();\n }\n}\nfunction providerToRecord(provider) {\n if (isValueProvider(provider)) {\n return makeRecord(undefined, provider.useValue);\n }\n else {\n const factory = providerToFactory(provider);\n return makeRecord(factory, NOT_YET);\n }\n}\n/**\n * Converts a `SingleProvider` into a factory function.\n *\n * @param provider provider to convert to factory\n */\nfunction providerToFactory(provider, ngModuleType, providers) {\n let factory = undefined;\n if (ngDevMode && isEnvironmentProviders(provider)) {\n throwInvalidProviderError(undefined, providers, provider);\n }\n if (isTypeProvider(provider)) {\n const unwrappedProvider = resolveForwardRef(provider);\n return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider);\n }\n else {\n if (isValueProvider(provider)) {\n factory = () => resolveForwardRef(provider.useValue);\n }\n else if (isFactoryProvider(provider)) {\n factory = () => provider.useFactory(...injectArgs(provider.deps || []));\n }\n else if (isExistingProvider(provider)) {\n factory = () => ɵɵinject(resolveForwardRef(provider.useExisting));\n }\n else {\n const classRef = resolveForwardRef(provider &&\n (provider.useClass || provider.provide));\n if (ngDevMode && !classRef) {\n throwInvalidProviderError(ngModuleType, providers, provider);\n }\n if (hasDeps(provider)) {\n factory = () => new classRef(...injectArgs(provider.deps));\n }\n else {\n return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef);\n }\n }\n }\n return factory;\n}\nfunction makeRecord(factory, value, multi = false) {\n return {\n factory: factory,\n value: value,\n multi: multi ? [] : undefined,\n };\n}\nfunction hasDeps(value) {\n return !!value.deps;\n}\nfunction hasOnDestroy(value) {\n return (value !== null &&\n typeof value === 'object' &&\n typeof value.ngOnDestroy === 'function');\n}\nfunction couldBeInjectableType(value) {\n return (typeof value === 'function' || (typeof value === 'object' && value instanceof InjectionToken));\n}\nfunction forEachSingleProvider(providers, fn) {\n for (const provider of providers) {\n if (Array.isArray(provider)) {\n forEachSingleProvider(provider, fn);\n }\n else if (provider && isEnvironmentProviders(provider)) {\n forEachSingleProvider(provider.ɵproviders, fn);\n }\n else {\n fn(provider);\n }\n }\n}\n\n/**\n * Runs the given function in the [context](guide/di/dependency-injection-context) of the given\n * `Injector`.\n *\n * Within the function's stack frame, [`inject`](api/core/inject) can be used to inject dependencies\n * from the given `Injector`. Note that `inject` is only usable synchronously, and cannot be used in\n * any asynchronous callbacks or after any `await` points.\n *\n * @param injector the injector which will satisfy calls to [`inject`](api/core/inject) while `fn`\n * is executing\n * @param fn the closure to be run in the context of `injector`\n * @returns the return value of the function, if any\n * @publicApi\n */\nfunction runInInjectionContext(injector, fn) {\n if (injector instanceof R3Injector) {\n injector.assertNotDestroyed();\n }\n let prevInjectorProfilerContext;\n if (ngDevMode) {\n prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null });\n }\n const prevInjector = setCurrentInjector(injector);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n return fn();\n }\n finally {\n setCurrentInjector(prevInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext);\n setInjectImplementation(previousInjectImplementation);\n }\n}\n/**\n * Whether the current stack frame is inside an injection context.\n */\nfunction isInInjectionContext() {\n return getInjectImplementation() !== undefined || getCurrentInjector() != null;\n}\n/**\n * Asserts that the current stack frame is within an [injection\n * context](guide/di/dependency-injection-context) and has access to `inject`.\n *\n * @param debugFn a reference to the function making the assertion (used for the error message).\n *\n * @publicApi\n */\nfunction assertInInjectionContext(debugFn) {\n // Taking a `Function` instead of a string name here prevents the unminified name of the function\n // from being retained in the bundle regardless of minification.\n if (!isInInjectionContext()) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n debugFn.name +\n '() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`');\n }\n}\n\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* JitCompilerUsage.PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message += `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message += `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message += `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message += `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message += `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\n/**\n * A mapping of the @angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of @angular/core.\n */\nconst angularCoreDiEnv = {\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n 'resolveForwardRef': resolveForwardRef,\n};\n\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\).*)\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{[^}]*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return (ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr)));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect &&\n this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach((prop) => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map((decoratorInvocation) => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\n// Shared with LContainer\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst T_HOST = 5;\n// End shared with LContainer\nconst HYDRATION = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR = 9;\nconst ENVIRONMENT = 10;\nconst RENDERER = 11;\nconst CHILD_HEAD = 12;\nconst CHILD_TAIL = 13;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 14;\nconst DECLARATION_COMPONENT_VIEW = 15;\nconst DECLARATION_LCONTAINER = 16;\nconst PREORDER_HOOK_FLAGS = 17;\nconst QUERIES = 18;\nconst ID = 19;\nconst EMBEDDED_VIEW_INJECTOR = 20;\nconst ON_DESTROY_HOOKS = 21;\nconst EFFECTS_TO_SCHEDULE = 22;\nconst REACTIVE_TEMPLATE_CONSUMER = 23;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 25;\n\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n// FLAGS, PARENT, NEXT, and T_HOST are indices 2, 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\nconst DEHYDRATED_VIEWS = 6;\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n/** Flags associated with an LContainer (saved in LContainer[FLAGS]) */\nvar LContainerFlags;\n(function (LContainerFlags) {\n LContainerFlags[LContainerFlags[\"None\"] = 0] = \"None\";\n /**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`.\n */\n LContainerFlags[LContainerFlags[\"HasTransplantedViews\"] = 2] = \"HasTransplantedViews\";\n})(LContainerFlags || (LContainerFlags = {}));\n\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 4 /* TNodeFlags.hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return tNode.componentOffset > -1;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* TNodeFlags.isDirectiveHost */) === 1 /* TNodeFlags.isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return !!def.template;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* LViewFlags.IsRoot */) !== 0;\n}\nfunction isProjectionTNode(tNode) {\n return (tNode.type & 16 /* TNodeType.Projection */) === 16 /* TNodeType.Projection */;\n}\nfunction hasI18n(lView) {\n return (lView[FLAGS] & 32 /* LViewFlags.HasI18n */) === 32 /* LViewFlags.HasI18n */;\n}\nfunction isDestroyed(lView) {\n return (lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */;\n}\n\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n const tData = tView.data;\n for (let i = HEADER_OFFSET; i < tData.length; i++) {\n if (tData[i] === tNode) {\n return;\n }\n }\n throwError('This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = \"Type passed in is not ComponentType, it does not have 'ɵcmp' property.\") {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = \"Type passed in is not NgModuleType, it does not have 'ɵmod' property.\") {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(tView, index) {\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes () must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || \"Component views should always have a parent view (component's host view)\");\n}\nfunction assertNoDuplicateDirectives(directives) {\n // The array needs at least two elements in order to have duplicates.\n if (directives.length < 2) {\n return;\n }\n const seenDirectives = new Set();\n for (const current of directives) {\n if (seenDirectives.has(current)) {\n throw new RuntimeError(309 /* RuntimeErrorCode.DUPLICATE_DIRECTIVE */, `Directive ${current.type.name} matches multiple times on the same element. ` +\n `Directives can only match an element once.`);\n }\n seenDirectives.add(current);\n }\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* NodeInjectorOffset.PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see {@link OnChanges}\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\nfunction applyValueToInputField(instance, inputSignalNode, privateName, value) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n }\n else {\n instance[privateName] = value;\n }\n}\n\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore?.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, inputSignalNode, value, publicName, privateName) {\n const declaredName = this.declaredInputs[publicName];\n ngDevMode && assertString(declaredName, 'Name of input in ngOnChanges has to be a string');\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n applyValueToInputField(instance, inputSignalNode, privateName, value);\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return (instance[SIMPLE_CHANGES_STORE] = store);\n}\n\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\nconst SVG_NAMESPACE = 'svg';\nconst MATH_ML_NAMESPACE = 'math';\n\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* LViewFlags.CreationMode */) === 4 /* LViewFlags.CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* LViewFlags.Attached */) === 128 /* LViewFlags.Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Adds the `RefreshView` flag from the lView and updates HAS_CHILD_VIEWS_TO_REFRESH flag of\n * parents.\n */\nfunction markViewForRefresh(lView) {\n if (lView[FLAGS] & 1024 /* LViewFlags.RefreshView */) {\n return;\n }\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n if (viewAttachedToChangeDetector(lView)) {\n markAncestorsForTraversal(lView);\n }\n}\n/**\n * Walks up the LView hierarchy.\n * @param nestingLevel Number of times to walk up in hierarchy.\n * @param currentView View from which to start the lookup.\n */\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\nfunction requiresRefreshOrTraversal(lView) {\n return !!(lView[FLAGS] & (1024 /* LViewFlags.RefreshView */ | 8192 /* LViewFlags.HasChildViewsToRefresh */) ||\n lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty);\n}\n/**\n * Updates the `HasChildViewsToRefresh` flag on the parents of the `LView` as well as the\n * parents above.\n */\nfunction updateAncestorTraversalFlagsOnAttach(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify(8 /* NotificationSource.ViewAttached */);\n if (lView[FLAGS] & 64 /* LViewFlags.Dirty */) {\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n }\n if (requiresRefreshOrTraversal(lView)) {\n markAncestorsForTraversal(lView);\n }\n}\n/**\n * Ensures views above the given `lView` are traversed during change detection even when they are\n * not dirty.\n *\n * This is done by setting the `HAS_CHILD_VIEWS_TO_REFRESH` flag up to the root, stopping when the\n * flag is already `true` or the `lView` is detached.\n */\nfunction markAncestorsForTraversal(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify(0 /* NotificationSource.MarkAncestorsForTraversal */);\n let parent = getLViewParent(lView);\n while (parent !== null) {\n // We stop adding markers to the ancestors once we reach one that already has the marker. This\n // is to avoid needlessly traversing all the way to the root when the marker already exists.\n if (parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */) {\n break;\n }\n parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;\n if (!viewAttachedToChangeDetector(parent)) {\n break;\n }\n parent = getLViewParent(parent);\n }\n}\n/**\n * Stores a LView-specific destroy callback.\n */\nfunction storeLViewOnDestroy(lView, onDestroyCallback) {\n if ((lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */) {\n throw new RuntimeError(911 /* RuntimeErrorCode.VIEW_ALREADY_DESTROYED */, ngDevMode && 'View has already been destroyed.');\n }\n if (lView[ON_DESTROY_HOOKS] === null) {\n lView[ON_DESTROY_HOOKS] = [];\n }\n lView[ON_DESTROY_HOOKS].push(onDestroyCallback);\n}\n/**\n * Removes previously registered LView-specific destroy callback.\n */\nfunction removeLViewOnDestroy(lView, onDestroyCallback) {\n if (lView[ON_DESTROY_HOOKS] === null)\n return;\n const destroyCBIdx = lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);\n if (destroyCBIdx !== -1) {\n lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);\n }\n}\n/**\n * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of\n * that LContainer, which is an LView\n * @param lView the lView whose parent to get\n */\nfunction getLViewParent(lView) {\n ngDevMode && assertLView(lView);\n const parent = lView[PARENT];\n return isLContainer(parent) ? parent[PARENT] : parent;\n}\n\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n skipHydrationRootTNode: null,\n};\nvar CheckNoChangesMode;\n(function (CheckNoChangesMode) {\n CheckNoChangesMode[CheckNoChangesMode[\"Off\"] = 0] = \"Off\";\n CheckNoChangesMode[CheckNoChangesMode[\"Exhaustive\"] = 1] = \"Exhaustive\";\n CheckNoChangesMode[CheckNoChangesMode[\"OnlyDirtyViews\"] = 2] = \"OnlyDirtyViews\";\n})(CheckNoChangesMode || (CheckNoChangesMode = {}));\n/**\n * In this mode, any changes in bindings will throw an ExpressionChangedAfterChecked error.\n *\n * Necessary to support ChangeDetectorRef.checkNoChanges().\n *\n * The `checkNoChanges` function is invoked only in ngDevMode=true and verifies that no unintended\n * changes exist in the change detector or its children.\n */\nlet _checkNoChangesMode = 0; /* CheckNoChangesMode.Off */\n/**\n * Flag used to indicate that we are in the middle running change detection on a view\n *\n * @see detectChangesInViewWhileDirty\n */\nlet _isRefreshingViews = false;\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Returns true if currently inside a skip hydration block.\n * @returns boolean\n */\nfunction isInSkipHydrationBlock$1() {\n return instructionState.skipHydrationRootTNode !== null;\n}\n/**\n * Returns true if this is the root TNode of the skip hydration block.\n * @param tNode the current TNode\n * @returns boolean\n */\nfunction isSkipHydrationRootTNode(tNode) {\n return instructionState.skipHydrationRootTNode === tNode;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n * \n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Sets a flag to specify that the TNode is in a skip hydration block.\n * @param tNode the current TNode\n */\nfunction enterSkipHydrationBlock(tNode) {\n instructionState.skipHydrationRootTNode = tNode;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n * \n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Clears the root skip hydration node when leaving a skip hydration block.\n */\nfunction leaveSkipHydrationBlock() {\n instructionState.skipHydrationRootTNode = null;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\n/**\n * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in\n * value so that it can be used as a return value of an instruction.\n *\n * @codeGenApi\n */\nfunction ɵɵresetView(value) {\n instructionState.lFrame.contextLView = null;\n return value;\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* TNodeType.Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction getContextLView() {\n const contextLView = instructionState.lFrame.contextLView;\n ngDevMode && assertDefined(contextLView, 'contextLView must be defined.');\n return contextLView;\n}\nfunction isInCheckNoChangesMode() {\n !ngDevMode && throwError('Must never be called in production mode');\n return _checkNoChangesMode !== CheckNoChangesMode.Off;\n}\nfunction isExhaustiveCheckNoChanges() {\n !ngDevMode && throwError('Must never be called in production mode');\n return _checkNoChangesMode === CheckNoChangesMode.Exhaustive;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n !ngDevMode && throwError('Must never be called in production mode');\n _checkNoChangesMode = mode;\n}\nfunction isRefreshingViews() {\n return _isRefreshingViews;\n}\nfunction setIsRefreshingViews(mode) {\n _isRefreshingViews = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return (instructionState.lFrame.bindingIndex = value);\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* TViewType.Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* TNodeType.Element */ | 8 /* TNodeType.ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = (instructionState.lFrame = allocLFrame());\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = (instructionState.lFrame.contextLView = walkUpViews(level, instructionState.lFrame.contextLView));\n return contextLView[CONTEXT];\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode &&\n index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, \"Can't set index passed end of LView\");\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace$1() {\n return instructionState.lFrame.currentNamespace;\n}\nlet _wasLastNodeCreated = true;\n/**\n * Retrieves a global flag that indicates whether the most recent DOM node\n * was created or hydrated.\n */\nfunction wasLastNodeCreated() {\n return _wasLastNodeCreated;\n}\n/**\n * Sets a global flag to indicate whether the most recent DOM node\n * was created or hydrated.\n */\nfunction lastNodeWasCreated(flag) {\n _wasLastNodeCreated = flag;\n}\n\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks ??= []).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks ??= []).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks ??= []).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy, } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks ??= []).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks ??= []).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks ??= []).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks ??= []).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks ??= []).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks ??= []).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks ??= []).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseState.InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n flags &= 16383 /* LViewFlags.IndexWithinInitPhaseReset */;\n flags += 1 /* LViewFlags.InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined\n ? currentView[PREORDER_HOOK_FLAGS] & 65535 /* PreOrderHookFlags.IndexOfTheNextPreOrderHookMaskMask */\n : 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook) {\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* PreOrderHookFlags.NumberOfInitHooksCalledIncrementer */;\n }\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* PreOrderHookFlags.NumberOfInitHooksCalledMask */) +\n i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Executes a single lifecycle hook, making sure that:\n * - it is called in the non-reactive context;\n * - profiling data are registered.\n */\nfunction callHookInternal(directive, hook) {\n profiler(4 /* ProfilerEvent.LifecycleHookStart */, directive, hook);\n const prevConsumer = setActiveConsumer$1(null);\n try {\n hook.call(directive);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n profiler(5 /* ProfilerEvent.LifecycleHookEnd */, directive, hook);\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 14 /* LViewFlags.IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n currentView[PREORDER_HOOK_FLAGS] >> 16 /* PreOrderHookFlags.NumberOfInitHooksCalledShift */ &&\n (currentView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 16384 /* LViewFlags.IndexWithinInitPhaseIncrementer */;\n callHookInternal(directive, hook);\n }\n }\n else {\n callHookInternal(directive, hook);\n }\n}\n\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n tNodeType & 1 /* TNodeType.Text */ && (text += '|Text');\n tNodeType & 2 /* TNodeType.Element */ && (text += '|Element');\n tNodeType & 4 /* TNodeType.Container */ && (text += '|Container');\n tNodeType & 8 /* TNodeType.ElementContainer */ && (text += '|ElementContainer');\n tNodeType & 16 /* TNodeType.Projection */ && (text += '|Projection');\n tNodeType & 32 /* TNodeType.Icu */ && (text += '|IcuContainer');\n tNodeType & 64 /* TNodeType.Placeholder */ && (text += '|Placeholder');\n tNodeType & 128 /* TNodeType.LetDeclaration */ && (text += '|LetDeclaration');\n return text.length > 0 ? text.substring(1) : text;\n}\n/**\n * Helper function to detect if a given value matches a `TNode` shape.\n *\n * The logic uses the `insertBeforeIndex` and its possible values as\n * a way to differentiate a TNode shape from other types of objects\n * within the `TView.data`. This is not a perfect check, but it can\n * be a reasonable differentiator, since we control the shapes of objects\n * within `TView.data`.\n */\nfunction isTNodeShape(value) {\n return (value != null &&\n typeof value === 'object' &&\n (value.insertBeforeIndex === null ||\n typeof value.insertBeforeIndex === 'number' ||\n Array.isArray(value.insertBeforeIndex)));\n}\nfunction isLetDeclaration(tNode) {\n return !!(tNode.type & 128 /* TNodeType.LetDeclaration */);\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 8 /* TNodeFlags.hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 16 /* TNodeFlags.hasStyleInput */) !== 0;\n}\n\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* TNodeType.Element */ ||\n type === 1 /* TNodeType.Text */ ||\n type === 4 /* TNodeType.Container */ ||\n type === 8 /* TNodeType.ElementContainer */ ||\n type === 32 /* TNodeType.Icu */ ||\n type === 16 /* TNodeType.Projection */ ||\n type === 64 /* TNodeType.Placeholder */ ||\n type === 128 /* TNodeType.LetDeclaration */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n// This default value is when checking the hierarchy for a token.\n//\n// It means both:\n// - the token is not provided by the current injector,\n// - only the element injectors should be checked (ie do not check module injectors\n//\n// mod1\n// /\n// el1 mod2\n// \\ /\n// el2\n//\n// When requesting el2.injector.get(token), we should check in the following order and return the\n// first found value:\n// - el2.injector.get(token, default)\n// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module\n// - mod2.injector.get(token, default)\nconst NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};\n\n/**\n * Injector that looks up a value using a specific injector, before falling back to the module\n * injector. Used primarily when creating components or embedded views dynamically.\n */\nclass ChainedInjector {\n constructor(injector, parentInjector) {\n this.injector = injector;\n this.parentInjector = parentInjector;\n }\n get(token, notFoundValue, flags) {\n flags = convertToBitFlags(flags);\n const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);\n if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||\n notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {\n // Return the value from the root element injector when\n // - it provides it\n // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n // - the module injector should not be checked\n // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n return value;\n }\n return this.parentInjector.get(token, notFoundValue, flags);\n }\n}\n\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n if (ngDevMode) {\n assertNumber(parentLocation, 'Number expected');\n assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n }\n return parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n/**\n * Detects whether an injector is an instance of a `ChainedInjector`,\n * created based on the `OutletInjector`.\n */\nfunction isRouterOutletInjector(currentInjector) {\n return (currentInjector instanceof ChainedInjector &&\n typeof currentInjector.injector.__ngOutletInjector === 'function');\n}\n\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/** Value used when something wasn't found by an injector. */\nconst NOT_FOUND = {};\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* NodeInjectorOffset.BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* NodeInjectorOffset.PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n parentTNode = getTNodeFromLView(lViewCursor);\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset <<\n 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* TNodeType.AnyContainer */ | 3 /* TNodeType.AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* AttributeMarker.NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional || notFoundValue !== undefined) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n // If the view or any of its ancestors have an embedded\n // view injector, we have to look it up there first.\n if (lView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&\n // The token must be present on the current node injector when the `Self`\n // flag is set, so the lookup on embedded view injector(s) can be skipped.\n !(flags & InjectFlags.Self)) {\n const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND);\n if (embeddedInjectorValue !== NOT_FOUND) {\n return embeddedInjectorValue;\n }\n }\n // Otherwise try the node injector.\n const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND);\n if (value !== NOT_FOUND) {\n return value;\n }\n }\n // Finally, fall back to the module injector.\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\n/**\n * Returns the value associated to the given token from the node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return flags & InjectFlags.Host\n ? notFoundValueOrThrow(notFoundValue, token, flags)\n : lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n let value;\n if (ngDevMode) {\n runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => {\n value = bloomHash(flags);\n if (value != null) {\n emitInstanceCreatedByInjectorEvent(value);\n }\n });\n }\n else {\n value = bloomHash(flags);\n }\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation =\n injectorIndex === -1\n ? getParentInjectorLocation(tNode, lView)\n : lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n return notFoundValue;\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null\n ? // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n isComponentHost(tNode) && includeViewProviders\n : // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n previousTView != currentTView && (tNode.type & 3 /* TNodeType.AnyRNode */) !== 0;\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = flags & InjectFlags.Host && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* TNodeProviderIndexes.CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders\n ? injectablesStart\n : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if ((i < directivesStart && token === providerTokenOrDef) ||\n (i >= directivesStart && providerTokenOrDef.type === token)) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n let prevInjectContext;\n if (ngDevMode) {\n // tData indexes mirror the concrete instances in its corresponding LView.\n // lView[index] here is either the injectable instace itself or a factory,\n // therefore tData[index] is the constructor of that injectable or a\n // definition object that contains the constructor in a `.type` field.\n const token = tData[index].type || tData[index];\n const injector = new NodeInjector(tNode, lView);\n prevInjectContext = setInjectorProfilerContext({ injector, token });\n }\n const previousInjectImplementation = factory.injectImpl\n ? setInjectImplementation(factory.injectImpl)\n : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, \"Because flags do not contain `SkipSelf' we expect this to always succeed.\");\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n ngDevMode && emitInstanceCreatedByInjectorEvent(value);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* InjectorMarkers.Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nfunction getNodeInjectorLView(nodeInjector) {\n return nodeInjector._lView;\n}\nfunction getNodeInjectorTNode(nodeInjector) {\n return nodeInjector._tNode;\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, convertToBitFlags(flags), notFoundValue);\n }\n}\n/** Creates a `NodeInjector` for the current node. */\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return (t) => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n/**\n * Returns a value from the closest embedded or node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) {\n let currentTNode = tNode;\n let currentLView = lView;\n // When an LView with an embedded view injector is inserted, it'll likely be interlaced with\n // nodes who may have injectors (e.g. node injector -> embedded view injector -> node injector).\n // Since the bloom filters for the node injectors have already been constructed and we don't\n // have a way of extracting the records from an injector, the only way to maintain the correct\n // hierarchy when resolving the value is to walk it node-by-node while attempting to resolve\n // the token at each level.\n while (currentTNode !== null &&\n currentLView !== null &&\n currentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&\n !(currentLView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n ngDevMode && assertTNodeForLView(currentTNode, currentLView);\n // Note that this lookup on the node injector is using the `Self` flag, because\n // we don't want the node injector to look at any parent injectors since we\n // may hit the embedded view injector first.\n const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND);\n if (nodeInjectorValue !== NOT_FOUND) {\n return nodeInjectorValue;\n }\n // Has an explicit type due to a TS bug: https://github.com/microsoft/TypeScript/issues/33191\n let parentTNode = currentTNode.parent;\n // `TNode.parent` includes the parent within the current view only. If it doesn't exist,\n // it means that we've hit the view boundary and we need to go up to the next view.\n if (!parentTNode) {\n // Before we go to the next LView, check if the token exists on the current embedded injector.\n const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];\n if (embeddedViewInjector) {\n const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags);\n if (embeddedViewInjectorValue !== NOT_FOUND) {\n return embeddedViewInjectorValue;\n }\n }\n // Otherwise keep going up the tree.\n parentTNode = getTNodeFromLView(currentLView);\n currentLView = currentLView[DECLARATION_VIEW];\n }\n currentTNode = parentTNode;\n }\n return notFoundValue;\n}\n/** Gets the TNode associated with an LView inside of the declaration view. */\nfunction getTNodeFromLView(lView) {\n const tView = lView[TVIEW];\n const tViewType = tView.type;\n // The parent pointer differs based on `TView.type`.\n if (tViewType === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n else if (tViewType === 1 /* TViewType.Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n return lView[T_HOST];\n }\n return null;\n}\n\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = makeParamDecorator('Attribute', (attributeName) => ({\n attributeName,\n __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName),\n}));\n\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map((dep) => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\n/**\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\n * injectable def (`ɵprov`) onto the injectable type.\n */\nfunction compileInjectable(type, meta) {\n let ngInjectableDef = null;\n let ngFactoryDef = null;\n // if NG_PROV_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_PROV_DEF)) {\n Object.defineProperty(type, NG_PROV_DEF, {\n get: () => {\n if (ngInjectableDef === null) {\n const compiler = getCompilerFacade({\n usage: 0 /* JitCompilerUsage.Decorator */,\n kind: 'injectable',\n type,\n });\n ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/ɵprov.js`, getInjectableMetadata(type, meta));\n }\n return ngInjectableDef;\n },\n });\n }\n // if NG_FACTORY_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_FACTORY_DEF)) {\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const compiler = getCompilerFacade({\n usage: 0 /* JitCompilerUsage.Decorator */,\n kind: 'injectable',\n type,\n });\n ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/ɵfac.js`, {\n name: type.name,\n type,\n typeArgumentCount: 0, // In JIT mode types are not available nor used.\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Injectable,\n });\n }\n return ngFactoryDef;\n },\n // Leave this configurable so that the factories from directives or pipes can take precedence.\n configurable: true,\n });\n }\n}\nconst USE_VALUE = getClosureSafeProperty({\n provide: String,\n useValue: getClosureSafeProperty,\n});\nfunction isUseClassProvider(meta) {\n return meta.useClass !== undefined;\n}\nfunction isUseValueProvider(meta) {\n return USE_VALUE in meta;\n}\nfunction isUseFactoryProvider(meta) {\n return meta.useFactory !== undefined;\n}\nfunction isUseExistingProvider(meta) {\n return meta.useExisting !== undefined;\n}\nfunction getInjectableMetadata(type, srcMeta) {\n // Allow the compilation of a class with a `@Injectable()` decorator without parameters\n const meta = srcMeta || { providedIn: null };\n const compilerMeta = {\n name: type.name,\n type: type,\n typeArgumentCount: 0,\n providedIn: meta.providedIn,\n };\n if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== undefined) {\n compilerMeta.deps = convertDependencies(meta.deps);\n }\n // Check to see if the user explicitly provided a `useXxxx` property.\n if (isUseClassProvider(meta)) {\n compilerMeta.useClass = meta.useClass;\n }\n else if (isUseValueProvider(meta)) {\n compilerMeta.useValue = meta.useValue;\n }\n else if (isUseFactoryProvider(meta)) {\n compilerMeta.useFactory = meta.useFactory;\n }\n else if (isUseExistingProvider(meta)) {\n compilerMeta.useExisting = meta.useExisting;\n }\n return compilerMeta;\n}\n\n/**\n * Injectable decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (type, meta) => compileInjectable(type, meta));\n\n/**\n * Create a new `Injector` which is configured using a `defType` of `InjectorType`s.\n */\nfunction createInjector(defType, parent = null, additionalProviders = null, name) {\n const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);\n injector.resolveInjectorInitializers();\n return injector;\n}\n/**\n * Creates a new injector without eagerly resolving its injector types. Can be used in places\n * where resolving the injector types immediately can lead to an infinite loop. The injector types\n * should be resolved at a later point by calling `_resolveInjectorDefTypes`.\n */\nfunction createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name, scopes = new Set()) {\n const providers = [additionalProviders || EMPTY_ARRAY, importProvidersFrom(defType)];\n name = name || (typeof defType === 'object' ? undefined : stringify(defType));\n return new R3Injector(providers, parent || getNullInjector(), name || null, scopes);\n}\n\n/**\n * Concrete injectors implement this interface. Injectors are configured\n * with [providers](guide/di/dependency-injection-providers) that associate\n * dependencies of various types with [injection tokens](guide/di/dependency-injection-providers).\n *\n * @see [DI Providers](guide/di/dependency-injection-providers).\n * @see {@link StaticProvider}\n *\n * @usageNotes\n *\n * The following example creates a service injector instance.\n *\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\n *\n * ### Usage example\n *\n * {@example core/di/ts/injector_spec.ts region='Injector'}\n *\n * `Injector` returns itself when given `Injector` as a token:\n *\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\n *\n * @publicApi\n */\nclass Injector {\n static { this.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND; }\n static { this.NULL = new NullInjector(); }\n static create(options, parent) {\n if (Array.isArray(options)) {\n return createInjector({ name: '' }, parent, options, '');\n }\n else {\n const name = options.name ?? '';\n return createInjector({ name }, options.parent, options.providers, name);\n }\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: Injector,\n providedIn: 'any',\n factory: () => ɵɵinject(INJECTOR$1),\n }); }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = -1 /* InjectorMarkers.Injector */; }\n}\n\n/*!\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n/**\n * Creates a token that can be used to inject static attributes of the host node.\n *\n * @usageNotes\n * ### Injecting an attribute that is known to exist\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string = inject(new HostAttributeToken('some-attr'));\n * }\n * ```\n *\n * ### Optionally injecting an attribute\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string | null = inject(new HostAttributeToken('some-attr'), {optional: true});\n * }\n * ```\n * @publicApi\n */\nclass HostAttributeToken {\n constructor(attributeName) {\n this.attributeName = attributeName;\n /** @internal */\n this.__NG_ELEMENT_ID__ = () => ɵɵinjectAttribute(this.attributeName);\n }\n toString() {\n return `HostAttributeToken ${this.attributeName}`;\n }\n}\n\n/**\n * A token that can be used to inject the tag name of the host node.\n *\n * @usageNotes\n * ### Injecting a tag name that is known to exist\n * ```typescript\n * @Directive()\n * class MyDir {\n * tagName: string = inject(HOST_TAG_NAME);\n * }\n * ```\n *\n * ### Optionally injecting a tag name\n * ```typescript\n * @Directive()\n * class MyDir {\n * tagName: string | null = inject(HOST_TAG_NAME, {optional: true});\n * }\n * ```\n * @publicApi\n */\nconst HOST_TAG_NAME = new InjectionToken(ngDevMode ? 'HOST_TAG_NAME' : '');\n// HOST_TAG_NAME should be resolved at the current node, similar to e.g. ElementRef,\n// so we manually specify __NG_ELEMENT_ID__ here, instead of using a factory.\n// tslint:disable-next-line:no-toplevel-property-access\nHOST_TAG_NAME.__NG_ELEMENT_ID__ = (flags) => {\n const tNode = getCurrentTNode();\n if (tNode === null) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n 'HOST_TAG_NAME can only be injected in directives and components ' +\n 'during construction time (in a class constructor or as a class field initializer)');\n }\n if (tNode.type & 2 /* TNodeType.Element */) {\n return tNode.value;\n }\n if (flags & InjectFlags.Optional) {\n return null;\n }\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n `HOST_TAG_NAME was used on ${getDevModeNodeName(tNode)} which doesn't have an underlying element in the DOM. ` +\n `This is invalid, and so the dependency should be marked as optional.`);\n};\nfunction getDevModeNodeName(tNode) {\n if (tNode.type & 8 /* TNodeType.ElementContainer */) {\n return 'an ';\n }\n else if (tNode.type & 4 /* TNodeType.Container */) {\n return 'an ';\n }\n else if (tNode.type & 128 /* TNodeType.LetDeclaration */) {\n return 'an @let declaration';\n }\n else {\n return 'a node';\n }\n}\n\n/**\n * @module\n * @description\n * The `di` module provides dependency injection container services.\n */\n\n/**\n * This file should not be necessary because node resolution should just default to `./di/index`!\n *\n * However it does not seem to work and it breaks:\n * - //packages/animations/browser/test:test_web_chromium-local\n * - //packages/compiler-cli/test:extract_i18n\n * - //packages/compiler-cli/test:ngc\n * - //packages/compiler-cli/test:perform_watch\n * - //packages/compiler-cli/test/diagnostics:check_types\n * - //packages/compiler-cli/test/transformers:test\n * - //packages/compiler/test:test\n * - //tools/public_api_guard:core_api\n *\n * Remove this file once the above is solved or wait until `ngc` is deleted and then it should be\n * safe to delete this file.\n */\n\nconst ERROR_ORIGINAL_ERROR = 'ngOriginalError';\nfunction wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\n\nconst SCHEDULE_IN_ROOT_ZONE_DEFAULT = true;\n\n/**\n * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.\n * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`\n * is injected in a component or directive, the callbacks run when that component or\n * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.\n *\n * @publicApi\n */\nclass DestroyRef {\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectDestroyRef; }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ENV_ID__ = (injector) => injector; }\n}\nclass NodeInjectorDestroyRef extends DestroyRef {\n constructor(_lView) {\n super();\n this._lView = _lView;\n }\n onDestroy(callback) {\n storeLViewOnDestroy(this._lView, callback);\n return () => removeLViewOnDestroy(this._lView, callback);\n }\n}\nfunction injectDestroyRef() {\n return new NodeInjectorDestroyRef(getLView());\n}\n\n/**\n * Internal implementation of the pending tasks service.\n */\nclass PendingTasks {\n constructor() {\n this.taskId = 0;\n this.pendingTasks = new Set();\n this.hasPendingTasks = new BehaviorSubject(false);\n }\n get _hasPendingTasks() {\n return this.hasPendingTasks.value;\n }\n add() {\n if (!this._hasPendingTasks) {\n this.hasPendingTasks.next(true);\n }\n const taskId = this.taskId++;\n this.pendingTasks.add(taskId);\n return taskId;\n }\n remove(taskId) {\n this.pendingTasks.delete(taskId);\n if (this.pendingTasks.size === 0 && this._hasPendingTasks) {\n this.hasPendingTasks.next(false);\n }\n }\n ngOnDestroy() {\n this.pendingTasks.clear();\n if (this._hasPendingTasks) {\n this.hasPendingTasks.next(false);\n }\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: PendingTasks,\n providedIn: 'root',\n factory: () => new PendingTasks(),\n }); }\n}\n/**\n * Experimental service that keeps track of pending tasks contributing to the stableness of Angular\n * application. While several existing Angular services (ex.: `HttpClient`) will internally manage\n * tasks influencing stability, this API gives control over stability to library and application\n * developers for specific cases not covered by Angular internals.\n *\n * The concept of stability comes into play in several important scenarios:\n * - SSR process needs to wait for the application stability before serializing and sending rendered\n * HTML;\n * - tests might want to delay assertions until the application becomes stable;\n *\n * @usageNotes\n * ```typescript\n * const pendingTasks = inject(ExperimentalPendingTasks);\n * const taskCleanup = pendingTasks.add();\n * // do work that should block application's stability and then:\n * taskCleanup();\n * ```\n *\n * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change\n * in patch versions. We will iterate on the exact API based on the feedback and our understanding\n * of the problem and solution space.\n *\n * @publicApi\n * @experimental\n */\nclass ExperimentalPendingTasks {\n constructor() {\n this.internalPendingTasks = inject(PendingTasks);\n }\n /**\n * Adds a new task that should block application's stability.\n * @returns A cleanup function that removes a task when called.\n */\n add() {\n const taskId = this.internalPendingTasks.add();\n return () => this.internalPendingTasks.remove(taskId);\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: ExperimentalPendingTasks,\n providedIn: 'root',\n factory: () => new ExperimentalPendingTasks(),\n }); }\n}\n\nclass EventEmitter_ extends Subject {\n constructor(isAsync = false) {\n super();\n this.destroyRef = undefined;\n this.pendingTasks = undefined;\n this.__isAsync = isAsync;\n // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.\n // For backwards compatibility reasons, this cannot be required.\n if (isInInjectionContext()) {\n // `DestroyRef` is optional because it is not available in all contexts.\n // But it is useful to properly complete the `EventEmitter` if used with `outputToObservable`\n // when the component/directive is destroyed. (See `outputToObservable` for more details.)\n this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;\n this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;\n }\n }\n emit(value) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n super.next(value);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n subscribe(observerOrNext, error, complete) {\n let nextFn = observerOrNext;\n let errorFn = error || (() => null);\n let completeFn = complete;\n if (observerOrNext && typeof observerOrNext === 'object') {\n const observer = observerOrNext;\n nextFn = observer.next?.bind(observer);\n errorFn = observer.error?.bind(observer);\n completeFn = observer.complete?.bind(observer);\n }\n if (this.__isAsync) {\n errorFn = this.wrapInTimeout(errorFn);\n if (nextFn) {\n nextFn = this.wrapInTimeout(nextFn);\n }\n if (completeFn) {\n completeFn = this.wrapInTimeout(completeFn);\n }\n }\n const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });\n if (observerOrNext instanceof Subscription) {\n observerOrNext.add(sink);\n }\n return sink;\n }\n wrapInTimeout(fn) {\n return (value) => {\n const taskId = this.pendingTasks?.add();\n setTimeout(() => {\n fn(value);\n if (taskId !== undefined) {\n this.pendingTasks?.remove(taskId);\n }\n });\n };\n }\n}\n/**\n * @publicApi\n */\nconst EventEmitter = EventEmitter_;\n\nfunction noop(...args) {\n // Do nothing.\n}\n\n/**\n * Gets a scheduling function that runs the callback after the first of setTimeout and\n * requestAnimationFrame resolves.\n *\n * - `requestAnimationFrame` ensures that change detection runs ahead of a browser repaint.\n * This ensures that the create and update passes of a change detection always happen\n * in the same frame.\n * - When the browser is resource-starved, `rAF` can execute _before_ a `setTimeout` because\n * rendering is a very high priority process. This means that `setTimeout` cannot guarantee\n * same-frame create and update pass, when `setTimeout` is used to schedule the update phase.\n * - While `rAF` gives us the desirable same-frame updates, it has two limitations that\n * prevent it from being used alone. First, it does not run in background tabs, which would\n * prevent Angular from initializing an application when opened in a new tab (for example).\n * Second, repeated calls to requestAnimationFrame will execute at the refresh rate of the\n * hardware (~16ms for a 60Hz display). This would cause significant slowdown of tests that\n * are written with several updates and asserts in the form of \"update; await stable; assert;\".\n * - Both `setTimeout` and `rAF` are able to \"coalesce\" several events from a single user\n * interaction into a single change detection. Importantly, this reduces view tree traversals when\n * compared to an alternative timing mechanism like `queueMicrotask`, where change detection would\n * then be interleaves between each event.\n *\n * By running change detection after the first of `setTimeout` and `rAF` to execute, we get the\n * best of both worlds.\n *\n * @returns a function to cancel the scheduled callback\n */\nfunction scheduleCallbackWithRafRace(callback) {\n let timeoutId;\n let animationFrameId;\n function cleanup() {\n callback = noop;\n try {\n if (animationFrameId !== undefined && typeof cancelAnimationFrame === 'function') {\n cancelAnimationFrame(animationFrameId);\n }\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n }\n catch {\n // Clearing/canceling can fail in tests due to the timing of functions being patched and unpatched\n // Just ignore the errors - we protect ourselves from this issue by also making the callback a no-op.\n }\n }\n timeoutId = setTimeout(() => {\n callback();\n cleanup();\n });\n if (typeof requestAnimationFrame === 'function') {\n animationFrameId = requestAnimationFrame(() => {\n callback();\n cleanup();\n });\n }\n return () => cleanup();\n}\nfunction scheduleCallbackWithMicrotask(callback) {\n queueMicrotask(() => callback());\n return () => {\n callback = noop;\n };\n}\n\nclass AsyncStackTaggingZoneSpec {\n constructor(namePrefix, consoleAsyncStackTaggingImpl = console) {\n this.name = 'asyncStackTagging for ' + namePrefix;\n this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null);\n }\n onScheduleTask(delegate, _current, target, task) {\n task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`);\n return delegate.scheduleTask(target, task);\n }\n onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) {\n let ret;\n if (task.consoleTask) {\n ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs));\n }\n else {\n ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs);\n }\n return ret;\n }\n}\n\nconst isAngularZoneProperty = 'isAngularZone';\nconst angularZoneInstanceIdProperty = isAngularZoneProperty + '_ID';\nlet ngZoneInstanceId = 0;\n/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * \n *\n * @usageNotes\n * ### Example\n *\n * ```\n * import {Component, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo',\n * template: `\n * Demo: NgZone \n *\n * Progress: {{progress}}%
\n * = 100\">Done processing {{label}} of Angular zone!
\n *\n * Process within Angular zone \n * Process outside of Angular zone \n * `,\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => { console.log('Outside Done!'); });\n * });\n * });\n * }\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback), 10);\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass NgZone {\n constructor(options) {\n this.hasPendingMacrotasks = false;\n this.hasPendingMicrotasks = false;\n /**\n * Whether there are no outstanding microtasks or macrotasks.\n */\n this.isStable = true;\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n this.onUnstable = new EventEmitter(false);\n /**\n * Notifies when there is no more microtasks enqueued in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n this.onMicrotaskEmpty = new EventEmitter(false);\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n this.onStable = new EventEmitter(false);\n /**\n * Notifies that an error has been delivered.\n */\n this.onError = new EventEmitter(false);\n const { enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false, scheduleInRootZone = SCHEDULE_IN_ROOT_ZONE_DEFAULT, } = options;\n if (typeof Zone == 'undefined') {\n throw new RuntimeError(908 /* RuntimeErrorCode.MISSING_ZONEJS */, ngDevMode && `In this configuration Angular requires Zone.js`);\n }\n Zone.assertZonePatched();\n const self = this;\n self._nesting = 0;\n self._outer = self._inner = Zone.current;\n // AsyncStackTaggingZoneSpec provides `linked stack traces` to show\n // where the async operation is scheduled. For more details, refer\n // to this article, https://developer.chrome.com/blog/devtools-better-angular-debugging/\n // And we only import this AsyncStackTaggingZoneSpec in development mode,\n // in the production mode, the AsyncStackTaggingZoneSpec will be tree shaken away.\n if (ngDevMode) {\n self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec('Angular'));\n }\n if (Zone['TaskTrackingZoneSpec']) {\n self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']());\n }\n if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {\n self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);\n }\n // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be\n // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.\n self.shouldCoalesceEventChangeDetection =\n !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;\n self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;\n self.callbackScheduled = false;\n self.scheduleInRootZone = scheduleInRootZone;\n forkInnerZoneWithAngularBehavior(self);\n }\n /**\n This method checks whether the method call happens within an Angular Zone instance.\n */\n static isInAngularZone() {\n // Zone needs to be checked, because this method might be called even when NoopNgZone is used.\n return typeof Zone !== 'undefined' && Zone.current.get(isAngularZoneProperty) === true;\n }\n /**\n Assures that the method is called within the Angular Zone, otherwise throws an error.\n */\n static assertInAngularZone() {\n if (!NgZone.isInAngularZone()) {\n throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to be in Angular Zone, but it is not!');\n }\n }\n /**\n Assures that the method is called outside of the Angular Zone, otherwise throws an error.\n */\n static assertNotInAngularZone() {\n if (NgZone.isInAngularZone()) {\n throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to not be in Angular Zone, but it is!');\n }\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run(fn, applyThis, applyArgs) {\n return this._inner.run(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone as a task and returns value\n * returned by the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n runTask(fn, applyThis, applyArgs, name) {\n const zone = this._inner;\n const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);\n try {\n return zone.runTask(task, applyThis, applyArgs);\n }\n finally {\n zone.cancelTask(task);\n }\n }\n /**\n * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\n * rethrown.\n */\n runGuarded(fn, applyThis, applyArgs) {\n return this._inner.runGuarded(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\n * work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular(fn) {\n return this._outer.run(fn);\n }\n}\nconst EMPTY_PAYLOAD = {};\nfunction checkStable(zone) {\n // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent\n // re-entry. The case is:\n //\n // @Component({...})\n // export class AppComponent {\n // constructor(private ngZone: NgZone) {\n // this.ngZone.onStable.subscribe(() => {\n // this.ngZone.run(() => console.log('stable'););\n // });\n // }\n //\n // The onStable subscriber run another function inside ngZone\n // which causes `checkStable()` re-entry.\n // But this fix causes some issues in g3, so this fix will be\n // launched in another PR.\n if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {\n try {\n zone._nesting++;\n zone.onMicrotaskEmpty.emit(null);\n }\n finally {\n zone._nesting--;\n if (!zone.hasPendingMicrotasks) {\n try {\n zone.runOutsideAngular(() => zone.onStable.emit(null));\n }\n finally {\n zone.isStable = true;\n }\n }\n }\n }\n}\nfunction delayChangeDetectionForEvents(zone) {\n /**\n * We also need to check _nesting here\n * Consider the following case with shouldCoalesceRunChangeDetection = true\n *\n * ngZone.run(() => {});\n * ngZone.run(() => {});\n *\n * We want the two `ngZone.run()` only trigger one change detection\n * when shouldCoalesceRunChangeDetection is true.\n * And because in this case, change detection run in async way(requestAnimationFrame),\n * so we also need to check the _nesting here to prevent multiple\n * change detections.\n */\n if (zone.isCheckStableRunning || zone.callbackScheduled) {\n return;\n }\n zone.callbackScheduled = true;\n function scheduleCheckStable() {\n scheduleCallbackWithRafRace(() => {\n zone.callbackScheduled = false;\n updateMicroTaskStatus(zone);\n zone.isCheckStableRunning = true;\n checkStable(zone);\n zone.isCheckStableRunning = false;\n });\n }\n if (zone.scheduleInRootZone) {\n Zone.root.run(() => {\n scheduleCheckStable();\n });\n }\n else {\n zone._outer.run(() => {\n scheduleCheckStable();\n });\n }\n updateMicroTaskStatus(zone);\n}\nfunction forkInnerZoneWithAngularBehavior(zone) {\n const delayChangeDetectionForEventsDelegate = () => {\n delayChangeDetectionForEvents(zone);\n };\n const instanceId = ngZoneInstanceId++;\n zone._inner = zone._inner.fork({\n name: 'angular',\n properties: {\n [isAngularZoneProperty]: true,\n [angularZoneInstanceIdProperty]: instanceId,\n [angularZoneInstanceIdProperty + instanceId]: true,\n },\n onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {\n // Prevent triggering change detection when the flag is detected.\n if (shouldBeIgnoredByZone(applyArgs)) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n try {\n onEnter(zone);\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n finally {\n if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||\n zone.shouldCoalesceRunChangeDetection) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {\n try {\n onEnter(zone);\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n finally {\n if (zone.shouldCoalesceRunChangeDetection &&\n // Do not delay change detection when the task is the scheduler's tick.\n // We need to synchronously trigger the stability logic so that the\n // zone-based scheduler can prevent a duplicate ApplicationRef.tick\n // by first checking if the scheduler tick is running. This does seem a bit roundabout,\n // but we _do_ still want to trigger all the correct events when we exit the zone.run\n // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which\n // relies on these events happening after change detection runs).\n // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate\n // but is added here as well to prevent reads of applyArgs when not necessary\n !zone.callbackScheduled &&\n !isSchedulerTick(applyArgs)) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onHasTask: (delegate, current, target, hasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current === target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n zone._hasPendingMicrotasks = hasTaskState.microTask;\n updateMicroTaskStatus(zone);\n checkStable(zone);\n }\n else if (hasTaskState.change == 'macroTask') {\n zone.hasPendingMacrotasks = hasTaskState.macroTask;\n }\n }\n },\n onHandleError: (delegate, current, target, error) => {\n delegate.handleError(target, error);\n zone.runOutsideAngular(() => zone.onError.emit(error));\n return false;\n },\n });\n}\nfunction updateMicroTaskStatus(zone) {\n if (zone._hasPendingMicrotasks ||\n ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&\n zone.callbackScheduled === true)) {\n zone.hasPendingMicrotasks = true;\n }\n else {\n zone.hasPendingMicrotasks = false;\n }\n}\nfunction onEnter(zone) {\n zone._nesting++;\n if (zone.isStable) {\n zone.isStable = false;\n zone.onUnstable.emit(null);\n }\n}\nfunction onLeave(zone) {\n zone._nesting--;\n checkStable(zone);\n}\n/**\n * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls\n * to framework to perform rendering.\n */\nclass NoopNgZone {\n constructor() {\n this.hasPendingMicrotasks = false;\n this.hasPendingMacrotasks = false;\n this.isStable = true;\n this.onUnstable = new EventEmitter();\n this.onMicrotaskEmpty = new EventEmitter();\n this.onStable = new EventEmitter();\n this.onError = new EventEmitter();\n }\n run(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runGuarded(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runOutsideAngular(fn) {\n return fn();\n }\n runTask(fn, applyThis, applyArgs, name) {\n return fn.apply(applyThis, applyArgs);\n }\n}\nfunction shouldBeIgnoredByZone(applyArgs) {\n return hasApplyArgsData(applyArgs, '__ignore_ng_zone__');\n}\nfunction isSchedulerTick(applyArgs) {\n return hasApplyArgsData(applyArgs, '__scheduler_tick__');\n}\nfunction hasApplyArgsData(applyArgs, key) {\n if (!Array.isArray(applyArgs)) {\n return false;\n }\n // We should only ever get 1 arg passed through to invokeTask.\n // Short circuit here incase that behavior changes.\n if (applyArgs.length !== 1) {\n return false;\n }\n return applyArgs[0]?.data?.[key] === true;\n}\nfunction getNgZone(ngZoneToUse = 'zone.js', options) {\n if (ngZoneToUse === 'noop') {\n return new NoopNgZone();\n }\n if (ngZoneToUse === 'zone.js') {\n return new NgZone(options);\n }\n return ngZoneToUse;\n}\n\n// Public API for Zone\n\n/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\n * intercept error handling, write a custom exception handler that replaces this default as\n * appropriate for your app.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class MyErrorHandler implements ErrorHandler {\n * handleError(error) {\n * // do something with the exception\n * }\n * }\n *\n * @NgModule({\n * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\n * })\n * class MyModule {}\n * ```\n *\n * @publicApi\n */\nclass ErrorHandler {\n constructor() {\n /**\n * @internal\n */\n this._console = console;\n }\n handleError(error) {\n const originalError = this._findOriginalError(error);\n this._console.error('ERROR', error);\n if (originalError) {\n this._console.error('ORIGINAL ERROR', originalError);\n }\n }\n /** @internal */\n _findOriginalError(error) {\n let e = error && getOriginalError(error);\n while (e && getOriginalError(e)) {\n e = getOriginalError(e);\n }\n return e || null;\n }\n}\n/**\n * `InjectionToken` used to configure how to call the `ErrorHandler`.\n *\n * `NgZone` is provided by default today so the default (and only) implementation for this\n * is calling `ErrorHandler.handleError` outside of the Angular zone.\n */\nconst INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'internal error handler' : '', {\n providedIn: 'root',\n factory: () => {\n const zone = inject(NgZone);\n const userErrorHandler = inject(ErrorHandler);\n return (e) => zone.runOutsideAngular(() => userErrorHandler.handleError(e));\n },\n});\n\n/**\n * An `OutputEmitterRef` is created by the `output()` function and can be\n * used to emit values to consumers of your directive or component.\n *\n * Consumers of your directive/component can bind to the output and\n * subscribe to changes via the bound event syntax. For example:\n *\n * ```html\n * \n * ```\n *\n * @developerPreview\n */\nclass OutputEmitterRef {\n constructor() {\n this.destroyed = false;\n this.listeners = null;\n this.errorHandler = inject(ErrorHandler, { optional: true });\n /** @internal */\n this.destroyRef = inject(DestroyRef);\n // Clean-up all listeners and mark as destroyed upon destroy.\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.listeners = null;\n });\n }\n subscribe(callback) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected subscription to destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n (this.listeners ??= []).push(callback);\n return {\n unsubscribe: () => {\n const idx = this.listeners?.indexOf(callback);\n if (idx !== undefined && idx !== -1) {\n this.listeners?.splice(idx, 1);\n }\n },\n };\n }\n /** Emits a new value to the output. */\n emit(value) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected emit for destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n if (this.listeners === null) {\n return;\n }\n const previousConsumer = setActiveConsumer$1(null);\n try {\n for (const listenerFn of this.listeners) {\n try {\n listenerFn(value);\n }\n catch (err) {\n this.errorHandler?.handleError(err);\n }\n }\n }\n finally {\n setActiveConsumer$1(previousConsumer);\n }\n }\n}\n/** Gets the owning `DestroyRef` for the given output. */\nfunction getOutputDestroyRef(ref) {\n return ref.destroyRef;\n}\n\n/**\n * The `output` function allows declaration of Angular outputs in\n * directives and components.\n *\n * You can use outputs to emit values to parent directives and component.\n * Parents can subscribe to changes via:\n *\n * - template event bindings. For example, `(myOutput)=\"doSomething($event)\"`\n * - programmatic subscription by using `OutputRef#subscribe`.\n *\n * @usageNotes\n *\n * To use `output()`, import the function from `@angular/core`.\n *\n * ```ts\n * import {output} from '@angular/core';\n * ```\n *\n * Inside your component, introduce a new class member and initialize\n * it with a call to `output`.\n *\n * ```ts\n * @Directive({\n * ...\n * })\n * export class MyDir {\n * nameChange = output(); // OutputEmitterRef\n * onClick = output(); // OutputEmitterRef\n * }\n * ```\n *\n * You can emit values to consumers of your directive, by using\n * the `emit` method from `OutputEmitterRef`.\n *\n * ```ts\n * updateName(newName: string): void {\n * this.nameChange.emit(newName);\n * }\n * ```\n *\n * @developerPreview\n * @initializerApiFunction {\"showTypesInSignaturePreview\": true}\n */\nfunction output(opts) {\n ngDevMode && assertInInjectionContext(output);\n return new OutputEmitterRef();\n}\n\nfunction inputFunction(initialValue, opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(initialValue, opts);\n}\nfunction inputRequiredFunction(opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(REQUIRED_UNSET_VALUE, opts);\n}\n/**\n * The `input` function allows declaration of Angular inputs in directives\n * and components.\n *\n * There are two variants of inputs that can be declared:\n *\n * 1. **Optional inputs** with an initial value.\n * 2. **Required inputs** that consumers need to set.\n *\n * By default, the `input` function will declare optional inputs that\n * always have an initial value. Required inputs can be declared\n * using the `input.required()` function.\n *\n * Inputs are signals. The values of an input are exposed as a `Signal`.\n * The signal always holds the latest value of the input that is bound\n * from the parent.\n *\n * @usageNotes\n * To use signal-based inputs, import `input` from `@angular/core`.\n *\n * ```\n * import {input} from '@angular/core`;\n * ```\n *\n * Inside your component, introduce a new class member and initialize\n * it with a call to `input` or `input.required`.\n *\n * ```ts\n * @Component({\n * ...\n * })\n * export class UserProfileComponent {\n * firstName = input(); // Signal\n * lastName = input.required(); // Signal\n * age = input(0) // Signal\n * }\n * ```\n *\n * Inside your component template, you can display values of the inputs\n * by calling the signal.\n *\n * ```html\n * {{firstName()}} \n * ```\n *\n * @developerPreview\n * @initializerApiFunction\n */\nconst input = (() => {\n // Note: This may be considered a side-effect, but nothing will depend on\n // this assignment, unless this `input` constant export is accessed. It's a\n // self-contained side effect that is local to the user facing`input` export.\n inputFunction.required = inputRequiredFunction;\n return inputFunction;\n})();\n\n/**\n * Creates an ElementRef from the most recent node.\n *\n * @returns The ElementRef instance to use\n */\nfunction injectElementRef() {\n return createElementRef(getCurrentTNode(), getLView());\n}\n/**\n * Creates an ElementRef given a node.\n *\n * @param tNode The node for which you'd like an ElementRef\n * @param lView The view to which the node belongs\n * @returns The ElementRef instance to use\n */\nfunction createElementRef(tNode, lView) {\n return new ElementRef(getNativeByTNode(tNode, lView));\n}\n/**\n * A wrapper around a native element inside of a View.\n *\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\n * element.\n *\n * @security Permitting direct access to the DOM can make your application more vulnerable to\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\n * [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,\n// i.e. users have to ask for what they need. With that, we can build better analysis tools\n// and could do better codegen in the future.\nclass ElementRef {\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectElementRef; }\n}\n/**\n * Unwraps `ElementRef` and return the `nativeElement`.\n *\n * @param value value to unwrap\n * @returns `nativeElement` if `ElementRef` otherwise returns value as is.\n */\nfunction unwrapElementRef(value) {\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\nfunction symbolIterator() {\n // @ts-expect-error accessing a private member\n return this._results[Symbol.iterator]();\n}\n/**\n * An unmodifiable list of items that Angular keeps up to date when the state\n * of the application changes.\n *\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\n * provide.\n *\n * Implements an iterable interface, therefore it can be used in both ES6\n * javascript `for (var i of items)` loops as well as in Angular templates with\n * `*ngFor=\"let i of myList\"`.\n *\n * Changes can be observed by subscribing to the changes `Observable`.\n *\n * NOTE: In the future this class will implement an `Observable` interface.\n *\n * @usageNotes\n * ### Example\n * ```typescript\n * @Component({...})\n * class Container {\n * @ViewChildren(Item) items:QueryList- ;\n * }\n * ```\n *\n * @publicApi\n */\nclass QueryList {\n static { Symbol.iterator; }\n /**\n * Returns `Observable` of `QueryList` notifying the subscriber of changes.\n */\n get changes() {\n return (this._changes ??= new EventEmitter());\n }\n /**\n * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\n * has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\n * the same result)\n */\n constructor(_emitDistinctChangesOnly = false) {\n this._emitDistinctChangesOnly = _emitDistinctChangesOnly;\n this.dirty = true;\n this._onDirty = undefined;\n this._results = [];\n this._changesDetected = false;\n this._changes = undefined;\n this.length = 0;\n this.first = undefined;\n this.last = undefined;\n // This function should be declared on the prototype, but doing so there will cause the class\n // declaration to have side-effects and become not tree-shakable. For this reason we do it in\n // the constructor.\n // [Symbol.iterator](): Iterator
{ ... }\n const proto = QueryList.prototype;\n if (!proto[Symbol.iterator])\n proto[Symbol.iterator] = symbolIterator;\n }\n /**\n * Returns the QueryList entry at `index`.\n */\n get(index) {\n return this._results[index];\n }\n /**\n * See\n * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n */\n map(fn) {\n return this._results.map(fn);\n }\n filter(fn) {\n return this._results.filter(fn);\n }\n /**\n * See\n * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\n */\n find(fn) {\n return this._results.find(fn);\n }\n /**\n * See\n * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n */\n reduce(fn, init) {\n return this._results.reduce(fn, init);\n }\n /**\n * See\n * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\n */\n forEach(fn) {\n this._results.forEach(fn);\n }\n /**\n * See\n * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n */\n some(fn) {\n return this._results.some(fn);\n }\n /**\n * Returns a copy of the internal results list as an Array.\n */\n toArray() {\n return this._results.slice();\n }\n toString() {\n return this._results.toString();\n }\n /**\n * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\n * on change detection, it will not notify of changes to the queries, unless a new change\n * occurs.\n *\n * @param resultsTree The query results to store\n * @param identityAccessor Optional function for extracting stable object identity from a value\n * in the array. This function is executed for each element of the query result list while\n * comparing current query list with the new one (provided as a first argument of the `reset`\n * function) to detect if the lists are different. If the function is not provided, elements\n * are compared as is (without any pre-processing).\n */\n reset(resultsTree, identityAccessor) {\n this.dirty = false;\n const newResultFlat = flatten(resultsTree);\n if ((this._changesDetected = !arrayEquals(this._results, newResultFlat, identityAccessor))) {\n this._results = newResultFlat;\n this.length = newResultFlat.length;\n this.last = newResultFlat[this.length - 1];\n this.first = newResultFlat[0];\n }\n }\n /**\n * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\n */\n notifyOnChanges() {\n if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))\n this._changes.emit(this);\n }\n /** @internal */\n onDirty(cb) {\n this._onDirty = cb;\n }\n /** internal */\n setDirty() {\n this.dirty = true;\n this._onDirty?.();\n }\n /** internal */\n destroy() {\n if (this._changes !== undefined) {\n this._changes.complete();\n this._changes.unsubscribe();\n }\n }\n}\n\n/**\n * The name of an attribute that can be added to the hydration boundary node\n * (component host node) to disable hydration for the content within that boundary.\n */\nconst SKIP_HYDRATION_ATTR_NAME = 'ngSkipHydration';\n/** Lowercase name of the `ngSkipHydration` attribute used for case-insensitive comparisons. */\nconst SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = 'ngskiphydration';\n/**\n * Helper function to check if a given TNode has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnTNode(tNode) {\n const attrs = tNode.mergedAttrs;\n if (attrs === null)\n return false;\n // only ever look at the attribute name and skip the values\n for (let i = 0; i < attrs.length; i += 2) {\n const value = attrs[i];\n // This is a marker, which means that the static attributes section is over,\n // so we can exit early.\n if (typeof value === 'number')\n return false;\n if (typeof value === 'string' && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {\n return true;\n }\n }\n return false;\n}\n/**\n * Helper function to check if a given RElement has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnRElement(rNode) {\n return rNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME);\n}\n/**\n * Checks whether a TNode has a flag to indicate that it's a part of\n * a skip hydration block.\n */\nfunction hasInSkipHydrationBlockFlag(tNode) {\n return (tNode.flags & 128 /* TNodeFlags.inSkipHydrationBlock */) === 128 /* TNodeFlags.inSkipHydrationBlock */;\n}\n/**\n * Helper function that determines if a given node is within a skip hydration block\n * by navigating up the TNode tree to see if any parent nodes have skip hydration\n * attribute.\n */\nfunction isInSkipHydrationBlock(tNode) {\n if (hasInSkipHydrationBlockFlag(tNode)) {\n return true;\n }\n let currentTNode = tNode.parent;\n while (currentTNode) {\n if (hasInSkipHydrationBlockFlag(tNode) || hasSkipHydrationAttrOnTNode(currentTNode)) {\n return true;\n }\n currentTNode = currentTNode.parent;\n }\n return false;\n}\n/**\n * Check if an i18n block is in a skip hydration section by looking at a parent TNode\n * to determine if this TNode is in a skip hydration section or the TNode has\n * the `ngSkipHydration` attribute.\n */\nfunction isI18nInSkipHydrationBlock(parentTNode) {\n return (hasInSkipHydrationBlockFlag(parentTNode) ||\n hasSkipHydrationAttrOnTNode(parentTNode) ||\n isInSkipHydrationBlock(parentTNode));\n}\n\n// Keeps track of the currently-active LViews.\nconst TRACKED_LVIEWS = new Map();\n// Used for generating unique IDs for LViews.\nlet uniqueIdCounter = 0;\n/** Gets a unique ID that can be assigned to an LView. */\nfunction getUniqueLViewId() {\n return uniqueIdCounter++;\n}\n/** Starts tracking an LView. */\nfunction registerLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'LView must have an ID in order to be registered');\n TRACKED_LVIEWS.set(lView[ID], lView);\n}\n/** Gets an LView by its unique ID. */\nfunction getLViewById(id) {\n ngDevMode && assertNumber(id, 'ID used for LView lookup must be a number');\n return TRACKED_LVIEWS.get(id) || null;\n}\n/** Stops tracking an LView. */\nfunction unregisterLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'Cannot stop tracking an LView that does not have an ID');\n TRACKED_LVIEWS.delete(lView[ID]);\n}\n\n/**\n * The internal view context which is specific to a given DOM element, directive or\n * component instance. Each value in here (besides the LView and element node details)\n * can be present, null or undefined. If undefined then it implies the value has not been\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\n *\n * Each value will get filled when the respective value is examined within the getContext\n * function. The component, element and each directive instance will share the same instance\n * of the context.\n */\nclass LContext {\n /** Component's parent view data. */\n get lView() {\n return getLViewById(this.lViewId);\n }\n constructor(\n /**\n * ID of the component's parent view data.\n */\n lViewId, \n /**\n * The index instance of the node.\n */\n nodeIndex, \n /**\n * The instance of the DOM node that is attached to the lNode.\n */\n native) {\n this.lViewId = lViewId;\n this.nodeIndex = nodeIndex;\n this.native = native;\n }\n}\n\n/**\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\n *\n * This function will examine the provided DOM element, component, or directive instance\\'s\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\n * value will be that of the newly created `LContext`.\n *\n * If the monkey-patched value is the `LView` instance then the context value for that\n * target will be created and the monkey-patch reference will be updated. Therefore when this\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\n * directive\\'s monkey-patch values.\n *\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\n * is found which contains a monkey-patch reference. When that occurs then the provided element\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\n * detected for a component/directive instance then it will throw an error (all components and\n * directives should be automatically monkey-patched by ivy).\n *\n * @param target Component, Directive or DOM Node.\n */\nfunction getLContext(target) {\n let mpValue = readPatchedData(target);\n if (mpValue) {\n // only when it's an array is it considered an LView instance\n // ... otherwise it's an already constructed LContext instance\n if (isLView(mpValue)) {\n const lView = mpValue;\n let nodeIndex;\n let component = undefined;\n let directives = undefined;\n if (isComponentInstance(target)) {\n nodeIndex = findViaComponent(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided component was not found in the application');\n }\n component = target;\n }\n else if (isDirectiveInstance(target)) {\n nodeIndex = findViaDirective(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided directive was not found in the application');\n }\n directives = getDirectivesAtNodeIndex(nodeIndex, lView);\n }\n else {\n nodeIndex = findViaNativeElement(lView, target);\n if (nodeIndex == -1) {\n return null;\n }\n }\n // the goal is not to fill the entire context full of data because the lookups\n // are expensive. Instead, only the target data (the element, component, container, ICU\n // expression or directive details) are filled into the context. If called multiple times\n // with different target values then the missing target data will be filled in.\n const native = unwrapRNode(lView[nodeIndex]);\n const existingCtx = readPatchedData(native);\n const context = existingCtx && !Array.isArray(existingCtx)\n ? existingCtx\n : createLContext(lView, nodeIndex, native);\n // only when the component has been discovered then update the monkey-patch\n if (component && context.component === undefined) {\n context.component = component;\n attachPatchData(context.component, context);\n }\n // only when the directives have been discovered then update the monkey-patch\n if (directives && context.directives === undefined) {\n context.directives = directives;\n for (let i = 0; i < directives.length; i++) {\n attachPatchData(directives[i], context);\n }\n }\n attachPatchData(context.native, context);\n mpValue = context;\n }\n }\n else {\n const rElement = target;\n ngDevMode && assertDomNode(rElement);\n // if the context is not found then we need to traverse upwards up the DOM\n // to find the nearest element that has already been monkey patched with data\n let parent = rElement;\n while ((parent = parent.parentNode)) {\n const parentContext = readPatchedData(parent);\n if (parentContext) {\n const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView;\n // the edge of the app was also reached here through another means\n // (maybe because the DOM was changed manually).\n if (!lView) {\n return null;\n }\n const index = findViaNativeElement(lView, rElement);\n if (index >= 0) {\n const native = unwrapRNode(lView[index]);\n const context = createLContext(lView, index, native);\n attachPatchData(native, context);\n mpValue = context;\n break;\n }\n }\n }\n }\n return mpValue || null;\n}\n/**\n * Creates an empty instance of a `LContext` context\n */\nfunction createLContext(lView, nodeIndex, native) {\n return new LContext(lView[ID], nodeIndex, native);\n}\n/**\n * Takes a component instance and returns the view for that component.\n *\n * @param componentInstance\n * @returns The component's view\n */\nfunction getComponentViewByInstance(componentInstance) {\n let patchedData = readPatchedData(componentInstance);\n let lView;\n if (isLView(patchedData)) {\n const contextLView = patchedData;\n const nodeIndex = findViaComponent(contextLView, componentInstance);\n lView = getComponentLViewByIndex(nodeIndex, contextLView);\n const context = createLContext(contextLView, nodeIndex, lView[HOST]);\n context.component = componentInstance;\n attachPatchData(componentInstance, context);\n attachPatchData(context.native, context);\n }\n else {\n const context = patchedData;\n const contextLView = context.lView;\n ngDevMode && assertLView(contextLView);\n lView = getComponentLViewByIndex(context.nodeIndex, contextLView);\n }\n return lView;\n}\n/**\n * This property will be monkey-patched on elements, components and directives.\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\nfunction attachLViewId(target, data) {\n target[MONKEY_PATCH_KEY_NAME] = data[ID];\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readLView(target) {\n const data = readPatchedData(target);\n if (isLView(data)) {\n return data;\n }\n return data ? data.lView : null;\n}\n/**\n * Assigns the given data to the given target (which could be a component,\n * directive or DOM node instance) using monkey-patching.\n */\nfunction attachPatchData(target, data) {\n ngDevMode && assertDefined(target, 'Target expected');\n // Only attach the ID of the view in order to avoid memory leaks (see #41047). We only do this\n // for `LView`, because we have control over when an `LView` is created and destroyed, whereas\n // we can't know when to remove an `LContext`.\n if (isLView(data)) {\n target[MONKEY_PATCH_KEY_NAME] = data[ID];\n registerLView(data);\n }\n else {\n target[MONKEY_PATCH_KEY_NAME] = data;\n }\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n const data = target[MONKEY_PATCH_KEY_NAME];\n return typeof data === 'number' ? getLViewById(data) : data || null;\n}\nfunction readPatchedLView(target) {\n const value = readPatchedData(target);\n if (value) {\n return (isLView(value) ? value : value.lView);\n }\n return null;\n}\nfunction isComponentInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵcmp;\n}\nfunction isDirectiveInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵdir;\n}\n/**\n * Locates the element within the given LView and returns the matching index\n */\nfunction findViaNativeElement(lView, target) {\n const tView = lView[TVIEW];\n for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {\n if (unwrapRNode(lView[i]) === target) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Locates the next tNode (child, sibling or parent).\n */\nfunction traverseNextElement(tNode) {\n if (tNode.child) {\n return tNode.child;\n }\n else if (tNode.next) {\n return tNode.next;\n }\n else {\n // Let's take the following template: text
\n // After checking the text node, we need to find the next parent that has a \"next\" TNode,\n // in this case the parent `div`, so that we can find the component.\n while (tNode.parent && !tNode.parent.next) {\n tNode = tNode.parent;\n }\n return tNode.parent && tNode.parent.next;\n }\n}\n/**\n * Locates the component within the given LView and returns the matching index\n */\nfunction findViaComponent(lView, componentInstance) {\n const componentIndices = lView[TVIEW].components;\n if (componentIndices) {\n for (let i = 0; i < componentIndices.length; i++) {\n const elementComponentIndex = componentIndices[i];\n const componentView = getComponentLViewByIndex(elementComponentIndex, lView);\n if (componentView[CONTEXT] === componentInstance) {\n return elementComponentIndex;\n }\n }\n }\n else {\n const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView);\n const rootComponent = rootComponentView[CONTEXT];\n if (rootComponent === componentInstance) {\n // we are dealing with the root element here therefore we know that the\n // element is the very first element after the HEADER data in the lView\n return HEADER_OFFSET;\n }\n }\n return -1;\n}\n/**\n * Locates the directive within the given LView and returns the matching index\n */\nfunction findViaDirective(lView, directiveInstance) {\n // if a directive is monkey patched then it will (by default)\n // have a reference to the LView of the current view. The\n // element bound to the directive being search lives somewhere\n // in the view data. We loop through the nodes and check their\n // list of directives for the instance.\n let tNode = lView[TVIEW].firstChild;\n while (tNode) {\n const directiveIndexStart = tNode.directiveStart;\n const directiveIndexEnd = tNode.directiveEnd;\n for (let i = directiveIndexStart; i < directiveIndexEnd; i++) {\n if (lView[i] === directiveInstance) {\n return tNode.index;\n }\n }\n tNode = traverseNextElement(tNode);\n }\n return -1;\n}\n/**\n * Returns a list of directives applied to a node at a specific index. The list includes\n * directives matched by selector and any host directives, but it excludes components.\n * Use `getComponentAtNodeIndex` to find the component applied to a node.\n *\n * @param nodeIndex The node index\n * @param lView The target view data\n */\nfunction getDirectivesAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode.directiveStart === 0)\n return EMPTY_ARRAY;\n const results = [];\n for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {\n const directiveInstance = lView[i];\n if (!isComponentInstance(directiveInstance)) {\n results.push(directiveInstance);\n }\n }\n return results;\n}\nfunction getComponentAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n const { directiveStart, componentOffset } = tNode;\n return componentOffset > -1 ? lView[directiveStart + componentOffset] : null;\n}\n/**\n * Returns a map of local references (local reference name => element or directive instance) that\n * exist on a given element.\n */\nfunction discoverLocalRefs(lView, nodeIndex) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode && tNode.localNames) {\n const result = {};\n let localIndex = tNode.index + 1;\n for (let i = 0; i < tNode.localNames.length; i += 2) {\n result[tNode.localNames[i]] = lView[localIndex];\n localIndex++;\n }\n return result;\n }\n return null;\n}\n\n/**\n * Retrieve the root view from any component or `LView` by walking the parent `LView` until\n * reaching the root `LView`.\n *\n * @param componentOrLView any component or `LView`\n */\nfunction getRootView(componentOrLView) {\n ngDevMode && assertDefined(componentOrLView, 'component');\n let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);\n while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n lView = getLViewParent(lView);\n }\n ngDevMode && assertLView(lView);\n return lView;\n}\n/**\n * Returns the context information associated with the application where the target is situated. It\n * does this by walking the parent views until it gets to the root view, then getting the context\n * off of that.\n *\n * @param viewOrComponent the `LView` or component to get the root context for.\n */\nfunction getRootContext(viewOrComponent) {\n const rootView = getRootView(viewOrComponent);\n ngDevMode &&\n assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');\n return rootView[CONTEXT];\n}\n/**\n * Gets the first `LContainer` in the LView or `null` if none exists.\n */\nfunction getFirstLContainer(lView) {\n return getNearestLContainer(lView[CHILD_HEAD]);\n}\n/**\n * Gets the next `LContainer` that is a sibling of the given container.\n */\nfunction getNextLContainer(container) {\n return getNearestLContainer(container[NEXT]);\n}\nfunction getNearestLContainer(viewOrContainer) {\n while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {\n viewOrContainer = viewOrContainer[NEXT];\n }\n return viewOrContainer;\n}\n\n/**\n * Retrieves the component instance associated with a given DOM element.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n * \n * \n *
\n * \n * ```\n *\n * Calling `getComponent` on `` will return the instance of `ChildComponent`\n * associated with this DOM element.\n *\n * Calling the function on `` will return the `MyApp` instance.\n *\n *\n * @param element DOM element from which the component should be retrieved.\n * @returns Component instance associated with the element or `null` if there\n * is no component associated with it.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getComponent$1(element) {\n ngDevMode && assertDomElement(element);\n const context = getLContext(element);\n if (context === null)\n return null;\n if (context.component === undefined) {\n const lView = context.lView;\n if (lView === null) {\n return null;\n }\n context.component = getComponentAtNodeIndex(context.nodeIndex, lView);\n }\n return context.component;\n}\n/**\n * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded\n * view that the element is part of. Otherwise retrieves the instance of the component whose view\n * owns the element (in this case, the result is the same as calling `getOwningComponent`).\n *\n * @param element Element for which to get the surrounding component instance.\n * @returns Instance of the component that is around the element or null if the element isn't\n * inside any component.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getContext(element) {\n assertDomElement(element);\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n return lView === null ? null : lView[CONTEXT];\n}\n/**\n * Retrieves the component instance whose view contains the DOM element.\n *\n * For example, if `` is used in the template of ``\n * (i.e. a `ViewChild` of ``), calling `getOwningComponent` on ``\n * would return ``.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Component instance whose view owns the DOM element or null if the element is not\n * part of a component view.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getOwningComponent(elementOrDir) {\n const context = getLContext(elementOrDir);\n let lView = context ? context.lView : null;\n if (lView === null)\n return null;\n let parent;\n while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {\n lView = parent;\n }\n return lView[FLAGS] & 512 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];\n}\n/**\n * Retrieves all root components associated with a DOM element, directive or component instance.\n * Root components are those which have been bootstrapped by Angular.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Root components associated with the target object.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getRootComponents(elementOrDir) {\n const lView = readPatchedLView(elementOrDir);\n return lView !== null ? [getRootContext(lView)] : [];\n}\n/**\n * Retrieves an `Injector` associated with an element, component or directive instance.\n *\n * @param elementOrDir DOM element, component or directive instance for which to\n * retrieve the injector.\n * @returns Injector associated with the element, component or directive instance.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getInjector(elementOrDir) {\n const context = getLContext(elementOrDir);\n const lView = context ? context.lView : null;\n if (lView === null)\n return Injector.NULL;\n const tNode = lView[TVIEW].data[context.nodeIndex];\n return new NodeInjector(tNode, lView);\n}\n/**\n * Retrieve a set of injection tokens at a given DOM node.\n *\n * @param element Element for which the injection tokens should be retrieved.\n */\nfunction getInjectionTokens(element) {\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n if (lView === null)\n return [];\n const tView = lView[TVIEW];\n const tNode = tView.data[context.nodeIndex];\n const providerTokens = [];\n const startIndex = tNode.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const endIndex = tNode.directiveEnd;\n for (let i = startIndex; i < endIndex; i++) {\n let value = tView.data[i];\n if (isDirectiveDefHack(value)) {\n // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a\n // design flaw. We should always store same type so that we can be monomorphic. The issue\n // is that for Components/Directives we store the def instead the type. The correct behavior\n // is that we should always be storing injectable type in this location.\n value = value.type;\n }\n providerTokens.push(value);\n }\n return providerTokens;\n}\n/**\n * Retrieves directive instances associated with a given DOM node. Does not include\n * component instances.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n * \n * \n * \n * ```\n *\n * Calling `getDirectives` on `` will return an array with an instance of the `MyButton`\n * directive that is associated with the DOM node.\n *\n * Calling `getDirectives` on `` will return an empty array.\n *\n * @param node DOM node for which to get the directives.\n * @returns Array of directives associated with the node.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getDirectives(node) {\n // Skip text nodes because we can't have directives associated with them.\n if (node instanceof Text) {\n return [];\n }\n const context = getLContext(node);\n const lView = context ? context.lView : null;\n if (lView === null) {\n return [];\n }\n const tView = lView[TVIEW];\n const nodeIndex = context.nodeIndex;\n if (!tView?.data[nodeIndex]) {\n return [];\n }\n if (context.directives === undefined) {\n context.directives = getDirectivesAtNodeIndex(nodeIndex, lView);\n }\n // The `directives` in this case are a named array called `LComponentView`. Clone the\n // result so we don't expose an internal data structure in the user's console.\n return context.directives === null ? [] : [...context.directives];\n}\n/**\n * Returns the debug (partial) metadata for a particular directive or component instance.\n * The function accepts an instance of a directive or component and returns the corresponding\n * metadata.\n *\n * @param directiveOrComponentInstance Instance of a directive or component\n * @returns metadata of the passed directive or component\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getDirectiveMetadata$1(directiveOrComponentInstance) {\n const { constructor } = directiveOrComponentInstance;\n if (!constructor) {\n throw new Error('Unable to find the instance constructor');\n }\n // In case a component inherits from a directive, we may have component and directive metadata\n // To ensure we don't get the metadata of the directive, we want to call `getComponentDef` first.\n const componentDef = getComponentDef(constructor);\n if (componentDef) {\n const inputs = extractInputDebugMetadata(componentDef.inputs);\n return {\n inputs,\n outputs: componentDef.outputs,\n encapsulation: componentDef.encapsulation,\n changeDetection: componentDef.onPush\n ? ChangeDetectionStrategy.OnPush\n : ChangeDetectionStrategy.Default,\n };\n }\n const directiveDef = getDirectiveDef(constructor);\n if (directiveDef) {\n const inputs = extractInputDebugMetadata(directiveDef.inputs);\n return { inputs, outputs: directiveDef.outputs };\n }\n return null;\n}\n/**\n * Retrieve map of local references.\n *\n * The references are retrieved as a map of local reference name to element or directive instance.\n *\n * @param target DOM element, component or directive instance for which to retrieve\n * the local references.\n */\nfunction getLocalRefs(target) {\n const context = getLContext(target);\n if (context === null)\n return {};\n if (context.localRefs === undefined) {\n const lView = context.lView;\n if (lView === null) {\n return {};\n }\n context.localRefs = discoverLocalRefs(lView, context.nodeIndex);\n }\n return context.localRefs || {};\n}\n/**\n * Retrieves the host element of a component or directive instance.\n * The host element is the DOM element that matched the selector of the directive.\n *\n * @param componentOrDirective Component or directive instance for which the host\n * element should be retrieved.\n * @returns Host element of the target.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getHostElement(componentOrDirective) {\n return getLContext(componentOrDirective).native;\n}\n/**\n * Retrieves the rendered text for a given component.\n *\n * This function retrieves the host element of a component and\n * and then returns the `textContent` for that element. This implies\n * that the text returned will include re-projected content of\n * the component as well.\n *\n * @param component The component to return the content text for.\n */\nfunction getRenderedText(component) {\n const hostElement = getHostElement(component);\n return hostElement.textContent || '';\n}\n/**\n * Retrieves a list of event listeners associated with a DOM element. The list does include host\n * listeners, but it does not include event listeners defined outside of the Angular context\n * (e.g. through `addEventListener`).\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n *
\n * \n * ```\n *\n * Calling `getListeners` on `` will return an object that looks as follows:\n *\n * ```ts\n * {\n * name: 'click',\n * element:
,\n * callback: () => doSomething(),\n * useCapture: false\n * }\n * ```\n *\n * @param element Element for which the DOM listeners should be retrieved.\n * @returns Array of event listeners on the DOM element.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getListeners(element) {\n ngDevMode && assertDomElement(element);\n const lContext = getLContext(element);\n const lView = lContext === null ? null : lContext.lView;\n if (lView === null)\n return [];\n const tView = lView[TVIEW];\n const lCleanup = lView[CLEANUP];\n const tCleanup = tView.cleanup;\n const listeners = [];\n if (tCleanup && lCleanup) {\n for (let i = 0; i < tCleanup.length;) {\n const firstParam = tCleanup[i++];\n const secondParam = tCleanup[i++];\n if (typeof firstParam === 'string') {\n const name = firstParam;\n const listenerElement = unwrapRNode(lView[secondParam]);\n const callback = lCleanup[tCleanup[i++]];\n const useCaptureOrIndx = tCleanup[i++];\n // if useCaptureOrIndx is boolean then report it as is.\n // if useCaptureOrIndx is positive number then it in unsubscribe method\n // if useCaptureOrIndx is negative number then it is a Subscription\n const type = typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0 ? 'dom' : 'output';\n const useCapture = typeof useCaptureOrIndx === 'boolean' ? useCaptureOrIndx : false;\n if (element == listenerElement) {\n listeners.push({ element, name, callback, useCapture, type });\n }\n }\n }\n }\n listeners.sort(sortListeners);\n return listeners;\n}\nfunction sortListeners(a, b) {\n if (a.name == b.name)\n return 0;\n return a.name < b.name ? -1 : 1;\n}\n/**\n * This function should not exist because it is megamorphic and only mostly correct.\n *\n * See call site for more info.\n */\nfunction isDirectiveDefHack(obj) {\n return (obj.type !== undefined &&\n obj.declaredInputs !== undefined &&\n obj.findHostDirectiveDefs !== undefined);\n}\n/**\n * Retrieve the component `LView` from component/element.\n *\n * NOTE: `LView` is a private and should not be leaked outside.\n * Don't export this method to `ng.*` on window.\n *\n * @param target DOM element or component instance for which to retrieve the LView.\n */\nfunction getComponentLView(target) {\n const lContext = getLContext(target);\n const nodeIndx = lContext.nodeIndex;\n const lView = lContext.lView;\n ngDevMode && assertLView(lView);\n const componentLView = lView[nodeIndx];\n ngDevMode && assertLView(componentLView);\n return componentLView;\n}\n/** Asserts that a value is a DOM Element. */\nfunction assertDomElement(value) {\n if (typeof Element !== 'undefined' && !(value instanceof Element)) {\n throw new Error('Expecting instance of DOM Element');\n }\n}\n/**\n * A directive definition holds additional metadata using bitwise flags to indicate\n * for example whether it is signal based.\n *\n * This information needs to be separate from the `publicName -> minifiedName`\n * mappings for backwards compatibility.\n */\nfunction extractInputDebugMetadata(inputs) {\n const res = {};\n for (const key in inputs) {\n if (!inputs.hasOwnProperty(key)) {\n continue;\n }\n const value = inputs[key];\n if (value === undefined) {\n continue;\n }\n let minifiedName;\n if (Array.isArray(value)) {\n minifiedName = value[0];\n // flags are not used for now.\n // TODO: Consider exposing flag information in discovery.\n }\n else {\n minifiedName = value;\n }\n res[key] = minifiedName;\n }\n return res;\n}\n\n/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser` and `Server`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param document The object representing the global `document` in this environment.\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n throw new RuntimeError(210 /* RuntimeErrorCode.MISSING_DOCUMENT */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `The document object is not available in this context. Make sure the DOCUMENT injection token is provided.`);\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API.\n}\n\n/**\n * A DI token representing a string ID, used\n * primarily for prefixing application attributes and CSS styles when\n * {@link ViewEncapsulation#Emulated} is being used.\n *\n * The token is needed in cases when multiple applications are bootstrapped on a page\n * (for example, using `bootstrapApplication` calls). In this case, ensure that those applications\n * have different `APP_ID` value setup. For example:\n *\n * ```\n * bootstrapApplication(ComponentA, {\n * providers: [\n * { provide: APP_ID, useValue: 'app-a' },\n * // ... other providers ...\n * ]\n * });\n *\n * bootstrapApplication(ComponentB, {\n * providers: [\n * { provide: APP_ID, useValue: 'app-b' },\n * // ... other providers ...\n * ]\n * });\n * ```\n *\n * By default, when there is only one application bootstrapped, you don't need to provide the\n * `APP_ID` token (the `ng` will be used as an app ID).\n *\n * @publicApi\n */\nconst APP_ID = new InjectionToken(ngDevMode ? 'AppId' : '', {\n providedIn: 'root',\n factory: () => DEFAULT_APP_ID,\n});\n/** Default value of the `APP_ID` token. */\nconst DEFAULT_APP_ID = 'ng';\n/**\n * A function that is executed when a platform is initialized.\n * @publicApi\n */\nconst PLATFORM_INITIALIZER = new InjectionToken(ngDevMode ? 'Platform Initializer' : '');\n/**\n * A token that indicates an opaque platform ID.\n * @publicApi\n */\nconst PLATFORM_ID = new InjectionToken(ngDevMode ? 'Platform ID' : '', {\n providedIn: 'platform',\n factory: () => 'unknown', // set a default platform name, when none set explicitly\n});\n/**\n * A DI token that indicates the root directory of\n * the application\n * @publicApi\n * @deprecated\n */\nconst PACKAGE_ROOT_URL = new InjectionToken(ngDevMode ? 'Application Packages Root URL' : '');\n// We keep this token here, rather than the animations package, so that modules that only care\n// about which animations module is loaded (e.g. the CDK) can retrieve it without having to\n// include extra dependencies. See #44970 for more context.\n/**\n * A [DI token](api/core/InjectionToken) that indicates which animations\n * module has been loaded.\n * @publicApi\n */\nconst ANIMATION_MODULE_TYPE = new InjectionToken(ngDevMode ? 'AnimationModuleType' : '');\n// TODO(crisbeto): link to CSP guide here.\n/**\n * Token used to configure the [Content Security Policy](https://web.dev/strict-csp/) nonce that\n * Angular will apply when inserting inline styles. If not provided, Angular will look up its value\n * from the `ngCspNonce` attribute of the application root node.\n *\n * @publicApi\n */\nconst CSP_NONCE = new InjectionToken(ngDevMode ? 'CSP nonce' : '', {\n providedIn: 'root',\n factory: () => {\n // Ideally we wouldn't have to use `querySelector` here since we know that the nonce will be on\n // the root node, but because the token value is used in renderers, it has to be available\n // *very* early in the bootstrapping process. This should be a fairly shallow search, because\n // the app won't have been added to the DOM yet. Some approaches that were considered:\n // 1. Find the root node through `ApplicationRef.components[i].location` - normally this would\n // be enough for our purposes, but the token is injected very early so the `components` array\n // isn't populated yet.\n // 2. Find the root `LView` through the current `LView` - renderers are a prerequisite to\n // creating the `LView`. This means that no `LView` will have been entered when this factory is\n // invoked for the root component.\n // 3. Have the token factory return `() => string` which is invoked when a nonce is requested -\n // the slightly later execution does allow us to get an `LView` reference, but the fact that\n // it is a function means that it could be executed at *any* time (including immediately) which\n // may lead to weird bugs.\n // 4. Have the `ComponentFactory` read the attribute and provide it to the injector under the\n // hood - has the same problem as #1 and #2 in that the renderer is used to query for the root\n // node and the nonce value needs to be available when the renderer is created.\n return getDocument().body?.querySelector('[ngCspNonce]')?.getAttribute('ngCspNonce') || null;\n },\n});\nconst IMAGE_CONFIG_DEFAULTS = {\n breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n placeholderResolution: 30,\n disableImageSizeWarning: false,\n disableImageLazyLoadWarning: false,\n};\n/**\n * Injection token that configures the image optimized image functionality.\n * See {@link ImageConfig} for additional information about parameters that\n * can be used.\n *\n * @see {@link NgOptimizedImage}\n * @see {@link ImageConfig}\n * @publicApi\n */\nconst IMAGE_CONFIG = new InjectionToken(ngDevMode ? 'ImageConfig' : '', {\n providedIn: 'root',\n factory: () => IMAGE_CONFIG_DEFAULTS,\n});\n\n/**\n * Create a `StateKey
` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nfunction makeStateKey(key) {\n return key;\n}\nfunction initTransferState() {\n const transferState = new TransferState();\n if (inject(PLATFORM_ID) === 'browser') {\n transferState.store = retrieveTransferredState(getDocument(), inject(APP_ID));\n }\n return transferState;\n}\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * The `TransferState` is available as an injectable token.\n * On the client, just inject this token using DI and use it, it will be lazily initialized.\n * On the server it's already included if `renderApplication` function is used. Otherwise, import\n * the `ServerTransferStateModule` module to make the `TransferState` available.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\nclass TransferState {\n constructor() {\n /** @internal */\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: TransferState,\n providedIn: 'root',\n factory: initTransferState,\n }); }\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get(key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n }\n /**\n * Set the value corresponding to a key.\n */\n set(key, value) {\n this.store[key] = value;\n }\n /**\n * Remove a key from the store.\n */\n remove(key) {\n delete this.store[key];\n }\n /**\n * Test whether a key exists in the store.\n */\n hasKey(key) {\n return this.store.hasOwnProperty(key);\n }\n /**\n * Indicates whether the state is empty.\n */\n get isEmpty() {\n return Object.keys(this.store).length === 0;\n }\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize(key, callback) {\n this.onSerializeCallbacks[key] = callback;\n }\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson() {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n // Escape script tag to avoid break out of
-
-
-
-
-