{"version":3,"sources":["webpack:///./node_modules/aurelia-templating-resources/dist/native-modules/aurelia-templating-resources.js"],"names":["ActivationStrategy","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","Compose","element","container","compositionEngine","viewSlot","viewResources","taskQueue","activationStrategy","InvokeLifecycle","currentController","currentViewModel","changes","inject","Element","created","owningView","bind","bindingContext","overrideContext","view","viewModel","model","pendingTask","processChanges","unbind","removeAll","modelChanged","newValue","oldValue","requestUpdate","viewChanged","viewModelChanged","composer","vm","determineActivationStrategy","Replace","needsReInitialization","instruction","assign","host","swapOrder","createInstruction","compose","then","controller","activate","Promise","resolve","tryActivateViewModel","completeCompositionTask","reason","obj","_","isEmpty","updateRequested","queueMicroTask","IfCore","viewFactory","showing","cache","isCaching","remove","returnToCache","_show","isBound","add","_hide","_this","removed","_unbindView","If","_super","apply","call","condition","conditionChanged","_update","show","promise","animating","elseVm","_swap","all","primaryProperty","Else","_registerInIf","ifVm","previous","anchor","previousSibling","au","if","Error","With","parentOverrideContext","valueChanged","value","oneTime","updateOverrideContexts","views","startIndex","updateOverrideContext","createFullOverrideContext","repeat","data","index","scope","local","first","last","even","$index","$first","$last","$middle","$odd","$even","updateOneTimeBinding","binding","mode","updateOneTimeBindings","indexOf","array","item","matcher","ArrayRepeatStrategy","getCollectionObserver","observerLocator","items","getArrayObserver","instanceChanged","$repeat","itemsLength","children","viewsLength","viewsRequireLifecycle","childrenSnapshot","slice","itemNameInBindingContext","matcher_1","itemsPreviouslyInViews_1","viewsToRemove","oldItem","push","updateViews","removePromise","removeViews","indexOfView","insertView","splice","undefined","moveView","_inPlaceProcessItems","removeAllViews","_standardProcessInstanceChanged","ii","addView","viewCount","removeView","middle","updateBindings","instanceMutated","splices","__queuedSplices","_a","addedCount","__array","maybePromise","_runSplices","queuedSplices_1","runQueuedSplices_1","nextPromise","removeDelta","rmPromises","j","jj","viewOrPromise","spliceIndexLow","_handleAddedSplices","spliceIndex","arrayLength","addIndex","end","MapRepeatStrategy","getMapObserver","_standardProcessItems","forEach","size","map","records","removeIndex","record","type","_getViewIndexByKey","get","NullRepeatStrategy","NumberRepeatStrategy","childrenLength","Math","floor","SetRepeatStrategy","getSetObserver","set","max","_getViewIndexByValue","RepeatStrategyLocator","matchers","strategies","addStrategy","Map","Set","strategy","getStrategy","lifecycleOptionalBehaviors","behaviorRequiresLifecycle","t","name","elementName","attributeName","handlesAttached","handlesBind","handlesCreated","handlesDetached","handlesUnbind","targetRequiresLifecycle","behaviors","behaviorInstructions","_viewsRequireLifecycle","template","querySelector","id","instructions","Repeat","strategyLocator","lookupFunctions","ignoreMutation","sourceExpression","attrName","filter","bi","originalAttrName","attributes","getItemsSourceExpression","isOneTime","expression","Repeat_1","context","matcherBinding","_captureAndRemoveMatcherBinding","itemsChanged","_unsubscribeCollection","collectionObserver","unsubscribe","callContext","_observeInnerCollection","_observeCollection","_getInnerCollection","unwrapped","unwrapExpression","evaluate","handleCollectionMutated","collection","handleInnerCollectionMutated","newItems","subscribe","useInnerMatcher","extractMatcherBindingExpression","getChildrenCount","repeatedElement","getFirstElementChild","hasAttribute","repeatedElementTargetId","getAttribute","insert","sourceIndex","targetIndex","move","skipAnimation","removeMany","removeAt","$view","bindings","controllers","k","boundProperties","AbstractRepeater","options","targetedElementId","instructionIds","keys","instructionId","expressions","targetProperty","matcherBindingExpression","el","childNodes","count","nodeType","firstChild","nextSibling","injectAureliaHideStyleAtBoundary","domBoundary","shadowDOM","hasAureliaHideStyle","injectStyles","Show","animator","of","boundary","removeClass","addClass","Hide","SCRIPT_REGEX","needsToWarn","HTMLSanitizer","sanitize","input","warn","replace","SanitizeHTMLValueConverter","sanitizer","toView","untrustedMarkup","Replaceable","Focus","isAttached","needsApply","_apply","focus","blur","attached","addEventListener","detached","removeEventListener","handleEvent","e","activeElement","twoWay","cssUrlMatcher","CSSResource","address","_scoped","_global","_alreadyGloballyInjected","initialize","Target","register","registry","registerViewEngineHooks","load","loadText","catch","err","text","css","match","p1","quote","charAt","substr","fixupCSSUrls","CSSViewEngineHooks","owner","beforeCompile","content","resources","targetShadowDOM","scopedCSS","setAttribute","AttrBindingBehavior","source","targetObserver","modeBindingBehavior","originalMode","OneTimeBindingBehavior","OneWayBindingBehavior","ToViewBindingBehavior","FromViewBindingBehavior","fromView","TwoWayBindingBehavior","throttle","state","throttleState","elapsed","Date","delay","clearTimeout","timeoutId","throttledMethod","setTimeout","ThrottleBindingBehavior","methodToThrottle","callSource","updateSource","originalName","unset","debounceCallSource","event","debounceState","debouncedMethod","debounceCall","callContextToDebounce","_oldValue","DebounceBindingBehavior","isCallSource","methodToDebounce","debouncer","handleSelfEvent","path","deepPath","findOriginalEventTarget","selfEventCallSource","SelfBindingBehavior","targetEvent","BindingSignaler","signals","signal","SignalBindingBehavior","bindingSignaler","names","_i","updateTarget","name_1","signalName","name_2","isArray","eventNamesRequired","notApplicableMessage","UpdateTriggerBindingBehavior","events","getObserver","handler","originalHandler","dispose","configure","config","viewEngine","loader","aurelia","addResourcePlugin","viewUrl","loadTemplate","registryEntry","bindableNames","useShadowDOMmode","exec","toLowerCase","split","x","trim","removeAttribute","DynamicElement","$parent","_createDynamicElement","configure$1","globalResources","styleResourcePlugin","fetch","ViewCSS","_createCSSResource","ext"],"mappings":"sHAAA,qHA8CIA,EA9CJ,4GA0BIC,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAG5B,SAASO,EAAUR,EAAGC,GAElB,SAASQ,IAAOC,KAAKC,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEY,UAAkB,OAANX,EAAaC,OAAOW,OAAOZ,IAAMQ,EAAGG,UAAYX,EAAEW,UAAW,IAAIH,GAGnF,SAASK,EAAWC,EAAYC,EAAQC,EAAKC,GACzC,IAA2HlB,EAAvHmB,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOhB,OAAOqB,yBAAyBP,EAAQC,GAAOC,EACrH,GAAuB,iBAAZM,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIQ,EAAIX,EAAWM,OAAS,EAAGK,GAAK,EAAGA,KAAS1B,EAAIe,EAAWW,MAAIJ,GAAKH,EAAI,EAAInB,EAAEsB,GAAKH,EAAI,EAAInB,EAAEgB,EAAQC,EAAKK,GAAKtB,EAAEgB,EAAQC,KAASK,GAChJ,OAAOH,EAAI,GAAKG,GAAKpB,OAAOyB,eAAeX,EAAQC,EAAKK,GAAIA,GAIhE,SAAWxB,GACPA,EAAoC,gBAAI,mBACxCA,EAA4B,QAAI,UAFpC,CAGGA,IAAuBA,EAAqB,KAC/C,IAAI8B,EAAW,WACX,SAASA,EAAQC,EAASC,EAAWC,EAAmBC,EAAUC,EAAeC,GAC7ExB,KAAKyB,mBAAqBrC,EAAmBsC,gBAC7C1B,KAAKmB,QAAUA,EACfnB,KAAKoB,UAAYA,EACjBpB,KAAKqB,kBAAoBA,EACzBrB,KAAKsB,SAAWA,EAChBtB,KAAKuB,cAAgBA,EACrBvB,KAAKwB,UAAYA,EACjBxB,KAAK2B,kBAAoB,KACzB3B,KAAK4B,iBAAmB,KACxB5B,KAAK6B,QAAUrC,OAAOW,OAAO,MA0DjC,OAxDAe,EAAQY,OAAS,WACb,MAAO,CAAC,IAAIC,QAAS,IAAW,IAAmB,IAAU,IAAe,MAEhFb,EAAQhB,UAAU8B,QAAU,SAAUC,GAClCjC,KAAKiC,WAAaA,GAEtBf,EAAQhB,UAAUgC,KAAO,SAAUC,EAAgBC,GAC/CpC,KAAKmC,eAAiBA,EACtBnC,KAAKoC,gBAAkBA,EACvB,IAAIP,EAAU7B,KAAK6B,QACnBA,EAAQQ,KAAOrC,KAAKqC,KACpBR,EAAQS,UAAYtC,KAAKsC,UACzBT,EAAQU,MAAQvC,KAAKuC,MAChBvC,KAAKwC,aACNC,EAAezC,OAGvBkB,EAAQhB,UAAUwC,OAAS,WACvB1C,KAAK6B,QAAUrC,OAAOW,OAAO,MAC7BH,KAAKmC,eAAiB,KACtBnC,KAAKoC,gBAAkB,KAGvBpC,KAAKsB,SAASqB,WAFM,GACA,IAGxBzB,EAAQhB,UAAU0C,aAAe,SAAUC,EAAUC,GACjD9C,KAAK6B,QAAQU,MAAQM,EACrBE,EAAc/C,OAElBkB,EAAQhB,UAAU8C,YAAc,SAAUH,EAAUC,GAChD9C,KAAK6B,QAAQQ,KAAOQ,EACpBE,EAAc/C,OAElBkB,EAAQhB,UAAU+C,iBAAmB,SAAUJ,EAAUC,GACrD9C,KAAK6B,QAAQS,UAAYO,EACzBE,EAAc/C,OAElBI,EAAW,CACP,KACDc,EAAQhB,UAAW,aAAS,GAC/BE,EAAW,CACP,KACDc,EAAQhB,UAAW,YAAQ,GAC9BE,EAAW,CACP,KACDc,EAAQhB,UAAW,iBAAa,GACnCE,EAAW,CACP,KACDc,EAAQhB,UAAW,0BAAsB,GAC5CE,EAAW,CACP,KACDc,EAAQhB,UAAW,iBAAa,GACnCgB,EAAUd,EAAW,CACjB,IACA,YAAc,YACfc,GApEO,GA+Fd,SAASuB,EAAeS,GACpB,IAAIrB,EAAUqB,EAASrB,QAEvB,GADAqB,EAASrB,QAAUrC,OAAOW,OAAO,MA4CrC,SAA+B+C,EAAUrB,GACrC,IAAIJ,EAAqByB,EAASzB,mBAC9B0B,EAAKD,EAAStB,iBACduB,GAAgD,mBAAnCA,EAAGC,8BAChB3B,EAAqB0B,EAAGC,+BAE5B,MAAO,SAAUvB,GACV,cAAeA,GACfJ,IAAuBrC,EAAmBiE,QAnD7CC,CAAsBJ,EAAUrB,GAAU,CAC1C,IAAI0B,EAAc,CACdlB,KAAMa,EAASb,KACfC,UAAWY,EAAStB,kBAAoBsB,EAASZ,UACjDC,MAAOW,EAASX,OAEpBgB,EAAc/D,OAAOgE,OAAOD,EAAa1B,GACzC0B,EAvBR,SAA2BL,EAAUK,GACjC,OAAO/D,OAAOgE,OAAOD,EAAa,CAC9BpB,eAAgBe,EAASf,eACzBC,gBAAiBc,EAASd,gBAC1BH,WAAYiB,EAASjB,WACrBb,UAAW8B,EAAS9B,UACpBE,SAAU4B,EAAS5B,SACnBC,cAAe2B,EAAS3B,cACxBI,kBAAmBuB,EAASvB,kBAC5B8B,KAAMP,EAAS/B,QACfuC,UAAWR,EAASQ,YAaNC,CAAkBT,EAAUK,GAC1CL,EAASV,YAAcU,EAAS7B,kBAAkBuC,QAAQL,GAAaM,MAAK,SAAUC,GAClFZ,EAASvB,kBAAoBmC,EAC7BZ,EAAStB,iBAAmBkC,EAAaA,EAAWxB,UAAY,aAKpE,GADAY,EAASV,YAnCjB,SAA8BW,EAAIZ,GAC9B,GAAIY,GAA6B,mBAAhBA,EAAGY,SAChB,OAAOC,QAAQC,QAAQd,EAAGY,SAASxB,IAiCZ2B,CAAqBhB,EAAStB,iBAAkBC,EAAQU,QAC1EW,EAASV,YACV,OAGRU,EAASV,YAAcU,EAASV,YAC3BqB,MAAK,WACNM,EAAwBjB,MACzB,SAAUkB,GAET,MADAD,EAAwBjB,GAClBkB,KAGd,SAASD,EAAwBjB,GAC7BA,EAASV,YAAc,KAvD3B,SAAiB6B,GACb,IAAK,IAAIC,KAAKD,EACV,OAAO,EAEX,OAAO,EAoDFE,CAAQrB,EAASrB,UAClBY,EAAeS,GAGvB,SAASH,EAAcG,GACfA,EAASV,aAAeU,EAASsB,kBAGrCtB,EAASsB,iBAAkB,EAC3BtB,EAAS1B,UAAUiD,gBAAe,WAC9BvB,EAASsB,iBAAkB,EAC3B/B,EAAeS,OAcvB,IAAIwB,EAAU,WACV,SAASA,EAAOC,EAAarD,GACzBtB,KAAK2E,YAAcA,EACnB3E,KAAKsB,SAAWA,EAChBtB,KAAKqC,KAAO,KACZrC,KAAKmC,eAAiB,KACtBnC,KAAKoC,gBAAkB,KACvBpC,KAAK4E,SAAU,EACf5E,KAAK6E,OAAQ,EA4DjB,OA1DAH,EAAOxE,UAAUgC,KAAO,SAAUC,EAAgBC,GAC9CpC,KAAKmC,eAAiBA,EACtBnC,KAAKoC,gBAAkBA,GAE3BsC,EAAOxE,UAAUwC,OAAS,WACJ,OAAd1C,KAAKqC,OAGTrC,KAAKqC,KAAKK,SACL1C,KAAK2E,YAAYG,YAGlB9E,KAAK4E,SACL5E,KAAK4E,SAAU,EACf5E,KAAKsB,SAASyD,OAAO/E,KAAKqC,MAAM,GAAM,IAGtCrC,KAAKqC,KAAK2C,gBAEdhF,KAAKqC,KAAO,QAEhBqC,EAAOxE,UAAU+E,MAAQ,WACrB,IAAIjF,KAAK4E,QAaT,OAPkB,OAAd5E,KAAKqC,OACLrC,KAAKqC,KAAOrC,KAAK2E,YAAYxE,UAE5BH,KAAKqC,KAAK6C,SACXlF,KAAKqC,KAAKH,KAAKlC,KAAKmC,eAAgBnC,KAAKoC,iBAE7CpC,KAAK4E,SAAU,EACR5E,KAAKsB,SAAS6D,IAAInF,KAAKqC,MAZrBrC,KAAKqC,KAAK6C,SACXlF,KAAKqC,KAAKH,KAAKlC,KAAKmC,eAAgBnC,KAAKoC,kBAarDsC,EAAOxE,UAAUkF,MAAQ,WACrB,IAAIC,EAAQrF,KACZ,GAAKA,KAAK4E,QAAV,CAGA5E,KAAK4E,SAAU,EACf,IAAIU,EAAUtF,KAAKsB,SAASyD,OAAO/E,KAAKqC,MACxC,GAAIiD,aAAmBtB,QACnB,OAAOsB,EAAQzB,MAAK,WAChBwB,EAAME,iBAGdvF,KAAKuF,gBAETb,EAAOxE,UAAUqF,YAAc,WAC3B,IAAIV,EAAuB,UAAf7E,KAAK6E,SAA8B7E,KAAK6E,MACpD7E,KAAKqC,KAAKK,SACLmC,IACD7E,KAAKqC,KAAO,OAGbqC,EApEE,GAuETc,EAAM,SAAUC,GAEhB,SAASD,IACL,IAAIH,EAAmB,OAAXI,GAAmBA,EAAOC,MAAM1F,KAAMU,YAAcV,KAEhE,OADAqF,EAAMR,OAAQ,EACPQ,EA6DX,OAjEAvF,EAAU0F,EAAIC,GAMdD,EAAGtF,UAAUgC,KAAO,SAAUC,EAAgBC,GAC1CqD,EAAOvF,UAAUgC,KAAKyD,KAAK3F,KAAMmC,EAAgBC,GAC7CpC,KAAK4F,UACL5F,KAAKiF,QAGLjF,KAAKoF,SAGbI,EAAGtF,UAAU2F,iBAAmB,SAAUhD,GACtC7C,KAAK8F,QAAQjD,IAEjB2C,EAAGtF,UAAU4F,QAAU,SAAUC,GAC7B,IAIIC,EAJAX,EAAQrF,KACRA,KAAKiG,YAKLD,EADAhG,KAAKkG,OACKH,EAAO/F,KAAKmG,MAAMnG,KAAKkG,OAAQlG,MAAQA,KAAKmG,MAAMnG,KAAMA,KAAKkG,QAG7DH,EAAO/F,KAAKiF,QAAUjF,KAAKoF,WAGrCpF,KAAKiG,WAAY,EACjBD,EAAQnC,MAAK,WACTwB,EAAMY,WAAY,EACdZ,EAAMO,YAAcP,EAAMT,SAC1BS,EAAMS,QAAQT,EAAMO,gBAKpCJ,EAAGtF,UAAUiG,MAAQ,SAAUpB,EAAQI,GACnC,OAAQnF,KAAK0D,WACT,IAAK,SACD,OAAOM,QAAQC,QAAQkB,EAAIF,SAASpB,MAAK,WAAc,OAAOkB,EAAOK,WACzE,IAAK,OACD,OAAOpB,QAAQoC,IAAI,CAACrB,EAAOK,QAASD,EAAIF,UAC5C,QACI,IAAIe,EAAUjB,EAAOK,QACrB,OAAOY,EAAUA,EAAQnC,MAAK,WAAc,OAAOsB,EAAIF,WAAcE,EAAIF,UAGrF7E,EAAW,CACP,YAAS,CAAEiG,iBAAiB,KAC7Bb,EAAGtF,UAAW,iBAAa,GAC9BE,EAAW,CACP,KACDoF,EAAGtF,UAAW,iBAAa,GAC9BE,EAAW,CACP,KACDoF,EAAGtF,UAAW,aAAS,GAC1BsF,EAAKpF,EAAW,CACZ,YAAgB,MAChB,IACA,YAAO,IAAkB,MAC1BoF,GAjEE,CAmEPd,GAEE4B,EAAQ,SAAUb,GAElB,SAASa,EAAK3B,EAAarD,GACvB,IAAI+D,EAAQI,EAAOE,KAAK3F,KAAM2E,EAAarD,IAAatB,KAExD,OADAqF,EAAMkB,gBACClB,EA2BX,OA/BAvF,EAAUwG,EAAMb,GAMhBa,EAAKpG,UAAUgC,KAAO,SAAUC,EAAgBC,GAC5CqD,EAAOvF,UAAUgC,KAAKyD,KAAK3F,KAAMmC,EAAgBC,GAC7CpC,KAAKwG,KAAKZ,UACV5F,KAAKoF,QAGLpF,KAAKiF,SAGbqB,EAAKpG,UAAUqG,cAAgB,WAE3B,IADA,IAAIE,EAAWzG,KAAKsB,SAASoF,OAAOC,gBAC7BF,IAAaA,EAASG,IACzBH,EAAWA,EAASE,gBAExB,IAAKF,IAAaA,EAASG,GAAGC,GAC1B,MAAM,IAAIC,MAAM,qDAEpB9G,KAAKwG,KAAOC,EAASG,GAAGC,GAAGvE,UAC3BtC,KAAKwG,KAAKN,OAASlG,MAEvBsG,EAAOlG,EAAW,CACd,YAAgB,QAChB,IACA,YAAO,IAAkB,MAC1BkG,GA/BI,CAiCT5B,GAEEqC,EAAQ,WACR,SAASA,EAAKpC,EAAarD,GACvBtB,KAAK2E,YAAcA,EACnB3E,KAAKsB,SAAWA,EAChBtB,KAAKgH,sBAAwB,KAC7BhH,KAAKqC,KAAO,KA8BhB,OA5BA0E,EAAK7G,UAAUgC,KAAO,SAAUC,EAAgBC,GAC5CpC,KAAKgH,sBAAwB5E,EAC7BpC,KAAKiH,aAAajH,KAAKkH,QAE3BH,EAAK7G,UAAU+G,aAAe,SAAUpE,GACpC,IAAIT,EAAkB,YAAsBS,EAAU7C,KAAKgH,uBACvD3E,EAAOrC,KAAKqC,KACXA,EAMDA,EAAKH,KAAKW,EAAUT,KALpBC,EAAOrC,KAAKqC,KAAOrC,KAAK2E,YAAYxE,UAC/B+B,KAAKW,EAAUT,GACpBpC,KAAKsB,SAAS6D,IAAI9C,KAM1B0E,EAAK7G,UAAUwC,OAAS,WACpB,IAAIL,EAAOrC,KAAKqC,KAChBrC,KAAKgH,sBAAwB,KACzB3E,GACAA,EAAKK,UAGbqE,EAAO3G,EAAW,CACd,YAAgB,QAChB,IACA,YAAO,IAAkB,MAC1B2G,GAlCI,GAsCPI,EAAU,IAAYA,QAC1B,SAASC,EAAuBC,EAAOC,GACnC,IAAI3G,EAAS0G,EAAM1G,OAInB,IAHI2G,EAAa,IACbA,GAA0B,GAEvBA,EAAa3G,IAAU2G,EAC1BC,EAAsBF,EAAMC,GAAYlF,gBAAiBkF,EAAY3G,GAG7E,SAAS6G,EAA0BC,EAAQC,EAAMC,EAAOhH,EAAQJ,GAC5D,IAAI4B,EAAiB,GACjBC,EAAkB,YAAsBD,EAAgBsF,EAAOG,MAAMxF,iBASzE,YARmB,IAAR7B,GACP4B,EAAesF,EAAOlH,KAAOA,EAC7B4B,EAAesF,EAAOP,OAASQ,GAG/BvF,EAAesF,EAAOI,OAASH,EAEnCH,EAAsBnF,EAAiBuF,EAAOhH,GACvCyB,EAEX,SAASmF,EAAsBnF,EAAiBuF,EAAOhH,GACnD,IAAImH,EAAmB,IAAVH,EACTI,EAAQJ,IAAUhH,EAAS,EAC3BqH,EAAOL,EAAQ,GAAM,EACzBvF,EAAgB6F,OAASN,EACzBvF,EAAgB8F,OAASJ,EACzB1F,EAAgB+F,MAAQJ,EACxB3F,EAAgBgG,UAAYN,GAASC,GACrC3F,EAAgBiG,MAAQL,EACxB5F,EAAgBkG,MAAQN,EA6B5B,SAASO,EAAqBC,GACtBA,EAAQ7C,MAAQ6C,EAAQC,OAAStB,EACjCqB,EAAQ7C,KAAK,KAER6C,EAAQE,uBACbF,EAAQE,wBAGhB,SAASC,EAAQC,EAAOC,EAAMC,EAASxB,GACnC,IAAKwB,EACD,OAAOF,EAAMD,QAAQE,GAGzB,IADA,IAAIlI,EAASiI,EAAMjI,OACVgH,EAAQL,GAAc,EAAGK,EAAQhH,EAAQgH,IAC9C,GAAImB,EAAQF,EAAMjB,GAAQkB,GACtB,OAAOlB,EAGf,OAAQ,EAGZ,IAAIoB,EAAuB,WACvB,SAASA,KAyLT,OAvLAA,EAAoB7I,UAAU8I,sBAAwB,SAAUC,EAAiBC,GAC7E,OAAOD,EAAgBE,iBAAiBD,IAE5CH,EAAoB7I,UAAUkJ,gBAAkB,SAAU3B,EAAQyB,GAC9D,IAAI7D,EAAQrF,KACRqJ,EAAU5B,EACV6B,EAAcJ,EAAMvI,OACxB,GAAKuI,GAAyB,IAAhBI,EAAd,CAIA,IAAIC,EAAWF,EAAQhC,QACnBmC,EAAcD,EAAS5I,OAC3B,GAAoB,IAAhB6I,EAIJ,GAAIH,EAAQI,sBAAuB,CAM/B,IALA,IAAIC,EAAmBH,EAASI,MAAM,GAClCC,EAA2BP,EAAQxB,MACnCgC,EAAYR,EAAQP,UACpBgB,EAA2B,GAC3BC,EAAgB,GACXpC,EAAQ,EAAGA,EAAQ6B,EAAa7B,IAAS,CAC9C,IAAItF,EAAOqH,EAAiB/B,GACxBqC,EAAU3H,EAAKF,eAAeyH,IACU,IAAxCjB,EAAQO,EAAOc,EAASH,GACxBE,EAAcE,KAAK5H,GAGnByH,EAAyBG,KAAKD,GAGtC,IAAIE,OAAc,EACdC,OAAgB,EAChBL,EAAyBnJ,OAAS,GAClCwJ,EAAgBd,EAAQe,YAAYL,GAAe,GAAOV,EAAQI,uBAClES,EAAc,WACV,IAAK,IAAIvC,EAAQ,EAAGA,EAAQ2B,EAAa3B,IAAS,CAC9C,IAAIkB,EAAOK,EAAMvB,GACb0C,EAAc1B,EAAQmB,EAA0BjB,EAAMgB,EAAWlC,GACjEtF,OAAO,EACX,IAAqB,IAAjBgI,EAAoB,CACpB,IAAIjI,EAAkBoF,EAA0B6B,EAASH,EAAMvB,GAAQA,EAAO2B,GAC9ED,EAAQiB,WAAW3C,EAAOvF,EAAgBD,eAAgBC,GAC1D0H,EAAyBS,OAAO5C,EAAO,OAAG6C,QAErCH,IAAgB1C,GACrBtF,EAAOkH,EAASc,GAChBP,EAAyBO,QAAeG,IAGxCnI,EAAOkH,EAASc,GAChBhB,EAAQoB,SAASJ,EAAa1C,GAC9BmC,EAAyBS,OAAOF,EAAa,GAC7CP,EAAyBS,OAAO5C,EAAO,OAAG6C,IAE1CnI,GACAkF,EAAsBlF,EAAKD,gBAAiBuF,EAAO2B,GAG3DjE,EAAMqF,qBAAqBrB,EAASH,MAIxCiB,EAAgBd,EAAQsB,gBAAe,GAAOtB,EAAQI,uBACtDS,EAAc,WAAc,OAAO7E,EAAMuF,gCAAgCvB,EAASH,KAElFiB,aAAyBnG,QACzBmG,EAActG,KAAKqG,GAGnBA,SAIJlK,KAAK0K,qBAAqBrB,EAASH,QA9DnClJ,KAAK4K,gCAAgCvB,EAASH,QAN9CG,EAAQsB,gBAAe,GAAOtB,EAAQI,wBAuE9CV,EAAoB7I,UAAU0K,gCAAkC,SAAUnD,EAAQyB,GAC9E,IAAK,IAAIlI,EAAI,EAAG6J,EAAK3B,EAAMvI,OAAQK,EAAI6J,EAAI7J,IAAK,CAC5C,IAAIoB,EAAkBoF,EAA0BC,EAAQyB,EAAMlI,GAAIA,EAAG6J,GACrEpD,EAAOqD,QAAQ1I,EAAgBD,eAAgBC,KAGvD2G,EAAoB7I,UAAUwK,qBAAuB,SAAUjD,EAAQyB,GAGnE,IAFA,IAAII,EAAcJ,EAAMvI,OACpB6I,EAAc/B,EAAOsD,YAClBvB,EAAcF,GACjBE,IACA/B,EAAOuD,WAAWxB,GAAa,GAAO/B,EAAOgC,uBAGjD,IADA,IAAI5B,EAAQJ,EAAOI,MACV7G,EAAI,EAAGA,EAAIwI,EAAaxI,IAAK,CAClC,IAAIqB,EAAOoF,EAAOpF,KAAKrB,GACnB+G,EAAO/G,IAAMsI,EAAc,EAC3B2B,EAAe,IAANjK,IAAY+G,EACrB5F,EAAiBE,EAAKF,eACtBC,EAAkBC,EAAKD,gBACvBD,EAAe0F,KAAWqB,EAAMlI,IAC7BoB,EAAgBgG,UAAY6C,GAC5B7I,EAAgB+F,QAAUJ,IAGjC5F,EAAe0F,GAASqB,EAAMlI,GAC9BoB,EAAgBgG,QAAU6C,EAC1B7I,EAAgB+F,MAAQJ,EACxBN,EAAOyD,eAAe7I,IAE1B,IAASrB,EAAIwI,EAAaxI,EAAIsI,EAAatI,IAAK,CACxCoB,EAAkBoF,EAA0BC,EAAQyB,EAAMlI,GAAIA,EAAGsI,GACrE7B,EAAOqD,QAAQ1I,EAAgBD,eAAgBC,KAGvD2G,EAAoB7I,UAAUiL,gBAAkB,SAAU1D,EAAQmB,EAAOwC,GACrE,IAAI/F,EAAQrF,KACZ,GAAIyH,EAAO4D,gBAAX,CACI,IAAK,IAAIrK,EAAI,EAAG6J,EAAKO,EAAQzK,OAAQK,EAAI6J,IAAM7J,EAAG,CAC9C,IAAIsK,EAAKF,EAAQpK,GAAI2G,EAAQ2D,EAAG3D,MAAOrC,EAAUgG,EAAGhG,QAASiG,EAAaD,EAAGC,WAC7E,YAAY9D,EAAO4D,gBAAiB1D,EAAOrC,EAASiG,GAExD9D,EAAO+D,QAAU5C,EAAMe,MAAM,OALjC,CAQA,IAAI8B,EAAezL,KAAK0L,YAAYjE,EAAQmB,EAAMe,MAAM,GAAIyB,GAC5D,GAAIK,aAAwBzH,QAAS,CACjC,IAAI2H,EAAkBlE,EAAO4D,gBAAkB,GAC3CO,EAAqB,WACrB,IAAKD,EAAgBhL,OAGjB,OAFA8G,EAAO4D,qBAAkBb,OACzB/C,EAAO+D,aAAUhB,GAGrB,IAAIqB,EAAcxG,EAAMqG,YAAYjE,EAAQA,EAAO+D,QAASG,IAAoB3H,QAAQC,UACxF0H,EAAkBlE,EAAO4D,gBAAkB,GAC3CQ,EAAYhI,KAAK+H,IAErBH,EAAa5H,KAAK+H,MAG1B7C,EAAoB7I,UAAUwL,YAAc,SAAUjE,EAAQmB,EAAOwC,GAIjE,IAHA,IAAI/F,EAAQrF,KACR8L,EAAc,EACdC,EAAa,GACR/K,EAAI,EAAG6J,EAAKO,EAAQzK,OAAQK,EAAI6J,IAAM7J,EAAG,CAG9C,IAFA,IAAIuJ,EAASa,EAAQpK,GAEZgL,EAAI,EAAGC,EADF1B,EAAOjF,QACQ3E,OAAQqL,EAAIC,IAAMD,EAAG,CAC9C,IAAIE,EAAgBzE,EAAOuD,WAAWT,EAAO5C,MAAQmE,EAAcC,EAAWpL,QAAQ,GAClFuL,aAAyBlI,SACzB+H,EAAW9B,KAAKiC,GAGxBJ,GAAevB,EAAOgB,WAE1B,GAAIQ,EAAWpL,OAAS,EACpB,OAAOqD,QAAQoC,IAAI2F,GAAYlI,MAAK,WAChC,IAAIsI,EAAiB9G,EAAM+G,oBAAoB3E,EAAQmB,EAAOwC,GAC9DhE,EAAuBK,EAAOJ,QAAS8E,MAG/C,IAAIA,EAAiBnM,KAAKoM,oBAAoB3E,EAAQmB,EAAOwC,GAC7DhE,EAAuBK,EAAOJ,QAAS8E,IAG3CpD,EAAoB7I,UAAUkM,oBAAsB,SAAU3E,EAAQmB,EAAOwC,GAIzE,IAHA,IAAIiB,EACAF,EACAG,EAAc1D,EAAMjI,OACfK,EAAI,EAAG6J,EAAKO,EAAQzK,OAAQK,EAAI6J,IAAM7J,EAAG,CAC9C,IAAIuJ,EAASa,EAAQpK,GACjBuL,EAAWF,EAAc9B,EAAO5C,MAChC6E,EAAMjC,EAAO5C,MAAQ4C,EAAOgB,WAIhC,KAHI,MAAOY,GAA6DA,EAAiB5B,EAAO5C,SAC5FwE,EAAiBE,GAEdE,EAAWC,IAAOD,EAAU,CAC/B,IAAInK,EAAkBoF,EAA0BC,EAAQmB,EAAM2D,GAAWA,EAAUD,GACnF7E,EAAO6C,WAAWiC,EAAUnK,EAAgBD,eAAgBC,IAGpE,OAAO+J,GAEJpD,EA1Le,GA6LtB0D,EAAqB,WACrB,SAASA,KAyFT,OAvFAA,EAAkBvM,UAAU8I,sBAAwB,SAAUC,EAAiBC,GAC3E,OAAOD,EAAgByD,eAAexD,IAE1CuD,EAAkBvM,UAAUkJ,gBAAkB,SAAU3B,EAAQyB,GAC5D,IAAI7D,EAAQrF,KACRmK,EAAgB1C,EAAOkD,gBAAe,GAAOlD,EAAOgC,uBACpDU,aAAyBnG,QACzBmG,EAActG,MAAK,WAAc,OAAOwB,EAAMsH,sBAAsBlF,EAAQyB,MAGhFlJ,KAAK2M,sBAAsBlF,EAAQyB,IAEvCuD,EAAkBvM,UAAUyM,sBAAwB,SAAUlF,EAAQyB,GAClE,IACI9G,EADAuF,EAAQ,EAEZuB,EAAM0D,SAAQ,SAAU1F,EAAO3G,GAC3B6B,EAAkBoF,EAA0BC,EAAQP,EAAOS,EAAOuB,EAAM2D,KAAMtM,GAC9EkH,EAAOqD,QAAQ1I,EAAgBD,eAAgBC,KAC7CuF,MAGV8E,EAAkBvM,UAAUiL,gBAAkB,SAAU1D,EAAQqF,EAAKC,GACjE,IAAIxM,EACAS,EACA6J,EACAzI,EACA4K,EACAT,EACAU,EAEAf,EADAH,EAAa,GAEjB,IAAK/K,EAAI,EAAG6J,EAAKkC,EAAQpM,OAAQK,EAAI6J,IAAM7J,EAGvC,OADAT,GADA0M,EAASF,EAAQ/L,IACJT,IACL0M,EAAOC,MACX,IAAK,SACDF,EAAchN,KAAKmN,mBAAmB1F,EAAQlH,IAC9C2L,EAAgBzE,EAAOuD,WAAWgC,GAAa,GAAOvF,EAAOgC,kCAChCzF,SACzB+H,EAAW9B,KAAKiC,GAEpB9J,EAAkBoF,EAA0BC,EAAQqF,EAAIM,IAAI7M,GAAMyM,EAAaF,EAAID,KAAMtM,GACzFkH,EAAO6C,WAAW0C,EAAa5K,EAAgBD,eAAgBC,GAC/D,MACJ,IAAK,MACDmK,EAAW9E,EAAOsD,aAAe+B,EAAID,KAAO,EAAIpF,EAAOsD,YAAc+B,EAAID,KAAO,EAChFzK,EAAkBoF,EAA0BC,EAAQqF,EAAIM,IAAI7M,GAAMgM,EAAUO,EAAID,KAAMtM,GACtFkH,EAAO6C,WAAWwC,EAAID,KAAO,EAAGzK,EAAgBD,eAAgBC,GAChE,MACJ,IAAK,SACD,QAAwBoI,IAApByC,EAAOnK,SACP,OAEJkK,EAAchN,KAAKmN,mBAAmB1F,EAAQlH,IAC9C2L,EAAgBzE,EAAOuD,WAAWgC,GAAa,GAAOvF,EAAOgC,kCAChCzF,SACzB+H,EAAW9B,KAAKiC,GAEpB,MACJ,IAAK,QACDzE,EAAOkD,gBAAe,GAAOlD,EAAOgC,uBACpC,MACJ,QACI,SAGRsC,EAAWpL,OAAS,EACpBqD,QAAQoC,IAAI2F,GAAYlI,MAAK,WACzBuD,EAAuBK,EAAOJ,QAAS,MAI3CD,EAAuBK,EAAOJ,QAAS,IAG/CoF,EAAkBvM,UAAUiN,mBAAqB,SAAU1F,EAAQlH,GAC/D,IAAIS,EACA6J,EAEJ,IAAK7J,EAAI,EAAG6J,EAAKpD,EAAOsD,YAAa/J,EAAI6J,IAAM7J,EAE3C,GADQyG,EAAOpF,KAAKrB,GACVmB,eAAesF,EAAOlH,OAASA,EACrC,OAAOS,GAKZyL,EA1Fa,GA6FpBY,EAAsB,WACtB,SAASA,KAOT,OALAA,EAAmBnN,UAAUkJ,gBAAkB,SAAU3B,EAAQyB,GAC7DzB,EAAOkD,gBAAe,IAE1B0C,EAAmBnN,UAAU8I,sBAAwB,SAAUC,EAAiBC,KAEzEmE,EARc,GAWrBC,EAAwB,WACxB,SAASA,KAqCT,OAnCAA,EAAqBpN,UAAU8I,sBAAwB,WACnD,OAAO,MAEXsE,EAAqBpN,UAAUkJ,gBAAkB,SAAU3B,EAAQP,GAC/D,IAAI7B,EAAQrF,KACRmK,EAAgB1C,EAAOkD,gBAAe,GAAOlD,EAAOgC,uBACpDU,aAAyBnG,QACzBmG,EAActG,MAAK,WAAc,OAAOwB,EAAMsH,sBAAsBlF,EAAQP,MAGhFlH,KAAK2M,sBAAsBlF,EAAQP,IAEvCoG,EAAqBpN,UAAUyM,sBAAwB,SAAUlF,EAAQP,GACrE,IACIlG,EACA6J,EACAzI,EACA2H,EAJAwD,EAAiB9F,EAAOsD,YAO5B,IADAhB,EAAgBwD,GADhBrG,EAAQsG,KAAKC,MAAMvG,KAEC,EAIhB,IAHI6C,EAAgBwD,IAChBxD,EAAgBwD,GAEfvM,EAAI,EAAG6J,EAAKd,EAAe/I,EAAI6J,IAAM7J,EACtCyG,EAAOuD,WAAWuC,GAAkBvM,EAAI,IAAI,GAAOyG,EAAOgC,2BALlE,CASA,IAAKzI,EAAIuM,EAAgB1C,EAAK3D,EAAOlG,EAAI6J,IAAM7J,EAC3CoB,EAAkBoF,EAA0BC,EAAQzG,EAAGA,EAAG6J,GAC1DpD,EAAOqD,QAAQ1I,EAAgBD,eAAgBC,GAEnDgF,EAAuBK,EAAOJ,QAAS,KAEpCiG,EAtCgB,GAyCvBI,EAAqB,WACrB,SAASA,KA4ET,OA1EAA,EAAkBxN,UAAU8I,sBAAwB,SAAUC,EAAiBC,GAC3E,OAAOD,EAAgB0E,eAAezE,IAE1CwE,EAAkBxN,UAAUkJ,gBAAkB,SAAU3B,EAAQyB,GAC5D,IAAI7D,EAAQrF,KACRmK,EAAgB1C,EAAOkD,gBAAe,GAAOlD,EAAOgC,uBACpDU,aAAyBnG,QACzBmG,EAActG,MAAK,WAAc,OAAOwB,EAAMsH,sBAAsBlF,EAAQyB,MAGhFlJ,KAAK2M,sBAAsBlF,EAAQyB,IAEvCwE,EAAkBxN,UAAUyM,sBAAwB,SAAUlF,EAAQyB,GAClE,IACI9G,EADAuF,EAAQ,EAEZuB,EAAM0D,SAAQ,SAAU1F,GACpB9E,EAAkBoF,EAA0BC,EAAQP,EAAOS,EAAOuB,EAAM2D,MACxEpF,EAAOqD,QAAQ1I,EAAgBD,eAAgBC,KAC7CuF,MAGV+F,EAAkBxN,UAAUiL,gBAAkB,SAAU1D,EAAQmG,EAAKb,GACjE,IAAI7F,EACAlG,EACA6J,EACAzI,EACA4K,EACAC,EAEAf,EADAH,EAAa,GAEjB,IAAK/K,EAAI,EAAG6J,EAAKkC,EAAQpM,OAAQK,EAAI6J,IAAM7J,EAGvC,OADAkG,GADA+F,EAASF,EAAQ/L,IACFkG,MACP+F,EAAOC,MACX,IAAK,MACD,IAAIL,EAAOW,KAAKK,IAAID,EAAIf,KAAO,EAAG,GAClCzK,EAAkBoF,EAA0BC,EAAQP,EAAO2F,EAAMe,EAAIf,MACrEpF,EAAO6C,WAAWuC,EAAMzK,EAAgBD,eAAgBC,GACxD,MACJ,IAAK,SACD4K,EAAchN,KAAK8N,qBAAqBrG,EAAQP,IAChDgF,EAAgBzE,EAAOuD,WAAWgC,GAAa,GAAOvF,EAAOgC,kCAChCzF,SACzB+H,EAAW9B,KAAKiC,GAEpB,MACJ,IAAK,QACDzE,EAAOkD,gBAAe,GAAOlD,EAAOgC,uBACpC,MACJ,QACI,SAGRsC,EAAWpL,OAAS,EACpBqD,QAAQoC,IAAI2F,GAAYlI,MAAK,WACzBuD,EAAuBK,EAAOJ,QAAS,MAI3CD,EAAuBK,EAAOJ,QAAS,IAG/CqG,EAAkBxN,UAAU4N,qBAAuB,SAAUrG,EAAQP,GACjE,IAAIlG,EACA6J,EAEJ,IAAK7J,EAAI,EAAG6J,EAAKpD,EAAOsD,YAAa/J,EAAI6J,IAAM7J,EAE3C,GADQyG,EAAOpF,KAAKrB,GACVmB,eAAesF,EAAOI,SAAWX,EACvC,OAAOlG,GAKZ0M,EA7Ea,GAgFpBK,EAAyB,WACzB,SAASA,IACL/N,KAAKgO,SAAW,GAChBhO,KAAKiO,WAAa,GAClBjO,KAAKkO,aAAY,SAAUhF,GAAS,OAAOA,UAA0C,IAAImE,GACzFrN,KAAKkO,aAAY,SAAUhF,GAAS,OAAOA,aAAiBvJ,QAAU,IAAIoJ,GAC1E/I,KAAKkO,aAAY,SAAUhF,GAAS,OAAOA,aAAiBiF,MAAQ,IAAI1B,GACxEzM,KAAKkO,aAAY,SAAUhF,GAAS,OAAOA,aAAiBkF,MAAQ,IAAIV,GACxE1N,KAAKkO,aAAY,SAAUhF,GAAS,MAAwB,iBAAVA,IAAuB,IAAIoE,GAejF,OAbAS,EAAsB7N,UAAUgO,YAAc,SAAUpF,EAASuF,GAC7DrO,KAAKgO,SAAS/D,KAAKnB,GACnB9I,KAAKiO,WAAWhE,KAAKoE,IAEzBN,EAAsB7N,UAAUoO,YAAc,SAAUpF,GAEpD,IADA,IAAI8E,EAAWhO,KAAKgO,SACXhN,EAAI,EAAG6J,EAAKmD,EAASrN,OAAQK,EAAI6J,IAAM7J,EAC5C,GAAIgN,EAAShN,GAAGkI,GACZ,OAAOlJ,KAAKiO,WAAWjN,GAG/B,OAAO,MAEJ+M,EAvBiB,GA0BxBQ,EAA6B,CAAC,QAAS,KAAM,OAAQ,SAAU,OAAQ,OAAQ,QACnF,SAASC,EAA0BjL,GAC/B,IAAIkL,EAAIlL,EAAY2J,KAChBwB,EAAyB,OAAlBD,EAAEE,YAAuBF,EAAEE,YAAcF,EAAEG,cACtD,OAAqD,IAA9CL,EAA2B5F,QAAQ+F,KAAiBD,EAAEI,iBAAmBJ,EAAEK,aAAeL,EAAEM,gBAAkBN,EAAEO,iBAAmBP,EAAEQ,gBACrIR,EAAE9J,aAAe8E,EAAsBgF,EAAE9J,cACzCpB,EAAYoB,aAAe8E,EAAsBlG,EAAYoB,aAExE,SAASuK,EAAwB3L,GAC7B,IAAI4L,EAAY5L,EAAY6L,qBAC5B,GAAID,EAEA,IADA,IAAInO,EAAImO,EAAUxO,OACXK,KACH,GAAIwN,EAA0BW,EAAUnO,IACpC,OAAO,EAInB,OAAOuC,EAAYoB,aAAe8E,EAAsBlG,EAAYoB,aAExE,SAAS8E,EAAsB9E,GAC3B,GAAI,2BAA4BA,EAC5B,OAAOA,EAAY0K,uBAGvB,GADA1K,EAAY0K,wBAAyB,EACjC1K,EAAYA,YAEZ,OADAA,EAAY0K,uBAAyB5F,EAAsB9E,EAAYA,aAChEA,EAAY0K,uBAEvB,GAAI1K,EAAY2K,SAASC,cAAc,eAEnC,OADA5K,EAAY0K,wBAAyB,GAC9B,EAEX,IAAK,IAAIG,KAAM7K,EAAY8K,aACvB,GAAIP,EAAwBvK,EAAY8K,aAAaD,IAEjD,OADA7K,EAAY0K,wBAAyB,GAC9B,EAIf,OADA1K,EAAY0K,wBAAyB,GAC9B,EAGX,IA2CIK,EAAU,SAAUjK,GAEpB,SAASiK,EAAO/K,EAAapB,EAAajC,EAAUC,EAAe0H,EAAiB0G,GAChF,IAAItK,EAAQI,EAAOE,KAAK3F,KAAM,CAC1B6H,MAAO,OACP4B,sBAAuBA,EAAsB9E,MAC3C3E,KAaN,OAZAqF,EAAMV,YAAcA,EACpBU,EAAM9B,YAAcA,EACpB8B,EAAM/D,SAAWA,EACjB+D,EAAMuK,gBAAkBrO,EAAcqO,gBACtCvK,EAAM4D,gBAAkBA,EACxB5D,EAAM9E,IAAM,MACZ8E,EAAM6B,MAAQ,QACd7B,EAAMsK,gBAAkBA,EACxBtK,EAAMwK,gBAAiB,EACvBxK,EAAMyK,iBA9kBd,SAAkCvM,EAAawM,GAC3C,OAAOxM,EAAY6L,qBACdY,QAAO,SAAUC,GAAM,OAAOA,EAAGC,mBAAqBH,KAAa,GACnEI,WACAjH,MACA4G,iBAykBwBM,CAAyB/K,EAAM9B,YAAa,cACrE8B,EAAMgL,UA7jBd,SAAmBC,GACf,KAAOA,aAAsB,KAAiB,CAC1C,GAAwB,YAApBA,EAAW5B,KACX,OAAO,EAEX4B,EAAaA,EAAWA,WAE5B,OAAO,EAsjBeD,CAAUhL,EAAMyK,kBAClCzK,EAAMoE,sBAAwBA,EAAsB9E,GAC7CU,EAuKX,IAAIkL,EAmBJ,OA5MAzQ,EAAU4P,EAAQjK,GAoBlB8K,EAAWb,EACXA,EAAOxP,UAAUyF,KAAO,SAAU6K,EAAS3O,GACvC7B,KAAKwQ,GAASxQ,KAAKkJ,MAAOrH,IAE9B6N,EAAOxP,UAAUgC,KAAO,SAAUC,EAAgBC,GAC9CpC,KAAK4H,MAAQ,CAAEzF,eAAgBA,EAAgBC,gBAAiBA,GAChEpC,KAAKyQ,eAAiBzQ,KAAK0Q,kCAC3B1Q,KAAK2Q,gBAETjB,EAAOxP,UAAUwC,OAAS,WACtB1C,KAAK4H,MAAQ,KACb5H,KAAKkJ,MAAQ,KACblJ,KAAKyQ,eAAiB,KACtBzQ,KAAKsB,SAASqB,WAAU,GAAM,GAC9B3C,KAAK4Q,0BAETlB,EAAOxP,UAAU0Q,uBAAyB,WAClC5Q,KAAK6Q,qBACL7Q,KAAK6Q,mBAAmBC,YAAY9Q,KAAK+Q,YAAa/Q,MACtDA,KAAK6Q,mBAAqB,KAC1B7Q,KAAK+Q,YAAc,OAG3BrB,EAAOxP,UAAUyQ,aAAe,WAC5B,IAAItL,EAAQrF,KAEZ,GADAA,KAAK4Q,yBACA5Q,KAAK4H,MAAV,CAGA,IAAIsB,EAAQlJ,KAAKkJ,MAEjB,GADAlJ,KAAKqO,SAAWrO,KAAK2P,gBAAgBrB,YAAYpF,IAC5ClJ,KAAKqO,SACN,MAAM,IAAIvH,MAAM,cAAgB9G,KAAK8P,iBAAmB,uBAEvD9P,KAAKqQ,WAAcrQ,KAAKgR,2BACzBhR,KAAKiR,qBAETjR,KAAK6P,gBAAiB,EACtB7P,KAAKqO,SAASjF,gBAAgBpJ,KAAMkJ,GACpClJ,KAAKiJ,gBAAgBzH,UAAUiD,gBAAe,WAC1CY,EAAMwK,gBAAiB,OAG/BH,EAAOxP,UAAUgR,oBAAsB,WACnC,IAAIZ,EAxnBZ,SAA0BA,GAEtB,IADA,IAAIa,GAAY,EACTb,aAAsB,KACzBA,EAAaA,EAAWA,WAE5B,KAAOA,aAAsB,KACzBA,EAAaA,EAAWA,WACxBa,GAAY,EAEhB,OAAOA,EAAYb,EAAa,KA+mBXc,CAAiBpR,KAAK8P,kBACvC,OAAKQ,EAGEA,EAAWe,SAASrR,KAAK4H,MAAO,MAF5B,MAIf8H,EAAOxP,UAAUoR,wBAA0B,SAAUC,EAAY1P,GACxD7B,KAAK6Q,qBAGN7Q,KAAK6P,gBAGT7P,KAAKqO,SAASlD,gBAAgBnL,KAAMuR,EAAY1P,KAEpD6N,EAAOxP,UAAUsR,6BAA+B,SAAUD,EAAY1P,GAClE,IAAIwD,EAAQrF,KACZ,GAAKA,KAAK6Q,qBAGN7Q,KAAK6P,eAAT,CAGA7P,KAAK6P,gBAAiB,EACtB,IAAI4B,EAAWzR,KAAK8P,iBAAiBuB,SAASrR,KAAK4H,MAAO5H,KAAK4P,iBAC/D5P,KAAKiJ,gBAAgBzH,UAAUiD,gBAAe,WAAc,OAAOY,EAAMwK,gBAAiB,KACtF4B,IAAazR,KAAKkJ,MAClBlJ,KAAK2Q,eAGL3Q,KAAKkJ,MAAQuI,IAGrB/B,EAAOxP,UAAU8Q,wBAA0B,WACvC,IAAI9H,EAAQlJ,KAAKkR,sBACb7C,EAAWrO,KAAK2P,gBAAgBrB,YAAYpF,GAChD,QAAKmF,IAGLrO,KAAK6Q,mBAAqBxC,EAASrF,sBAAsBhJ,KAAKiJ,gBAAiBC,KAC1ElJ,KAAK6Q,qBAGV7Q,KAAK+Q,YAAc,+BACnB/Q,KAAK6Q,mBAAmBa,UAAU1R,KAAK+Q,YAAa/Q,OAC7C,KAEX0P,EAAOxP,UAAU+Q,mBAAqB,WAClC,IAAI/H,EAAQlJ,KAAKkJ,MACjBlJ,KAAK6Q,mBAAqB7Q,KAAKqO,SAASrF,sBAAsBhJ,KAAKiJ,gBAAiBC,GAChFlJ,KAAK6Q,qBACL7Q,KAAK+Q,YAAc,0BACnB/Q,KAAK6Q,mBAAmBa,UAAU1R,KAAK+Q,YAAa/Q,QAG5D0P,EAAOxP,UAAUwQ,gCAAkC,WAC/C,IAAI/L,EAAc3E,KAAK2E,YAAYA,YACnC,GAAIA,EAAa,CACb,IAAI2K,EAAW3K,EAAY2K,SACvBG,EAAe9K,EAAY8K,aAC/B,GAAIc,EAASoB,gBACT,OAAOC,EAAgCnC,GAE3C,GAAIoC,EAAiBvC,GAAY,EAC7B,OAEJ,IAAIwC,EAAkBC,EAAqBzC,GAC3C,IAAKwC,EAAgBE,aAAa,gBAC9B,OAEJ,IAAIC,EAA0BH,EAAgBI,aAAa,gBAC3D,OAAON,EAAgCnC,EAAcwC,KAI7DvC,EAAOxP,UAAU6K,UAAY,WAAc,OAAO/K,KAAKsB,SAASiI,SAAS5I,QACzE+O,EAAOxP,UAAUmH,MAAQ,WAAc,OAAOrH,KAAKsB,SAASiI,UAC5DmG,EAAOxP,UAAUmC,KAAO,SAAUsF,GAAS,OAAO3H,KAAKsB,SAASiI,SAAS5B,IACzE+H,EAAOxP,UAAU4I,QAAU,WACvB,IAAI2H,EAAiBzQ,KAAKyQ,eAC1B,OAAOA,EACDA,EAAeX,iBAAiBuB,SAASrR,KAAK4H,MAAO6I,EAAeb,iBACpE,MAEVF,EAAOxP,UAAU4K,QAAU,SAAU3I,EAAgBC,GACjD,IAAIC,EAAOrC,KAAK2E,YAAYxE,SAC5BkC,EAAKH,KAAKC,EAAgBC,GAC1BpC,KAAKsB,SAAS6D,IAAI9C,IAEtBqN,EAAOxP,UAAUoK,WAAa,SAAU3C,EAAOxF,EAAgBC,GAC3D,IAAIC,EAAOrC,KAAK2E,YAAYxE,SAC5BkC,EAAKH,KAAKC,EAAgBC,GAC1BpC,KAAKsB,SAAS6Q,OAAOxK,EAAOtF,IAEhCqN,EAAOxP,UAAUuK,SAAW,SAAU2H,EAAaC,GAC/CrS,KAAKsB,SAASgR,KAAKF,EAAaC,IAEpC3C,EAAOxP,UAAUyK,eAAiB,SAAU3F,EAAeuN,GACvD,OAAOvS,KAAKsB,SAASqB,UAAUqC,EAAeuN,IAElD7C,EAAOxP,UAAUkK,YAAc,SAAUL,EAAe/E,EAAeuN,GACnE,OAAOvS,KAAKsB,SAASkR,WAAWzI,EAAe/E,EAAeuN,IAElE7C,EAAOxP,UAAU8K,WAAa,SAAUrD,EAAO3C,EAAeuN,GAC1D,OAAOvS,KAAKsB,SAASmR,SAAS9K,EAAO3C,EAAeuN,IAExD7C,EAAOxP,UAAUgL,eAAiB,SAAU7I,GAGxC,IAFA,IAAIqQ,EAAQrQ,EACR2J,EAAI0G,EAAMC,SAAShS,OAChBqL,KACHzD,EAAqBmK,EAAMC,SAAS3G,IAGxC,IADAA,EAAI0G,EAAME,YAAYjS,OACfqL,KAEH,IADA,IAAI6G,EAAIH,EAAME,YAAY5G,GAAG8G,gBAAgBnS,OACtCkS,KAAK,CAERtK,EADcmK,EAAME,YAAY5G,GAAG8G,gBAAgBD,GAAGrK,WAMlEkH,EAAOiC,iBAAkB,EACzBvR,EAAW,CACP,KACDsP,EAAOxP,UAAW,aAAS,GAC9BE,EAAW,CACP,KACDsP,EAAOxP,UAAW,aAAS,GAC9BE,EAAW,CACP,KACDsP,EAAOxP,UAAW,WAAO,GAC5BE,EAAW,CACP,KACDsP,EAAOxP,UAAW,aAAS,GAC9BwP,EAASa,EAAWnQ,EAAW,CAC3B,YAAgB,UAChB,IACA,YAAO,IAAkB,IAAmB,IAAU,IAAe,IAAiB2N,IACvF2B,GA5MM,CA3CW,WACpB,SAASqD,EAAiBC,GACtBxT,OAAOgE,OAAOxD,KAAM,CAChB6H,MAAO,QACP4B,uBAAuB,GACxBuJ,GAmCP,OAjCAD,EAAiB7S,UAAU6K,UAAY,WACnC,MAAM,IAAIjE,MAAM,wCAEpBiM,EAAiB7S,UAAUmH,MAAQ,WAC/B,MAAM,IAAIP,MAAM,oCAEpBiM,EAAiB7S,UAAUmC,KAAO,SAAUsF,GACxC,MAAM,IAAIb,MAAM,mCAEpBiM,EAAiB7S,UAAU4I,QAAU,WACjC,MAAM,IAAIhC,MAAM,sCAEpBiM,EAAiB7S,UAAU4K,QAAU,SAAU3I,EAAgBC,GAC3D,MAAM,IAAI0E,MAAM,sCAEpBiM,EAAiB7S,UAAUoK,WAAa,SAAU3C,EAAOxF,EAAgBC,GACrE,MAAM,IAAI0E,MAAM,yCAEpBiM,EAAiB7S,UAAUuK,SAAW,SAAU2H,EAAaC,GACzD,MAAM,IAAIvL,MAAM,uCAEpBiM,EAAiB7S,UAAUyK,eAAiB,SAAU3F,EAAeuN,GACjE,MAAM,IAAIzL,MAAM,6CAEpBiM,EAAiB7S,UAAUkK,YAAc,SAAUL,EAAe/E,EAAeuN,GAC7E,MAAM,IAAIzL,MAAM,yCAEpBiM,EAAiB7S,UAAU8K,WAAa,SAAUrD,EAAO3C,EAAeuN,GACpE,MAAM,IAAIzL,MAAM,yCAEpBiM,EAAiB7S,UAAUgL,eAAiB,SAAU7I,GAClD,MAAM,IAAIyE,MAAM,6CAEbiM,EAxCY,IA0PnBnB,EAAkC,SAAUnC,EAAcwD,GAE1D,IADA,IAAIC,EAAiB1T,OAAO2T,KAAK1D,GACxBzO,EAAI,EAAGA,EAAIkS,EAAevS,OAAQK,IAAK,CAC5C,IAAIoS,EAAgBF,EAAelS,GACnC,QAA0BwJ,IAAtByI,GAAmCG,IAAkBH,EAAzD,CAGA,IAAII,EAAc5D,EAAa2D,GAAeC,YAC9C,GAAIA,EACA,IAAK,IAAIxI,EAAK,EAAGA,EAAKwI,EAAY1S,OAAQkK,IACtC,GAAuC,YAAnCwI,EAAYxI,GAAIyI,eAA8B,CAC9C,IAAIC,EAA2BF,EAAYxI,GAE3C,OADAwI,EAAY9I,OAAOM,EAAI,GAChB0I,MAMvB1B,EAAmB,SAAU2B,GAG7B,IAFA,IAAIC,EAAaD,EAAGC,WAChBC,EAAQ,EACH1S,EAAI,EAAG6J,EAAK4I,EAAW9S,OAAQkK,EAAK7J,IAAKA,EACf,IAA3ByS,EAAWzS,GAAG2S,YACZD,EAGV,OAAOA,GAEP3B,EAAuB,SAAUyB,GAEjC,IADA,IAAII,EAAaJ,EAAGI,WACE,OAAfA,GAAqB,CACxB,GAA4B,IAAxBA,EAAWD,SACX,OAAOC,EAEXA,EAAaA,EAAWC,YAE5B,OAAO,MAQX,SAASC,EAAiCC,GAClC,IAAQC,WAAaD,IAAgBA,EAAYE,sBACjDF,EAAYE,qBAAsB,EAClC,IAAIC,aAPW,6CAOoBH,IAI3C,IAAII,EAAQ,WACR,SAASA,EAAKhT,EAASiT,EAAUL,GAC7B/T,KAAKmB,QAAUA,EACfnB,KAAKoU,SAAWA,EAChBpU,KAAK+T,YAAcA,EAwBvB,OAtBAI,EAAKrS,OAAS,WACV,MAAO,CAAC,IAAIC,QAAS,IAAU,IAASsS,GAAG,IAAIC,UAAU,KAE7DH,EAAKjU,UAAU8B,QAAU,WACrB8R,EAAiC9T,KAAK+T,cAE1CI,EAAKjU,UAAU+G,aAAe,SAAUpE,GACpC,IAAI1B,EAAUnB,KAAKmB,QACfiT,EAAWpU,KAAKoU,SAChBvR,EACAuR,EAASG,YAAYpT,EA5BN,gBA+BfiT,EAASI,SAASrT,EA/BH,iBAkCvBgT,EAAKjU,UAAUgC,KAAO,SAAUC,GAC5BnC,KAAKiH,aAAajH,KAAKkH,QAE3BiN,EAAO/T,EAAW,CACd,YAAgB,SACjB+T,GA3BI,GA+BPM,EAAQ,WACR,SAASA,EAAKtT,EAASiT,EAAUL,GAC7B/T,KAAKmB,QAAUA,EACfnB,KAAKoU,SAAWA,EAChBpU,KAAK+T,YAAcA,EAyBvB,OAvBAU,EAAK3S,OAAS,WACV,MAAO,CAAC,IAAIC,QAAS,IAAU,IAASsS,GAAG,IAAIC,UAAU,KAE7DG,EAAKvU,UAAU8B,QAAU,WACrB8R,EAAiC9T,KAAK+T,cAE1CU,EAAKvU,UAAU+G,aAAe,SAAUpE,GAChCA,EACA7C,KAAKoU,SAASI,SAASxU,KAAKmB,QAzDb,gBA4DfnB,KAAKoU,SAASG,YAAYvU,KAAKmB,QA5DhB,iBA+DvBsT,EAAKvU,UAAUgC,KAAO,SAAUC,GAC5BnC,KAAKiH,aAAajH,KAAKkH,QAE3BuN,EAAKvU,UAAUgH,MAAQ,SAAUA,GAC7B,MAAM,IAAIJ,MAAM,4BAEpB2N,EAAOrU,EAAW,CACd,YAAgB,SACjBqU,GA5BI,GAgCPC,EAAe,sDACfC,GAAc,EACdC,EAAiB,WACjB,SAASA,KAUT,OARAA,EAAc1U,UAAU2U,SAAW,SAAUC,GAMzC,OALIH,IACAA,GAAc,EACd,oBAAU,kBACLI,KAAK,mVAEPD,EAAME,QAAQN,EAAc,KAEhCE,EAXS,GAchBK,EAA8B,WAC9B,SAASA,EAA2BC,GAChClV,KAAKkV,UAAYA,EAYrB,OAVAD,EAA2B/U,UAAUiV,OAAS,SAAUC,GACpD,OAAIA,QACO,KAEJpV,KAAKkV,UAAUL,SAASO,IAEnCH,EAA6B7U,EAAW,CACpC,YAAe,gBACf,YAAOwU,IACRK,GAb0B,GAiB7BI,EAAe,WACf,SAASA,EAAY1Q,EAAarD,GAC9BtB,KAAK2E,YAAcA,EACnB3E,KAAKsB,SAAWA,EAChBtB,KAAKqC,KAAO,KAiBhB,OAfAgT,EAAYnV,UAAUgC,KAAO,SAAUC,EAAgBC,GACjC,OAAdpC,KAAKqC,OACLrC,KAAKqC,KAAOrC,KAAK2E,YAAYxE,SAC7BH,KAAKsB,SAAS6D,IAAInF,KAAKqC,OAE3BrC,KAAKqC,KAAKH,KAAKC,EAAgBC,IAEnCiT,EAAYnV,UAAUwC,OAAS,WAC3B1C,KAAKqC,KAAKK,UAEd2S,EAAcjV,EAAW,CACrB,YAAgB,eAChB,IACA,YAAO,IAAkB,MAC1BiV,GApBW,GAwBdC,EAAS,WACT,SAASA,EAAMnU,EAASK,GACpBxB,KAAKmB,QAAUA,EACfnB,KAAKwB,UAAYA,EACjBxB,KAAKuV,YAAa,EAClBvV,KAAKwV,YAAa,EAmDtB,OAjDAF,EAAMxT,OAAS,WACX,MAAO,CAAC,IAAIC,QAAS,MAEzBuT,EAAMpV,UAAU+G,aAAe,SAAUpE,GACjC7C,KAAKuV,WACLvV,KAAKyV,SAGLzV,KAAKwV,YAAa,GAG1BF,EAAMpV,UAAUuV,OAAS,WACrB,IAAIpQ,EAAQrF,KACRA,KAAKkH,MACLlH,KAAKwB,UAAUiD,gBAAe,WACtBY,EAAM6B,OACN7B,EAAMlE,QAAQuU,WAKtB1V,KAAKmB,QAAQwU,QAGrBL,EAAMpV,UAAU0V,SAAW,WACvB5V,KAAKuV,YAAa,EACdvV,KAAKwV,aACLxV,KAAKwV,YAAa,EAClBxV,KAAKyV,UAETzV,KAAKmB,QAAQ0U,iBAAiB,QAAS7V,MACvCA,KAAKmB,QAAQ0U,iBAAiB,OAAQ7V,OAE1CsV,EAAMpV,UAAU4V,SAAW,WACvB9V,KAAKuV,YAAa,EAClBvV,KAAKmB,QAAQ4U,oBAAoB,QAAS/V,MAC1CA,KAAKmB,QAAQ4U,oBAAoB,OAAQ/V,OAE7CsV,EAAMpV,UAAU8V,YAAc,SAAUC,GACrB,UAAXA,EAAE/I,KACFlN,KAAKkH,OAAQ,EAER,IAAIgP,gBAAkBlW,KAAKmB,UAChCnB,KAAKkH,OAAQ,IAGrBoO,EAAQlV,EAAW,CACf,YAAgB,QAAS,IAAY+V,SACtCb,GAvDK,GA2DRc,EAAgB,+BAapB,IAAIC,GAAe,WACf,SAASA,EAAYC,GACjBtW,KAAKsW,QAAUA,EACftW,KAAKuW,QAAU,KACfvW,KAAKwW,SAAU,EACfxW,KAAKyW,0BAA2B,EA2BpC,OAzBAJ,EAAYnW,UAAUwW,WAAa,SAAUtV,EAAWuV,GACpD3W,KAAKuW,QAAU,IAAII,EAAO3W,OAE9BqW,EAAYnW,UAAU0W,SAAW,SAAUC,EAAUnI,GACpC,WAATA,EACAmI,EAASC,wBAAwB9W,KAAKuW,SAGtCvW,KAAKwW,SAAU,GAGvBH,EAAYnW,UAAU6W,KAAO,SAAU3V,GACnC,IAAIiE,EAAQrF,KACZ,OAAOoB,EAAUgM,IAAI,KAChB4J,SAAShX,KAAKsW,SACdW,OAAM,SAAUC,GAAO,OAAO,QAC9BrT,MAAK,SAAUsT,GAChBA,EApCZ,SAAsBb,EAASc,GAC3B,GAAmB,iBAARA,EACP,MAAM,IAAItQ,MAAM,qCAAuCwP,GAE3D,OAAOc,EAAIpC,QAAQoB,GAAe,SAAUiB,EAAOC,GAC/C,IAAIC,EAAQD,EAAGE,OAAO,GAItB,MAHc,MAAVD,GAA4B,MAAVA,IAClBD,EAAKA,EAAGG,OAAO,EAAGH,EAAG3W,OAAS,IAE3B,QAAW,YAAe2W,EAAIhB,GAAW,QA2BrCoB,CAAarS,EAAMiR,QAASa,GACnC9R,EAAMkR,QAAQa,IAAMD,EAChB9R,EAAMmR,UACNnR,EAAMoR,0BAA2B,EACjC,IAAIvC,aAAaiD,QAItBd,EAhCO,GAkCdsB,GAAsB,WACtB,SAASA,EAAmBC,GACxB5X,KAAK4X,MAAQA,EACb5X,KAAKoX,IAAM,KAef,OAbAO,EAAmBzX,UAAU2X,cAAgB,SAAUC,EAASC,EAAWxU,GACvE,GAAIA,EAAYyU,gBACZ,IAAI9D,aAAalU,KAAKoX,IAAKU,GAAS,QAEnC,GAAI,IAAQG,UAAW,CACR,IAAI/D,aAAalU,KAAKoX,IAAKU,GAAS,GAC1CI,aAAa,SAAU,eAE5BlY,KAAKwW,UAAYxW,KAAK4X,MAAMnB,2BACjC,IAAIvC,aAAalU,KAAKoX,KACtBpX,KAAK4X,MAAMnB,0BAA2B,IAGvCkB,EAlBc,GAkCzB,IAAIQ,GAAuB,WACvB,SAASA,KAUT,OARAA,EAAoBjY,UAAUgC,KAAO,SAAUsG,EAAS4P,GACpD5P,EAAQ6P,eAAiB,IAAI,IAAsB7P,EAAQlI,OAAQkI,EAAQ8K,iBAE/E6E,EAAoBjY,UAAUwC,OAAS,SAAU8F,EAAS4P,KAE1DD,EAAsB/X,EAAW,CAC7B,YAAgB,SACjB+X,GAVmB,GActBG,GAAsB,CACtBpW,KAAM,SAAUsG,EAAS4P,EAAQxI,GAC7BpH,EAAQ+P,aAAe/P,EAAQC,KAC/BD,EAAQC,KAAOzI,KAAKyI,MAExB/F,OAAQ,SAAU8F,EAAS4P,GACvB5P,EAAQC,KAAOD,EAAQ+P,aACvB/P,EAAQ+P,aAAe,OAG3BC,GAA0B,WAC1B,SAASA,IACLxY,KAAKyI,KAAO,IAAYtB,QAM5B,OAJAqR,EAAyBpY,EAAW,CAChC,YAAMkY,IACN,YAAgB,YACjBE,GAPsB,GAUzBC,GAAyB,WACzB,SAASA,IACLzY,KAAKyI,KAAO,IAAY0M,OAM5B,OAJAsD,EAAwBrY,EAAW,CAC/B,YAAMkY,IACN,YAAgB,WACjBG,GAPqB,GAUxBC,GAAyB,WACzB,SAASA,IACL1Y,KAAKyI,KAAO,IAAY0M,OAM5B,OAJAuD,EAAwBtY,EAAW,CAC/B,YAAMkY,IACN,YAAgB,WACjBI,GAPqB,GAUxBC,GAA2B,WAC3B,SAASA,IACL3Y,KAAKyI,KAAO,IAAYmQ,SAM5B,OAJAD,EAA0BvY,EAAW,CACjC,YAAMkY,IACN,YAAgB,aACjBK,GAPuB,GAU1BE,GAAyB,WACzB,SAASA,IACL7Y,KAAKyI,KAAO,IAAY0N,OAM5B,OAJA0C,EAAwBzY,EAAW,CAC/B,YAAMkY,IACN,YAAgB,WACjBO,GAPqB,GAW5B,SAASC,GAASjW,GACd,IAAIwC,EAAQrF,KACR+Y,EAAQ/Y,KAAKgZ,cACbC,GAAW,IAAIC,KAASH,EAAMhR,KAClC,GAAIkR,GAAWF,EAAMI,MAKjB,OAJAC,aAAaL,EAAMM,WACnBN,EAAMM,UAAY,KAClBN,EAAMhR,MAAQ,IAAImR,UAClBlZ,KAAKsZ,gBAAgBzW,GAGzBkW,EAAMlW,SAAWA,EACO,OAApBkW,EAAMM,YACNN,EAAMM,UAAYE,YAAW,WACzBR,EAAMM,UAAY,KAClBN,EAAMhR,MAAQ,IAAImR,KAClB7T,EAAMiU,gBAAgBP,EAAMlW,YAC7BkW,EAAMI,MAAQF,IAGzB,IAAIO,GAA2B,WAC3B,SAASA,KA8BT,OA5BAA,EAAwBtZ,UAAUgC,KAAO,SAAUsG,EAAS4P,EAAQe,QAClD,IAAVA,IAAoBA,EAAQ,KAChC,IAAIM,EAAmB,eACnBjR,EAAQkR,WACRD,EAAmB,aAEdjR,EAAQmR,cAAgBnR,EAAQC,OAAS,IAAY0N,SAC1DsD,EAAmB,gBAEvBjR,EAAQ8Q,gBAAkB9Q,EAAQiR,GAClCjR,EAAQ8Q,gBAAgBM,aAAeH,EACvCjR,EAAQiR,GAAoBX,GAC5BtQ,EAAQwQ,cAAgB,CACpBG,MAAOA,EACPpR,KAAM,EACNsR,UAAW,OAGnBG,EAAwBtZ,UAAUwC,OAAS,SAAU8F,EAAS4P,GAE1D5P,EADsBA,EAAQ8Q,gBAAgBM,cACnBpR,EAAQ8Q,gBACnC9Q,EAAQ8Q,gBAAkB,KAC1BF,aAAa5Q,EAAQwQ,cAAcK,WACnC7Q,EAAQwQ,cAAgB,MAE5BQ,EAA0BpZ,EAAW,CACjC,YAAgB,aACjBoZ,GA9BuB,GAkC1BK,GAAQ,GACZ,SAASC,GAAmBC,GACxB,IAAI1U,EAAQrF,KACR+Y,EAAQ/Y,KAAKga,cACjBZ,aAAaL,EAAMM,WACnBN,EAAMM,UAAYE,YAAW,WAAc,OAAOlU,EAAM4U,gBAAgBF,KAAWhB,EAAMI,OAE7F,SAASe,GAAa1J,EAAS3N,EAAUC,GACrC,IAAIuC,EAAQrF,KACR+Y,EAAQ/Y,KAAKga,cAEjB,GADAZ,aAAaL,EAAMM,WACf7I,IAAYuI,EAAMoB,sBAGlB,OAFApB,EAAMjW,SAAW+W,QACjB7Z,KAAKia,gBAAgBzJ,EAAS3N,EAAUC,GAGxCiW,EAAMjW,WAAa+W,KACnBd,EAAMjW,SAAWA,GAErBiW,EAAMM,UAAYE,YAAW,WACzB,IAAIa,EAAYrB,EAAMjW,SACtBiW,EAAMjW,SAAW+W,GACjBxU,EAAM4U,gBAAgBzJ,EAAS3N,EAAUuX,KAC1CrB,EAAMI,OAEb,IAAIkB,GAA2B,WAC3B,SAASA,KA6BT,OA3BAA,EAAwBna,UAAUgC,KAAO,SAAUsG,EAAS4P,EAAQe,QAClD,IAAVA,IAAoBA,EAAQ,KAChC,IAAImB,OAAsC9P,IAAvBhC,EAAQkR,WACvBa,EAAmBD,EAAe,aAAe,OACjDE,EAAYF,EAAeR,GAAqBI,GAChDzR,EAAOD,EAAQC,KACf0R,EAAwB1R,IAAS,IAAY0N,QAAU1N,IAAS,IAAYmQ,SAAW,IAAgB,IAC3GpQ,EAAQyR,gBAAkBzR,EAAQ+R,GAClC/R,EAAQyR,gBAAgBL,aAAeW,EACvC/R,EAAQ+R,GAAoBC,EAC5BhS,EAAQwR,cAAgB,CACpBG,sBAAuBA,EACvBhB,MAAOA,EACPE,UAAW,EACXvW,SAAU+W,KAGlBQ,EAAwBna,UAAUwC,OAAS,SAAU8F,EAAS4P,GAE1D5P,EADsBA,EAAQyR,gBAAgBL,cACnBpR,EAAQyR,gBACnCzR,EAAQyR,gBAAkB,KAC1Bb,aAAa5Q,EAAQwR,cAAcX,WACnC7Q,EAAQwR,cAAgB,MAE5BK,EAA0Bja,EAAW,CACjC,YAAgB,aACjBia,GA7BuB,GAoC9B,SAASI,GAAgBV,GACrB,IAAIzZ,EAJR,SAAiCyZ,GAC7B,OAAQA,EAAMW,MAAQX,EAAMW,KAAK,IAAQX,EAAMY,UAAYZ,EAAMY,SAAS,IAAOZ,EAAMzZ,OAG1Esa,CAAwBb,GACjC/Z,KAAKM,SAAWA,GAGpBN,KAAK6a,oBAAoBd,GAE7B,IAAIe,GAAuB,WACvB,SAASA,KAgBT,OAdAA,EAAoB5a,UAAUgC,KAAO,SAAUsG,EAAS4P,GACpD,IAAK5P,EAAQkR,aAAelR,EAAQuS,YAChC,MAAM,IAAIjU,MAAM,8CAEpB0B,EAAQqS,oBAAsBrS,EAAQkR,WACtClR,EAAQkR,WAAae,IAEzBK,EAAoB5a,UAAUwC,OAAS,SAAU8F,EAAS4P,GACtD5P,EAAQkR,WAAalR,EAAQqS,oBAC7BrS,EAAQqS,oBAAsB,MAElCC,EAAsB1a,EAAW,CAC7B,YAAgB,SACjB0a,GAhBmB,GAoBtBE,GAAmB,WACnB,SAASA,IACLhb,KAAKib,QAAU,GAYnB,OAVAD,EAAgB9a,UAAUgb,OAAS,SAAUxM,GACzC,IAAIiE,EAAW3S,KAAKib,QAAQvM,GAC5B,GAAKiE,EAIL,IADA,IAAI3R,EAAI2R,EAAShS,OACVK,KACH2R,EAAS3R,GAAG2E,KAAK,MAGlBqV,EAdW,GAiBlBG,GAAyB,WACzB,SAASA,EAAsBC,GAC3Bpb,KAAKib,QAAUG,EAAgBH,QAoDnC,OAlDAE,EAAsBrZ,OAAS,WAAc,MAAO,CAACkZ,KACrDG,EAAsBjb,UAAUgC,KAAO,SAAUsG,EAAS4P,GAEtD,IADA,IAAIiD,EAAQ,GACHC,EAAK,EAAGA,EAAK5a,UAAUC,OAAQ2a,IACpCD,EAAMC,EAAK,GAAK5a,UAAU4a,GAE9B,IAAK9S,EAAQ+S,aACT,MAAM,IAAIzU,MAAM,sIAEpB,IAAImU,EAAUjb,KAAKib,QACnB,GAAqB,IAAjBI,EAAM1a,OAAc,CACpB,IAAI6a,EAASH,EAAM,IACJJ,EAAQO,KAAYP,EAAQO,GAAU,KAC5CvR,KAAKzB,GACdA,EAAQiT,WAAaD,MAEpB,MAAIH,EAAM1a,OAAS,GAUpB,MAAM,IAAImG,MAAM,4BARhB,IADA,IAAI9F,EAAIqa,EAAM1a,OACPK,KAAK,CACR,IAAI0a,EAASL,EAAMra,IACJia,EAAQS,KAAYT,EAAQS,GAAU,KAC5CzR,KAAKzB,GAElBA,EAAQiT,WAAaJ,IAM7BF,EAAsBjb,UAAUwC,OAAS,SAAU8F,EAAS4P,GACxD,IAAI6C,EAAUjb,KAAKib,QACfvM,EAAOlG,EAAQiT,WAEnB,GADAjT,EAAQiT,WAAa,KACjB9b,MAAMgc,QAAQjN,GAGd,IAFA,IAAI2M,EAAQ3M,EACR1N,EAAIqa,EAAM1a,OACPK,KAAK,CACR,IACI2R,KAAWsI,EADPI,EAAMra,KAELuJ,OAAOoI,EAAShK,QAAQH,GAAU,QAI3CmK,EAAWsI,EAAQvM,IACdnE,OAAOoI,EAAShK,QAAQH,GAAU,IAGnD2S,EAAwB/a,EAAW,CAC/B,YAAgB,WACjB+a,GArDqB,GAyDxBS,GAAqB,2IACrBC,GAAuB,kHACvBC,GAAgC,WAChC,SAASA,KA+BT,OA7BAA,EAA6B5b,UAAUgC,KAAO,SAAUsG,EAAS4P,GAE7D,IADA,IAAI2D,EAAS,GACJT,EAAK,EAAGA,EAAK5a,UAAUC,OAAQ2a,IACpCS,EAAOT,EAAK,GAAK5a,UAAU4a,GAE/B,GAAsB,IAAlBS,EAAOpb,OACP,MAAM,IAAImG,MAAM8U,IAEpB,GAAIpT,EAAQC,OAAS,IAAY0N,QAAU3N,EAAQC,OAAS,IAAYmQ,SACpE,MAAM,IAAI9R,MAAM+U,IAEpB,IAAIxD,EAAiB7P,EAAQS,gBAAgB+S,YAAYxT,EAAQlI,OAAQkI,EAAQ8K,gBACjF,IAAK+E,EAAe4D,QAChB,MAAM,IAAInV,MAAM+U,IAEpBrT,EAAQ6P,eAAiBA,EACzBA,EAAe6D,gBAAkB1T,EAAQ6P,eAAe4D,QACxD,IAAIA,EAAU,IAAI,IAAgBF,GAClC1D,EAAe4D,QAAUA,GAE7BH,EAA6B5b,UAAUwC,OAAS,SAAU8F,EAAS4P,GAC/D,IAAIC,EAAiB7P,EAAQ6P,eAC7BA,EAAe4D,QAAQE,UACvB9D,EAAe4D,QAAU5D,EAAe6D,gBACxC7D,EAAe6D,gBAAkB,MAErCJ,EAA+B1b,EAAW,CACtC,YAAgB,kBACjB0b,GA/B4B,GA2EnC,SAASM,GAAUC,GACf,IAAIC,EAAaD,EAAOjb,UAAUgM,IAAI,KAClCmP,EAASF,EAAOG,QAAQD,OAC5BD,EAAWG,kBAAkB,QAAS,CAClC,MAAS,SAAUC,GACf,OAAOH,EAAOI,aAAaD,GAAS7Y,MAAK,SAAU+Y,GAC/C,IAAItR,EACAuR,EAAgBD,EAActN,SAAS4C,aAAa,YACpD4K,EAAmBF,EAActN,SAAS4C,aAAa,kBACvDxD,EAXT,qBAAqBqO,KAWUL,GAXI,GAAGM,cAmBjC,OAPIH,GACAA,EAAgBA,EAAcI,MAAM,KAAKnQ,KAAI,SAAUoQ,GAAK,OAAOA,EAAEC,UACrEP,EAActN,SAAS8N,gBAAgB,aAGvCP,EAAgB,IAEbvR,EAAK,IAAOoD,GAzDnC,SAA+BpD,GAc3B,IAbA,IAAIoD,EAAOpD,EAAGoD,KAAMgO,EAAUpR,EAAGoR,QAASG,EAAgBvR,EAAGuR,cAAeC,EAAmBxR,EAAGwR,iBAC9FO,EAAkB,WAClB,SAASA,KAST,OAPAA,EAAend,UAAUgC,KAAO,SAAUC,GACtCnC,KAAKsd,QAAUnb,GAEnBkb,EAAiBjd,EAAW,CACxB,YAAcsO,GACd,YAAQgO,IACTW,GATc,GAYZrc,EAAI,EAAG6J,EAAKgS,EAAclc,OAAQK,EAAI6J,IAAM7J,EACjD,YAAS6b,EAAc7b,GAAvB,CAA2Bqc,GAE/B,OAAQP,GACJ,IAAK,OACD,YAAa,CAAErU,KAAM,QAArB,CAA+B4U,GAC/B,MACJ,IAAK,SACD,YAAa,CAAE5U,KAAM,UAArB,CAAiC4U,GACjC,MACJ,IAAK,GACD,YAAaA,GACb,MACJ,KAAK,KACD,MACJ,QACI,oBAAU,6BACLtI,KAAK,2EAAiF+H,GAGnG,OAAOO,EAuBgCE,CAAsB,CAAE7O,KAAMA,EAAMgO,QAASA,EAASG,cAAeA,EAAeC,iBAAkBA,IAAqBxR,QAMtK,SAASkS,GAAYnB,GAppBjB,IAAInI,aAFe,8CAwpBnBmI,EAAOoB,gBAAgBvc,EAASsE,EAAIc,EAAMS,EAAM2I,EAAQyE,EAAMM,EAAMY,EAAaC,EAAOL,EAA4BuD,GAAwBC,GAAuBC,GAAuBC,GAAyBE,GAAuBW,GAAyBa,GAAyBS,GAAqBK,GAAuBW,GAA8B3D,IACtWiE,GAAUC,GACV,IAAIC,EAAaD,EAAOjb,UAAUgM,IAAI,KAClCsQ,EAAsB,CACtBC,MAAO,SAAUrH,GACb,IAAIhL,EACJ,OAAOA,EAAK,IAAOgL,GA7Z/B,SAA4BA,GAWxB,OAVe,SAAU7Q,GAErB,SAASmY,IACL,OAAkB,OAAXnY,GAAmBA,EAAOC,MAAM1F,KAAMU,YAAcV,KAK/D,OAPAF,EAAU8d,EAASnY,GAInBmY,EAAUxd,EAAW,CACjB,YAAS,IAAIiW,GAAYC,KAC1BsH,GAPO,CASZjG,IAmZoCkG,CAAmBvH,GAAUhL,IAGnE,CAAC,OAAQ,QAAS,QAAS,QAAS,SAASsB,SAAQ,SAAUkR,GAAO,OAAOxB,EAAWG,kBAAkBqB,EAAKJ","file":"vendor.aurelia-templating-resources~2fe83516.1adc6f0cd97e427e59a1.chunk.js","sourcesContent":["import { Container, inject, Optional } from 'aurelia-dependency-injection';\nimport { DOM, FEATURE } from 'aurelia-pal';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport { CompositionEngine, ViewSlot, ViewResources, bindable, noView, customElement, customAttribute, templateController, BoundViewFactory, TargetInstruction, Animator, resource, useView, useShadowDOM, ViewEngine } from 'aurelia-templating';\nimport { createOverrideContext, bindingMode, BindingBehavior, ValueConverter, sourceContext, mergeSplice, ObserverLocator, valueConverter, DataAttributeObserver, bindingBehavior, targetContext, EventSubscriber } from 'aurelia-binding';\nimport { getLogger } from 'aurelia-logging';\nimport { Loader } from 'aurelia-loader';\nimport { relativeToFile } from 'aurelia-path';\nimport { mixin } from 'aurelia-metadata';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\n\nvar ActivationStrategy;\r\n(function (ActivationStrategy) {\r\n ActivationStrategy[\"InvokeLifecycle\"] = \"invoke-lifecycle\";\r\n ActivationStrategy[\"Replace\"] = \"replace\";\r\n})(ActivationStrategy || (ActivationStrategy = {}));\r\nvar Compose = (function () {\r\n function Compose(element, container, compositionEngine, viewSlot, viewResources, taskQueue) {\r\n this.activationStrategy = ActivationStrategy.InvokeLifecycle;\r\n this.element = element;\r\n this.container = container;\r\n this.compositionEngine = compositionEngine;\r\n this.viewSlot = viewSlot;\r\n this.viewResources = viewResources;\r\n this.taskQueue = taskQueue;\r\n this.currentController = null;\r\n this.currentViewModel = null;\r\n this.changes = Object.create(null);\r\n }\r\n Compose.inject = function () {\r\n return [DOM.Element, Container, CompositionEngine, ViewSlot, ViewResources, TaskQueue];\r\n };\r\n Compose.prototype.created = function (owningView) {\r\n this.owningView = owningView;\r\n };\r\n Compose.prototype.bind = function (bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n var changes = this.changes;\r\n changes.view = this.view;\r\n changes.viewModel = this.viewModel;\r\n changes.model = this.model;\r\n if (!this.pendingTask) {\r\n processChanges(this);\r\n }\r\n };\r\n Compose.prototype.unbind = function () {\r\n this.changes = Object.create(null);\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n var returnToCache = true;\r\n var skipAnimation = true;\r\n this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n };\r\n Compose.prototype.modelChanged = function (newValue, oldValue) {\r\n this.changes.model = newValue;\r\n requestUpdate(this);\r\n };\r\n Compose.prototype.viewChanged = function (newValue, oldValue) {\r\n this.changes.view = newValue;\r\n requestUpdate(this);\r\n };\r\n Compose.prototype.viewModelChanged = function (newValue, oldValue) {\r\n this.changes.viewModel = newValue;\r\n requestUpdate(this);\r\n };\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"model\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"view\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"viewModel\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"activationStrategy\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"swapOrder\", void 0);\r\n Compose = __decorate([\r\n noView,\r\n customElement('compose')\r\n ], Compose);\r\n return Compose;\r\n}());\r\nfunction isEmpty(obj) {\r\n for (var _ in obj) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction tryActivateViewModel(vm, model) {\r\n if (vm && typeof vm.activate === 'function') {\r\n return Promise.resolve(vm.activate(model));\r\n }\r\n}\r\nfunction createInstruction(composer, instruction) {\r\n return Object.assign(instruction, {\r\n bindingContext: composer.bindingContext,\r\n overrideContext: composer.overrideContext,\r\n owningView: composer.owningView,\r\n container: composer.container,\r\n viewSlot: composer.viewSlot,\r\n viewResources: composer.viewResources,\r\n currentController: composer.currentController,\r\n host: composer.element,\r\n swapOrder: composer.swapOrder\r\n });\r\n}\r\nfunction processChanges(composer) {\r\n var changes = composer.changes;\r\n composer.changes = Object.create(null);\r\n if (needsReInitialization(composer, changes)) {\r\n var instruction = {\r\n view: composer.view,\r\n viewModel: composer.currentViewModel || composer.viewModel,\r\n model: composer.model\r\n };\r\n instruction = Object.assign(instruction, changes);\r\n instruction = createInstruction(composer, instruction);\r\n composer.pendingTask = composer.compositionEngine.compose(instruction).then(function (controller) {\r\n composer.currentController = controller;\r\n composer.currentViewModel = controller ? controller.viewModel : null;\r\n });\r\n }\r\n else {\r\n composer.pendingTask = tryActivateViewModel(composer.currentViewModel, changes.model);\r\n if (!composer.pendingTask) {\r\n return;\r\n }\r\n }\r\n composer.pendingTask = composer.pendingTask\r\n .then(function () {\r\n completeCompositionTask(composer);\r\n }, function (reason) {\r\n completeCompositionTask(composer);\r\n throw reason;\r\n });\r\n}\r\nfunction completeCompositionTask(composer) {\r\n composer.pendingTask = null;\r\n if (!isEmpty(composer.changes)) {\r\n processChanges(composer);\r\n }\r\n}\r\nfunction requestUpdate(composer) {\r\n if (composer.pendingTask || composer.updateRequested) {\r\n return;\r\n }\r\n composer.updateRequested = true;\r\n composer.taskQueue.queueMicroTask(function () {\r\n composer.updateRequested = false;\r\n processChanges(composer);\r\n });\r\n}\r\nfunction needsReInitialization(composer, changes) {\r\n var activationStrategy = composer.activationStrategy;\r\n var vm = composer.currentViewModel;\r\n if (vm && typeof vm.determineActivationStrategy === 'function') {\r\n activationStrategy = vm.determineActivationStrategy();\r\n }\r\n return 'view' in changes\r\n || 'viewModel' in changes\r\n || activationStrategy === ActivationStrategy.Replace;\r\n}\n\nvar IfCore = (function () {\r\n function IfCore(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n this.showing = false;\r\n this.cache = true;\r\n }\r\n IfCore.prototype.bind = function (bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n };\r\n IfCore.prototype.unbind = function () {\r\n if (this.view === null) {\r\n return;\r\n }\r\n this.view.unbind();\r\n if (!this.viewFactory.isCaching) {\r\n return;\r\n }\r\n if (this.showing) {\r\n this.showing = false;\r\n this.viewSlot.remove(this.view, true, true);\r\n }\r\n else {\r\n this.view.returnToCache();\r\n }\r\n this.view = null;\r\n };\r\n IfCore.prototype._show = function () {\r\n if (this.showing) {\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n return;\r\n }\r\n if (this.view === null) {\r\n this.view = this.viewFactory.create();\r\n }\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n this.showing = true;\r\n return this.viewSlot.add(this.view);\r\n };\r\n IfCore.prototype._hide = function () {\r\n var _this = this;\r\n if (!this.showing) {\r\n return;\r\n }\r\n this.showing = false;\r\n var removed = this.viewSlot.remove(this.view);\r\n if (removed instanceof Promise) {\r\n return removed.then(function () {\r\n _this._unbindView();\r\n });\r\n }\r\n this._unbindView();\r\n };\r\n IfCore.prototype._unbindView = function () {\r\n var cache = this.cache === 'false' ? false : !!this.cache;\r\n this.view.unbind();\r\n if (!cache) {\r\n this.view = null;\r\n }\r\n };\r\n return IfCore;\r\n}());\n\nvar If = (function (_super) {\r\n __extends(If, _super);\r\n function If() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.cache = true;\r\n return _this;\r\n }\r\n If.prototype.bind = function (bindingContext, overrideContext) {\r\n _super.prototype.bind.call(this, bindingContext, overrideContext);\r\n if (this.condition) {\r\n this._show();\r\n }\r\n else {\r\n this._hide();\r\n }\r\n };\r\n If.prototype.conditionChanged = function (newValue) {\r\n this._update(newValue);\r\n };\r\n If.prototype._update = function (show) {\r\n var _this = this;\r\n if (this.animating) {\r\n return;\r\n }\r\n var promise;\r\n if (this.elseVm) {\r\n promise = show ? this._swap(this.elseVm, this) : this._swap(this, this.elseVm);\r\n }\r\n else {\r\n promise = show ? this._show() : this._hide();\r\n }\r\n if (promise) {\r\n this.animating = true;\r\n promise.then(function () {\r\n _this.animating = false;\r\n if (_this.condition !== _this.showing) {\r\n _this._update(_this.condition);\r\n }\r\n });\r\n }\r\n };\r\n If.prototype._swap = function (remove, add) {\r\n switch (this.swapOrder) {\r\n case 'before':\r\n return Promise.resolve(add._show()).then(function () { return remove._hide(); });\r\n case 'with':\r\n return Promise.all([remove._hide(), add._show()]);\r\n default:\r\n var promise = remove._hide();\r\n return promise ? promise.then(function () { return add._show(); }) : add._show();\r\n }\r\n };\r\n __decorate([\r\n bindable({ primaryProperty: true })\r\n ], If.prototype, \"condition\", void 0);\r\n __decorate([\r\n bindable\r\n ], If.prototype, \"swapOrder\", void 0);\r\n __decorate([\r\n bindable\r\n ], If.prototype, \"cache\", void 0);\r\n If = __decorate([\r\n customAttribute('if'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], If);\r\n return If;\r\n}(IfCore));\n\nvar Else = (function (_super) {\r\n __extends(Else, _super);\r\n function Else(viewFactory, viewSlot) {\r\n var _this = _super.call(this, viewFactory, viewSlot) || this;\r\n _this._registerInIf();\r\n return _this;\r\n }\r\n Else.prototype.bind = function (bindingContext, overrideContext) {\r\n _super.prototype.bind.call(this, bindingContext, overrideContext);\r\n if (this.ifVm.condition) {\r\n this._hide();\r\n }\r\n else {\r\n this._show();\r\n }\r\n };\r\n Else.prototype._registerInIf = function () {\r\n var previous = this.viewSlot.anchor.previousSibling;\r\n while (previous && !previous.au) {\r\n previous = previous.previousSibling;\r\n }\r\n if (!previous || !previous.au.if) {\r\n throw new Error(\"Can't find matching If for Else custom attribute.\");\r\n }\r\n this.ifVm = previous.au.if.viewModel;\r\n this.ifVm.elseVm = this;\r\n };\r\n Else = __decorate([\r\n customAttribute('else'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], Else);\r\n return Else;\r\n}(IfCore));\n\nvar With = (function () {\r\n function With(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.parentOverrideContext = null;\r\n this.view = null;\r\n }\r\n With.prototype.bind = function (bindingContext, overrideContext) {\r\n this.parentOverrideContext = overrideContext;\r\n this.valueChanged(this.value);\r\n };\r\n With.prototype.valueChanged = function (newValue) {\r\n var overrideContext = createOverrideContext(newValue, this.parentOverrideContext);\r\n var view = this.view;\r\n if (!view) {\r\n view = this.view = this.viewFactory.create();\r\n view.bind(newValue, overrideContext);\r\n this.viewSlot.add(view);\r\n }\r\n else {\r\n view.bind(newValue, overrideContext);\r\n }\r\n };\r\n With.prototype.unbind = function () {\r\n var view = this.view;\r\n this.parentOverrideContext = null;\r\n if (view) {\r\n view.unbind();\r\n }\r\n };\r\n With = __decorate([\r\n customAttribute('with'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], With);\r\n return With;\r\n}());\n\nvar oneTime = bindingMode.oneTime;\r\nfunction updateOverrideContexts(views, startIndex) {\r\n var length = views.length;\r\n if (startIndex > 0) {\r\n startIndex = startIndex - 1;\r\n }\r\n for (; startIndex < length; ++startIndex) {\r\n updateOverrideContext(views[startIndex].overrideContext, startIndex, length);\r\n }\r\n}\r\nfunction createFullOverrideContext(repeat, data, index, length, key) {\r\n var bindingContext = {};\r\n var overrideContext = createOverrideContext(bindingContext, repeat.scope.overrideContext);\r\n if (typeof key !== 'undefined') {\r\n bindingContext[repeat.key] = key;\r\n bindingContext[repeat.value] = data;\r\n }\r\n else {\r\n bindingContext[repeat.local] = data;\r\n }\r\n updateOverrideContext(overrideContext, index, length);\r\n return overrideContext;\r\n}\r\nfunction updateOverrideContext(overrideContext, index, length) {\r\n var first = (index === 0);\r\n var last = (index === length - 1);\r\n var even = index % 2 === 0;\r\n overrideContext.$index = index;\r\n overrideContext.$first = first;\r\n overrideContext.$last = last;\r\n overrideContext.$middle = !(first || last);\r\n overrideContext.$odd = !even;\r\n overrideContext.$even = even;\r\n}\r\nfunction getItemsSourceExpression(instruction, attrName) {\r\n return instruction.behaviorInstructions\r\n .filter(function (bi) { return bi.originalAttrName === attrName; })[0]\r\n .attributes\r\n .items\r\n .sourceExpression;\r\n}\r\nfunction unwrapExpression(expression) {\r\n var unwrapped = false;\r\n while (expression instanceof BindingBehavior) {\r\n expression = expression.expression;\r\n }\r\n while (expression instanceof ValueConverter) {\r\n expression = expression.expression;\r\n unwrapped = true;\r\n }\r\n return unwrapped ? expression : null;\r\n}\r\nfunction isOneTime(expression) {\r\n while (expression instanceof BindingBehavior) {\r\n if (expression.name === 'oneTime') {\r\n return true;\r\n }\r\n expression = expression.expression;\r\n }\r\n return false;\r\n}\r\nfunction updateOneTimeBinding(binding) {\r\n if (binding.call && binding.mode === oneTime) {\r\n binding.call(sourceContext);\r\n }\r\n else if (binding.updateOneTimeBindings) {\r\n binding.updateOneTimeBindings();\r\n }\r\n}\r\nfunction indexOf(array, item, matcher, startIndex) {\r\n if (!matcher) {\r\n return array.indexOf(item);\r\n }\r\n var length = array.length;\r\n for (var index = startIndex || 0; index < length; index++) {\r\n if (matcher(array[index], item)) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n}\n\nvar ArrayRepeatStrategy = (function () {\r\n function ArrayRepeatStrategy() {\r\n }\r\n ArrayRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getArrayObserver(items);\r\n };\r\n ArrayRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var $repeat = repeat;\r\n var itemsLength = items.length;\r\n if (!items || itemsLength === 0) {\r\n $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n return;\r\n }\r\n var children = $repeat.views();\r\n var viewsLength = children.length;\r\n if (viewsLength === 0) {\r\n this._standardProcessInstanceChanged($repeat, items);\r\n return;\r\n }\r\n if ($repeat.viewsRequireLifecycle) {\r\n var childrenSnapshot = children.slice(0);\r\n var itemNameInBindingContext = $repeat.local;\r\n var matcher_1 = $repeat.matcher();\r\n var itemsPreviouslyInViews_1 = [];\r\n var viewsToRemove = [];\r\n for (var index = 0; index < viewsLength; index++) {\r\n var view = childrenSnapshot[index];\r\n var oldItem = view.bindingContext[itemNameInBindingContext];\r\n if (indexOf(items, oldItem, matcher_1) === -1) {\r\n viewsToRemove.push(view);\r\n }\r\n else {\r\n itemsPreviouslyInViews_1.push(oldItem);\r\n }\r\n }\r\n var updateViews = void 0;\r\n var removePromise = void 0;\r\n if (itemsPreviouslyInViews_1.length > 0) {\r\n removePromise = $repeat.removeViews(viewsToRemove, true, !$repeat.viewsRequireLifecycle);\r\n updateViews = function () {\r\n for (var index = 0; index < itemsLength; index++) {\r\n var item = items[index];\r\n var indexOfView = indexOf(itemsPreviouslyInViews_1, item, matcher_1, index);\r\n var view = void 0;\r\n if (indexOfView === -1) {\r\n var overrideContext = createFullOverrideContext($repeat, items[index], index, itemsLength);\r\n $repeat.insertView(index, overrideContext.bindingContext, overrideContext);\r\n itemsPreviouslyInViews_1.splice(index, 0, undefined);\r\n }\r\n else if (indexOfView === index) {\r\n view = children[indexOfView];\r\n itemsPreviouslyInViews_1[indexOfView] = undefined;\r\n }\r\n else {\r\n view = children[indexOfView];\r\n $repeat.moveView(indexOfView, index);\r\n itemsPreviouslyInViews_1.splice(indexOfView, 1);\r\n itemsPreviouslyInViews_1.splice(index, 0, undefined);\r\n }\r\n if (view) {\r\n updateOverrideContext(view.overrideContext, index, itemsLength);\r\n }\r\n }\r\n _this._inPlaceProcessItems($repeat, items);\r\n };\r\n }\r\n else {\r\n removePromise = $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n updateViews = function () { return _this._standardProcessInstanceChanged($repeat, items); };\r\n }\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(updateViews);\r\n }\r\n else {\r\n updateViews();\r\n }\r\n }\r\n else {\r\n this._inPlaceProcessItems($repeat, items);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._standardProcessInstanceChanged = function (repeat, items) {\r\n for (var i = 0, ii = items.length; i < ii; i++) {\r\n var overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._inPlaceProcessItems = function (repeat, items) {\r\n var itemsLength = items.length;\r\n var viewsLength = repeat.viewCount();\r\n while (viewsLength > itemsLength) {\r\n viewsLength--;\r\n repeat.removeView(viewsLength, true, !repeat.viewsRequireLifecycle);\r\n }\r\n var local = repeat.local;\r\n for (var i = 0; i < viewsLength; i++) {\r\n var view = repeat.view(i);\r\n var last = i === itemsLength - 1;\r\n var middle = i !== 0 && !last;\r\n var bindingContext = view.bindingContext;\r\n var overrideContext = view.overrideContext;\r\n if (bindingContext[local] === items[i]\r\n && overrideContext.$middle === middle\r\n && overrideContext.$last === last) {\r\n continue;\r\n }\r\n bindingContext[local] = items[i];\r\n overrideContext.$middle = middle;\r\n overrideContext.$last = last;\r\n repeat.updateBindings(view);\r\n }\r\n for (var i = viewsLength; i < itemsLength; i++) {\r\n var overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype.instanceMutated = function (repeat, array, splices) {\r\n var _this = this;\r\n if (repeat.__queuedSplices) {\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var _a = splices[i], index = _a.index, removed = _a.removed, addedCount = _a.addedCount;\r\n mergeSplice(repeat.__queuedSplices, index, removed, addedCount);\r\n }\r\n repeat.__array = array.slice(0);\r\n return;\r\n }\r\n var maybePromise = this._runSplices(repeat, array.slice(0), splices);\r\n if (maybePromise instanceof Promise) {\r\n var queuedSplices_1 = repeat.__queuedSplices = [];\r\n var runQueuedSplices_1 = function () {\r\n if (!queuedSplices_1.length) {\r\n repeat.__queuedSplices = undefined;\r\n repeat.__array = undefined;\r\n return;\r\n }\r\n var nextPromise = _this._runSplices(repeat, repeat.__array, queuedSplices_1) || Promise.resolve();\r\n queuedSplices_1 = repeat.__queuedSplices = [];\r\n nextPromise.then(runQueuedSplices_1);\r\n };\r\n maybePromise.then(runQueuedSplices_1);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._runSplices = function (repeat, array, splices) {\r\n var _this = this;\r\n var removeDelta = 0;\r\n var rmPromises = [];\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var splice = splices[i];\r\n var removed = splice.removed;\r\n for (var j = 0, jj = removed.length; j < jj; ++j) {\r\n var viewOrPromise = repeat.removeView(splice.index + removeDelta + rmPromises.length, true);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n }\r\n removeDelta -= splice.addedCount;\r\n }\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(function () {\r\n var spliceIndexLow = _this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n });\r\n }\r\n var spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n return undefined;\r\n };\r\n ArrayRepeatStrategy.prototype._handleAddedSplices = function (repeat, array, splices) {\r\n var spliceIndex;\r\n var spliceIndexLow;\r\n var arrayLength = array.length;\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var splice = splices[i];\r\n var addIndex = spliceIndex = splice.index;\r\n var end = splice.index + splice.addedCount;\r\n if (typeof spliceIndexLow === 'undefined' || spliceIndexLow === null || spliceIndexLow > splice.index) {\r\n spliceIndexLow = spliceIndex;\r\n }\r\n for (; addIndex < end; ++addIndex) {\r\n var overrideContext = createFullOverrideContext(repeat, array[addIndex], addIndex, arrayLength);\r\n repeat.insertView(addIndex, overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n return spliceIndexLow;\r\n };\r\n return ArrayRepeatStrategy;\r\n}());\n\nvar MapRepeatStrategy = (function () {\r\n function MapRepeatStrategy() {\r\n }\r\n MapRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getMapObserver(items);\r\n };\r\n MapRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, items); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n };\r\n MapRepeatStrategy.prototype._standardProcessItems = function (repeat, items) {\r\n var index = 0;\r\n var overrideContext;\r\n items.forEach(function (value, key) {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size, key);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n };\r\n MapRepeatStrategy.prototype.instanceMutated = function (repeat, map, records) {\r\n var key;\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var removeIndex;\r\n var addIndex;\r\n var record;\r\n var rmPromises = [];\r\n var viewOrPromise;\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n key = record.key;\r\n switch (record.type) {\r\n case 'update':\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), removeIndex, map.size, key);\r\n repeat.insertView(removeIndex, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'add':\r\n addIndex = repeat.viewCount() <= map.size - 1 ? repeat.viewCount() : map.size - 1;\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), addIndex, map.size, key);\r\n repeat.insertView(map.size - 1, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n if (record.oldValue === undefined) {\r\n return;\r\n }\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(function () {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n }\r\n else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n };\r\n MapRepeatStrategy.prototype._getViewIndexByKey = function (repeat, key) {\r\n var i;\r\n var ii;\r\n var child;\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.key] === key) {\r\n return i;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return MapRepeatStrategy;\r\n}());\n\nvar NullRepeatStrategy = (function () {\r\n function NullRepeatStrategy() {\r\n }\r\n NullRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n repeat.removeAllViews(true);\r\n };\r\n NullRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n };\r\n return NullRepeatStrategy;\r\n}());\n\nvar NumberRepeatStrategy = (function () {\r\n function NumberRepeatStrategy() {\r\n }\r\n NumberRepeatStrategy.prototype.getCollectionObserver = function () {\r\n return null;\r\n };\r\n NumberRepeatStrategy.prototype.instanceChanged = function (repeat, value) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, value); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, value);\r\n };\r\n NumberRepeatStrategy.prototype._standardProcessItems = function (repeat, value) {\r\n var childrenLength = repeat.viewCount();\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var viewsToRemove;\r\n value = Math.floor(value);\r\n viewsToRemove = childrenLength - value;\r\n if (viewsToRemove > 0) {\r\n if (viewsToRemove > childrenLength) {\r\n viewsToRemove = childrenLength;\r\n }\r\n for (i = 0, ii = viewsToRemove; i < ii; ++i) {\r\n repeat.removeView(childrenLength - (i + 1), true, !repeat.viewsRequireLifecycle);\r\n }\r\n return;\r\n }\r\n for (i = childrenLength, ii = value; i < ii; ++i) {\r\n overrideContext = createFullOverrideContext(repeat, i, i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n updateOverrideContexts(repeat.views(), 0);\r\n };\r\n return NumberRepeatStrategy;\r\n}());\n\nvar SetRepeatStrategy = (function () {\r\n function SetRepeatStrategy() {\r\n }\r\n SetRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getSetObserver(items);\r\n };\r\n SetRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, items); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n };\r\n SetRepeatStrategy.prototype._standardProcessItems = function (repeat, items) {\r\n var index = 0;\r\n var overrideContext;\r\n items.forEach(function (value) {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n };\r\n SetRepeatStrategy.prototype.instanceMutated = function (repeat, set, records) {\r\n var value;\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var removeIndex;\r\n var record;\r\n var rmPromises = [];\r\n var viewOrPromise;\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n value = record.value;\r\n switch (record.type) {\r\n case 'add':\r\n var size = Math.max(set.size - 1, 0);\r\n overrideContext = createFullOverrideContext(repeat, value, size, set.size);\r\n repeat.insertView(size, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n removeIndex = this._getViewIndexByValue(repeat, value);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(function () {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n }\r\n else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n };\r\n SetRepeatStrategy.prototype._getViewIndexByValue = function (repeat, value) {\r\n var i;\r\n var ii;\r\n var child;\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.local] === value) {\r\n return i;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return SetRepeatStrategy;\r\n}());\n\nvar RepeatStrategyLocator = (function () {\r\n function RepeatStrategyLocator() {\r\n this.matchers = [];\r\n this.strategies = [];\r\n this.addStrategy(function (items) { return items === null || items === undefined; }, new NullRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Array; }, new ArrayRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Map; }, new MapRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Set; }, new SetRepeatStrategy());\r\n this.addStrategy(function (items) { return typeof items === 'number'; }, new NumberRepeatStrategy());\r\n }\r\n RepeatStrategyLocator.prototype.addStrategy = function (matcher, strategy) {\r\n this.matchers.push(matcher);\r\n this.strategies.push(strategy);\r\n };\r\n RepeatStrategyLocator.prototype.getStrategy = function (items) {\r\n var matchers = this.matchers;\r\n for (var i = 0, ii = matchers.length; i < ii; ++i) {\r\n if (matchers[i](items)) {\r\n return this.strategies[i];\r\n }\r\n }\r\n return null;\r\n };\r\n return RepeatStrategyLocator;\r\n}());\n\nvar lifecycleOptionalBehaviors = ['focus', 'if', 'else', 'repeat', 'show', 'hide', 'with'];\r\nfunction behaviorRequiresLifecycle(instruction) {\r\n var t = instruction.type;\r\n var name = t.elementName !== null ? t.elementName : t.attributeName;\r\n return lifecycleOptionalBehaviors.indexOf(name) === -1 && (t.handlesAttached || t.handlesBind || t.handlesCreated || t.handlesDetached || t.handlesUnbind)\r\n || t.viewFactory && viewsRequireLifecycle(t.viewFactory)\r\n || instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\nfunction targetRequiresLifecycle(instruction) {\r\n var behaviors = instruction.behaviorInstructions;\r\n if (behaviors) {\r\n var i = behaviors.length;\r\n while (i--) {\r\n if (behaviorRequiresLifecycle(behaviors[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\nfunction viewsRequireLifecycle(viewFactory) {\r\n if ('_viewsRequireLifecycle' in viewFactory) {\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n viewFactory._viewsRequireLifecycle = false;\r\n if (viewFactory.viewFactory) {\r\n viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory);\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n if (viewFactory.template.querySelector('.au-animate')) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n for (var id in viewFactory.instructions) {\r\n if (targetRequiresLifecycle(viewFactory.instructions[id])) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n }\r\n viewFactory._viewsRequireLifecycle = false;\r\n return false;\r\n}\n\nvar AbstractRepeater = (function () {\r\n function AbstractRepeater(options) {\r\n Object.assign(this, {\r\n local: 'items',\r\n viewsRequireLifecycle: true\r\n }, options);\r\n }\r\n AbstractRepeater.prototype.viewCount = function () {\r\n throw new Error('subclass must implement `viewCount`');\r\n };\r\n AbstractRepeater.prototype.views = function () {\r\n throw new Error('subclass must implement `views`');\r\n };\r\n AbstractRepeater.prototype.view = function (index) {\r\n throw new Error('subclass must implement `view`');\r\n };\r\n AbstractRepeater.prototype.matcher = function () {\r\n throw new Error('subclass must implement `matcher`');\r\n };\r\n AbstractRepeater.prototype.addView = function (bindingContext, overrideContext) {\r\n throw new Error('subclass must implement `addView`');\r\n };\r\n AbstractRepeater.prototype.insertView = function (index, bindingContext, overrideContext) {\r\n throw new Error('subclass must implement `insertView`');\r\n };\r\n AbstractRepeater.prototype.moveView = function (sourceIndex, targetIndex) {\r\n throw new Error('subclass must implement `moveView`');\r\n };\r\n AbstractRepeater.prototype.removeAllViews = function (returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeAllViews`');\r\n };\r\n AbstractRepeater.prototype.removeViews = function (viewsToRemove, returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeView`');\r\n };\r\n AbstractRepeater.prototype.removeView = function (index, returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeView`');\r\n };\r\n AbstractRepeater.prototype.updateBindings = function (view) {\r\n throw new Error('subclass must implement `updateBindings`');\r\n };\r\n return AbstractRepeater;\r\n}());\n\nvar Repeat = (function (_super) {\r\n __extends(Repeat, _super);\r\n function Repeat(viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator) {\r\n var _this = _super.call(this, {\r\n local: 'item',\r\n viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\r\n }) || this;\r\n _this.viewFactory = viewFactory;\r\n _this.instruction = instruction;\r\n _this.viewSlot = viewSlot;\r\n _this.lookupFunctions = viewResources.lookupFunctions;\r\n _this.observerLocator = observerLocator;\r\n _this.key = 'key';\r\n _this.value = 'value';\r\n _this.strategyLocator = strategyLocator;\r\n _this.ignoreMutation = false;\r\n _this.sourceExpression = getItemsSourceExpression(_this.instruction, 'repeat.for');\r\n _this.isOneTime = isOneTime(_this.sourceExpression);\r\n _this.viewsRequireLifecycle = viewsRequireLifecycle(viewFactory);\r\n return _this;\r\n }\r\n Repeat_1 = Repeat;\r\n Repeat.prototype.call = function (context, changes) {\r\n this[context](this.items, changes);\r\n };\r\n Repeat.prototype.bind = function (bindingContext, overrideContext) {\r\n this.scope = { bindingContext: bindingContext, overrideContext: overrideContext };\r\n this.matcherBinding = this._captureAndRemoveMatcherBinding();\r\n this.itemsChanged();\r\n };\r\n Repeat.prototype.unbind = function () {\r\n this.scope = null;\r\n this.items = null;\r\n this.matcherBinding = null;\r\n this.viewSlot.removeAll(true, true);\r\n this._unsubscribeCollection();\r\n };\r\n Repeat.prototype._unsubscribeCollection = function () {\r\n if (this.collectionObserver) {\r\n this.collectionObserver.unsubscribe(this.callContext, this);\r\n this.collectionObserver = null;\r\n this.callContext = null;\r\n }\r\n };\r\n Repeat.prototype.itemsChanged = function () {\r\n var _this = this;\r\n this._unsubscribeCollection();\r\n if (!this.scope) {\r\n return;\r\n }\r\n var items = this.items;\r\n this.strategy = this.strategyLocator.getStrategy(items);\r\n if (!this.strategy) {\r\n throw new Error(\"Value for '\" + this.sourceExpression + \"' is non-repeatable\");\r\n }\r\n if (!this.isOneTime && !this._observeInnerCollection()) {\r\n this._observeCollection();\r\n }\r\n this.ignoreMutation = true;\r\n this.strategy.instanceChanged(this, items);\r\n this.observerLocator.taskQueue.queueMicroTask(function () {\r\n _this.ignoreMutation = false;\r\n });\r\n };\r\n Repeat.prototype._getInnerCollection = function () {\r\n var expression = unwrapExpression(this.sourceExpression);\r\n if (!expression) {\r\n return null;\r\n }\r\n return expression.evaluate(this.scope, null);\r\n };\r\n Repeat.prototype.handleCollectionMutated = function (collection, changes) {\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.strategy.instanceMutated(this, collection, changes);\r\n };\r\n Repeat.prototype.handleInnerCollectionMutated = function (collection, changes) {\r\n var _this = this;\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.ignoreMutation = true;\r\n var newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions);\r\n this.observerLocator.taskQueue.queueMicroTask(function () { return _this.ignoreMutation = false; });\r\n if (newItems === this.items) {\r\n this.itemsChanged();\r\n }\r\n else {\r\n this.items = newItems;\r\n }\r\n };\r\n Repeat.prototype._observeInnerCollection = function () {\r\n var items = this._getInnerCollection();\r\n var strategy = this.strategyLocator.getStrategy(items);\r\n if (!strategy) {\r\n return false;\r\n }\r\n this.collectionObserver = strategy.getCollectionObserver(this.observerLocator, items);\r\n if (!this.collectionObserver) {\r\n return false;\r\n }\r\n this.callContext = 'handleInnerCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n return true;\r\n };\r\n Repeat.prototype._observeCollection = function () {\r\n var items = this.items;\r\n this.collectionObserver = this.strategy.getCollectionObserver(this.observerLocator, items);\r\n if (this.collectionObserver) {\r\n this.callContext = 'handleCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n }\r\n };\r\n Repeat.prototype._captureAndRemoveMatcherBinding = function () {\r\n var viewFactory = this.viewFactory.viewFactory;\r\n if (viewFactory) {\r\n var template = viewFactory.template;\r\n var instructions = viewFactory.instructions;\r\n if (Repeat_1.useInnerMatcher) {\r\n return extractMatcherBindingExpression(instructions);\r\n }\r\n if (getChildrenCount(template) > 1) {\r\n return undefined;\r\n }\r\n var repeatedElement = getFirstElementChild(template);\r\n if (!repeatedElement.hasAttribute('au-target-id')) {\r\n return undefined;\r\n }\r\n var repeatedElementTargetId = repeatedElement.getAttribute('au-target-id');\r\n return extractMatcherBindingExpression(instructions, repeatedElementTargetId);\r\n }\r\n return undefined;\r\n };\r\n Repeat.prototype.viewCount = function () { return this.viewSlot.children.length; };\r\n Repeat.prototype.views = function () { return this.viewSlot.children; };\r\n Repeat.prototype.view = function (index) { return this.viewSlot.children[index]; };\r\n Repeat.prototype.matcher = function () {\r\n var matcherBinding = this.matcherBinding;\r\n return matcherBinding\r\n ? matcherBinding.sourceExpression.evaluate(this.scope, matcherBinding.lookupFunctions)\r\n : null;\r\n };\r\n Repeat.prototype.addView = function (bindingContext, overrideContext) {\r\n var view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.add(view);\r\n };\r\n Repeat.prototype.insertView = function (index, bindingContext, overrideContext) {\r\n var view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.insert(index, view);\r\n };\r\n Repeat.prototype.moveView = function (sourceIndex, targetIndex) {\r\n this.viewSlot.move(sourceIndex, targetIndex);\r\n };\r\n Repeat.prototype.removeAllViews = function (returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.removeViews = function (viewsToRemove, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeMany(viewsToRemove, returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.removeView = function (index, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAt(index, returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.updateBindings = function (view) {\r\n var $view = view;\r\n var j = $view.bindings.length;\r\n while (j--) {\r\n updateOneTimeBinding($view.bindings[j]);\r\n }\r\n j = $view.controllers.length;\r\n while (j--) {\r\n var k = $view.controllers[j].boundProperties.length;\r\n while (k--) {\r\n var binding = $view.controllers[j].boundProperties[k].binding;\r\n updateOneTimeBinding(binding);\r\n }\r\n }\r\n };\r\n var Repeat_1;\r\n Repeat.useInnerMatcher = true;\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"items\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"local\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"key\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"value\", void 0);\r\n Repeat = Repeat_1 = __decorate([\r\n customAttribute('repeat'),\r\n templateController,\r\n inject(BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, RepeatStrategyLocator)\r\n ], Repeat);\r\n return Repeat;\r\n}(AbstractRepeater));\r\nvar extractMatcherBindingExpression = function (instructions, targetedElementId) {\r\n var instructionIds = Object.keys(instructions);\r\n for (var i = 0; i < instructionIds.length; i++) {\r\n var instructionId = instructionIds[i];\r\n if (targetedElementId !== undefined && instructionId !== targetedElementId) {\r\n continue;\r\n }\r\n var expressions = instructions[instructionId].expressions;\r\n if (expressions) {\r\n for (var ii = 0; ii < expressions.length; ii++) {\r\n if (expressions[ii].targetProperty === 'matcher') {\r\n var matcherBindingExpression = expressions[ii];\r\n expressions.splice(ii, 1);\r\n return matcherBindingExpression;\r\n }\r\n }\r\n }\r\n }\r\n};\r\nvar getChildrenCount = function (el) {\r\n var childNodes = el.childNodes;\r\n var count = 0;\r\n for (var i = 0, ii = childNodes.length; ii > i; ++i) {\r\n if (childNodes[i].nodeType === 1) {\r\n ++count;\r\n }\r\n }\r\n return count;\r\n};\r\nvar getFirstElementChild = function (el) {\r\n var firstChild = el.firstChild;\r\n while (firstChild !== null) {\r\n if (firstChild.nodeType === 1) {\r\n return firstChild;\r\n }\r\n firstChild = firstChild.nextSibling;\r\n }\r\n return null;\r\n};\n\nvar aureliaHideClassName = 'aurelia-hide';\r\nvar aureliaHideClass = \".\" + aureliaHideClassName + \" { display:none !important; }\";\r\nfunction injectAureliaHideStyleAtHead() {\r\n DOM.injectStyles(aureliaHideClass);\r\n}\r\nfunction injectAureliaHideStyleAtBoundary(domBoundary) {\r\n if (FEATURE.shadowDOM && domBoundary && !domBoundary.hasAureliaHideStyle) {\r\n domBoundary.hasAureliaHideStyle = true;\r\n DOM.injectStyles(aureliaHideClass, domBoundary);\r\n }\r\n}\n\nvar Show = (function () {\r\n function Show(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n Show.inject = function () {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n };\r\n Show.prototype.created = function () {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\r\n };\r\n Show.prototype.valueChanged = function (newValue) {\r\n var element = this.element;\r\n var animator = this.animator;\r\n if (newValue) {\r\n animator.removeClass(element, aureliaHideClassName);\r\n }\r\n else {\r\n animator.addClass(element, aureliaHideClassName);\r\n }\r\n };\r\n Show.prototype.bind = function (bindingContext) {\r\n this.valueChanged(this.value);\r\n };\r\n Show = __decorate([\r\n customAttribute('show')\r\n ], Show);\r\n return Show;\r\n}());\n\nvar Hide = (function () {\r\n function Hide(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n Hide.inject = function () {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n };\r\n Hide.prototype.created = function () {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\r\n };\r\n Hide.prototype.valueChanged = function (newValue) {\r\n if (newValue) {\r\n this.animator.addClass(this.element, aureliaHideClassName);\r\n }\r\n else {\r\n this.animator.removeClass(this.element, aureliaHideClassName);\r\n }\r\n };\r\n Hide.prototype.bind = function (bindingContext) {\r\n this.valueChanged(this.value);\r\n };\r\n Hide.prototype.value = function (value) {\r\n throw new Error('Method not implemented.');\r\n };\r\n Hide = __decorate([\r\n customAttribute('hide')\r\n ], Hide);\r\n return Hide;\r\n}());\n\nvar SCRIPT_REGEX = /)<[^<]*)*<\\/script>/gi;\r\nvar needsToWarn = true;\r\nvar HTMLSanitizer = (function () {\r\n function HTMLSanitizer() {\r\n }\r\n HTMLSanitizer.prototype.sanitize = function (input) {\r\n if (needsToWarn) {\r\n needsToWarn = false;\r\n getLogger('html-sanitizer')\r\n .warn(\"CAUTION: The default HTMLSanitizer does NOT provide security against a wide variety of sophisticated XSS attacks,\\nand should not be relied on for sanitizing input from unknown sources.\\nPlease see https://aurelia.io/docs/binding/basics#element-content for instructions on how to use a secure solution like DOMPurify or sanitize-html.\");\r\n }\r\n return input.replace(SCRIPT_REGEX, '');\r\n };\r\n return HTMLSanitizer;\r\n}());\n\nvar SanitizeHTMLValueConverter = (function () {\r\n function SanitizeHTMLValueConverter(sanitizer) {\r\n this.sanitizer = sanitizer;\r\n }\r\n SanitizeHTMLValueConverter.prototype.toView = function (untrustedMarkup) {\r\n if (untrustedMarkup === null || untrustedMarkup === undefined) {\r\n return null;\r\n }\r\n return this.sanitizer.sanitize(untrustedMarkup);\r\n };\r\n SanitizeHTMLValueConverter = __decorate([\r\n valueConverter('sanitizeHTML'),\r\n inject(HTMLSanitizer)\r\n ], SanitizeHTMLValueConverter);\r\n return SanitizeHTMLValueConverter;\r\n}());\n\nvar Replaceable = (function () {\r\n function Replaceable(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n }\r\n Replaceable.prototype.bind = function (bindingContext, overrideContext) {\r\n if (this.view === null) {\r\n this.view = this.viewFactory.create();\r\n this.viewSlot.add(this.view);\r\n }\r\n this.view.bind(bindingContext, overrideContext);\r\n };\r\n Replaceable.prototype.unbind = function () {\r\n this.view.unbind();\r\n };\r\n Replaceable = __decorate([\r\n customAttribute('replaceable'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], Replaceable);\r\n return Replaceable;\r\n}());\n\nvar Focus = (function () {\r\n function Focus(element, taskQueue) {\r\n this.element = element;\r\n this.taskQueue = taskQueue;\r\n this.isAttached = false;\r\n this.needsApply = false;\r\n }\r\n Focus.inject = function () {\r\n return [DOM.Element, TaskQueue];\r\n };\r\n Focus.prototype.valueChanged = function (newValue) {\r\n if (this.isAttached) {\r\n this._apply();\r\n }\r\n else {\r\n this.needsApply = true;\r\n }\r\n };\r\n Focus.prototype._apply = function () {\r\n var _this = this;\r\n if (this.value) {\r\n this.taskQueue.queueMicroTask(function () {\r\n if (_this.value) {\r\n _this.element.focus();\r\n }\r\n });\r\n }\r\n else {\r\n this.element.blur();\r\n }\r\n };\r\n Focus.prototype.attached = function () {\r\n this.isAttached = true;\r\n if (this.needsApply) {\r\n this.needsApply = false;\r\n this._apply();\r\n }\r\n this.element.addEventListener('focus', this);\r\n this.element.addEventListener('blur', this);\r\n };\r\n Focus.prototype.detached = function () {\r\n this.isAttached = false;\r\n this.element.removeEventListener('focus', this);\r\n this.element.removeEventListener('blur', this);\r\n };\r\n Focus.prototype.handleEvent = function (e) {\r\n if (e.type === 'focus') {\r\n this.value = true;\r\n }\r\n else if (DOM.activeElement !== this.element) {\r\n this.value = false;\r\n }\r\n };\r\n Focus = __decorate([\r\n customAttribute('focus', bindingMode.twoWay)\r\n ], Focus);\r\n return Focus;\r\n}());\n\nvar cssUrlMatcher = /url\\((?!['\"]data)([^)]+)\\)/gi;\r\nfunction fixupCSSUrls(address, css) {\r\n if (typeof css !== 'string') {\r\n throw new Error(\"Failed loading required CSS file: \" + address);\r\n }\r\n return css.replace(cssUrlMatcher, function (match, p1) {\r\n var quote = p1.charAt(0);\r\n if (quote === '\\'' || quote === '\"') {\r\n p1 = p1.substr(1, p1.length - 2);\r\n }\r\n return 'url(\\'' + relativeToFile(p1, address) + '\\')';\r\n });\r\n}\r\nvar CSSResource = (function () {\r\n function CSSResource(address) {\r\n this.address = address;\r\n this._scoped = null;\r\n this._global = false;\r\n this._alreadyGloballyInjected = false;\r\n }\r\n CSSResource.prototype.initialize = function (container, Target) {\r\n this._scoped = new Target(this);\r\n };\r\n CSSResource.prototype.register = function (registry, name) {\r\n if (name === 'scoped') {\r\n registry.registerViewEngineHooks(this._scoped);\r\n }\r\n else {\r\n this._global = true;\r\n }\r\n };\r\n CSSResource.prototype.load = function (container) {\r\n var _this = this;\r\n return container.get(Loader)\r\n .loadText(this.address)\r\n .catch(function (err) { return null; })\r\n .then(function (text) {\r\n text = fixupCSSUrls(_this.address, text);\r\n _this._scoped.css = text;\r\n if (_this._global) {\r\n _this._alreadyGloballyInjected = true;\r\n DOM.injectStyles(text);\r\n }\r\n });\r\n };\r\n return CSSResource;\r\n}());\r\nvar CSSViewEngineHooks = (function () {\r\n function CSSViewEngineHooks(owner) {\r\n this.owner = owner;\r\n this.css = null;\r\n }\r\n CSSViewEngineHooks.prototype.beforeCompile = function (content, resources, instruction) {\r\n if (instruction.targetShadowDOM) {\r\n DOM.injectStyles(this.css, content, true);\r\n }\r\n else if (FEATURE.scopedCSS) {\r\n var styleNode = DOM.injectStyles(this.css, content, true);\r\n styleNode.setAttribute('scoped', 'scoped');\r\n }\r\n else if (this._global && !this.owner._alreadyGloballyInjected) {\r\n DOM.injectStyles(this.css);\r\n this.owner._alreadyGloballyInjected = true;\r\n }\r\n };\r\n return CSSViewEngineHooks;\r\n}());\r\nfunction _createCSSResource(address) {\r\n var ViewCSS = (function (_super) {\r\n __extends(ViewCSS, _super);\r\n function ViewCSS() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ViewCSS = __decorate([\r\n resource(new CSSResource(address))\r\n ], ViewCSS);\r\n return ViewCSS;\r\n }(CSSViewEngineHooks));\r\n return ViewCSS;\r\n}\n\nvar AttrBindingBehavior = (function () {\r\n function AttrBindingBehavior() {\r\n }\r\n AttrBindingBehavior.prototype.bind = function (binding, source) {\r\n binding.targetObserver = new DataAttributeObserver(binding.target, binding.targetProperty);\r\n };\r\n AttrBindingBehavior.prototype.unbind = function (binding, source) {\r\n };\r\n AttrBindingBehavior = __decorate([\r\n bindingBehavior('attr')\r\n ], AttrBindingBehavior);\r\n return AttrBindingBehavior;\r\n}());\n\nvar modeBindingBehavior = {\r\n bind: function (binding, source, lookupFunctions) {\r\n binding.originalMode = binding.mode;\r\n binding.mode = this.mode;\r\n },\r\n unbind: function (binding, source) {\r\n binding.mode = binding.originalMode;\r\n binding.originalMode = null;\r\n }\r\n};\r\nvar OneTimeBindingBehavior = (function () {\r\n function OneTimeBindingBehavior() {\r\n this.mode = bindingMode.oneTime;\r\n }\r\n OneTimeBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('oneTime')\r\n ], OneTimeBindingBehavior);\r\n return OneTimeBindingBehavior;\r\n}());\r\nvar OneWayBindingBehavior = (function () {\r\n function OneWayBindingBehavior() {\r\n this.mode = bindingMode.toView;\r\n }\r\n OneWayBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('oneWay')\r\n ], OneWayBindingBehavior);\r\n return OneWayBindingBehavior;\r\n}());\r\nvar ToViewBindingBehavior = (function () {\r\n function ToViewBindingBehavior() {\r\n this.mode = bindingMode.toView;\r\n }\r\n ToViewBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('toView')\r\n ], ToViewBindingBehavior);\r\n return ToViewBindingBehavior;\r\n}());\r\nvar FromViewBindingBehavior = (function () {\r\n function FromViewBindingBehavior() {\r\n this.mode = bindingMode.fromView;\r\n }\r\n FromViewBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('fromView')\r\n ], FromViewBindingBehavior);\r\n return FromViewBindingBehavior;\r\n}());\r\nvar TwoWayBindingBehavior = (function () {\r\n function TwoWayBindingBehavior() {\r\n this.mode = bindingMode.twoWay;\r\n }\r\n TwoWayBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('twoWay')\r\n ], TwoWayBindingBehavior);\r\n return TwoWayBindingBehavior;\r\n}());\n\nfunction throttle(newValue) {\r\n var _this = this;\r\n var state = this.throttleState;\r\n var elapsed = +new Date() - state.last;\r\n if (elapsed >= state.delay) {\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n this.throttledMethod(newValue);\r\n return;\r\n }\r\n state.newValue = newValue;\r\n if (state.timeoutId === null) {\r\n state.timeoutId = setTimeout(function () {\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n _this.throttledMethod(state.newValue);\r\n }, state.delay - elapsed);\r\n }\r\n}\r\nvar ThrottleBindingBehavior = (function () {\r\n function ThrottleBindingBehavior() {\r\n }\r\n ThrottleBindingBehavior.prototype.bind = function (binding, source, delay) {\r\n if (delay === void 0) { delay = 200; }\r\n var methodToThrottle = 'updateTarget';\r\n if (binding.callSource) {\r\n methodToThrottle = 'callSource';\r\n }\r\n else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\r\n methodToThrottle = 'updateSource';\r\n }\r\n binding.throttledMethod = binding[methodToThrottle];\r\n binding.throttledMethod.originalName = methodToThrottle;\r\n binding[methodToThrottle] = throttle;\r\n binding.throttleState = {\r\n delay: delay,\r\n last: 0,\r\n timeoutId: null\r\n };\r\n };\r\n ThrottleBindingBehavior.prototype.unbind = function (binding, source) {\r\n var methodToRestore = binding.throttledMethod.originalName;\r\n binding[methodToRestore] = binding.throttledMethod;\r\n binding.throttledMethod = null;\r\n clearTimeout(binding.throttleState.timeoutId);\r\n binding.throttleState = null;\r\n };\r\n ThrottleBindingBehavior = __decorate([\r\n bindingBehavior('throttle')\r\n ], ThrottleBindingBehavior);\r\n return ThrottleBindingBehavior;\r\n}());\n\nvar unset = {};\r\nfunction debounceCallSource(event) {\r\n var _this = this;\r\n var state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = setTimeout(function () { return _this.debouncedMethod(event); }, state.delay);\r\n}\r\nfunction debounceCall(context, newValue, oldValue) {\r\n var _this = this;\r\n var state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n if (context !== state.callContextToDebounce) {\r\n state.oldValue = unset;\r\n this.debouncedMethod(context, newValue, oldValue);\r\n return;\r\n }\r\n if (state.oldValue === unset) {\r\n state.oldValue = oldValue;\r\n }\r\n state.timeoutId = setTimeout(function () {\r\n var _oldValue = state.oldValue;\r\n state.oldValue = unset;\r\n _this.debouncedMethod(context, newValue, _oldValue);\r\n }, state.delay);\r\n}\r\nvar DebounceBindingBehavior = (function () {\r\n function DebounceBindingBehavior() {\r\n }\r\n DebounceBindingBehavior.prototype.bind = function (binding, source, delay) {\r\n if (delay === void 0) { delay = 200; }\r\n var isCallSource = binding.callSource !== undefined;\r\n var methodToDebounce = isCallSource ? 'callSource' : 'call';\r\n var debouncer = isCallSource ? debounceCallSource : debounceCall;\r\n var mode = binding.mode;\r\n var callContextToDebounce = mode === bindingMode.twoWay || mode === bindingMode.fromView ? targetContext : sourceContext;\r\n binding.debouncedMethod = binding[methodToDebounce];\r\n binding.debouncedMethod.originalName = methodToDebounce;\r\n binding[methodToDebounce] = debouncer;\r\n binding.debounceState = {\r\n callContextToDebounce: callContextToDebounce,\r\n delay: delay,\r\n timeoutId: 0,\r\n oldValue: unset\r\n };\r\n };\r\n DebounceBindingBehavior.prototype.unbind = function (binding, source) {\r\n var methodToRestore = binding.debouncedMethod.originalName;\r\n binding[methodToRestore] = binding.debouncedMethod;\r\n binding.debouncedMethod = null;\r\n clearTimeout(binding.debounceState.timeoutId);\r\n binding.debounceState = null;\r\n };\r\n DebounceBindingBehavior = __decorate([\r\n bindingBehavior('debounce')\r\n ], DebounceBindingBehavior);\r\n return DebounceBindingBehavior;\r\n}());\n\nfunction findOriginalEventTarget(event) {\r\n return (event.path && event.path[0]) || (event.deepPath && event.deepPath[0]) || event.target;\r\n}\r\nfunction handleSelfEvent(event) {\r\n var target = findOriginalEventTarget(event);\r\n if (this.target !== target) {\r\n return;\r\n }\r\n this.selfEventCallSource(event);\r\n}\r\nvar SelfBindingBehavior = (function () {\r\n function SelfBindingBehavior() {\r\n }\r\n SelfBindingBehavior.prototype.bind = function (binding, source) {\r\n if (!binding.callSource || !binding.targetEvent) {\r\n throw new Error('Self binding behavior only supports event.');\r\n }\r\n binding.selfEventCallSource = binding.callSource;\r\n binding.callSource = handleSelfEvent;\r\n };\r\n SelfBindingBehavior.prototype.unbind = function (binding, source) {\r\n binding.callSource = binding.selfEventCallSource;\r\n binding.selfEventCallSource = null;\r\n };\r\n SelfBindingBehavior = __decorate([\r\n bindingBehavior('self')\r\n ], SelfBindingBehavior);\r\n return SelfBindingBehavior;\r\n}());\n\nvar BindingSignaler = (function () {\r\n function BindingSignaler() {\r\n this.signals = {};\r\n }\r\n BindingSignaler.prototype.signal = function (name) {\r\n var bindings = this.signals[name];\r\n if (!bindings) {\r\n return;\r\n }\r\n var i = bindings.length;\r\n while (i--) {\r\n bindings[i].call(sourceContext);\r\n }\r\n };\r\n return BindingSignaler;\r\n}());\n\nvar SignalBindingBehavior = (function () {\r\n function SignalBindingBehavior(bindingSignaler) {\r\n this.signals = bindingSignaler.signals;\r\n }\r\n SignalBindingBehavior.inject = function () { return [BindingSignaler]; };\r\n SignalBindingBehavior.prototype.bind = function (binding, source) {\r\n var names = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n names[_i - 2] = arguments[_i];\r\n }\r\n if (!binding.updateTarget) {\r\n throw new Error('Only property bindings and string interpolation bindings can be signaled. Trigger, delegate and call bindings cannot be signaled.');\r\n }\r\n var signals = this.signals;\r\n if (names.length === 1) {\r\n var name_1 = names[0];\r\n var bindings = signals[name_1] || (signals[name_1] = []);\r\n bindings.push(binding);\r\n binding.signalName = name_1;\r\n }\r\n else if (names.length > 1) {\r\n var i = names.length;\r\n while (i--) {\r\n var name_2 = names[i];\r\n var bindings = signals[name_2] || (signals[name_2] = []);\r\n bindings.push(binding);\r\n }\r\n binding.signalName = names;\r\n }\r\n else {\r\n throw new Error('Signal name is required.');\r\n }\r\n };\r\n SignalBindingBehavior.prototype.unbind = function (binding, source) {\r\n var signals = this.signals;\r\n var name = binding.signalName;\r\n binding.signalName = null;\r\n if (Array.isArray(name)) {\r\n var names = name;\r\n var i = names.length;\r\n while (i--) {\r\n var n = names[i];\r\n var bindings = signals[n];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n }\r\n else {\r\n var bindings = signals[name];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n };\r\n SignalBindingBehavior = __decorate([\r\n bindingBehavior('signal')\r\n ], SignalBindingBehavior);\r\n return SignalBindingBehavior;\r\n}());\n\nvar eventNamesRequired = 'The updateTrigger binding behavior requires at least one event name argument: eg ';\r\nvar notApplicableMessage = 'The updateTrigger binding behavior can only be applied to two-way/ from-view bindings on input/select elements.';\r\nvar UpdateTriggerBindingBehavior = (function () {\r\n function UpdateTriggerBindingBehavior() {\r\n }\r\n UpdateTriggerBindingBehavior.prototype.bind = function (binding, source) {\r\n var events = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n events[_i - 2] = arguments[_i];\r\n }\r\n if (events.length === 0) {\r\n throw new Error(eventNamesRequired);\r\n }\r\n if (binding.mode !== bindingMode.twoWay && binding.mode !== bindingMode.fromView) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n var targetObserver = binding.observerLocator.getObserver(binding.target, binding.targetProperty);\r\n if (!targetObserver.handler) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n binding.targetObserver = targetObserver;\r\n targetObserver.originalHandler = binding.targetObserver.handler;\r\n var handler = new EventSubscriber(events);\r\n targetObserver.handler = handler;\r\n };\r\n UpdateTriggerBindingBehavior.prototype.unbind = function (binding, source) {\r\n var targetObserver = binding.targetObserver;\r\n targetObserver.handler.dispose();\r\n targetObserver.handler = targetObserver.originalHandler;\r\n targetObserver.originalHandler = null;\r\n };\r\n UpdateTriggerBindingBehavior = __decorate([\r\n bindingBehavior('updateTrigger')\r\n ], UpdateTriggerBindingBehavior);\r\n return UpdateTriggerBindingBehavior;\r\n}());\n\nfunction _createDynamicElement(_a) {\r\n var name = _a.name, viewUrl = _a.viewUrl, bindableNames = _a.bindableNames, useShadowDOMmode = _a.useShadowDOMmode;\r\n var DynamicElement = (function () {\r\n function DynamicElement() {\r\n }\r\n DynamicElement.prototype.bind = function (bindingContext) {\r\n this.$parent = bindingContext;\r\n };\r\n DynamicElement = __decorate([\r\n customElement(name),\r\n useView(viewUrl)\r\n ], DynamicElement);\r\n return DynamicElement;\r\n }());\r\n for (var i = 0, ii = bindableNames.length; i < ii; ++i) {\r\n bindable(bindableNames[i])(DynamicElement);\r\n }\r\n switch (useShadowDOMmode) {\r\n case 'open':\r\n useShadowDOM({ mode: 'open' })(DynamicElement);\r\n break;\r\n case 'closed':\r\n useShadowDOM({ mode: 'closed' })(DynamicElement);\r\n break;\r\n case '':\r\n useShadowDOM(DynamicElement);\r\n break;\r\n case null:\r\n break;\r\n default:\r\n getLogger('aurelia-html-only-element')\r\n .warn(\"Expected 'use-shadow-dom' value to be \\\"close\\\", \\\"open\\\" or \\\"\\\", received \" + useShadowDOMmode);\r\n break;\r\n }\r\n return DynamicElement;\r\n}\n\nfunction getElementName(address) {\r\n return /([^\\/^\\?]+)\\.html/i.exec(address)[1].toLowerCase();\r\n}\r\nfunction configure(config) {\r\n var viewEngine = config.container.get(ViewEngine);\r\n var loader = config.aurelia.loader;\r\n viewEngine.addResourcePlugin('.html', {\r\n 'fetch': function (viewUrl) {\r\n return loader.loadTemplate(viewUrl).then(function (registryEntry) {\r\n var _a;\r\n var bindableNames = registryEntry.template.getAttribute('bindable');\r\n var useShadowDOMmode = registryEntry.template.getAttribute('use-shadow-dom');\r\n var name = getElementName(viewUrl);\r\n if (bindableNames) {\r\n bindableNames = bindableNames.split(',').map(function (x) { return x.trim(); });\r\n registryEntry.template.removeAttribute('bindable');\r\n }\r\n else {\r\n bindableNames = [];\r\n }\r\n return _a = {}, _a[name] = _createDynamicElement({ name: name, viewUrl: viewUrl, bindableNames: bindableNames, useShadowDOMmode: useShadowDOMmode }), _a;\r\n });\r\n }\r\n });\r\n}\n\nfunction configure$1(config) {\r\n injectAureliaHideStyleAtHead();\r\n config.globalResources(Compose, If, Else, With, Repeat, Show, Hide, Replaceable, Focus, SanitizeHTMLValueConverter, OneTimeBindingBehavior, OneWayBindingBehavior, ToViewBindingBehavior, FromViewBindingBehavior, TwoWayBindingBehavior, ThrottleBindingBehavior, DebounceBindingBehavior, SelfBindingBehavior, SignalBindingBehavior, UpdateTriggerBindingBehavior, AttrBindingBehavior);\r\n configure(config);\r\n var viewEngine = config.container.get(ViewEngine);\r\n var styleResourcePlugin = {\r\n fetch: function (address) {\r\n var _a;\r\n return _a = {}, _a[address] = _createCSSResource(address), _a;\r\n }\r\n };\r\n ['.css', '.less', '.sass', '.scss', '.styl'].forEach(function (ext) { return viewEngine.addResourcePlugin(ext, styleResourcePlugin); });\r\n}\n\nexport { AbstractRepeater, ArrayRepeatStrategy, AttrBindingBehavior, BindingSignaler, Compose, DebounceBindingBehavior, Else, Focus, FromViewBindingBehavior, HTMLSanitizer, Hide, If, MapRepeatStrategy, NullRepeatStrategy, NumberRepeatStrategy, OneTimeBindingBehavior, OneWayBindingBehavior, Repeat, RepeatStrategyLocator, Replaceable, SanitizeHTMLValueConverter, SelfBindingBehavior, SetRepeatStrategy, Show, SignalBindingBehavior, ThrottleBindingBehavior, ToViewBindingBehavior, TwoWayBindingBehavior, UpdateTriggerBindingBehavior, With, configure$1 as configure, createFullOverrideContext, getItemsSourceExpression, isOneTime, unwrapExpression, updateOneTimeBinding, updateOverrideContext, viewsRequireLifecycle };\n//# sourceMappingURL=aurelia-templating-resources.js.map\n"],"sourceRoot":""}