{"version":3,"sources":["webpack:///./node_modules/blob/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/bcx-aurelia-dnd/dist/preview-drawers.js","webpack:///./node_modules/bcx-aurelia-dnd/dist/index.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-repeat.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/simple-array-repeat-strategy.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-repeat-strategy-locator.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/repeater-dnd-type.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-group-map.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-direction.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-group.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-group-for.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-dnd-preview.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-dnd-handler-selector.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/reorderable-after-reordering.js","webpack:///./node_modules/bcx-aurelia-reorderable-repeat/dist/native-modules/index.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js"],"names":["BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","Blob","size","e","blobSupportsArrayBufferView","Uint8Array","blobBuilderSupported","prototype","append","getBlob","mapArrayBufferViews","ary","map","chunk","buffer","ArrayBuffer","buf","byteLength","copy","set","byteOffset","BlobBuilderConstructor","options","bb","forEach","part","type","BlobConstructor","module","exports","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","len2","push","encodeChunk","lookup","join","Array","code","Error","indexOf","start","end","num","output","Object","defineProperty","value","trPreview","el","tagName","parentNode","newTr","cloneNode","tdCount","childElementCount","computed","getComputedStyle","children","style","width","height","section","newSection","appendChild","table","newTable","tableComputed","liPreview","newLi","flex","newUlOrOl","listStyleType","unknownTagPreview","display","preview","computed_1","defaultPreview","DndService","aurelia_event_aggregator_1","preview_drawers_1","doc","document","documentElement","_stylesInjected","classes","cache","lookupClass","className","cached","lastIndex","RegExp","add","current","test","rm","replace","trim","whichMouseButton","te","undefined","touches","which","me","buttons","button","getPageRect","rect","getBoundingClientRect","x","left","getScroll","y","top","getRectWidth","getRectHeight","scrollProp","offsetProp","window","clientHeight","body","right","bottom","getParent","isInput","isEditable","contentEditable","getCoord","coord","host","targetTouches","changedTouches","getEventHost","missMap","pageX","pageY","DndSource","delegate","dndModel","this","element","dndElement","handler","Element","noPreview","hideCursor","centerPreviewToMousePosition","DndTarget","dndCanDrop","dndDrop","dndHover","bind","indexOfElementOrDelegate","array","delegateOrElement","o","ea","isProcessing","model","dndSources","dndTargets","previewDrawers","node","createElement","innerHTML","head","childNodes","insertBefore","injectStyles","addPreviewDrawer","_grab","_release","_startBecauseMouseMoved","_preventGrabbed","_drag","_esc","addEventListener","passive","drawer","unshift","addSource","dnd","dndSource","isStartingSource","removeSource","idx","splice","addTarget","dndTarget","canDrop","removeTarget","_sourceOf","indexOfHandler","_startListeningEventualMovements","_element","_stopListeningEventualMovements","removeEventListener","_startListeningMovements","_stopListeningMovements","_grabbed","preventDefault","_moveX","_moveY","metaKey","ctrlKey","target","_startingSource","focus","_ungrab","publish","shallowTarget","_landingTargets","_locationInfo","_cleanup","s","dndCanDrag","clientX","clientY","elementFromPoint","grabbed","_start","_sourceElementRect","_sourceElement","_offsetX","_offsetY","_renderPreviewImage","_this","_noPreview","dndPreview","_sourcePreview","_hideCursor","_centerPreviewToMousePosition","source","_removePreviewImage","isHoveringShallowly","isHovering","_a","possibleTargets","filter","clientRect","getElementBehindPreview","_preview","slice","_updatePreviewLocation","key","Math","floor","targetElement","previewElementRect","mouseStartAt","mouseEndAt","targetElementRect","sourceElementRect","customised","backgroundColor","removeChild","EventAggregator","extendStatics","SimpleArrayRepeatStrategy","getCollectionObserver","observerLocator","items","getArrayObserver","instanceChanged","repeat","removeAllViews","viewsRequireLifecycle","itemsLength","_standardProcessInstanceChanged","ii","overrideContext","addView","bindingContext","ReorderableRepeatStrategyLocator","matchers","strategies","addStrategy","matcher","strategy","getStrategy","ref","ReorderableGroupMap","_map","WeakMap","repeater","repeaterId","group","remove","delete","get","__extends","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","call","TypeError","String","__","constructor","create","__decorate","decorators","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","__metadata","k","v","metadata","__spreadArray","to","from","pack","ar","l","concat","seed","_super","ReorderableRepeat","taskQueue","bindingEngine","dndService","viewFactory","instruction","viewSlot","viewResources","strategyLocator","groupMap","local","intention","lookupFunctions","ignoreMutation","sourceExpression","_reorderableGroup","context","changes","scope","matcherBinding","_captureAndRemoveMatcherBinding","arrayObserver","collectionObserver","subscribe","_itemsMutated","_subsribers","views","firstChild","item","fromIndex","fromRepeaterId","toIndex","toRepeaterId","change","removedFromThisList","insertedToThisList","afterReordering","_reorderableAfterReorderingFunc","queueMicroTask","targetProperty","_typeBinding","createBinding","patchedItems","patchedItemsChanged","unbind","dispose","intentionChanged","newIntention","patched","itemsChanged","_reload","typeChanged","view","_unRegisterDnd","_registerDnd","instructions","instructionIds","keys","expressions","viewCount","index","evaluate","insertView","insert","moveView","sourceIndex","targetIndex","move","returnToCache","skipAnimation","removeAll","removeViews","viewsToRemove","removeMany","removeView","removeAt","updateBindings","j","bindings","controllers","boundProperties","binding","_additionalAttribute","attribute","au","attributes","_getPlainAttribute","name","template","hasAttribute","getAttribute","targetId","bi","behaviorInstructions","find","attrName","exp","_reorderableDirection","attr","toLowerCase","_dndHandlerSelector","_dndPreviewFunc","func","funcCall","_","_dndHover","location","direction","_updateIntention","$index","handlerSelector","querySelector","_previewFunc","draggingMe","inSameGroup","beforeTarget","isUsingGroup","originalIndex","currentIndex","nextIndex","ReorderableDirection","ReorderableGroup","ReorderableGroupFor","resetIntention","isArray","repeaterInfo","attached","detached","defaultTargetIndex","ReorderableDndPreview","ReorderableDndHandlerSelector","ReorderableAfterReordering","configure","config","globalResources","chars","encode","arraybuffer","bytes","base64","substring","decode","encoded1","encoded2","encoded3","encoded4","bufferLength"],"mappings":"+EAIA,IAAIA,OAAqC,IAAhBA,EAA8BA,EACxB,oBAAtBC,kBAAoCA,kBAClB,oBAAlBC,cAAgCA,cACb,oBAAnBC,gBAAiCA,eAOtCC,EAAgB,WAClB,IAEE,OAAkB,IADV,IAAIC,KAAK,CAAC,OACTC,KACT,MAAMC,GACN,OAAO,GALS,GAchBC,EAA8BJ,GAAiB,WACjD,IAEE,OAAkB,IADV,IAAIC,KAAK,CAAC,IAAII,WAAW,CAAC,EAAE,MAC3BH,KACT,MAAMC,GACN,OAAO,GALwC,GAa/CG,EAAuBV,GACtBA,EAAYW,UAAUC,QACtBZ,EAAYW,UAAUE,QAQ3B,SAASC,EAAoBC,GAC3B,OAAOA,EAAIC,KAAI,SAASC,GACtB,GAAIA,EAAMC,kBAAkBC,YAAa,CACvC,IAAIC,EAAMH,EAAMC,OAIhB,GAAID,EAAMI,aAAeD,EAAIC,WAAY,CACvC,IAAIC,EAAO,IAAIb,WAAWQ,EAAMI,YAChCC,EAAKC,IAAI,IAAId,WAAWW,EAAKH,EAAMO,WAAYP,EAAMI,aACrDD,EAAME,EAAKJ,OAGb,OAAOE,EAGT,OAAOH,KAIX,SAASQ,EAAuBV,EAAKW,GACnCA,EAAUA,GAAW,GAErB,IAAIC,EAAK,IAAI3B,EAKb,OAJAc,EAAoBC,GAAKa,SAAQ,SAASC,GACxCF,EAAGf,OAAOiB,MAGJH,EAAY,KAAIC,EAAGd,QAAQa,EAAQI,MAAQH,EAAGd,UAGxD,SAASkB,EAAgBhB,EAAKW,GAC5B,OAAO,IAAIrB,KAAKS,EAAoBC,GAAMW,GAAW,IAGnC,oBAATrB,OACToB,EAAuBd,UAAYN,KAAKM,UACxCoB,EAAgBpB,UAAYN,KAAKM,WAGnCqB,EAAOC,QACD7B,EACKI,EAA8BH,KAAO0B,EACnCrB,EACFe,OAEP,G,kCC/FJQ,EAAQZ,WAuCR,SAAqBa,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClDL,EAAQM,YAiDR,SAAsBL,GACpB,IAAIM,EAcAC,EAbAN,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBO,EAAM,IAAIC,EAVhB,SAAsBT,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BM,CAAYV,EAAKG,EAAUC,IAEzCO,EAAU,EAGVC,EAAMR,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKI,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,GACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACrCM,EAAUb,EAAIc,WAAWP,EAAI,IAC/BC,EAAIG,KAAcL,GAAO,GAAM,IAC/BE,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,EAGK,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,EAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAmB,IAANL,GAGK,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,GAGnB,OAAOE,GA3FTT,EAAQgB,cAkHR,SAAwBC,GAQtB,IAPA,IAAIV,EACAM,EAAMI,EAAMC,OACZC,EAAaN,EAAM,EACnBO,EAAQ,GAIHZ,EAAI,EAAGa,EAAOR,EAAMM,EAAYX,EAAIa,EAAMb,GAH9B,MAInBY,EAAME,KAAKC,EAAYN,EAAOT,EAAIA,EAJf,MAIqCa,EAAOA,EAAQb,EAJpD,QAQF,IAAfW,GACFZ,EAAMU,EAAMJ,EAAM,GAClBO,EAAME,KACJE,EAAOjB,GAAO,GACdiB,EAAQjB,GAAO,EAAK,IACpB,OAEsB,IAAfY,IACTZ,GAAOU,EAAMJ,EAAM,IAAM,GAAKI,EAAMJ,EAAM,GAC1CO,EAAME,KACJE,EAAOjB,GAAO,IACdiB,EAAQjB,GAAO,EAAK,IACpBiB,EAAQjB,GAAO,EAAK,IACpB,MAIJ,OAAOa,EAAMK,KAAK,KAzIpB,IALA,IAAID,EAAS,GACTV,EAAY,GACZJ,EAA4B,oBAAflC,WAA6BA,WAAakD,MAEvDC,EAAO,mEACFnB,EAAI,EAAGK,EAAMc,EAAKT,OAAQV,EAAIK,IAAOL,EAC5CgB,EAAOhB,GAAKmB,EAAKnB,GACjBM,EAAUa,EAAKZ,WAAWP,IAAMA,EAQlC,SAASL,EAASF,GAChB,IAAIY,EAAMZ,EAAIiB,OAEd,GAAIL,EAAM,EAAI,EACZ,MAAM,IAAIe,MAAM,kDAKlB,IAAIxB,EAAWH,EAAI4B,QAAQ,KAO3B,OANkB,IAAdzB,IAAiBA,EAAWS,GAMzB,CAACT,EAJcA,IAAaS,EAC/B,EACA,EAAKT,EAAW,GAsEtB,SAASmB,EAAaN,EAAOa,EAAOC,GAGlC,IAFA,IAAIxB,EARoByB,EASpBC,EAAS,GACJzB,EAAIsB,EAAOtB,EAAIuB,EAAKvB,GAAK,EAChCD,GACIU,EAAMT,IAAM,GAAM,WAClBS,EAAMT,EAAI,IAAM,EAAK,QACP,IAAfS,EAAMT,EAAI,IACbyB,EAAOX,KAdFE,GADiBQ,EAeMzB,IAdT,GAAK,IACxBiB,EAAOQ,GAAO,GAAK,IACnBR,EAAOQ,GAAO,EAAI,IAClBR,EAAa,GAANQ,IAaT,OAAOC,EAAOR,KAAK,IAjGrBX,EAAU,IAAIC,WAAW,IAAM,GAC/BD,EAAU,IAAIC,WAAW,IAAM,I,kCClB/BmB,OAAOC,eAAenC,EAAS,aAAc,CAAEoC,OAAO,IACtDpC,EAAQqC,UAIR,SAAmBC,GACf,GAAmB,OAAfA,EAAGC,QACH,OACJ,IAAKD,EAAGE,WACJ,OACJ,IAAKF,EAAGE,WAAWA,YAAmD,UAArCF,EAAGE,WAAWA,WAAWD,QACtD,OAGJ,IAFA,IAAIE,EAAQH,EAAGI,WAAU,GACrBC,EAAUL,EAAGM,kBACRpC,EAAI,EAAGA,EAAImC,EAAU,EAAGnC,IAAK,CAClC,IAAIqC,EAAWC,iBAAiBR,EAAGS,SAASvC,IAC5CiC,EAAMM,SAASvC,GAAGwC,MAAMC,MAAQJ,EAASI,MACzCR,EAAMM,SAASvC,GAAGwC,MAAME,OAASL,EAASK,OAE9C,IAAIC,EAAUb,EAAGE,WACbY,EAAaD,EAAQT,YACzBU,EAAWC,YAAYZ,GACvB,IAAIa,EAAQH,EAAQX,WAChBe,EAAWD,EAAMZ,YACrBa,EAASF,YAAYD,GACrB,IAAII,EAAgBV,iBAAiBQ,GAErC,OADAC,EAASP,MAAMC,MAAQO,EAAcP,MAC9BM,GAzBXvD,EAAQyD,UA2BR,SAAmBnB,GACf,GAAmB,OAAfA,EAAGC,QACH,OACJ,IAAKD,EAAGE,WACJ,OACJ,IAAID,EAAUD,EAAGE,WAAWD,QAC5B,GAAgB,OAAZA,GAAgC,OAAZA,EACpB,OACJ,IAAImB,EAAQpB,EAAGI,WAAU,GACrBG,EAAWC,iBAAiBR,GAChCoB,EAAMV,MAAMC,MAAQJ,EAASI,MAC7BS,EAAMV,MAAME,OAASL,EAASK,OAC9BQ,EAAMV,MAAMW,KAAO,WACnB,IAAIC,EAAYtB,EAAGE,WAAWE,YAK9B,OAJAkB,EAAUP,YAAYK,GACtBE,EAAUZ,MAAMC,MAAQ,OACxBW,EAAUZ,MAAME,OAAS,OACzBU,EAAUZ,MAAMa,cAAgB,OACzBD,GA5CX5D,EAAQ8D,kBA8CR,SAA2BxB,GACvB,IAAIO,EAAWC,iBAAiBR,GAMhC,GALwC,WAArBO,EAASkB,SACL,SAAnBlB,EAASI,OACW,SAApBJ,EAASK,QACU,KAAnBZ,EAAGU,MAAMC,OACW,KAApBX,EAAGU,MAAME,OAET,OAGJ,IAFA,IAAIc,EAAU1B,EAAGI,WAAU,GACvB7B,EAAMyB,EAAGM,kBACJpC,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CAC1B,IAAIyD,EAAanB,iBAAiBR,EAAGS,SAASvC,IAC9CwD,EAAQjB,SAASvC,GAAGwC,MAAMC,MAAQgB,EAAWhB,MAC7Ce,EAAQjB,SAASvC,GAAGwC,MAAME,OAASe,EAAWf,OAElD,OAAOc,GA7DXhE,EAAQkE,eA+DR,SAAwB5B,GACpB,IAAI0B,EAAU1B,EAAGI,WAAU,GACvBG,EAAWC,iBAAiBR,GAGhC,OAFA0B,EAAQhB,MAAMC,MAAQJ,EAASI,MAC/Be,EAAQhB,MAAME,OAASL,EAASK,OACzBc,I,kCCxEX9B,OAAOC,eAAenC,EAAS,aAAc,CAAEoC,OAAO,IACtDpC,EAAQmE,gBAAa,EACrB,IAAIC,EAA6B,EAAQ,4BACrCC,EAAoB,EAAQ,QAC5BC,EAAMC,SACNC,EAAkBF,GAAOA,EAAIE,gBAE7BC,GAAkB,EAetB,IAAIC,EAAW,WACX,IAAIC,EAAQ,GAGZ,SAASC,EAAYC,GACjB,IAAIC,EAASH,EAAME,GAOnB,OANIC,EACAA,EAAOC,UAAY,EAGnBJ,EAAME,GAAaC,EAAS,IAAIE,OAR5B,YAQ2CH,EAP7C,YAO8D,KAE7DC,EAcX,MAAO,CAAEG,IAZT,SAAkB3C,EAAIuC,GAClB,IAAIK,EAAU5C,EAAGuC,UACZK,EAAQhE,OAGH0D,EAAYC,GAAWM,KAAKD,KAClC5C,EAAGuC,WAAa,IAAMA,GAHtBvC,EAAGuC,UAAYA,GASCO,GAHxB,SAAiB9C,EAAIuC,GACjBvC,EAAGuC,UAAYvC,EAAGuC,UAAUQ,QAAQT,EAAYC,GAAY,KAAKS,SAxB3D,GA4Bd,SAASC,EAAiBjH,GACtB,IAAIkH,EAAKlH,EACT,QAAmBmH,IAAfD,EAAGE,QACH,OAAOF,EAAGE,QAAQxE,OAEtB,QAAgBuE,IAAZnH,EAAEqH,OAAmC,IAAZrH,EAAEqH,MAC3B,OAAOrH,EAAEqH,MAEb,IAAIC,EAAKtH,EACT,QAAmBmH,IAAfG,EAAGC,QACH,OAAOD,EAAGC,QAEd,IAAIC,EAASF,EAAGE,OAChB,YAAeL,IAAXK,EACgB,EAATA,EAAa,EAAa,EAATA,EAAa,EAAc,EAATA,EAAa,EAAI,OAD/D,EAIJ,SAASC,EAAYzD,GACjB,IAAI0D,EAAO1D,EAAG2D,wBACd,MAAO,CACHC,EAAGF,EAAKG,KAAOC,EAAU,aAAc,eACvCC,EAAGL,EAAKM,IAAMF,EAAU,YAAa,eACrCnD,MAAOsD,EAAaP,GACpB9C,OAAQsD,EAAcR,IAG9B,SAASI,EAAUK,EAAYC,GAC3B,YAAkC,IAAvBC,OAAOD,GACPC,OAAOD,GAEdlC,EAAgBoC,aACTpC,EAAgBiC,GAEpBnC,EAAIuC,KAAKJ,GAcpB,SAASF,EAAaP,GAClB,OAAOA,EAAK/C,OAAU+C,EAAKc,MAAQd,EAAKG,KAE5C,SAASK,EAAcR,GACnB,OAAOA,EAAK9C,QAAW8C,EAAKe,OAASf,EAAKM,IAE9C,SAASU,EAAU1E,GACf,OAAIA,EAAGE,aAAe8B,EACX,KACJhC,EAAGE,WAEd,SAASyE,EAAQ3E,GACb,MAAsB,UAAfA,EAAGC,SACS,aAAfD,EAAGC,SACY,WAAfD,EAAGC,SAGX,SAAS2E,EAAW5E,GAChB,IAAKA,EACD,OAAO,EAEX,GAA2B,UAAvBA,EAAG6E,gBACH,OAAO,EAEX,GAA2B,SAAvB7E,EAAG6E,gBACH,OAAO,EAEX,OAAOD,EAAWF,EAAU1E,IAZxB4E,CAAW5E,GAwBnB,SAAS8E,EAASC,EAAO/I,GACrB,IAAIgJ,EAXR,SAAsBhJ,GAClB,IAAIkH,EAAKlH,EACT,OAAIkH,EAAG+B,eAAiB/B,EAAG+B,cAAcrG,OAC9BsE,EAAG+B,cAAc,GAExB/B,EAAGgC,gBAAkBhC,EAAGgC,eAAetG,OAChCsE,EAAGgC,eAAe,GAEtBlJ,EAGImJ,CAAanJ,GACpBoJ,EAAU,CACVC,MAAO,UACPC,MAAO,WAKX,OAHIP,KAASK,KAAaL,KAASC,IAASI,EAAQL,KAAUC,IAC1DD,EAAQK,EAAQL,IAEbC,EAAKD,GAEhB,IAAIQ,EACA,SAAmBC,EAAUrI,GAEzB,QADgB,IAAZA,IAAsBA,EAAU,KAC/BqI,EACD,MAAM,IAAIlG,MAAM,oCAEpB,GAAiC,mBAAtBkG,EAASC,SAChB,MAAM,IAAInG,MAAM,qDASpB,GAPAoG,KAAKF,SAAWA,EACZrI,EAAQwI,QACRD,KAAKC,QAAUxI,EAAQwI,QAGvBD,KAAKC,QAAUH,EAASI,WAExBzI,EAAQ0I,QAAS,CACjB,KAAM1I,EAAQ0I,mBAAmBC,SAC7B,MAAM,IAAIxG,MAAM,0CAEpBoG,KAAKG,QAAU1I,EAAQ0I,aAGvBH,KAAKG,QAAUH,KAAKC,QAExB,KAAMD,KAAKC,mBAAmBG,SAC1B,MAAM,IAAIxG,MAAM,iEAEpBoG,KAAKK,YAAY5I,EAAQ4I,UACzBL,KAAKM,aAAa7I,EAAQ6I,WAC1BN,KAAKO,+BAA+B9I,EAAQ8I,8BAIhDC,EACA,SAAmBV,EAAUrI,GAEzB,QADgB,IAAZA,IAAsBA,EAAU,KAC/BqI,EACD,MAAM,IAAIlG,MAAM,oCAEpB,GAAmC,mBAAxBkG,EAASW,WAChB,MAAM,IAAI7G,MAAM,4CAEpB,GAAgC,mBAArBkG,EAASY,QAChB,MAAM,IAAI9G,MAAM,oDASpB,GAPAoG,KAAKF,SAAWA,EACZrI,EAAQwI,QACRD,KAAKC,QAAUxI,EAAQwI,QAGvBD,KAAKC,QAAUH,EAASI,aAEtBF,KAAKC,mBAAmBG,SAC1B,MAAM,IAAIxG,MAAM,iEAEa,mBAAtBkG,EAASa,WAChBX,KAAKW,SAAWb,EAASa,SAASC,KAAKd,KAKnD,SAASe,EAAyBC,EAAOC,GAKrC,IAJA,IAAI5D,EAAQ4D,aAA6BX,QACrC,SAAWY,GAAK,OAAOA,EAAEf,UAAYc,GACrC,SAAWC,GAAK,OAAOA,EAAElB,WAAaiB,GACtClI,EAAMiI,EAAM5H,OACPV,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC1B,GAAI2E,EAAK2D,EAAMtI,IACX,OAAOA,EAEf,OAAQ,EAWZ,IAAI2D,EAAc,WACd,SAASA,EAAW8E,GAChBjB,KAAKkB,cAAe,EACpBlB,KAAKmB,WAAQ1D,EACbuC,KAAKiB,GAAKA,EACVjB,KAAKoB,WAAa,GAClBpB,KAAKqB,WAAa,GAClBrB,KAAKsB,eAAiB,GApO9B,WACI,IAAI7E,EAAJ,CAEAA,GAAkB,EAClB,IAAI8E,EAAOjF,EAAIkF,cAAc,SAC7BD,EAAKE,UAPC,8tBAQNF,EAAK1J,KAAO,WACRyE,EAAIoF,KAAKC,WAAWzI,OAAS,EAC7BoD,EAAIoF,KAAKE,aAAaL,EAAMjF,EAAIoF,KAAKC,WAAW,IAGhDrF,EAAIoF,KAAKrG,YAAYkG,IA0NrBM,GACA7B,KAAK8B,iBAAiBzF,EAAkBH,gBACxC8D,KAAK8B,iBAAiBzF,EAAkBP,mBACxCkE,KAAK8B,iBAAiBzF,EAAkBZ,WACxCuE,KAAK8B,iBAAiBzF,EAAkBhC,WACxC2F,KAAK+B,MAAQ/B,KAAK+B,MAAMnB,KAAKZ,MAC7BA,KAAKgC,SAAWhC,KAAKgC,SAASpB,KAAKZ,MACnCA,KAAKiC,wBAA0BjC,KAAKiC,wBAAwBrB,KAAKZ,MACjEA,KAAKkC,gBAAkBlC,KAAKkC,gBAAgBtB,KAAKZ,MACjDA,KAAKmC,MAAQnC,KAAKmC,MAAMvB,KAAKZ,MAC7BA,KAAKoC,KAAOpC,KAAKoC,KAAKxB,KAAKZ,MAC3BxD,EAAgB6F,iBAAiB,YAAarC,KAAK+B,OACnDvF,EAAgB6F,iBAAiB,aAAcrC,KAAK+B,MAAO,CAAEO,SAAS,IACtE9F,EAAgB6F,iBAAiB,UAAWrC,KAAKgC,UACjDxF,EAAgB6F,iBAAiB,WAAYrC,KAAKgC,UA2atD,OAzaA7F,EAAWzF,UAAUoL,iBAAmB,SAAUS,GAC9CvC,KAAKsB,eAAekB,QAAQD,IAEhCpG,EAAWzF,UAAU+L,UAAY,SAAU3C,EAAUrI,QACjC,IAAZA,IAAsBA,EAAU,IAChCqI,EAAS4C,IACT5C,EAAS4C,IAAIxB,cAAe,EAG5BpB,EAAS4C,IAAM,CAAExB,cAAc,GAEnC,IAAIyB,EAAY,IAAI9C,EAAUC,EAAUrI,GACxC,GAAIuI,KAAKkB,aAAc,CACnB,IAAIwB,EAAMC,EAAU7C,SAAS4C,IAC7BA,EAAIxB,cAAe,EACnBwB,EAAIE,kBAAmB,EAE3B5C,KAAKoB,WAAW9H,KAAKqJ,IAEzBxG,EAAWzF,UAAUmM,aAAe,SAAU9B,GAC1C,IAAI+B,EAAMjC,EAAyBb,KAAKoB,WAAYL,GAChD+B,GAAO,GACP9C,KAAKoB,WAAW2B,OAAOD,EAAK,IAGpC3G,EAAWzF,UAAUsM,UAAY,SAAUlD,EAAUrI,QACjC,IAAZA,IAAsBA,EAAU,IAChCqI,EAAS4C,IACT5C,EAAS4C,IAAIxB,cAAe,EAG5BpB,EAAS4C,IAAM,CAAExB,cAAc,GAEnC,IAAI+B,EAAY,IAAIzC,EAAUV,EAAUrI,GACxC,GAAIuI,KAAKkB,aAAc,CACnB,IAAIgC,EAAUD,EAAUnD,SAASW,WAAWT,KAAKmB,OAC7CuB,EAAMO,EAAUnD,SAAS4C,IAC7BA,EAAIQ,QAAUA,EACdR,EAAIxB,cAAe,EACnBwB,EAAIvB,MAAQnB,KAAKmB,MAErBnB,KAAKqB,WAAW/H,KAAK2J,IAEzB9G,EAAWzF,UAAUyM,aAAe,SAAUpC,GAC1C,IAAI+B,EAAMjC,EAAyBb,KAAKqB,WAAYN,GAChD+B,GAAO,GACP9C,KAAKqB,WAAW0B,OAAOD,EAAK,IAGpC3G,EAAWzF,UAAU0M,UAAY,SAAUnD,GACvC,IAAI6C,EAnFZ,SAAwBhC,EAAOX,GAG3B,IAFA,IACItH,EAAMiI,EAAM5H,OACPV,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC1B,GAASsI,EAAMtI,GAHiB2H,UAAYA,EAIxC,OAAO3H,EAEf,OAAQ,EA4EM6K,CAAerD,KAAKoB,WAAYnB,GAC1C,OAAO6C,GAAO,EAAI9C,KAAKoB,WAAW0B,QAAOrF,GAE7CtB,EAAWzF,UAAU4M,iCAAmC,WACpD9G,EAAgB6F,iBAAiB,YAAarC,KAAKiC,yBACnDzF,EAAgB6F,iBAAiB,YAAarC,KAAKiC,wBAAyB,CAAEK,SAAS,IACnFtC,KAAKuD,UACLvD,KAAKuD,SAASlB,iBAAiB,YAAarC,KAAKiC,wBAAyB,CAAEK,SAAS,IAErFtC,KAAKuD,UACLvD,KAAKuD,SAASlB,iBAAiB,WAAYrC,KAAKgC,SAAU,CAAEM,SAAS,KAG7EnG,EAAWzF,UAAU8M,gCAAkC,WACnDhH,EAAgBiH,oBAAoB,YAAazD,KAAKiC,yBACtDzF,EAAgBiH,oBAAoB,YAAazD,KAAKiC,yBAClDjC,KAAKuD,UACLvD,KAAKuD,SAASE,oBAAoB,YAAazD,KAAKiC,0BAG5D9F,EAAWzF,UAAUgN,yBAA2B,WAC5ClH,EAAgB6F,iBAAiB,cAAerC,KAAKkC,iBACrD1F,EAAgB6F,iBAAiB,QAASrC,KAAKkC,iBAC/C1F,EAAgB6F,iBAAiB,UAAWrC,KAAKoC,MACjD5F,EAAgB6F,iBAAiB,YAAarC,KAAKmC,OACnD3F,EAAgB6F,iBAAiB,YAAarC,KAAKmC,MAAO,CAAEG,SAAS,IACjEtC,KAAKuD,UACLvD,KAAKuD,SAASlB,iBAAiB,YAAarC,KAAKmC,MAAO,CAAEG,SAAS,KAG3EnG,EAAWzF,UAAUiN,wBAA0B,WAC3CnH,EAAgBiH,oBAAoB,cAAezD,KAAKkC,iBACxD1F,EAAgBiH,oBAAoB,QAASzD,KAAKkC,iBAClD1F,EAAgBiH,oBAAoB,UAAWzD,KAAKoC,MACpD5F,EAAgBiH,oBAAoB,YAAazD,KAAKmC,OACtD3F,EAAgBiH,oBAAoB,YAAazD,KAAKmC,OAClDnC,KAAKuD,UACLvD,KAAKuD,SAASE,oBAAoB,YAAazD,KAAKmC,OAEpDnC,KAAKuD,UACLvD,KAAKuD,SAASE,oBAAoB,WAAYzD,KAAKgC,WAG3D7F,EAAWzF,UAAUwL,gBAAkB,SAAU5L,GACzC0J,KAAK4D,UACLtN,EAAEuN,kBAGV1H,EAAWzF,UAAUqL,MAAQ,SAAUzL,GAInC,GAHA0J,KAAK8D,OAAS1E,EAAS,UAAW9I,GAClC0J,KAAK+D,OAAS3E,EAAS,UAAW9I,KACG,IAAxBiH,EAAiBjH,IAAYA,EAAE0N,SAAW1N,EAAE2N,SACzD,CAGA,IAAIhE,EAAU3J,EAAE4N,OAChBlE,KAAKuD,SAAWtD,EAChB,IAAI0C,EAAY3C,KAAKmE,gBAAgBlE,GAChC0C,IAEL3C,KAAK4D,SAAWjB,EAChB3C,KAAKsD,mCACU,cAAXhN,EAAEuB,MACEoH,EAAQgB,GACRA,EAAQmE,QAOZ9N,EAAEuN,oBAGV1H,EAAWzF,UAAU2N,QAAU,WAC3BrE,KAAK4D,cAAWnG,EAChBuC,KAAKwD,kCACLxD,KAAK2D,0BACL3D,KAAKuD,cAAW9F,GAEpBtB,EAAWzF,UAAUsL,SAAW,SAAU1L,GAEtC,GADA0J,KAAKqE,UACArE,KAAKkB,aAAV,CAEIlB,KAAKiB,IACLjB,KAAKiB,GAAGqD,QAAQ,eAEpB,IAAIC,EAAgBvE,KAAKwE,gBAAgBlO,GAAGiO,cACxCA,GACAA,EAAczE,SAASY,QAAQV,KAAKyE,cAAcF,EAActE,QAAS3J,IAE7E0J,KAAK0E,WACD1E,KAAKiB,IACLjB,KAAKiB,GAAGqD,QAAQ,gBAGxBnI,EAAWzF,UAAUyN,gBAAkB,SAAUlE,GAC7C,IAAID,KAAKkB,aAAT,CAIA,IADA,IAAIyB,EACG1C,GACEA,GADO,CAGZ,IAAI0E,EAAI3E,KAAKoD,UAAUnD,GACvB,GAAI0E,IAAuC,mBAA1BA,EAAE7E,SAAS8E,YACxBD,EAAE7E,SAAS8E,cAAe,CAC1BjC,EAAYgC,EACZ,MAEJ1E,EAAUjB,EAAUiB,GAExB,OAAO0C,IAEXxG,EAAWzF,UAAUuL,wBAA0B,SAAU3L,GACrD,GAAK0J,KAAK4D,SAEV,GAA4B,IAAxBrG,EAAiBjH,GAArB,CAIA,IAAIuO,EAAUzF,EAAS,UAAW9I,GAC9BwO,EAAU1F,EAAS,UAAW9I,GAClC,QAAgBmH,IAAZoH,GACAA,IAAY7E,KAAK8D,aACLrG,IAAZqH,GACAA,IAAY9E,KAAK+D,OAIrB,IAAI9E,EADsB3C,EAAIyI,iBAAiBF,EAASC,IACxD,CAGA,IAAIE,EAAUhF,KAAK4D,SACnB5D,KAAKwD,kCACLxD,KAAK0D,2BACD1D,KAAKkB,cACLlB,KAAK0E,WACT1E,KAAKiF,OAAOD,GACZhF,KAAKkF,mBAAqBnH,EAAYiC,KAAKmF,gBAC3CnF,KAAKoF,SAAWhG,EAAS,QAAS9I,GAAK0J,KAAKkF,mBAAmBhH,EAC/D8B,KAAKqF,SAAWjG,EAAS,QAAS9I,GAAK0J,KAAKkF,mBAAmB7G,EAC/D2B,KAAKsF,sBACLtF,KAAKmC,MAAM7L,SAzBP0J,KAAK0E,YA2BbvI,EAAWzF,UAAUuO,OAAS,SAAUtC,GACpC,IAAI4C,EAAQvF,KACRA,KAAKiB,IACLjB,KAAKiB,GAAGqD,QAAQ,iBAEpBtE,KAAKkB,cAAe,EACpBlB,KAAKmB,MAAQwB,EAAU7C,SAASC,WAChCC,KAAKmF,eAAiBxC,EAAU1C,QAC5B0C,EAAUtC,UACVL,KAAKwF,YAAa,EAEb7C,EAAU7C,SAAS2F,aACxBzF,KAAK0F,eAAiB/C,EAAU7C,SAAS2F,WAAWzF,KAAKmB,QAExDnB,KAAKwF,aACF7C,EAAUrC,aACVN,KAAK2F,aAAc,GAEnBhD,EAAUpC,+BACVP,KAAK4F,+BAAgC,IAG7C5F,KAAKoB,WAAWzJ,SAAQ,SAAUkO,GAC9B,IAAInD,EAAMmD,EAAO/F,SAAS4C,IAC1BA,EAAIxB,cAAe,EACnBwB,EAAIE,iBAAmBD,IAAckD,KAEzC7F,KAAKqB,WAAW1J,SAAQ,SAAUsL,GAC9B,IAAIC,EAAUD,EAAUnD,SAASW,WAAW8E,EAAMpE,OAC9CuB,EAAMO,EAAUnD,SAAS4C,IAC7BA,EAAIQ,QAAUA,EACdR,EAAIxB,cAAe,EACnBwB,EAAIvB,MAAQoE,EAAMpE,SAElBnB,KAAKiB,IACLjB,KAAKiB,GAAGqD,QAAQ,iBAGxBnI,EAAWzF,UAAUgO,SAAW,WAC5B1E,KAAKqE,UACLrE,KAAK8F,sBACL9F,KAAKkB,cAAe,EACpBlB,KAAKmB,WAAQ1D,EACbuC,KAAKmF,oBAAiB1H,EACtBuC,KAAKwF,gBAAa/H,EAClBuC,KAAK2F,iBAAclI,EACnBuC,KAAK4F,mCAAgCnI,EACrCuC,KAAK0F,oBAAiBjI,EACtBuC,KAAKkF,wBAAqBzH,EAC1BuC,KAAKoF,SAAW,EAChBpF,KAAKqF,SAAW,EAChBrF,KAAKoB,WAAWzJ,SAAQ,SAAUkO,GAC9B,IAAInD,EAAMmD,EAAO/F,SAAS4C,IAC1BA,EAAIxB,cAAe,EACnBwB,EAAIE,kBAAmB,KAE3B5C,KAAKqB,WAAW1J,SAAQ,SAAUsL,GAC9B,IAAIP,EAAMO,EAAUnD,SAAS4C,IAC7BA,EAAIQ,SAAU,EACdR,EAAIxB,cAAe,EACnBwB,EAAIqD,qBAAsB,EAC1BrD,EAAIsD,YAAa,EACjBtD,EAAIvB,WAAQ1D,MAGpBtB,EAAWzF,UAAU8N,gBAAkB,SAAUlO,GAC7C,IAAI2P,EACJ,IAAKjG,KAAKkB,aACN,MAAO,CAAEqD,cAAe,KAAM2B,gBAAiB,IAenD,IAbA,IAWIjD,EAXA4B,EAAUzF,EAAS,UAAW9I,GAC9BwO,EAAU1F,EAAS,UAAW9I,GAC9B4P,EAAkBlG,KAAKqB,WAAW8E,QAAO,SAAUlD,GACnD,GAAKA,EAAUnD,SAAS4C,IAAIQ,QAA5B,CAEA,IAAIkD,EAAanD,EAAUhD,QAAQhC,wBACnC,OAAOmI,EAAWjI,MAAQ0G,GACtBuB,EAAWtH,OAAS+F,GACpBuB,EAAW9H,KAAOwG,GAClBsB,EAAWrH,QAAU+F,MAGzB7E,EA7bZ,SAAiCjE,EAASkC,EAAGG,GACzC,IAAIxB,EAAY,GACZb,IACAa,EAAYb,EAAQa,UACpBb,EAAQa,WAAa,iBAEzB,IAAIvC,EAAKgC,EAAIyI,iBAAiB7G,EAAGG,GAIjC,OAHIrC,IACAA,EAAQa,UAAYA,GAEjBvC,EAmbW+L,CAAwBrG,KAAKsG,SAAUzB,EAASC,IACtD7B,GAAahD,GAAS,CAC1B,IAAI6C,EAAMjC,EAAyBqF,EAAiBjG,GAChD6C,GAAO,EACPG,EAAYiD,EAAgBpD,GAG5B7C,EAAUjB,EAAUiB,GAS5B,OANIgD,EACAiD,EAAgBnD,OAAOmD,EAAgBrM,QAAQoJ,GAAY,GAEtDiD,EAAgBhN,OAAS,IACR+J,GAAtBgD,EAAKC,GAAgC,GAAIA,EAAkBD,EAAGM,MAAM,IAEjE,CAAEhC,cAAetB,EAAWiD,gBAAiBA,IAExD/J,EAAWzF,UAAUyL,MAAQ,SAAU7L,GACnC,IAAIiP,EAAQvF,KACZ,GAAKA,KAAKkB,aAAV,CAGA5K,EAAEuN,iBACF7D,KAAKwG,uBAAuBlQ,GAC5B,IAAI2P,EAAKjG,KAAKwE,gBAAgBlO,GAAIiO,EAAgB0B,EAAG1B,cAAe2B,EAAkBD,EAAGC,gBACzFlG,KAAKqB,WAAW1J,SAAQ,SAAUsL,GAC9B,IAAIP,EAAMO,EAAUnD,SAAS4C,IACxBA,EAAIxB,eAEL+B,IAAcsB,GACd7B,EAAIqD,qBAAsB,EAC1BrD,EAAIsD,YAAa,EACb/C,EAAUtC,UACVsC,EAAUtC,SAAS4E,EAAMd,cAAcxB,EAAUhD,QAAS3J,KAGzD4P,EAAgBrM,QAAQoJ,IAAc,GAC3CP,EAAIqD,qBAAsB,EAC1BrD,EAAIsD,YAAa,EACb/C,EAAUtC,UACVsC,EAAUtC,SAAS4E,EAAMd,cAAcxB,EAAUhD,QAAS3J,MAI9DoM,EAAIqD,qBAAsB,EAC1BrD,EAAIsD,YAAa,SAI7B7J,EAAWzF,UAAU0L,KAAO,SAAU9L,GAC7B0J,KAAKkB,cAGI,WAAV5K,EAAEmQ,MACFnQ,EAAEuN,iBACF7D,KAAK0E,WACD1E,KAAKiB,IACLjB,KAAKiB,GAAGqD,QAAQ,mBAI5BnI,EAAWzF,UAAU8P,uBAAyB,SAAUlQ,GACpD,GAAI0J,KAAKsG,SAAU,CACf,IAAI3G,EAAQP,EAAS,QAAS9I,GAC1BsJ,EAAQR,EAAS,QAAS9I,GAC9B,GAAI0J,KAAK4F,8BAA+B,CACpC,IAAI5H,EAAOgC,KAAKsG,SAASrI,wBACrBhD,EAAQsD,EAAaP,GACrB9C,EAASsD,EAAcR,GAC3BgC,KAAKsG,SAAStL,MAAMmD,KAAQwB,EAAQ+G,KAAKC,MAAM1L,EAAQ,GAAM,KAC7D+E,KAAKsG,SAAStL,MAAMsD,IAAOsB,EAAQ8G,KAAKC,MAAMzL,EAAS,GAAM,UAG7D8E,KAAKsG,SAAStL,MAAMmD,KAAQwB,EAAQK,KAAKoF,SAAY,KACrDpF,KAAKsG,SAAStL,MAAMsD,IAAOsB,EAAQI,KAAKqF,SAAY,OAIhElJ,EAAWzF,UAAU+N,cAAgB,SAAUmC,EAAetQ,GAC1D,IAQIuQ,EARAC,EAAe,CACf5I,EAAG8B,KAAKkF,mBAAmBhH,EAAI8B,KAAKoF,SACpC/G,EAAG2B,KAAKkF,mBAAmB7G,EAAI2B,KAAKqF,UAEpC1F,EAAQP,EAAS,QAAS9I,GAC1BsJ,EAAQR,EAAS,QAAS9I,GAC1ByQ,EAAa,CAAE7I,EAAGyB,EAAOtB,EAAGuB,GAC5BoH,EAAoBjJ,EAAY6I,GAapC,OAVIC,EADA7G,KAAKsG,SACgBvI,EAAYiC,KAAKsG,UAGjB,CACjBpI,EAAGyB,EAAQK,KAAKoF,SAChB/G,EAAGuB,EAAQI,KAAKqF,SAChBpK,MAAO+E,KAAKkF,mBAAmBjK,MAC/BC,OAAQ8E,KAAKkF,mBAAmBhK,QAGjC,CACH4L,aAAcA,EACdC,WAAYA,EACZE,kBAAmBjH,KAAKkF,mBACxB8B,kBAAmBA,EACnBH,mBAAoBA,IAG5B1K,EAAWzF,UAAU4O,oBAAsB,WACvC,IAAItF,KAAKsG,WAELtG,KAAKwF,WAAT,CAEA,IAAI0B,IAAelH,KAAK0F,eACxB,GAAIwB,EACAlH,KAAKsG,SAAWtG,KAAK0F,eACrB1F,KAAK0F,oBAAiBjI,MAErB,CACD,IAAInD,EAAK0F,KAAKmF,eACd,IAAK7K,EACD,OACJ,IAAK,IAAI9B,EAAI,EAAGA,EAAIwH,KAAKsB,eAAepI,SACpC8G,KAAKsG,SAAWtG,KAAKsB,eAAe9I,GAAG8B,IACnC0F,KAAKsG,UAFmC9N,KAKhD,IAAKwH,KAAKsG,SACN,OAER5J,EAAQO,IAAI+C,KAAKsG,SAAU,mBAC3BhK,EAAIuC,KAAKxD,YAAY2E,KAAKsG,UAC1B5J,EAAQO,IAAIX,EAAIuC,KAAM,wBACjBqI,GAAkE,qBAApDpM,iBAAiBkF,KAAKsG,UAAUa,kBAC/CnH,KAAKsG,SAAStL,MAAMmM,gBAAkB,SAEtCnH,KAAK2F,aACLjJ,EAAQO,IAAIX,EAAIuC,KAAM,yBAG9B1C,EAAWzF,UAAUoP,oBAAsB,WACnC9F,KAAKsG,WACL5J,EAAQU,GAAGd,EAAIuC,KAAM,wBACrBnC,EAAQU,GAAGd,EAAIuC,KAAM,uBACrBG,EAAUgB,KAAKsG,UAAUc,YAAYpH,KAAKsG,UAC1CtG,KAAKsG,SAAW,OAGjBnK,EAjcM,GAmcjBnE,EAAQmE,WAAaA,EACrBA,EAAmB,OAAI,CAACC,EAA2BiL,kB,mHCzqB3CC,E,oFCAJ,EAA6B,WAC7B,SAASC,KAkBT,OAhBAA,EAA0B7Q,UAAU8Q,sBAAwB,SAAUC,EAAiBC,GACnF,OAAOD,EAAgBE,iBAAiBD,IAE5CH,EAA0B7Q,UAAUkR,gBAAkB,SAAUC,EAAQH,GACpEG,EAAOC,gBAAe,GAAOD,EAAOE,uBACpC,IAAIC,EAAcN,EAAMxO,OACpBwO,GAASM,EAAc,GACvBhI,KAAKiI,gCAAgCJ,EAAQH,IAGrDH,EAA0B7Q,UAAUuR,gCAAkC,SAAUJ,EAAQH,GACpF,IAAK,IAAIlP,EAAI,EAAG0P,EAAKR,EAAMxO,OAAQV,EAAI0P,EAAI1P,IAAK,CAC5C,IAAI2P,EAAkB,YAA0BN,EAAQH,EAAMlP,GAAIA,EAAG0P,GACrEL,EAAOO,QAAQD,EAAgBE,eAAgBF,KAGhDZ,EAnBqB,GCC5B,EAAoC,WACpC,SAASe,IACLtI,KAAKuI,SAAW,GAChBvI,KAAKwI,WAAa,GAClBxI,KAAKyI,aAAY,SAAUf,GACvB,GAAIA,aAAiBhO,MACjB,OAAwB,IAAjBgO,EAAMxO,QAAoC,iBAAbwO,EAAM,KAE/C,IAAI,GACP1H,KAAKyI,aAAY,SAAUf,GACvB,GAAIA,aAAiBhO,MACjB,OAAOgO,EAAMxO,QAA8B,iBAAbwO,EAAM,KAEzC,IAAI,KAeX,OAbAY,EAAiC5R,UAAU+R,YAAc,SAAUC,EAASC,GACxE3I,KAAKuI,SAASjP,KAAKoP,GACnB1I,KAAKwI,WAAWlP,KAAKqP,IAEzBL,EAAiC5R,UAAUkS,YAAc,SAAUlB,GAE/D,IADA,IAAIa,EAAWvI,KAAKuI,SACX/P,EAAI,EAAG0P,EAAKK,EAASrP,OAAQV,EAAI0P,IAAM1P,EAC5C,GAAI+P,EAAS/P,GAAGkP,GACZ,OAAO1H,KAAKwI,WAAWhQ,GAG/B,OAAO,MAEJ8P,EA5B4B,G,wDCDxB,cACX,MAFS,kCAEOO,GCFhBC,EAAuB,WACvB,SAASA,IACL9I,KAAK+I,KAAO,IAAIC,QAapB,OAXAF,EAAoBpS,UAAUuG,IAAM,SAAUgM,GAC1C,IAAIC,EAAaD,EAASC,WAAYxB,EAAQuB,EAASvB,MACvD1H,KAAK+I,KAAKzR,IAAIoQ,EAAO,CAAEyB,MAAO,WAAc,OAAOF,EAASpR,MAASqR,WAAYA,KAErFJ,EAAoBpS,UAAU0S,OAAS,SAAUH,GAC7C,IAAIvB,EAAQuB,EAASvB,MACrB1H,KAAK+I,KAAKM,OAAO3B,IAErBoB,EAAoBpS,UAAU4S,IAAM,SAAU5B,GAC1C,OAAO1H,KAAK+I,KAAKO,IAAI5B,IAElBoB,EAfe,GJAtBS,GACIjC,EAAgB,SAAUkC,EAAGC,GAI7B,OAHAnC,EAAgBpN,OAAOwP,gBAClB,CAAEC,UAAW,cAAgBjQ,OAAS,SAAU8P,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOvP,OAAOxD,UAAUmT,eAAeC,KAAKL,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,MAC3EJ,EAAGC,IAErB,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIM,UAAU,uBAAyBC,OAAOP,GAAK,iCAE7D,SAASQ,IAAOjK,KAAKkK,YAAcV,EADnClC,EAAckC,EAAGC,GAEjBD,EAAE9S,UAAkB,OAAN+S,EAAavP,OAAOiQ,OAAOV,IAAMQ,EAAGvT,UAAY+S,EAAE/S,UAAW,IAAIuT,KAGnFG,EAA0C,SAAUC,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAE5DI,EAA0C,SAAUC,EAAGC,GACvD,GAAuB,iBAAZJ,SAAoD,mBAArBA,QAAQK,SAAyB,OAAOL,QAAQK,SAASF,EAAGC,IAEtGE,EAAgD,SAAUC,EAAIC,EAAMC,GACpE,GAAIA,GAA6B,IAArBZ,UAAUtR,OAAc,IAAK,IAA4BmS,EAAxB7S,EAAI,EAAG8S,EAAIH,EAAKjS,OAAYV,EAAI8S,EAAG9S,KACxE6S,GAAQ7S,KAAK2S,IACRE,IAAIA,EAAK3R,MAAMhD,UAAU6P,MAAMuD,KAAKqB,EAAM,EAAG3S,IAClD6S,EAAG7S,GAAK2S,EAAK3S,IAGrB,OAAO0S,EAAGK,OAAOF,GAAM3R,MAAMhD,UAAU6P,MAAMuD,KAAKqB,KAYlDK,EAAO,EACP9O,EAAW,WACX,IAAIC,EAAQ,GAGZ,SAASC,EAAYC,GACjB,IAAIC,EAASH,EAAME,GAOnB,OANIC,EACAA,EAAOC,UAAY,EAGnBJ,EAAME,GAAaC,EAAS,IAAIE,OAR5B,YAQ2CH,EAP7C,YAO8D,KAE7DC,EAcX,MAAO,CAAEG,IAZT,SAAkB3C,EAAIuC,GAClB,IAAIK,EAAU5C,EAAGuC,UACZK,EAAQhE,OAGH0D,EAAYC,GAAWM,KAAKD,KAClC5C,EAAGuC,WAAa,IAAMA,GAHtBvC,EAAGuC,UAAYA,GASCO,GAHxB,SAAiB9C,EAAIuC,GACjBvC,EAAGuC,UAAYvC,EAAGuC,UAAUQ,QAAQT,EAAYC,GAAY,KAAKS,SAxB3D,GA4BV,EAAqB,SAAUmO,GAE/B,SAASC,EAAkBzK,EAAI0K,EAAWC,EAAeC,EAAYC,EAAaC,EAAaC,EAAUC,EAAexE,EAAiByE,EAAiBC,GACtJ,IAAI5G,EAAQkG,EAAO3B,KAAK9J,KAAM,CAC1BoM,MAAO,OACPrE,sBAAuB,YAAsB+D,MAC3C9L,KAmBN,GAlBAuF,EAAM8G,UAAY,KAClB9G,EAAM1N,KAAO,KACb0N,EAAM2D,WAAasC,EACnBjG,EAAM1N,KAAO0N,EAAM2D,WACnBsC,GAAQ,EACRjG,EAAMtE,GAAKA,EACXsE,EAAMoG,UAAYA,EAClBpG,EAAMqG,cAAgBA,EACtBrG,EAAMsG,WAAaA,EACnBtG,EAAMuG,YAAcA,EACpBvG,EAAMwG,YAAcA,EACpBxG,EAAMyG,SAAWA,EACjBzG,EAAM+G,gBAAkBL,EAAcK,gBACtC/G,EAAMkC,gBAAkBA,EACxBlC,EAAM2G,gBAAkBA,EACxB3G,EAAM4G,SAAWA,EACjB5G,EAAMgH,gBAAiB,EACvBhH,EAAMiH,iBAAmB,YAAyBjH,EAAMwG,YAAa,0BACjExG,EAAMiH,4BAA4B,IAClC,MAAM,IAAI5S,MAAM,0DAEpB,GAAI2L,EAAMiH,4BAA4B,IAClC,MAAM,IAAI5S,MAAM,yDAEpB,GAAI,YAAU2L,EAAMiH,kBAChB,MAAM,IAAI5S,MAAM,0DAIpB,OAFA2L,EAAMwC,sBAAwB,YAAsB+D,GACpDvG,EAAM4D,MAAQ5D,EAAMkH,oBACblH,EAogBX,OAviBAgE,EAAUmC,EAAmBD,GAqC7BC,EAAkBhV,UAAUoT,KAAO,SAAU4C,EAASC,GAClD3M,KAAK0M,GAAS1M,KAAK0H,MAAOiF,IAE9BjB,EAAkBhV,UAAUkK,KAAO,SAAUyH,EAAgBF,GACzD,IAAI5C,EAAQvF,KACZA,KAAK4M,MAAQ,CAAEvE,eAAgBA,EAAgBF,gBAAiBA,GAChEnI,KAAK6M,eAAiB7M,KAAK8M,kCAC3B9M,KAAK+M,cAAgB/M,KAAK4L,cAAcoB,mBAAmBhN,KAAK0H,OAAOuF,UAAUjN,KAAKkN,cAActM,KAAKZ,OACzGA,KAAKmN,YAAc,CACfnN,KAAKiB,GAAGgM,UAAU,iBAAiB,WAC/B1H,EAAM8G,UAAY,KAClB9G,EAAM6H,QAAQzV,SAAQ,SAAUoT,GAC5BrO,EAAQU,GAAG2N,EAAEsC,WAAY,iCACzB3Q,EAAQU,GAAG2N,EAAEsC,WAAY,wCAGjCrN,KAAKiB,GAAGgM,UAAU,iBAAiB,WAC/B1H,EAAM8G,UAAY,KAClB9G,EAAM6H,QAAQzV,SAAQ,SAAUoT,GAC5BrO,EAAQU,GAAG2N,EAAEsC,WAAY,iCACzB3Q,EAAQU,GAAG2N,EAAEsC,WAAY,wCAGjCrN,KAAKiB,GAAGgM,UAAU,cAAc,WAK5B,GAJA1H,EAAM6H,QAAQzV,SAAQ,SAAUoT,GAC5BrO,EAAQU,GAAG2N,EAAEsC,WAAY,iCACzB3Q,EAAQU,GAAG2N,EAAEsC,WAAY,qCAExB9H,EAAM8G,UAAX,CAEA,IAAIpG,EAAKV,EAAM8G,UAAWiB,EAAOrH,EAAGqH,KAAMC,EAAYtH,EAAGsH,UAAWC,EAAiBvH,EAAGuH,eAAgBC,EAAUxH,EAAGwH,QAASC,EAAezH,EAAGyH,aAChJnI,EAAM8G,UAAY,KAClB,IAAInD,EAAa,EAAgB3D,EAAM2D,YACvC,KAAIA,IAAesE,GAAkBtE,IAAewE,GAEhDF,IAAmBE,GAAgBH,IAAcE,GAArD,CAEA,IAAIE,EAAS,CAAEL,KAAMA,EAAMC,UAAWA,EAAWE,QAASA,GACtDvE,IAAesE,IACfjI,EAAMmC,MAAM3E,OAAOwK,EAAW,GAC9BI,EAAOC,qBAAsB,GAE7B1E,IAAewE,IACfnI,EAAMmC,MAAM3E,OAAO0K,EAAS,EAAGH,GAC/BK,EAAOE,oBAAqB,GAEhC,IAAIC,EAAkBvI,EAAMwI,kCACxBD,GACAvI,EAAMoG,UAAUqC,gBAAe,WAC3BF,EAAgBvI,EAAMmC,MAAOiG,WAIzC3N,KAAKiB,GAAGgM,UAAU,uCAAuC,SAAUZ,GAC3DA,EAAUxU,OAAS,EAAgB0N,EAAM1N,QAEzC0N,EAAM8G,WACNA,EAAUxU,OAAS0N,EAAM8G,UAAUxU,MACnCwU,EAAUkB,YAAchI,EAAM8G,UAAUkB,WACxClB,EAAUmB,iBAAmBjI,EAAM8G,UAAUmB,gBAC7CnB,EAAUoB,UAAYlI,EAAM8G,UAAUoB,SACtCpB,EAAUqB,eAAiBnI,EAAM8G,UAAUqB,eAE/CnI,EAAM8G,UAAYA,QAGA,iBAAfrM,KAAKmJ,MACZnJ,KAAKnI,KAAOmI,KAAKmJ,MAEZnJ,KAAKmJ,QACVnJ,KAAKmJ,MAAM8E,eAAiB,OACxBjO,KAAKkO,aAAelO,KAAKmJ,MAAMgF,cAAcnO,MACjDA,KAAKkO,aAAatN,KAAKZ,KAAK4M,QAEhC5M,KAAKoO,aAAenD,EAAc,GAAIjL,KAAK0H,OAAO,GAClD1H,KAAKqO,uBAET3C,EAAkBhV,UAAU4X,OAAS,WACjCtO,KAAKmM,SAAS/C,OAAOpJ,MACjBA,KAAKkO,eACLlO,KAAKkO,aAAaI,gBACXtO,KAAKkO,cAEZlO,KAAK+M,gBACL/M,KAAK+M,cAAcwB,UACnBvO,KAAK+M,cAAgB,MAEzB/M,KAAKmN,YAAYxV,SAAQ,SAAUgN,GAAK,OAAOA,EAAE4J,aACjDvO,KAAKmN,YAAc,GACnBnN,KAAK8H,gBAAe,GAAM,GAC1B9H,KAAK4M,MAAQ,KACb5M,KAAK0H,MAAQ,KACb1H,KAAK6M,eAAiB,MAE1BnB,EAAkBhV,UAAU8X,iBAAmB,SAAUC,GACrD,GAAIA,EAAc,CACd,IAAIvF,EAAa,EAAgBlJ,KAAKkJ,YAClCoE,EAAOmB,EAAanB,KAAMC,EAAYkB,EAAalB,UAAWC,EAAiBiB,EAAajB,eAAgBC,EAAUgB,EAAahB,QAASC,EAAee,EAAaf,aACxKgB,EAAUzD,EAAc,GAAIjL,KAAK0H,OAAO,GACxCwB,IAAesE,GACfkB,EAAQ3L,OAAOwK,EAAW,GAE1BrE,IAAewE,GACfgB,EAAQ3L,OAAO0K,EAAS,EAAGH,GAE/BtN,KAAKoO,aAAeM,OAGhB1O,KAAK0H,MACL1H,KAAKoO,aAAenD,EAAc,GAAIjL,KAAK0H,OAAO,GAGlD1H,KAAKoO,aAAe,MAIhC1C,EAAkBhV,UAAUiY,aAAe,WAClC3O,KAAK4M,QAGN5M,KAAK+M,gBACL/M,KAAK+M,cAAcwB,UACnBvO,KAAK+M,cAAgB,MAEzB/M,KAAK+M,cAAgB/M,KAAK4L,cAAcoB,mBAAmBhN,KAAK0H,OAAOuF,UAAUjN,KAAKkN,cAActM,KAAKZ,OAClF,OAAnBA,KAAKqM,UACLrM,KAAKoO,aAAenD,EAAc,GAAIjL,KAAK0H,OAAO,GAGlD1H,KAAKqM,UAAY,OAGzBX,EAAkBhV,UAAUwW,cAAgB,WACjB,OAAnBlN,KAAKqM,UACLrM,KAAKoO,aAAenD,EAAc,GAAIjL,KAAK0H,OAAO,GAGlD1H,KAAKqM,UAAY,MAGzBX,EAAkBhV,UAAU2X,oBAAsB,WAC9CrO,KAAK4O,WAETlD,EAAkBhV,UAAUmY,YAAc,WACtC7O,KAAK4O,WAETlD,EAAkBhV,UAAUkY,QAAU,WAClC,IAAIrJ,EAAQvF,KACZ,GAAKA,KAAK4M,OAGL5M,KAAKoO,aAAV,CAIA,GADApO,KAAK2I,SAAW3I,KAAKkM,gBAAgBtD,YAAY5I,KAAKoO,eACjDpO,KAAK2I,SACN,MAAM,IAAI/O,MAAM,cAAc2R,OAAOvL,KAAKwM,iBAAkB,wBAEhExM,KAAK2I,SAASf,gBAAgB5H,KAAMA,KAAKoO,cACzCpO,KAAK2L,UAAUqC,gBAAe,WACrBzI,EAAMqH,QAGXrH,EAAM4G,SAAS/C,OAAO7D,GACtBA,EAAM6H,QAAQzV,SAAQ,SAAUmX,GAC5BvJ,EAAMwJ,eAAeD,GACrBvJ,EAAMyJ,aAAaF,MAEvBvJ,EAAM4G,SAASlP,IAAIsI,SAG3BmG,EAAkBhV,UAAUoW,gCAAkC,WAC1D,GAAI9M,KAAK8L,YAAYA,YAGjB,IAFA,IAAImD,EAAejP,KAAK8L,YAAYA,YAAYmD,aAC5CC,EAAiBhV,OAAOiV,KAAKF,GACxBzW,EAAI,EAAGA,EAAI0W,EAAehW,OAAQV,IAAK,CAC5C,IAAI4W,EAAcH,EAAaC,EAAe1W,IAAI4W,YAClD,GAAIA,EACA,KAAiB5W,EAAI4W,EAAYlW,OAAQV,IACrC,GAAuC,YAAnC4W,EADM,GACUnB,eAA8B,CAC9C,IAAIpB,EAAiBuC,EAFf,GAIN,OADAA,EAAYrM,OAHN,EAGiB,GAChB8J,KAQ/BnB,EAAkBhV,UAAU2Y,UAAY,WAAc,OAAOrP,KAAKgM,SAASjR,SAAS7B,QACpFwS,EAAkBhV,UAAU0W,MAAQ,WAAc,OAAOpN,KAAKgM,SAASjR,UACvE2Q,EAAkBhV,UAAUoY,KAAO,SAAUQ,GAAS,OAAOtP,KAAKgM,SAASjR,SAASuU,IACpF5D,EAAkBhV,UAAUgS,QAAU,WAAc,OAAO1I,KAAK6M,eAAiB7M,KAAK6M,eAAeL,iBAAiB+C,SAASvP,KAAK4M,MAAO5M,KAAK6M,eAAeP,iBAAmB,MAClLZ,EAAkBhV,UAAU0R,QAAU,SAAUC,EAAgBF,GAC5D,IAAI2G,EAAO9O,KAAK8L,YAAY3B,SAC5B2E,EAAKlO,KAAKyH,EAAgBF,GAC1BnI,KAAKgM,SAAS/O,IAAI6R,IAEtBpD,EAAkBhV,UAAU8Y,WAAa,SAAUF,EAAOjH,EAAgBF,GACtE,IAAI2G,EAAO9O,KAAK8L,YAAY3B,SAC5B2E,EAAKlO,KAAKyH,EAAgBF,GAC1BnI,KAAKgM,SAASyD,OAAOH,EAAOR,IAEhCpD,EAAkBhV,UAAUgZ,SAAW,SAAUC,EAAaC,GAC1D5P,KAAKgM,SAAS6D,KAAKF,EAAaC,IAEpClE,EAAkBhV,UAAUoR,eAAiB,SAAUgI,EAAeC,GAClE,IAAIxK,EAAQvF,KAEZ,OADAA,KAAKoN,QAAQzV,SAAQ,SAAUmX,GAAQ,OAAOvJ,EAAMwJ,eAAeD,MAC5D9O,KAAKgM,SAASgE,UAAUF,EAAeC,IAElDrE,EAAkBhV,UAAUuZ,YAAc,SAAUC,EAAeJ,EAAeC,GAC9E,IAAIxK,EAAQvF,KAEZ,OADAkQ,EAAcvY,SAAQ,SAAUmX,GAAQ,OAAOvJ,EAAMwJ,eAAeD,MAC7D9O,KAAKgM,SAASmE,WAAWD,EAAeJ,EAAeC,IAElErE,EAAkBhV,UAAU0Z,WAAa,SAAUd,EAAOQ,EAAeC,GAErE,OADA/P,KAAK+O,eAAe/O,KAAK8O,KAAKQ,IACvBtP,KAAKgM,SAASqE,SAASf,EAAOQ,EAAeC,IAExDrE,EAAkBhV,UAAU4Z,eAAiB,SAAUxB,GAEnD,IADA,IAAIyB,EAAIzB,EAAK0B,SAAStX,OACfqX,KACH,YAAqBzB,EAAK0B,SAASD,IAGvC,IADAA,EAAIzB,EAAK2B,YAAYvX,OACdqX,KAEH,IADA,IAAIzF,EAAIgE,EAAK2B,YAAYF,GAAGG,gBAAgBxX,OACrC4R,KAAK,CACR,IAAI6F,EAAU7B,EAAK2B,YAAYF,GAAGG,gBAAgB5F,GAAG6F,QACrD,YAAqBA,KAIjCjF,EAAkBhV,UAAUka,qBAAuB,SAAU9B,EAAM+B,GAC/D,OAAI/B,GAAQA,EAAKzB,YAAcyB,EAAKzB,WAAWyD,IAAMhC,EAAKzB,WAAWyD,GAAGD,GAC7D/B,EAAKzB,WAAWyD,GAAGD,GAAW9E,YAAYgF,WAAWF,GAEzD7Q,KAAKgR,mBAAmBH,IAEnCnF,EAAkBhV,UAAUsa,mBAAqB,SAAUC,GACvD,GAAIjR,KAAK8L,aAAe9L,KAAK8L,YAAYA,YAAa,CAClD,IAAIvK,EAAOvB,KAAK8L,YAAYA,YAAYoF,SAAS7D,WACjD,GAAI9L,GAAQA,EAAK4P,aAAaF,GAC1B,OAAO1P,EAAK6P,aAAaH,KAIrCvF,EAAkBhV,UAAU+V,kBAAoB,WAC5C,GAAIzM,KAAK8L,aAAe9L,KAAK8L,YAAYA,YAAa,CAClD,IACIuF,EADOrR,KAAK8L,YAAYA,YAAYoF,SAAS7D,WAC7B+D,aAAa,gBAC7BrF,EAAc/L,KAAK8L,YAAYA,YAAYmD,aAAaoC,GAC5D,GAAItF,EAAa,CACb,IAAIuF,EAAKvF,EAAYwF,qBAAqBC,MAAK,SAAUF,GAAM,MAAuB,sBAAhBA,EAAGG,YACzE,GAAIH,EAAI,CACJ,IAAII,EAAMJ,EAAGP,YAAcO,EAAGP,WAAW,qBACzC,GAAIW,GAAoC,mBAAtBA,EAAIvD,cAClB,OAAOuD,IAKvB,OAAO1R,KAAKgR,mBAAmB,sBAEnCtF,EAAkBhV,UAAUib,sBAAwB,SAAU7C,GAC1D,IAAI8C,EAAO5R,KAAK4Q,qBAAqB9B,EAAM,yBAI3C,OAHI8C,GAAQA,EAAKpF,mBACboF,EAAOA,EAAKpF,iBAAiB+C,SAASvP,KAAK4M,QAE3B,iBAATgF,GACAA,EAAKC,eAET,QAEXnG,EAAkBhV,UAAUob,oBAAsB,SAAUhD,GACxD,IAAI8C,EAAO5R,KAAK4Q,qBAAqB9B,EAAM,oCAI3C,GAHI8C,GAAQA,EAAKpF,mBACboF,EAAOA,EAAKpF,iBAAiB+C,SAASvP,KAAK4M,QAE3B,iBAATgF,EACP,OAAOA,GAGflG,EAAkBhV,UAAUqb,gBAAkB,SAAUjD,GACpD,IAAIkD,EAAOhS,KAAK4Q,qBAAqB9B,EAAM,2BAC3C,GAAKkD,EAGA,IAAoB,iBAATA,EAAmB,CAC/B,IAAItF,EAAU,YAAcsF,EAAMhS,KAAK4M,OACnCqF,EAAWvF,EAAQsF,GACvB,GAAwB,mBAAbC,EACP,OAAOA,EAASrR,KAAK8L,GAEzB,MAAM,IAAI9S,MAAM,0EAEf,GAAIoY,EAAKxF,iBACV,OAAO,SAAU0F,EAAGtF,GAChB,OAAOoF,EAAKxF,iBAAiB+C,SAAS3C,IAI1C,MAAM,IAAIhT,MAAM,0EAhBhB,OAAO,MAmBf8R,EAAkBhV,UAAUqX,gCAAkC,WAC1D,IAAIxI,EAAQvF,KACRgS,EAAOhS,KAAK4Q,qBAAqB5Q,KAAK8O,KAAK,GAAI,gCACnD,GAAKkD,EAGA,IAAoB,iBAATA,EAAmB,CAC/B,IAAItF,EAAU,YAAcsF,EAAMhS,KAAK4M,OACnCqF,EAAWvF,EAAQsF,GACvB,GAAwB,mBAAbC,EACP,OAAOA,EAASrR,KAAK8L,GAEzB,MAAM,IAAI9S,MAAM,+EAEf,GAAIoY,EAAKxF,iBACV,OAAO,WAAc,OAAOwF,EAAKxF,iBAAiB+C,SAAShK,EAAMqH,QAGjE,MAAM,IAAIhT,MAAM,+EAdhB,OAAO,MAiBf8R,EAAkBhV,UAAUyb,UAAY,SAAUC,EAAU9C,EAAO+C,GAC/D,IAAInJ,EAAa,EAAgBlJ,KAAKkJ,YACtC,IAAIlJ,KAAKqM,WACLrM,KAAKqM,UAAUqB,eAAiBxE,GAChClJ,KAAKqM,UAAUoB,UAAY6B,EAF/B,CAKA,IAAInO,EAAQnB,KAAK6L,WAAW1K,MACxB4F,EAAaqL,EAASrL,WAAYC,EAAoBoL,EAASpL,kBAC/D9I,EAAI6I,EAAW7I,EAAI8I,EAAkB9I,EACrCG,EAAI0I,EAAW1I,EAAI2I,EAAkB3I,GAEvB,SAAdgU,EACcnU,EAAK8I,EAAkB/L,MAAQ,EAE1B,UAAdoX,EACSnU,EAAK8I,EAAkB/L,MAAQ,EAE1B,OAAdoX,EACShU,EAAK2I,EAAkB9L,OAAS,EAGhCmD,EAAK2I,EAAkB9L,OAAS,KAG5C8E,KAAKqM,WAAalL,EAAM+H,aAAeA,GAAcoG,IAAUnO,EAAMmO,MACvEtP,KAAKsS,iBAAiBhD,GAAO,GAG7BtP,KAAKsS,iBAAiBhD,GAAO,KAGrC5D,EAAkBhV,UAAUsY,aAAe,SAAUF,GACjD,IAMI3O,EANAoF,EAAQvF,KACRoM,EAAQpM,KAAKoM,MACb9R,EAAKwU,EAAKzB,WACVC,EAAOwB,EAAKzG,eAAe+D,GAC3BkD,EAAQR,EAAK3G,gBAAgBoK,OAC7BC,EAAkBxS,KAAK8R,oBAAoBhD,GAE3C0D,IACArS,EAAU7F,EAAGmY,cAAcD,IAE/B,IAAItJ,EAAa,EAAgBlJ,KAAKkJ,YAClCmJ,EAAYrS,KAAK2R,sBAAsB7C,GACvC4D,EAAe1S,KAAK+R,gBAAgBjD,GACxC9O,KAAK6L,WAAWpJ,UAAU,CACtB1C,SAAU,WAAc,MAAO,CAAGlI,KAAM,EAAgB0N,EAAM1N,MAAOyX,MAAOA,EAAOhC,KAAMA,EAAMpE,WAAYA,IAC3GzD,WAAYiN,GAAgB,WAAe,OAAOA,EAAapF,EAAMwB,IACrE5O,WAAY5F,GACb6F,GAAW,CAAEA,QAASA,IACzBH,KAAK6L,WAAW7I,UAAU,CACtB9C,WAAY5F,EACZmG,WAAY,SAAUU,GAClB,GAAIA,EAAMtJ,OAAS,EAAgB0N,EAAM1N,MACrC,OAAO,EACX,IAKI8a,EALAtG,EAAY9G,EAAM8G,UAClBuG,EAAczR,EAAM+H,aAAeA,EAiBvC,OAhBA3D,EAAMoG,UAAUqC,gBAAe,WAC3BtR,EAAQO,IAAI3C,EAAI,oCAGhB+R,EACAsG,EAAatG,EAAUqB,eAAiBxE,GACpCmD,EAAUoB,UAAY6B,EAErBsD,IACLD,EAAaxR,EAAMmO,QAAUA,GAE7BqD,GACApN,EAAMoG,UAAUqC,gBAAe,WAC3BtR,EAAQO,IAAI3C,EAAI,sCAGjB,GAEXqG,SAAU,SAAUyR,GAChB7M,EAAM4M,UAAUC,EAAU9C,EAAO+C,IAErC3R,QAAS,gBAGjBgL,EAAkBhV,UAAUqY,eAAiB,SAAUD,GACnDpS,EAAQU,GAAG0R,EAAKzB,WAAY,iCAC5B3Q,EAAQU,GAAG0R,EAAKzB,WAAY,kCAC5BrN,KAAK6L,WAAWhJ,aAAaiM,EAAKzB,YAClCrN,KAAK6L,WAAW1I,aAAa2L,EAAKzB,aAEtC3B,EAAkBhV,UAAU4b,iBAAmB,SAAU1C,EAAaiD,GAClE,IAAI5M,EAAKjG,KAAK6L,WAAY3K,EAAe+E,EAAG/E,aAAcC,EAAQ8E,EAAG9E,MACrE,GAAKD,GAEDC,EAAMtJ,OAAS,EAAgBmI,KAAKnI,MAAxC,CAEA,IAAIqR,EAAa,EAAgBlJ,KAAKkJ,YAClC4J,EAAe3R,EAAMtJ,OAASsJ,EAAM+H,WACpC0J,EAAczR,EAAM+H,aAAeA,EACvC,KAAI0G,EAAc,GAAlB,CAEA,IAAImD,EACAC,EACAC,EACJ,GAAIL,EACA,GAAI5S,KAAKqM,UACL0G,EAAgB/S,KAAKqM,UAAUkB,UAC/ByF,EAAehT,KAAKqM,UAAUoB,YAE7B,CAED,IADAsF,EAAgB5R,EAAMmO,OACF,EAChB,OACJ0D,EAAeD,OAInB,GAAI/S,KAAKqM,WAAarM,KAAKqM,UAAUqB,eAAiBxE,EAClD6J,EAAgB/S,KAAKqM,UAAUkB,UAC/ByF,EAAehT,KAAKqM,UAAUoB,YAE7B,CAED,IADAsF,EAAgB5R,EAAMmO,OACF,EAChB,OACJ0D,EAAepD,EAKfqD,EAFJD,EAAepD,EACXiD,EACYjD,EAAc,EAGdA,EAIZiD,EACYjD,EAGAA,EAAc,EAG7B5P,KAAKqM,WACNrM,KAAKqM,UAAUkB,YAAcwF,GAC7B/S,KAAKqM,UAAUmB,iBAAmBrM,EAAM+H,YACxClJ,KAAKqM,UAAUoB,UAAYwF,GAC3BjT,KAAKqM,UAAUqB,eAAiBxE,IAChClJ,KAAKqM,UAAY,CACbxU,KAAMsJ,EAAMtJ,KACZyV,KAAMnM,EAAMmM,KACZC,UAAWwF,EACXvF,eAAgBrM,EAAM+H,WACtBuE,QAASwF,EACTvF,aAAcxE,GAEd4J,GACA9S,KAAKiB,GAAGqD,QAAQ,sCAAuCtE,KAAKqM,eAIxEjC,EAAW,CACP,IACAS,EAAW,cAAe3Q,SAC3BwR,EAAkBhV,UAAW,aAAS,GACzC0T,EAAW,CACP,IACAS,EAAW,cAAe3Q,SAC3BwR,EAAkBhV,UAAW,aAAS,GACzC0T,EAAW,CACP,IACAS,EAAW,cAAe3Q,SAC3BwR,EAAkBhV,UAAW,iBAAa,GAC7C0T,EAAW,CACP,IACAS,EAAW,cAAe3Q,SAC3BwR,EAAkBhV,UAAW,oBAAgB,GAChD0T,EAAW,CACP,IACAS,EAAW,cAAe3Q,SAC3BwR,EAAkBhV,UAAW,YAAQ,GACxCgV,EAAoBtB,EAAW,CAC3B,YAAgB,sBAChB,IACA,YAAO,kBAAiB,IAAW,IAAe,aAAY,IAAkB,IAAmB,IAAU,IAAe,IAAiB,EAAkCtB,GAC/K+B,EAAW,oBAAqB,CAAC3Q,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,OAAQA,UAClHwR,GAviBiB,CAyiBtB,KKjnBE,EAA0C,SAAUrB,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAG5D,EAAwB,WACxB,SAASyI,KAKT,OAHAA,EAAuB,EAAW,CAC9B,YAAgB,0BACjBA,GALoB,GCPvB,EAA0C,SAAU7I,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAG5D,EAAoB,WACpB,SAAS0I,KAKT,OAHAA,EAAmB,EAAW,CAC1B,YAAgB,sBACjBA,GALgB,GCPnB,EAA0C,SAAU9I,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAE5D,EAA0C,SAAUK,EAAGC,GACvD,GAAuB,iBAAZJ,SAAoD,mBAArBA,QAAQK,SAAyB,OAAOL,QAAQK,SAASF,EAAGC,IAStG,EAAuB,WACvB,SAASqI,EAAoBnT,EAASgB,EAAI4K,EAAYM,GAClDnM,KAAKqM,UAAY,KACjBrM,KAAKC,QAAUA,EACfD,KAAKiB,GAAKA,EACVjB,KAAK6L,WAAaA,EAClB7L,KAAKmM,SAAWA,EAChBnM,KAAKqT,eAAiBrT,KAAKqT,eAAezS,KAAKZ,MAyEnD,OAvEAoT,EAAoB1c,UAAUkK,KAAO,WACjC,IAAI2E,EAAQvF,KACR5F,EAAQ4F,KAAK5F,MACjB,IAAKV,MAAM4Z,QAAQlZ,GACf,MAAM,IAAIR,MAAM,kGAEpBoG,KAAKmN,YAAc,CACfnN,KAAKiB,GAAGgM,UAAU,iBAAiB,WAC/B,IAAIsG,EAAehO,EAAM4G,SAAS7C,IAAIlP,GAClCmZ,GACAhO,EAAM4D,MAAQ,EAAgBoK,EAAapK,SAC3C5D,EAAM2D,WAAa,EAAgBqK,EAAarK,cAGhD3D,EAAM4D,MAAQ,KACd5D,EAAM2D,WAAa,MAEvB3D,EAAM8N,oBAEVrT,KAAKiB,GAAGgM,UAAU,aAAcjN,KAAKqT,gBACrCrT,KAAKiB,GAAGgM,UAAU,uCAAuC,SAAUZ,GAC3DA,EAAUxU,OAAS0N,EAAM4D,QAE7B5D,EAAM8G,UAAYA,QAI9B+G,EAAoB1c,UAAU4X,OAAS,WACnCtO,KAAKmN,YAAYxV,SAAQ,SAAUgN,GAAK,OAAOA,EAAE4J,aACjDvO,KAAKmN,YAAc,IAEvBiG,EAAoB1c,UAAU2c,eAAiB,WAC3CrT,KAAKqM,UAAY,MAErB+G,EAAoB1c,UAAU8c,SAAW,WACrCxT,KAAK6L,WAAW7I,UAAUhD,KAAM,CAAEC,QAASD,KAAKC,WAEpDmT,EAAoB1c,UAAU+c,SAAW,WACrCzT,KAAK6L,WAAW1I,aAAanD,OAEjCoT,EAAoB1c,UAAU+J,WAAa,SAAUU,GACjD,OAAOA,EAAMtJ,OAASmI,KAAKmJ,OAE/BiK,EAAoB1c,UAAUiK,SAAW,WACrC,GAAKX,KAAKkJ,WAAV,CAEA,IAAIjD,EAAKjG,KAAK0C,IAAKqD,EAAsBE,EAAGF,oBAAqB5E,EAAQ8E,EAAG9E,MAC5E,GAAK4E,EAAL,CAEA,IAAIlO,EAAOsJ,EAAMtJ,KAAMyX,EAAQnO,EAAMmO,MAAOhC,EAAOnM,EAAMmM,KAAMpE,EAAa/H,EAAM+H,WAC9EhQ,EAAS8G,KAAK5F,MAAQ4F,KAAK5F,MAAMlB,OAAS,EAE1Cwa,EADcvS,EAAM+H,aAAelJ,KAAKkJ,WACLhQ,EAAS,EAAIA,EAC/C8G,KAAKqM,WAAarM,KAAKqM,UAAUqB,eAAiB1N,KAAKkJ,YACxDlJ,KAAKiB,GAAGqD,QAAQ,sCAAuC,CACnDzM,KAAMA,EACNyV,KAAMA,EACNC,UAAW+B,EACX9B,eAAgBtE,EAChBuE,QAASiG,EACThG,aAAc1N,KAAKkJ,gBAI/BkK,EAAoB1c,UAAUgK,QAAU,aAExC0S,EAAsB,EAAW,CAC7B,YAAgB,yBAChB,YAAOhT,QAAS,kBAAiB,aAAY0I,GAC7C,EAAW,oBAAqB,CAAC5O,OAAQA,OAAQA,OAAQA,UAC1DkZ,GA/EmB,GChBtB,EAA0C,SAAU/I,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAG5D,EAAyB,WACzB,SAASkJ,KAKT,OAHAA,EAAwB,EAAW,CAC/B,YAAgB,4BACjBA,GALqB,GCPxB,EAA0C,SAAUtJ,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAG5D,EAAiC,WACjC,SAASmJ,KAKT,OAHAA,EAAgC,EAAW,CACvC,YAAgB,qCACjBA,GAL6B,GCPhC,EAA0C,SAAUvJ,EAAYnG,EAAQuC,EAAK6D,GAC7E,IAA2Hd,EAAvHe,EAAIC,UAAUtR,OAAQuR,EAAIF,EAAI,EAAIrG,EAAkB,OAAToG,EAAgBA,EAAOpQ,OAAOwQ,yBAAyBxG,EAAQuC,GAAO6D,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASP,EAAYnG,EAAQuC,EAAK6D,QACpH,IAAK,IAAI9R,EAAI6R,EAAWnR,OAAS,EAAGV,GAAK,EAAGA,KAASgR,EAAIa,EAAW7R,MAAIiS,GAAKF,EAAI,EAAIf,EAAEiB,GAAKF,EAAI,EAAIf,EAAEtF,EAAQuC,EAAKgE,GAAKjB,EAAEtF,EAAQuC,KAASgE,GAChJ,OAAOF,EAAI,GAAKE,GAAKvQ,OAAOC,eAAe+J,EAAQuC,EAAKgE,GAAIA,GAG5D,EAA8B,WAC9B,SAASoJ,KAKT,OAHAA,EAA6B,EAAW,CACpC,YAAgB,iCACjBA,GAL0B,GCE1B,SAASC,EAAUC,GACtB,IAAIlS,aAFE,mEAGNkS,EAAOC,gBAAgB,CACnB,EACA,EACA,EACA,EACA,EACA,EACA,M,oBCXR,SAAUC,GACR,aAEAjc,EAAQkc,OAAS,SAASC,GACxB,IACA3b,EADI4b,EAAQ,IAAI5d,WAAW2d,GACxBtb,EAAMub,EAAMlb,OAAQmb,EAAS,GAEhC,IAAK7b,EAAI,EAAGA,EAAIK,EAAKL,GAAG,EACtB6b,GAAUJ,EAAMG,EAAM5b,IAAM,GAC5B6b,GAAUJ,GAAmB,EAAXG,EAAM5b,KAAW,EAAM4b,EAAM5b,EAAI,IAAM,GACzD6b,GAAUJ,GAAuB,GAAfG,EAAM5b,EAAI,KAAY,EAAM4b,EAAM5b,EAAI,IAAM,GAC9D6b,GAAUJ,EAAqB,GAAfG,EAAM5b,EAAI,IAS5B,OANKK,EAAM,GAAO,EAChBwb,EAASA,EAAOC,UAAU,EAAGD,EAAOnb,OAAS,GAAK,IACzCL,EAAM,GAAM,IACrBwb,EAASA,EAAOC,UAAU,EAAGD,EAAOnb,OAAS,GAAK,MAG7Cmb,GAGTrc,EAAQuc,OAAU,SAASF,GACzB,IACqB7b,EACrBgc,EAAUC,EAAUC,EAAUC,EAF1BC,EAA+B,IAAhBP,EAAOnb,OAC1BL,EAAMwb,EAAOnb,OAAW0Q,EAAI,EAGM,MAA9ByK,EAAOA,EAAOnb,OAAS,KACzB0b,IACkC,MAA9BP,EAAOA,EAAOnb,OAAS,IACzB0b,KAIJ,IAAIT,EAAc,IAAIjd,YAAY0d,GAClCR,EAAQ,IAAI5d,WAAW2d,GAEvB,IAAK3b,EAAI,EAAGA,EAAIK,EAAKL,GAAG,EACtBgc,EAAWP,EAAMpa,QAAQwa,EAAO7b,IAChCic,EAAWR,EAAMpa,QAAQwa,EAAO7b,EAAE,IAClCkc,EAAWT,EAAMpa,QAAQwa,EAAO7b,EAAE,IAClCmc,EAAWV,EAAMpa,QAAQwa,EAAO7b,EAAE,IAElC4b,EAAMxK,KAAQ4K,GAAY,EAAMC,GAAY,EAC5CL,EAAMxK,MAAoB,GAAX6K,IAAkB,EAAMC,GAAY,EACnDN,EAAMxK,MAAoB,EAAX8K,IAAiB,EAAiB,GAAXC,EAGxC,OAAOR,GAjDX,CAmDG","file":"vendors~62ab6885.b13f873a05431906553a.chunk.js","sourcesContent":["/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n  typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n  typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n  false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n  try {\r\n    var a = new Blob(['hi']);\r\n    return a.size === 2;\r\n  } catch(e) {\r\n    return false;\r\n  }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n  try {\r\n    var b = new Blob([new Uint8Array([1,2])]);\r\n    return b.size === 2;\r\n  } catch(e) {\r\n    return false;\r\n  }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n  && BlobBuilder.prototype.append\r\n  && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n  return ary.map(function(chunk) {\r\n    if (chunk.buffer instanceof ArrayBuffer) {\r\n      var buf = chunk.buffer;\r\n\r\n      // if this is a subarray, make a copy so we only\r\n      // include the subarray region from the underlying buffer\r\n      if (chunk.byteLength !== buf.byteLength) {\r\n        var copy = new Uint8Array(chunk.byteLength);\r\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n        buf = copy.buffer;\r\n      }\r\n\r\n      return buf;\r\n    }\r\n\r\n    return chunk;\r\n  });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n  options = options || {};\r\n\r\n  var bb = new BlobBuilder();\r\n  mapArrayBufferViews(ary).forEach(function(part) {\r\n    bb.append(part);\r\n  });\r\n\r\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n  return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n  BlobBuilderConstructor.prototype = Blob.prototype;\r\n  BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n  if (blobSupported) {\r\n    return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n  } else if (blobBuilderSupported) {\r\n    return BlobBuilderConstructor;\r\n  } else {\r\n    return undefined;\r\n  }\r\n})();\r\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trPreview = trPreview;\nexports.liPreview = liPreview;\nexports.unknownTagPreview = unknownTagPreview;\nexports.defaultPreview = defaultPreview;\nfunction trPreview(el) {\n    if (el.tagName !== 'TR')\n        return;\n    if (!el.parentNode)\n        return;\n    if (!el.parentNode.parentNode || el.parentNode.parentNode.tagName !== 'TABLE')\n        return;\n    var newTr = el.cloneNode(true);\n    var tdCount = el.childElementCount;\n    for (var i = 0; i < tdCount - 1; i++) {\n        var computed = getComputedStyle(el.children[i]);\n        newTr.children[i].style.width = computed.width;\n        newTr.children[i].style.height = computed.height;\n    }\n    var section = el.parentNode;\n    var newSection = section.cloneNode();\n    newSection.appendChild(newTr);\n    var table = section.parentNode;\n    var newTable = table.cloneNode();\n    newTable.appendChild(newSection);\n    var tableComputed = getComputedStyle(table);\n    newTable.style.width = tableComputed.width;\n    return newTable;\n}\nfunction liPreview(el) {\n    if (el.tagName !== 'LI')\n        return;\n    if (!el.parentNode)\n        return;\n    var tagName = el.parentNode.tagName;\n    if (tagName !== 'UL' && tagName !== 'OL')\n        return;\n    var newLi = el.cloneNode(true);\n    var computed = getComputedStyle(el);\n    newLi.style.width = computed.width;\n    newLi.style.height = computed.height;\n    newLi.style.flex = '0 0 auto';\n    var newUlOrOl = el.parentNode.cloneNode();\n    newUlOrOl.appendChild(newLi);\n    newUlOrOl.style.width = 'auto';\n    newUlOrOl.style.height = 'auto';\n    newUlOrOl.style.listStyleType = 'none';\n    return newUlOrOl;\n}\nfunction unknownTagPreview(el) {\n    var computed = getComputedStyle(el);\n    var isUnknownTag = computed.display === 'inline' &&\n        computed.width === 'auto' &&\n        computed.height === 'auto' &&\n        el.style.width === '' &&\n        el.style.height === '';\n    if (!isUnknownTag)\n        return;\n    var preview = el.cloneNode(true);\n    var len = el.childElementCount;\n    for (var i = 0; i < len; i++) {\n        var computed_1 = getComputedStyle(el.children[i]);\n        preview.children[i].style.width = computed_1.width;\n        preview.children[i].style.height = computed_1.height;\n    }\n    return preview;\n}\nfunction defaultPreview(el) {\n    var preview = el.cloneNode(true);\n    var computed = getComputedStyle(el);\n    preview.style.width = computed.width;\n    preview.style.height = computed.height;\n    return preview;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DndService = void 0;\nvar aurelia_event_aggregator_1 = require(\"aurelia-event-aggregator\");\nvar preview_drawers_1 = require(\"./preview-drawers\");\nvar doc = document;\nvar documentElement = doc && doc.documentElement;\nvar css = \"\\n/* bcx-aurelia-dnd styles */\\n\\n/*\\nbcx-aurelia-dnd relies on html/body margin 0.\\nYour css stack should have done this.\\nAdded here as safe guard.\\n*/\\nhtml, body {\\n  margin: 0;\\n}\\n\\n.bcx-dnd-preview {\\n  position: absolute !important;\\n  margin: 0 !important;\\n  z-index: 9999 !important;\\n  opacity: 0.8;\\n  box-shadow: 0 0 16px gray;\\n}\\n\\n.bcx-dnd-preview .bcx-dnd-preview-hide {\\n  visibility: hidden !important;\\n}\\n\\n.bcx-dnd-hide {\\n  display: none !important;\\n}\\n\\n.bcx-dnd-hide-cursor .bcx-dnd-preview {\\n  cursor: none !important;\\n}\\n\\n.bcx-dnd-unselectable {\\n  -webkit-user-select: none !important;\\n  -moz-user-select: none !important;\\n  -ms-user-select: none !important;\\n  user-select: none !important;\\n}\\n\";\nvar _stylesInjected = false;\nfunction injectStyles() {\n    if (_stylesInjected)\n        return;\n    _stylesInjected = true;\n    var node = doc.createElement('style');\n    node.innerHTML = css;\n    node.type = 'text/css';\n    if (doc.head.childNodes.length > 0) {\n        doc.head.insertBefore(node, doc.head.childNodes[0]);\n    }\n    else {\n        doc.head.appendChild(node);\n    }\n}\nvar classes = (function () {\n    var cache = {};\n    var start = '(?:^|\\\\s)';\n    var end = '(?:\\\\s|$)';\n    function lookupClass(className) {\n        var cached = cache[className];\n        if (cached) {\n            cached.lastIndex = 0;\n        }\n        else {\n            cache[className] = cached = new RegExp(start + className + end, 'g');\n        }\n        return cached;\n    }\n    function addClass(el, className) {\n        var current = el.className;\n        if (!current.length) {\n            el.className = className;\n        }\n        else if (!lookupClass(className).test(current)) {\n            el.className += ' ' + className;\n        }\n    }\n    function rmClass(el, className) {\n        el.className = el.className.replace(lookupClass(className), ' ').trim();\n    }\n    return { add: addClass, rm: rmClass };\n}());\nfunction whichMouseButton(e) {\n    var te = e;\n    if (te.touches !== undefined) {\n        return te.touches.length;\n    }\n    if (e.which !== undefined && e.which !== 0) {\n        return e.which;\n    }\n    var me = e;\n    if (me.buttons !== undefined) {\n        return me.buttons;\n    }\n    var button = me.button;\n    if (button !== undefined) {\n        return button & 1 ? 1 : button & 2 ? 3 : (button & 4 ? 2 : 0);\n    }\n}\nfunction getPageRect(el) {\n    var rect = el.getBoundingClientRect();\n    return {\n        x: rect.left + getScroll('scrollLeft', 'pageXOffset'),\n        y: rect.top + getScroll('scrollTop', 'pageYOffset'),\n        width: getRectWidth(rect),\n        height: getRectHeight(rect)\n    };\n}\nfunction getScroll(scrollProp, offsetProp) {\n    if (typeof window[offsetProp] !== 'undefined') {\n        return window[offsetProp];\n    }\n    if (documentElement.clientHeight) {\n        return documentElement[scrollProp];\n    }\n    return doc.body[scrollProp];\n}\nfunction getElementBehindPreview(preview, x, y) {\n    var className = '';\n    if (preview) {\n        className = preview.className;\n        preview.className += ' bcx-dnd-hide';\n    }\n    var el = doc.elementFromPoint(x, y);\n    if (preview) {\n        preview.className = className;\n    }\n    return el;\n}\nfunction getRectWidth(rect) {\n    return rect.width || (rect.right - rect.left);\n}\nfunction getRectHeight(rect) {\n    return rect.height || (rect.bottom - rect.top);\n}\nfunction getParent(el) {\n    if (el.parentNode === doc)\n        return null;\n    return el.parentNode;\n}\nfunction isInput(el) {\n    return el.tagName === 'INPUT' ||\n        el.tagName === 'TEXTAREA' ||\n        el.tagName === 'SELECT' ||\n        isEditable(el);\n}\nfunction isEditable(el) {\n    if (!el) {\n        return false;\n    }\n    if (el.contentEditable === 'false') {\n        return false;\n    }\n    if (el.contentEditable === 'true') {\n        return true;\n    }\n    return isEditable(getParent(el));\n}\nfunction getEventHost(e) {\n    var te = e;\n    if (te.targetTouches && te.targetTouches.length) {\n        return te.targetTouches[0];\n    }\n    if (te.changedTouches && te.changedTouches.length) {\n        return te.changedTouches[0];\n    }\n    return e;\n}\nfunction getCoord(coord, e) {\n    var host = getEventHost(e);\n    var missMap = {\n        pageX: 'clientX',\n        pageY: 'clientY'\n    };\n    if (coord in missMap && !(coord in host) && missMap[coord] in host) {\n        coord = missMap[coord];\n    }\n    return host[coord];\n}\nvar DndSource = (function () {\n    function DndSource(delegate, options) {\n        if (options === void 0) { options = {}; }\n        if (!delegate) {\n            throw new Error(\"Missing delegate for dnd source.\");\n        }\n        if (typeof delegate.dndModel !== 'function') {\n            throw new Error(\"Missing dndModel() method on dnd source delegate.\");\n        }\n        this.delegate = delegate;\n        if (options.element) {\n            this.element = options.element;\n        }\n        else {\n            this.element = delegate.dndElement;\n        }\n        if (options.handler) {\n            if (!(options.handler instanceof Element)) {\n                throw new Error(\"specified handler is not a DOM element\");\n            }\n            this.handler = options.handler;\n        }\n        else {\n            this.handler = this.element;\n        }\n        if (!(this.element instanceof Element)) {\n            throw new Error(\"Missing dndElement or options.element on dnd source delegate.\");\n        }\n        this.noPreview = options.noPreview ? true : false;\n        this.hideCursor = options.hideCursor ? true : false;\n        this.centerPreviewToMousePosition = options.centerPreviewToMousePosition ? true : false;\n    }\n    return DndSource;\n}());\nvar DndTarget = (function () {\n    function DndTarget(delegate, options) {\n        if (options === void 0) { options = {}; }\n        if (!delegate) {\n            throw new Error(\"Missing delegate for dnd target.\");\n        }\n        if (typeof delegate.dndCanDrop !== 'function') {\n            throw new Error(\"Missing dndCanDrop() method on delegate.\");\n        }\n        if (typeof delegate.dndDrop !== 'function') {\n            throw new Error(\"Missing dndDrop() method on dnd target delegate.\");\n        }\n        this.delegate = delegate;\n        if (options.element) {\n            this.element = options.element;\n        }\n        else {\n            this.element = delegate.dndElement;\n        }\n        if (!(this.element instanceof Element)) {\n            throw new Error(\"Missing dndElement or options.element on dnd target delegate.\");\n        }\n        if (typeof delegate.dndHover === 'function') {\n            this.dndHover = delegate.dndHover.bind(delegate);\n        }\n    }\n    return DndTarget;\n}());\nfunction indexOfElementOrDelegate(array, delegateOrElement) {\n    var test = (delegateOrElement instanceof Element) ?\n        (function (o) { return o.element === delegateOrElement; }) :\n        (function (o) { return o.delegate === delegateOrElement; });\n    var len = array.length;\n    for (var i = 0; i < len; i += 1) {\n        if (test(array[i]))\n            return i;\n    }\n    return -1;\n}\nfunction indexOfHandler(array, handler) {\n    var test = (function (o) { return o.handler === handler; });\n    var len = array.length;\n    for (var i = 0; i < len; i += 1) {\n        if (test(array[i]))\n            return i;\n    }\n    return -1;\n}\nvar DndService = (function () {\n    function DndService(ea) {\n        this.isProcessing = false;\n        this.model = undefined;\n        this.ea = ea;\n        this.dndSources = [];\n        this.dndTargets = [];\n        this.previewDrawers = [];\n        injectStyles();\n        this.addPreviewDrawer(preview_drawers_1.defaultPreview);\n        this.addPreviewDrawer(preview_drawers_1.unknownTagPreview);\n        this.addPreviewDrawer(preview_drawers_1.liPreview);\n        this.addPreviewDrawer(preview_drawers_1.trPreview);\n        this._grab = this._grab.bind(this);\n        this._release = this._release.bind(this);\n        this._startBecauseMouseMoved = this._startBecauseMouseMoved.bind(this);\n        this._preventGrabbed = this._preventGrabbed.bind(this);\n        this._drag = this._drag.bind(this);\n        this._esc = this._esc.bind(this);\n        documentElement.addEventListener('mousedown', this._grab);\n        documentElement.addEventListener('touchstart', this._grab, { passive: false });\n        documentElement.addEventListener('mouseup', this._release);\n        documentElement.addEventListener('touchend', this._release);\n    }\n    DndService.prototype.addPreviewDrawer = function (drawer) {\n        this.previewDrawers.unshift(drawer);\n    };\n    DndService.prototype.addSource = function (delegate, options) {\n        if (options === void 0) { options = {}; }\n        if (delegate.dnd) {\n            delegate.dnd.isProcessing = false;\n        }\n        else {\n            delegate.dnd = { isProcessing: false };\n        }\n        var dndSource = new DndSource(delegate, options);\n        if (this.isProcessing) {\n            var dnd = dndSource.delegate.dnd;\n            dnd.isProcessing = true;\n            dnd.isStartingSource = false;\n        }\n        this.dndSources.push(dndSource);\n    };\n    DndService.prototype.removeSource = function (delegateOrElement) {\n        var idx = indexOfElementOrDelegate(this.dndSources, delegateOrElement);\n        if (idx >= 0) {\n            this.dndSources.splice(idx, 1);\n        }\n    };\n    DndService.prototype.addTarget = function (delegate, options) {\n        if (options === void 0) { options = {}; }\n        if (delegate.dnd) {\n            delegate.dnd.isProcessing = false;\n        }\n        else {\n            delegate.dnd = { isProcessing: false };\n        }\n        var dndTarget = new DndTarget(delegate, options);\n        if (this.isProcessing) {\n            var canDrop = dndTarget.delegate.dndCanDrop(this.model);\n            var dnd = dndTarget.delegate.dnd;\n            dnd.canDrop = canDrop;\n            dnd.isProcessing = true;\n            dnd.model = this.model;\n        }\n        this.dndTargets.push(dndTarget);\n    };\n    DndService.prototype.removeTarget = function (delegateOrElement) {\n        var idx = indexOfElementOrDelegate(this.dndTargets, delegateOrElement);\n        if (idx >= 0) {\n            this.dndTargets.splice(idx, 1);\n        }\n    };\n    DndService.prototype._sourceOf = function (element) {\n        var idx = indexOfHandler(this.dndSources, element);\n        return idx >= 0 ? this.dndSources[idx] : undefined;\n    };\n    DndService.prototype._startListeningEventualMovements = function () {\n        documentElement.addEventListener('mousemove', this._startBecauseMouseMoved);\n        documentElement.addEventListener('touchmove', this._startBecauseMouseMoved, { passive: false });\n        if (this._element) {\n            this._element.addEventListener('touchmove', this._startBecauseMouseMoved, { passive: false });\n        }\n        if (this._element) {\n            this._element.addEventListener('touchend', this._release, { passive: false });\n        }\n    };\n    DndService.prototype._stopListeningEventualMovements = function () {\n        documentElement.removeEventListener('mousemove', this._startBecauseMouseMoved);\n        documentElement.removeEventListener('touchmove', this._startBecauseMouseMoved);\n        if (this._element) {\n            this._element.removeEventListener('touchmove', this._startBecauseMouseMoved);\n        }\n    };\n    DndService.prototype._startListeningMovements = function () {\n        documentElement.addEventListener('selectstart', this._preventGrabbed);\n        documentElement.addEventListener('click', this._preventGrabbed);\n        documentElement.addEventListener('keydown', this._esc);\n        documentElement.addEventListener('mousemove', this._drag);\n        documentElement.addEventListener('touchmove', this._drag, { passive: false });\n        if (this._element) {\n            this._element.addEventListener('touchmove', this._drag, { passive: false });\n        }\n    };\n    DndService.prototype._stopListeningMovements = function () {\n        documentElement.removeEventListener('selectstart', this._preventGrabbed);\n        documentElement.removeEventListener('click', this._preventGrabbed);\n        documentElement.removeEventListener('keydown', this._esc);\n        documentElement.removeEventListener('mousemove', this._drag);\n        documentElement.removeEventListener('touchmove', this._drag);\n        if (this._element) {\n            this._element.removeEventListener('touchmove', this._drag);\n        }\n        if (this._element) {\n            this._element.removeEventListener('touchend', this._release);\n        }\n    };\n    DndService.prototype._preventGrabbed = function (e) {\n        if (this._grabbed) {\n            e.preventDefault();\n        }\n    };\n    DndService.prototype._grab = function (e) {\n        this._moveX = getCoord('clientX', e);\n        this._moveY = getCoord('clientY', e);\n        var ignore = whichMouseButton(e) !== 1 || e.metaKey || e.ctrlKey;\n        if (ignore) {\n            return;\n        }\n        var element = e.target;\n        this._element = element;\n        var dndSource = this._startingSource(element);\n        if (!dndSource)\n            return;\n        this._grabbed = dndSource;\n        this._startListeningEventualMovements();\n        if (e.type === 'mousedown') {\n            if (isInput(element)) {\n                element.focus();\n            }\n            else {\n                e.preventDefault();\n            }\n        }\n        else {\n            e.preventDefault();\n        }\n    };\n    DndService.prototype._ungrab = function () {\n        this._grabbed = undefined;\n        this._stopListeningEventualMovements();\n        this._stopListeningMovements();\n        this._element = undefined;\n    };\n    DndService.prototype._release = function (e) {\n        this._ungrab();\n        if (!this.isProcessing)\n            return;\n        if (this.ea) {\n            this.ea.publish('dnd:willEnd');\n        }\n        var shallowTarget = this._landingTargets(e).shallowTarget;\n        if (shallowTarget) {\n            shallowTarget.delegate.dndDrop(this._locationInfo(shallowTarget.element, e));\n        }\n        this._cleanup();\n        if (this.ea) {\n            this.ea.publish('dnd:didEnd');\n        }\n    };\n    DndService.prototype._startingSource = function (element) {\n        if (this.isProcessing) {\n            return;\n        }\n        var dndSource;\n        while (element) {\n            if (!element)\n                break;\n            var s = this._sourceOf(element);\n            if (s && (typeof s.delegate.dndCanDrag !== 'function' ||\n                s.delegate.dndCanDrag())) {\n                dndSource = s;\n                break;\n            }\n            element = getParent(element);\n        }\n        return dndSource;\n    };\n    DndService.prototype._startBecauseMouseMoved = function (e) {\n        if (!this._grabbed)\n            return;\n        if (whichMouseButton(e) === 0) {\n            this._cleanup();\n            return;\n        }\n        var clientX = getCoord('clientX', e);\n        var clientY = getCoord('clientY', e);\n        if (clientX !== undefined &&\n            clientX === this._moveX &&\n            clientY !== undefined &&\n            clientY === this._moveY) {\n            return;\n        }\n        var elementBehindCursor = doc.elementFromPoint(clientX, clientY);\n        if (isInput(elementBehindCursor)) {\n            return;\n        }\n        var grabbed = this._grabbed;\n        this._stopListeningEventualMovements();\n        this._startListeningMovements();\n        if (this.isProcessing)\n            this._cleanup();\n        this._start(grabbed);\n        this._sourceElementRect = getPageRect(this._sourceElement);\n        this._offsetX = getCoord('pageX', e) - this._sourceElementRect.x;\n        this._offsetY = getCoord('pageY', e) - this._sourceElementRect.y;\n        this._renderPreviewImage();\n        this._drag(e);\n    };\n    DndService.prototype._start = function (dndSource) {\n        var _this = this;\n        if (this.ea) {\n            this.ea.publish('dnd:willStart');\n        }\n        this.isProcessing = true;\n        this.model = dndSource.delegate.dndModel();\n        this._sourceElement = dndSource.element;\n        if (dndSource.noPreview) {\n            this._noPreview = true;\n        }\n        else if (dndSource.delegate.dndPreview) {\n            this._sourcePreview = dndSource.delegate.dndPreview(this.model);\n        }\n        if (!this._noPreview) {\n            if (dndSource.hideCursor) {\n                this._hideCursor = true;\n            }\n            if (dndSource.centerPreviewToMousePosition) {\n                this._centerPreviewToMousePosition = true;\n            }\n        }\n        this.dndSources.forEach(function (source) {\n            var dnd = source.delegate.dnd;\n            dnd.isProcessing = true;\n            dnd.isStartingSource = dndSource === source;\n        });\n        this.dndTargets.forEach(function (dndTarget) {\n            var canDrop = dndTarget.delegate.dndCanDrop(_this.model);\n            var dnd = dndTarget.delegate.dnd;\n            dnd.canDrop = canDrop;\n            dnd.isProcessing = true;\n            dnd.model = _this.model;\n        });\n        if (this.ea) {\n            this.ea.publish('dnd:didStart');\n        }\n    };\n    DndService.prototype._cleanup = function () {\n        this._ungrab();\n        this._removePreviewImage();\n        this.isProcessing = false;\n        this.model = undefined;\n        this._sourceElement = undefined;\n        this._noPreview = undefined;\n        this._hideCursor = undefined;\n        this._centerPreviewToMousePosition = undefined;\n        this._sourcePreview = undefined;\n        this._sourceElementRect = undefined;\n        this._offsetX = 0;\n        this._offsetY = 0;\n        this.dndSources.forEach(function (source) {\n            var dnd = source.delegate.dnd;\n            dnd.isProcessing = false;\n            dnd.isStartingSource = false;\n        });\n        this.dndTargets.forEach(function (dndTarget) {\n            var dnd = dndTarget.delegate.dnd;\n            dnd.canDrop = false;\n            dnd.isProcessing = false;\n            dnd.isHoveringShallowly = false;\n            dnd.isHovering = false;\n            dnd.model = undefined;\n        });\n    };\n    DndService.prototype._landingTargets = function (e) {\n        var _a;\n        if (!this.isProcessing) {\n            return { shallowTarget: null, possibleTargets: [] };\n        }\n        var clientX = getCoord('clientX', e);\n        var clientY = getCoord('clientY', e);\n        var possibleTargets = this.dndTargets.filter(function (dndTarget) {\n            if (!dndTarget.delegate.dnd.canDrop)\n                return;\n            var clientRect = dndTarget.element.getBoundingClientRect();\n            return clientRect.left <= clientX &&\n                clientRect.right >= clientX &&\n                clientRect.top <= clientY &&\n                clientRect.bottom >= clientY;\n        });\n        var dndTarget;\n        var element = getElementBehindPreview(this._preview, clientX, clientY);\n        while (!dndTarget && element) {\n            var idx = indexOfElementOrDelegate(possibleTargets, element);\n            if (idx >= 0) {\n                dndTarget = possibleTargets[idx];\n            }\n            else {\n                element = getParent(element);\n            }\n        }\n        if (dndTarget) {\n            possibleTargets.splice(possibleTargets.indexOf(dndTarget), 1);\n        }\n        else if (possibleTargets.length > 0) {\n            _a = possibleTargets, dndTarget = _a[0], possibleTargets = _a.slice(1);\n        }\n        return { shallowTarget: dndTarget, possibleTargets: possibleTargets };\n    };\n    DndService.prototype._drag = function (e) {\n        var _this = this;\n        if (!this.isProcessing) {\n            return;\n        }\n        e.preventDefault();\n        this._updatePreviewLocation(e);\n        var _a = this._landingTargets(e), shallowTarget = _a.shallowTarget, possibleTargets = _a.possibleTargets;\n        this.dndTargets.forEach(function (dndTarget) {\n            var dnd = dndTarget.delegate.dnd;\n            if (!dnd.isProcessing)\n                return;\n            if (dndTarget === shallowTarget) {\n                dnd.isHoveringShallowly = true;\n                dnd.isHovering = true;\n                if (dndTarget.dndHover) {\n                    dndTarget.dndHover(_this._locationInfo(dndTarget.element, e));\n                }\n            }\n            else if (possibleTargets.indexOf(dndTarget) >= 0) {\n                dnd.isHoveringShallowly = false;\n                dnd.isHovering = true;\n                if (dndTarget.dndHover) {\n                    dndTarget.dndHover(_this._locationInfo(dndTarget.element, e));\n                }\n            }\n            else {\n                dnd.isHoveringShallowly = false;\n                dnd.isHovering = false;\n            }\n        });\n    };\n    DndService.prototype._esc = function (e) {\n        if (!this.isProcessing) {\n            return;\n        }\n        if (e.key === 'Escape') {\n            e.preventDefault();\n            this._cleanup();\n            if (this.ea) {\n                this.ea.publish('dnd:didCancel');\n            }\n        }\n    };\n    DndService.prototype._updatePreviewLocation = function (e) {\n        if (this._preview) {\n            var pageX = getCoord('pageX', e);\n            var pageY = getCoord('pageY', e);\n            if (this._centerPreviewToMousePosition) {\n                var rect = this._preview.getBoundingClientRect();\n                var width = getRectWidth(rect);\n                var height = getRectHeight(rect);\n                this._preview.style.left = (pageX - Math.floor(width / 2)) + 'px';\n                this._preview.style.top = (pageY - Math.floor(height / 2)) + 'px';\n            }\n            else {\n                this._preview.style.left = (pageX - this._offsetX) + 'px';\n                this._preview.style.top = (pageY - this._offsetY) + 'px';\n            }\n        }\n    };\n    DndService.prototype._locationInfo = function (targetElement, e) {\n        var mouseStartAt = {\n            x: this._sourceElementRect.x + this._offsetX,\n            y: this._sourceElementRect.y + this._offsetY,\n        };\n        var pageX = getCoord('pageX', e);\n        var pageY = getCoord('pageY', e);\n        var mouseEndAt = { x: pageX, y: pageY };\n        var targetElementRect = getPageRect(targetElement);\n        var previewElementRect;\n        if (this._preview) {\n            previewElementRect = getPageRect(this._preview);\n        }\n        else {\n            previewElementRect = {\n                x: pageX - this._offsetX,\n                y: pageY - this._offsetY,\n                width: this._sourceElementRect.width,\n                height: this._sourceElementRect.height\n            };\n        }\n        return {\n            mouseStartAt: mouseStartAt,\n            mouseEndAt: mouseEndAt,\n            sourceElementRect: this._sourceElementRect,\n            targetElementRect: targetElementRect,\n            previewElementRect: previewElementRect\n        };\n    };\n    DndService.prototype._renderPreviewImage = function () {\n        if (this._preview)\n            return;\n        if (this._noPreview)\n            return;\n        var customised = !!this._sourcePreview;\n        if (customised) {\n            this._preview = this._sourcePreview;\n            this._sourcePreview = undefined;\n        }\n        else {\n            var el = this._sourceElement;\n            if (!el)\n                return;\n            for (var i = 0; i < this.previewDrawers.length; i++) {\n                this._preview = this.previewDrawers[i](el);\n                if (this._preview)\n                    break;\n            }\n            if (!this._preview)\n                return;\n        }\n        classes.add(this._preview, 'bcx-dnd-preview');\n        doc.body.appendChild(this._preview);\n        classes.add(doc.body, 'bcx-dnd-unselectable');\n        if (!customised && getComputedStyle(this._preview).backgroundColor === 'rgba(0, 0, 0, 0)') {\n            this._preview.style.backgroundColor = 'white';\n        }\n        if (this._hideCursor) {\n            classes.add(doc.body, 'bcx-dnd-hide-cursor');\n        }\n    };\n    DndService.prototype._removePreviewImage = function () {\n        if (this._preview) {\n            classes.rm(doc.body, 'bcx-dnd-unselectable');\n            classes.rm(doc.body, 'bcx-dnd-hide-cursor');\n            getParent(this._preview).removeChild(this._preview);\n            this._preview = null;\n        }\n    };\n    return DndService;\n}());\nexports.DndService = DndService;\nDndService['inject'] = [aurelia_event_aggregator_1.EventAggregator];\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { inject } from 'aurelia-dependency-injection';\nimport { ObserverLocator, observable, BindingEngine, BindingBehavior, ValueConverter, getContextFor } from 'aurelia-binding';\nimport { BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, customAttribute, bindable, templateController } from 'aurelia-templating';\nimport { getItemsSourceExpression, isOneTime, updateOneTimeBinding, viewsRequireLifecycle, AbstractRepeater } from 'aurelia-templating-resources';\nimport { ReorderableRepeatStrategyLocator } from './reorderable-repeat-strategy-locator';\nimport { DndService } from 'bcx-aurelia-dnd';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport repeaterDndType from './repeater-dnd-type';\nimport { ReorderableGroupMap } from './reorderable-group-map';\nvar seed = 0;\nvar classes = (function () {\n    var cache = {};\n    var start = '(?:^|\\\\s)';\n    var end = '(?:\\\\s|$)';\n    function lookupClass(className) {\n        var cached = cache[className];\n        if (cached) {\n            cached.lastIndex = 0;\n        }\n        else {\n            cache[className] = cached = new RegExp(start + className + end, 'g');\n        }\n        return cached;\n    }\n    function addClass(el, className) {\n        var current = el.className;\n        if (!current.length) {\n            el.className = className;\n        }\n        else if (!lookupClass(className).test(current)) {\n            el.className += ' ' + className;\n        }\n    }\n    function rmClass(el, className) {\n        el.className = el.className.replace(lookupClass(className), ' ').trim();\n    }\n    return { add: addClass, rm: rmClass };\n}());\nvar ReorderableRepeat = (function (_super) {\n    __extends(ReorderableRepeat, _super);\n    function ReorderableRepeat(ea, taskQueue, bindingEngine, dndService, viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator, groupMap) {\n        var _this = _super.call(this, {\n            local: 'item',\n            viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\n        }) || this;\n        _this.intention = null;\n        _this.type = null;\n        _this.repeaterId = seed;\n        _this.type = _this.repeaterId;\n        seed += 1;\n        _this.ea = ea;\n        _this.taskQueue = taskQueue;\n        _this.bindingEngine = bindingEngine;\n        _this.dndService = dndService;\n        _this.viewFactory = viewFactory;\n        _this.instruction = instruction;\n        _this.viewSlot = viewSlot;\n        _this.lookupFunctions = viewResources.lookupFunctions;\n        _this.observerLocator = observerLocator;\n        _this.strategyLocator = strategyLocator;\n        _this.groupMap = groupMap;\n        _this.ignoreMutation = false;\n        _this.sourceExpression = getItemsSourceExpression(_this.instruction, 'reorderable-repeat.for');\n        if (_this.sourceExpression instanceof BindingBehavior) {\n            throw new Error('BindingBehavior is not supported in reorderable-repeat');\n        }\n        if (_this.sourceExpression instanceof ValueConverter) {\n            throw new Error('ValueConverter is not supported in reorderable-repeat');\n        }\n        if (isOneTime(_this.sourceExpression)) {\n            throw new Error('oneTime binding is not supported in reorderable-repeat');\n        }\n        _this.viewsRequireLifecycle = viewsRequireLifecycle(viewFactory);\n        _this.group = _this._reorderableGroup();\n        return _this;\n    }\n    ReorderableRepeat.prototype.call = function (context, changes) {\n        this[context](this.items, changes);\n    };\n    ReorderableRepeat.prototype.bind = function (bindingContext, overrideContext) {\n        var _this = this;\n        this.scope = { bindingContext: bindingContext, overrideContext: overrideContext };\n        this.matcherBinding = this._captureAndRemoveMatcherBinding();\n        this.arrayObserver = this.bindingEngine.collectionObserver(this.items).subscribe(this._itemsMutated.bind(this));\n        this._subsribers = [\n            this.ea.subscribe('dnd:willStart', function () {\n                _this.intention = null;\n                _this.views().forEach(function (v) {\n                    classes.rm(v.firstChild, 'reorderable-repeat-reordering');\n                    classes.rm(v.firstChild, 'reorderable-repeat-dragging-me');\n                });\n            }),\n            this.ea.subscribe('dnd:didCancel', function () {\n                _this.intention = null;\n                _this.views().forEach(function (v) {\n                    classes.rm(v.firstChild, 'reorderable-repeat-reordering');\n                    classes.rm(v.firstChild, 'reorderable-repeat-dragging-me');\n                });\n            }),\n            this.ea.subscribe('dnd:didEnd', function () {\n                _this.views().forEach(function (v) {\n                    classes.rm(v.firstChild, 'reorderable-repeat-reordering');\n                    classes.rm(v.firstChild, 'reorderable-repeat-dragging-me');\n                });\n                if (!_this.intention)\n                    return;\n                var _a = _this.intention, item = _a.item, fromIndex = _a.fromIndex, fromRepeaterId = _a.fromRepeaterId, toIndex = _a.toIndex, toRepeaterId = _a.toRepeaterId;\n                _this.intention = null;\n                var repeaterId = repeaterDndType(_this.repeaterId);\n                if (repeaterId !== fromRepeaterId && repeaterId !== toRepeaterId)\n                    return;\n                if (fromRepeaterId === toRepeaterId && fromIndex === toIndex)\n                    return;\n                var change = { item: item, fromIndex: fromIndex, toIndex: toIndex };\n                if (repeaterId === fromRepeaterId) {\n                    _this.items.splice(fromIndex, 1);\n                    change.removedFromThisList = true;\n                }\n                if (repeaterId === toRepeaterId) {\n                    _this.items.splice(toIndex, 0, item);\n                    change.insertedToThisList = true;\n                }\n                var afterReordering = _this._reorderableAfterReorderingFunc();\n                if (afterReordering) {\n                    _this.taskQueue.queueMicroTask(function () {\n                        afterReordering(_this.items, change);\n                    });\n                }\n            }),\n            this.ea.subscribe('reorderable-group:intention-changed', function (intention) {\n                if (intention.type !== repeaterDndType(_this.type))\n                    return;\n                if (_this.intention &&\n                    intention.type === _this.intention.type &&\n                    intention.fromIndex === _this.intention.fromIndex &&\n                    intention.fromRepeaterId === _this.intention.fromRepeaterId &&\n                    intention.toIndex === _this.intention.toIndex &&\n                    intention.toRepeaterId === _this.intention.toRepeaterId)\n                    return;\n                _this.intention = intention;\n            })\n        ];\n        if (typeof this.group === 'string') {\n            this.type = this.group;\n        }\n        else if (this.group) {\n            this.group.targetProperty = 'type',\n                this._typeBinding = this.group.createBinding(this);\n            this._typeBinding.bind(this.scope);\n        }\n        this.patchedItems = __spreadArray([], this.items, true);\n        this.patchedItemsChanged();\n    };\n    ReorderableRepeat.prototype.unbind = function () {\n        this.groupMap.remove(this);\n        if (this._typeBinding) {\n            this._typeBinding.unbind();\n            delete this._typeBinding;\n        }\n        if (this.arrayObserver) {\n            this.arrayObserver.dispose();\n            this.arrayObserver = null;\n        }\n        this._subsribers.forEach(function (s) { return s.dispose(); });\n        this._subsribers = [];\n        this.removeAllViews(true, true);\n        this.scope = null;\n        this.items = null;\n        this.matcherBinding = null;\n    };\n    ReorderableRepeat.prototype.intentionChanged = function (newIntention) {\n        if (newIntention) {\n            var repeaterId = repeaterDndType(this.repeaterId);\n            var item = newIntention.item, fromIndex = newIntention.fromIndex, fromRepeaterId = newIntention.fromRepeaterId, toIndex = newIntention.toIndex, toRepeaterId = newIntention.toRepeaterId;\n            var patched = __spreadArray([], this.items, true);\n            if (repeaterId === fromRepeaterId) {\n                patched.splice(fromIndex, 1);\n            }\n            if (repeaterId === toRepeaterId) {\n                patched.splice(toIndex, 0, item);\n            }\n            this.patchedItems = patched;\n        }\n        else {\n            if (this.items) {\n                this.patchedItems = __spreadArray([], this.items, true);\n            }\n            else {\n                this.patchedItems = null;\n            }\n        }\n    };\n    ReorderableRepeat.prototype.itemsChanged = function () {\n        if (!this.scope) {\n            return;\n        }\n        if (this.arrayObserver) {\n            this.arrayObserver.dispose();\n            this.arrayObserver = null;\n        }\n        this.arrayObserver = this.bindingEngine.collectionObserver(this.items).subscribe(this._itemsMutated.bind(this));\n        if (this.intention === null) {\n            this.patchedItems = __spreadArray([], this.items, true);\n        }\n        else {\n            this.intention = null;\n        }\n    };\n    ReorderableRepeat.prototype._itemsMutated = function () {\n        if (this.intention === null) {\n            this.patchedItems = __spreadArray([], this.items, true);\n        }\n        else {\n            this.intention = null;\n        }\n    };\n    ReorderableRepeat.prototype.patchedItemsChanged = function () {\n        this._reload();\n    };\n    ReorderableRepeat.prototype.typeChanged = function () {\n        this._reload();\n    };\n    ReorderableRepeat.prototype._reload = function () {\n        var _this = this;\n        if (!this.scope) {\n            return;\n        }\n        if (!this.patchedItems) {\n            return;\n        }\n        this.strategy = this.strategyLocator.getStrategy(this.patchedItems);\n        if (!this.strategy) {\n            throw new Error(\"Value for '\".concat(this.sourceExpression, \"' is non-repeatable\"));\n        }\n        this.strategy.instanceChanged(this, this.patchedItems);\n        this.taskQueue.queueMicroTask(function () {\n            if (!_this.scope) {\n                return;\n            }\n            _this.groupMap.remove(_this);\n            _this.views().forEach(function (view) {\n                _this._unRegisterDnd(view);\n                _this._registerDnd(view);\n            });\n            _this.groupMap.add(_this);\n        });\n    };\n    ReorderableRepeat.prototype._captureAndRemoveMatcherBinding = function () {\n        if (this.viewFactory.viewFactory) {\n            var instructions = this.viewFactory.viewFactory.instructions;\n            var instructionIds = Object.keys(instructions);\n            for (var i = 0; i < instructionIds.length; i++) {\n                var expressions = instructions[instructionIds[i]].expressions;\n                if (expressions) {\n                    for (var ii = 0; i < expressions.length; i++) {\n                        if (expressions[ii].targetProperty === 'matcher') {\n                            var matcherBinding = expressions[ii];\n                            expressions.splice(ii, 1);\n                            return matcherBinding;\n                        }\n                    }\n                }\n            }\n        }\n        return undefined;\n    };\n    ReorderableRepeat.prototype.viewCount = function () { return this.viewSlot.children.length; };\n    ReorderableRepeat.prototype.views = function () { return this.viewSlot.children; };\n    ReorderableRepeat.prototype.view = function (index) { return this.viewSlot.children[index]; };\n    ReorderableRepeat.prototype.matcher = function () { return this.matcherBinding ? this.matcherBinding.sourceExpression.evaluate(this.scope, this.matcherBinding.lookupFunctions) : null; };\n    ReorderableRepeat.prototype.addView = function (bindingContext, overrideContext) {\n        var view = this.viewFactory.create();\n        view.bind(bindingContext, overrideContext);\n        this.viewSlot.add(view);\n    };\n    ReorderableRepeat.prototype.insertView = function (index, bindingContext, overrideContext) {\n        var view = this.viewFactory.create();\n        view.bind(bindingContext, overrideContext);\n        this.viewSlot.insert(index, view);\n    };\n    ReorderableRepeat.prototype.moveView = function (sourceIndex, targetIndex) {\n        this.viewSlot.move(sourceIndex, targetIndex);\n    };\n    ReorderableRepeat.prototype.removeAllViews = function (returnToCache, skipAnimation) {\n        var _this = this;\n        this.views().forEach(function (view) { return _this._unRegisterDnd(view); });\n        return this.viewSlot.removeAll(returnToCache, skipAnimation);\n    };\n    ReorderableRepeat.prototype.removeViews = function (viewsToRemove, returnToCache, skipAnimation) {\n        var _this = this;\n        viewsToRemove.forEach(function (view) { return _this._unRegisterDnd(view); });\n        return this.viewSlot.removeMany(viewsToRemove, returnToCache, skipAnimation);\n    };\n    ReorderableRepeat.prototype.removeView = function (index, returnToCache, skipAnimation) {\n        this._unRegisterDnd(this.view(index));\n        return this.viewSlot.removeAt(index, returnToCache, skipAnimation);\n    };\n    ReorderableRepeat.prototype.updateBindings = function (view) {\n        var j = view.bindings.length;\n        while (j--) {\n            updateOneTimeBinding(view.bindings[j]);\n        }\n        j = view.controllers.length;\n        while (j--) {\n            var k = view.controllers[j].boundProperties.length;\n            while (k--) {\n                var binding = view.controllers[j].boundProperties[k].binding;\n                updateOneTimeBinding(binding);\n            }\n        }\n    };\n    ReorderableRepeat.prototype._additionalAttribute = function (view, attribute) {\n        if (view && view.firstChild && view.firstChild.au && view.firstChild.au[attribute]) {\n            return view.firstChild.au[attribute].instruction.attributes[attribute];\n        }\n        return this._getPlainAttribute(attribute);\n    };\n    ReorderableRepeat.prototype._getPlainAttribute = function (name) {\n        if (this.viewFactory && this.viewFactory.viewFactory) {\n            var node = this.viewFactory.viewFactory.template.firstChild;\n            if (node && node.hasAttribute(name)) {\n                return node.getAttribute(name);\n            }\n        }\n    };\n    ReorderableRepeat.prototype._reorderableGroup = function () {\n        if (this.viewFactory && this.viewFactory.viewFactory) {\n            var node = this.viewFactory.viewFactory.template.firstChild;\n            var targetId = node.getAttribute('au-target-id');\n            var instruction = this.viewFactory.viewFactory.instructions[targetId];\n            if (instruction) {\n                var bi = instruction.behaviorInstructions.find(function (bi) { return bi.attrName === 'reorderable-group'; });\n                if (bi) {\n                    var exp = bi.attributes && bi.attributes['reorderable-group'];\n                    if (exp && typeof exp.createBinding === 'function') {\n                        return exp;\n                    }\n                }\n            }\n        }\n        return this._getPlainAttribute('reorderable-group');\n    };\n    ReorderableRepeat.prototype._reorderableDirection = function (view) {\n        var attr = this._additionalAttribute(view, 'reorderable-direction');\n        if (attr && attr.sourceExpression) {\n            attr = attr.sourceExpression.evaluate(this.scope);\n        }\n        if (typeof attr === 'string') {\n            return attr.toLowerCase() || 'down';\n        }\n        return 'down';\n    };\n    ReorderableRepeat.prototype._dndHandlerSelector = function (view) {\n        var attr = this._additionalAttribute(view, 'reorderable-dnd-handler-selector');\n        if (attr && attr.sourceExpression) {\n            attr = attr.sourceExpression.evaluate(this.scope);\n        }\n        if (typeof attr === 'string') {\n            return attr;\n        }\n    };\n    ReorderableRepeat.prototype._dndPreviewFunc = function (view) {\n        var func = this._additionalAttribute(view, 'reorderable-dnd-preview');\n        if (!func) {\n            return null;\n        }\n        else if (typeof func === 'string') {\n            var context = getContextFor(func, this.scope);\n            var funcCall = context[func];\n            if (typeof funcCall === 'function') {\n                return funcCall.bind(context);\n            }\n            throw new Error(\"'reorderable-dnd-preview' must be a function or evaluate to a function\");\n        }\n        else if (func.sourceExpression) {\n            return function (_, scope) {\n                return func.sourceExpression.evaluate(scope);\n            };\n        }\n        else {\n            throw new Error(\"'reorderable-dnd-preview' must be a function or evaluate to a function\");\n        }\n    };\n    ReorderableRepeat.prototype._reorderableAfterReorderingFunc = function () {\n        var _this = this;\n        var func = this._additionalAttribute(this.view(0), 'reorderable-after-reordering');\n        if (!func) {\n            return null;\n        }\n        else if (typeof func === 'string') {\n            var context = getContextFor(func, this.scope);\n            var funcCall = context[func];\n            if (typeof funcCall === 'function') {\n                return funcCall.bind(context);\n            }\n            throw new Error(\"'reorderable-after-reordering' must be a function or evaluate to a function\");\n        }\n        else if (func.sourceExpression) {\n            return function () { return func.sourceExpression.evaluate(_this.scope); };\n        }\n        else {\n            throw new Error(\"'reorderable-after-reordering' must be a function or evaluate to a function\");\n        }\n    };\n    ReorderableRepeat.prototype._dndHover = function (location, index, direction) {\n        var repeaterId = repeaterDndType(this.repeaterId);\n        if (this.intention &&\n            this.intention.toRepeaterId === repeaterId &&\n            this.intention.toIndex === index) {\n            return;\n        }\n        var model = this.dndService.model;\n        var mouseEndAt = location.mouseEndAt, targetElementRect = location.targetElementRect;\n        var x = mouseEndAt.x - targetElementRect.x;\n        var y = mouseEndAt.y - targetElementRect.y;\n        var inLeastHalf;\n        if (direction === 'left') {\n            inLeastHalf = x > (targetElementRect.width / 2);\n        }\n        else if (direction === 'right') {\n            inLeastHalf = x < (targetElementRect.width / 2);\n        }\n        else if (direction === 'up') {\n            inLeastHalf = y > (targetElementRect.height / 2);\n        }\n        else {\n            inLeastHalf = y < (targetElementRect.height / 2);\n        }\n        if (inLeastHalf ||\n            (!this.intention && model.repeaterId === repeaterId && index === model.index)) {\n            this._updateIntention(index, true);\n        }\n        else {\n            this._updateIntention(index, false);\n        }\n    };\n    ReorderableRepeat.prototype._registerDnd = function (view) {\n        var _this = this;\n        var local = this.local;\n        var el = view.firstChild;\n        var item = view.bindingContext[local];\n        var index = view.overrideContext.$index;\n        var handlerSelector = this._dndHandlerSelector(view);\n        var handler;\n        if (handlerSelector) {\n            handler = el.querySelector(handlerSelector);\n        }\n        var repeaterId = repeaterDndType(this.repeaterId);\n        var direction = this._reorderableDirection(view);\n        var _previewFunc = this._dndPreviewFunc(view);\n        this.dndService.addSource({\n            dndModel: function () { return ({ type: repeaterDndType(_this.type), index: index, item: item, repeaterId: repeaterId }); },\n            dndPreview: _previewFunc && (function () { return _previewFunc(item, view); }),\n            dndElement: el\n        }, handler && { handler: handler });\n        this.dndService.addTarget({\n            dndElement: el,\n            dndCanDrop: function (model) {\n                if (model.type !== repeaterDndType(_this.type))\n                    return false;\n                var intention = _this.intention;\n                var inSameGroup = model.repeaterId === repeaterId;\n                _this.taskQueue.queueMicroTask(function () {\n                    classes.add(el, 'reorderable-repeat-reordering');\n                });\n                var draggingMe;\n                if (intention) {\n                    draggingMe = intention.toRepeaterId === repeaterId &&\n                        intention.toIndex === index;\n                }\n                else if (inSameGroup) {\n                    draggingMe = model.index === index;\n                }\n                if (draggingMe) {\n                    _this.taskQueue.queueMicroTask(function () {\n                        classes.add(el, 'reorderable-repeat-dragging-me');\n                    });\n                }\n                return true;\n            },\n            dndHover: function (location) {\n                _this._dndHover(location, index, direction);\n            },\n            dndDrop: function () { }\n        });\n    };\n    ReorderableRepeat.prototype._unRegisterDnd = function (view) {\n        classes.rm(view.firstChild, 'reorderable-repeat-reordering');\n        classes.rm(view.firstChild, 'reorderable-repeat-dragging-me');\n        this.dndService.removeSource(view.firstChild);\n        this.dndService.removeTarget(view.firstChild);\n    };\n    ReorderableRepeat.prototype._updateIntention = function (targetIndex, beforeTarget) {\n        var _a = this.dndService, isProcessing = _a.isProcessing, model = _a.model;\n        if (!isProcessing)\n            return;\n        if (model.type !== repeaterDndType(this.type))\n            return;\n        var repeaterId = repeaterDndType(this.repeaterId);\n        var isUsingGroup = model.type !== model.repeaterId;\n        var inSameGroup = model.repeaterId === repeaterId;\n        if (targetIndex < 0)\n            return;\n        var originalIndex;\n        var currentIndex;\n        var nextIndex;\n        if (inSameGroup) {\n            if (this.intention) {\n                originalIndex = this.intention.fromIndex;\n                currentIndex = this.intention.toIndex;\n            }\n            else {\n                originalIndex = model.index;\n                if (originalIndex < 0)\n                    return;\n                currentIndex = originalIndex;\n            }\n        }\n        else {\n            if (this.intention && this.intention.toRepeaterId === repeaterId) {\n                originalIndex = this.intention.fromIndex;\n                currentIndex = this.intention.toIndex;\n            }\n            else {\n                originalIndex = model.index;\n                if (originalIndex < 0)\n                    return;\n                currentIndex = targetIndex;\n            }\n        }\n        if (currentIndex < targetIndex) {\n            if (beforeTarget) {\n                nextIndex = targetIndex - 1;\n            }\n            else {\n                nextIndex = targetIndex;\n            }\n        }\n        else {\n            if (beforeTarget) {\n                nextIndex = targetIndex;\n            }\n            else {\n                nextIndex = targetIndex + 1;\n            }\n        }\n        if (!this.intention ||\n            this.intention.fromIndex !== originalIndex ||\n            this.intention.fromRepeaterId !== model.repeaterId ||\n            this.intention.toIndex !== nextIndex ||\n            this.intention.toRepeaterId !== repeaterId) {\n            this.intention = {\n                type: model.type,\n                item: model.item,\n                fromIndex: originalIndex,\n                fromRepeaterId: model.repeaterId,\n                toIndex: nextIndex,\n                toRepeaterId: repeaterId\n            };\n            if (isUsingGroup) {\n                this.ea.publish('reorderable-group:intention-changed', this.intention);\n            }\n        }\n    };\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Object)\n    ], ReorderableRepeat.prototype, \"items\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Object)\n    ], ReorderableRepeat.prototype, \"local\", void 0);\n    __decorate([\n        observable,\n        __metadata(\"design:type\", Object)\n    ], ReorderableRepeat.prototype, \"intention\", void 0);\n    __decorate([\n        observable,\n        __metadata(\"design:type\", Object)\n    ], ReorderableRepeat.prototype, \"patchedItems\", void 0);\n    __decorate([\n        observable,\n        __metadata(\"design:type\", Object)\n    ], ReorderableRepeat.prototype, \"type\", void 0);\n    ReorderableRepeat = __decorate([\n        customAttribute('reorderable-repeat'),\n        templateController,\n        inject(EventAggregator, TaskQueue, BindingEngine, DndService, BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, ReorderableRepeatStrategyLocator, ReorderableGroupMap),\n        __metadata(\"design:paramtypes\", [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object])\n    ], ReorderableRepeat);\n    return ReorderableRepeat;\n}(AbstractRepeater));\nexport { ReorderableRepeat };\n\n//# sourceMappingURL=reorderable-repeat.js.map\n","import { createFullOverrideContext } from 'aurelia-templating-resources';\nvar SimpleArrayRepeatStrategy = (function () {\n    function SimpleArrayRepeatStrategy() {\n    }\n    SimpleArrayRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\n        return observerLocator.getArrayObserver(items);\n    };\n    SimpleArrayRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\n        repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n        var itemsLength = items.length;\n        if (items && itemsLength > 0) {\n            this._standardProcessInstanceChanged(repeat, items);\n        }\n    };\n    SimpleArrayRepeatStrategy.prototype._standardProcessInstanceChanged = function (repeat, items) {\n        for (var i = 0, ii = items.length; i < ii; i++) {\n            var overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\n            repeat.addView(overrideContext.bindingContext, overrideContext);\n        }\n    };\n    return SimpleArrayRepeatStrategy;\n}());\nexport { SimpleArrayRepeatStrategy };\n\n//# sourceMappingURL=simple-array-repeat-strategy.js.map\n","import { SimpleArrayRepeatStrategy } from './simple-array-repeat-strategy';\nimport { ArrayRepeatStrategy } from 'aurelia-templating-resources';\nvar ReorderableRepeatStrategyLocator = (function () {\n    function ReorderableRepeatStrategyLocator() {\n        this.matchers = [];\n        this.strategies = [];\n        this.addStrategy(function (items) {\n            if (items instanceof Array) {\n                return items.length === 0 || typeof items[0] !== 'object';\n            }\n        }, new SimpleArrayRepeatStrategy());\n        this.addStrategy(function (items) {\n            if (items instanceof Array) {\n                return items.length && typeof items[0] === 'object';\n            }\n        }, new ArrayRepeatStrategy());\n    }\n    ReorderableRepeatStrategyLocator.prototype.addStrategy = function (matcher, strategy) {\n        this.matchers.push(matcher);\n        this.strategies.push(strategy);\n    };\n    ReorderableRepeatStrategyLocator.prototype.getStrategy = function (items) {\n        var matchers = this.matchers;\n        for (var i = 0, ii = matchers.length; i < ii; ++i) {\n            if (matchers[i](items)) {\n                return this.strategies[i];\n            }\n        }\n        return null;\n    };\n    return ReorderableRepeatStrategyLocator;\n}());\nexport { ReorderableRepeatStrategyLocator };\n\n//# sourceMappingURL=reorderable-repeat-strategy-locator.js.map\n","var prefix = 'bcx-aurelia-reorderable-repeat:';\nexport default function (ref) {\n    return prefix + ref;\n}\n\n//# sourceMappingURL=repeater-dnd-type.js.map\n","var ReorderableGroupMap = (function () {\n    function ReorderableGroupMap() {\n        this._map = new WeakMap();\n    }\n    ReorderableGroupMap.prototype.add = function (repeater) {\n        var repeaterId = repeater.repeaterId, items = repeater.items;\n        this._map.set(items, { group: function () { return repeater.type; }, repeaterId: repeaterId });\n    };\n    ReorderableGroupMap.prototype.remove = function (repeater) {\n        var items = repeater.items;\n        this._map.delete(items);\n    };\n    ReorderableGroupMap.prototype.get = function (items) {\n        return this._map.get(items);\n    };\n    return ReorderableGroupMap;\n}());\nexport { ReorderableGroupMap };\n\n//# sourceMappingURL=reorderable-group-map.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customAttribute } from 'aurelia-templating';\nvar ReorderableDirection = (function () {\n    function ReorderableDirection() {\n    }\n    ReorderableDirection = __decorate([\n        customAttribute('reorderable-direction')\n    ], ReorderableDirection);\n    return ReorderableDirection;\n}());\nexport { ReorderableDirection };\n\n//# sourceMappingURL=reorderable-direction.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customAttribute } from 'aurelia-templating';\nvar ReorderableGroup = (function () {\n    function ReorderableGroup() {\n    }\n    ReorderableGroup = __decorate([\n        customAttribute('reorderable-group')\n    ], ReorderableGroup);\n    return ReorderableGroup;\n}());\nexport { ReorderableGroup };\n\n//# sourceMappingURL=reorderable-group.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { inject } from 'aurelia-dependency-injection';\nimport { customAttribute } from 'aurelia-templating';\nimport { DndService } from 'bcx-aurelia-dnd';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { ReorderableGroupMap } from './reorderable-group-map';\nimport repeaterDndType from './repeater-dnd-type';\nvar example = 'reorderable-group-for.bind=\"arrayModel\"';\nvar ReorderableGroupFor = (function () {\n    function ReorderableGroupFor(element, ea, dndService, groupMap) {\n        this.intention = null;\n        this.element = element;\n        this.ea = ea;\n        this.dndService = dndService;\n        this.groupMap = groupMap;\n        this.resetIntention = this.resetIntention.bind(this);\n    }\n    ReorderableGroupFor.prototype.bind = function () {\n        var _this = this;\n        var value = this.value;\n        if (!Array.isArray(value)) {\n            throw new Error('reorderable-group-for needs items to be an array. e.g. ' + example);\n        }\n        this._subsribers = [\n            this.ea.subscribe('dnd:willStart', function () {\n                var repeaterInfo = _this.groupMap.get(value);\n                if (repeaterInfo) {\n                    _this.group = repeaterDndType(repeaterInfo.group());\n                    _this.repeaterId = repeaterDndType(repeaterInfo.repeaterId);\n                }\n                else {\n                    _this.group = null;\n                    _this.repeaterId = null;\n                }\n                _this.resetIntention();\n            }),\n            this.ea.subscribe('dnd:didEnd', this.resetIntention),\n            this.ea.subscribe('reorderable-group:intention-changed', function (intention) {\n                if (intention.type !== _this.group)\n                    return;\n                _this.intention = intention;\n            })\n        ];\n    };\n    ReorderableGroupFor.prototype.unbind = function () {\n        this._subsribers.forEach(function (s) { return s.dispose(); });\n        this._subsribers = [];\n    };\n    ReorderableGroupFor.prototype.resetIntention = function () {\n        this.intention = null;\n    };\n    ReorderableGroupFor.prototype.attached = function () {\n        this.dndService.addTarget(this, { element: this.element });\n    };\n    ReorderableGroupFor.prototype.detached = function () {\n        this.dndService.removeTarget(this);\n    };\n    ReorderableGroupFor.prototype.dndCanDrop = function (model) {\n        return model.type === this.group;\n    };\n    ReorderableGroupFor.prototype.dndHover = function () {\n        if (!this.repeaterId)\n            return;\n        var _a = this.dnd, isHoveringShallowly = _a.isHoveringShallowly, model = _a.model;\n        if (!isHoveringShallowly)\n            return;\n        var type = model.type, index = model.index, item = model.item, repeaterId = model.repeaterId;\n        var length = this.value ? this.value.length : 0;\n        var inSameGroup = model.repeaterId === this.repeaterId;\n        var defaultTargetIndex = inSameGroup ? length - 1 : length;\n        if (!this.intention || this.intention.toRepeaterId !== this.repeaterId) {\n            this.ea.publish('reorderable-group:intention-changed', {\n                type: type,\n                item: item,\n                fromIndex: index,\n                fromRepeaterId: repeaterId,\n                toIndex: defaultTargetIndex,\n                toRepeaterId: this.repeaterId\n            });\n        }\n    };\n    ReorderableGroupFor.prototype.dndDrop = function () {\n    };\n    ReorderableGroupFor = __decorate([\n        customAttribute('reorderable-group-for'),\n        inject(Element, EventAggregator, DndService, ReorderableGroupMap),\n        __metadata(\"design:paramtypes\", [Object, Object, Object, Object])\n    ], ReorderableGroupFor);\n    return ReorderableGroupFor;\n}());\nexport { ReorderableGroupFor };\n\n//# sourceMappingURL=reorderable-group-for.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customAttribute } from 'aurelia-templating';\nvar ReorderableDndPreview = (function () {\n    function ReorderableDndPreview() {\n    }\n    ReorderableDndPreview = __decorate([\n        customAttribute('reorderable-dnd-preview')\n    ], ReorderableDndPreview);\n    return ReorderableDndPreview;\n}());\nexport { ReorderableDndPreview };\n\n//# sourceMappingURL=reorderable-dnd-preview.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customAttribute } from 'aurelia-templating';\nvar ReorderableDndHandlerSelector = (function () {\n    function ReorderableDndHandlerSelector() {\n    }\n    ReorderableDndHandlerSelector = __decorate([\n        customAttribute('reorderable-dnd-handler-selector')\n    ], ReorderableDndHandlerSelector);\n    return ReorderableDndHandlerSelector;\n}());\nexport { ReorderableDndHandlerSelector };\n\n//# sourceMappingURL=reorderable-dnd-handler-selector.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customAttribute } from 'aurelia-templating';\nvar ReorderableAfterReordering = (function () {\n    function ReorderableAfterReordering() {\n    }\n    ReorderableAfterReordering = __decorate([\n        customAttribute('reorderable-after-reordering')\n    ], ReorderableAfterReordering);\n    return ReorderableAfterReordering;\n}());\nexport { ReorderableAfterReordering };\n\n//# sourceMappingURL=reorderable-after-reordering.js.map\n","import { DOM } from 'aurelia-pal';\nimport { ReorderableRepeat } from './reorderable-repeat';\nimport { ReorderableDirection } from './reorderable-direction';\nimport { ReorderableGroup } from './reorderable-group';\nimport { ReorderableGroupFor } from './reorderable-group-for';\nimport { ReorderableDndPreview } from './reorderable-dnd-preview';\nimport { ReorderableDndHandlerSelector } from './reorderable-dnd-handler-selector';\nimport { ReorderableAfterReordering } from './reorderable-after-reordering';\nvar css = \"\\n.reorderable-repeat-dragging-me {\\n  visibility: hidden;\\n}\\n\";\nexport function configure(config) {\n    DOM.injectStyles(css);\n    config.globalResources([\n        ReorderableRepeat,\n        ReorderableDirection,\n        ReorderableGroup,\n        ReorderableGroupFor,\n        ReorderableDndPreview,\n        ReorderableDndHandlerSelector,\n        ReorderableAfterReordering\n    ]);\n}\n\n//# sourceMappingURL=index.js.map\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n  \"use strict\";\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = chars.indexOf(base64[i]);\n      encoded2 = chars.indexOf(base64[i+1]);\n      encoded3 = chars.indexOf(base64[i+2]);\n      encoded4 = chars.indexOf(base64[i+3]);\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n"],"sourceRoot":""}