{"version":3,"sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_arrayWithHoles","arr","Array","isArray","_iterableToArrayLimit","i","Symbol","iterator","Object","_arr","_n","_d","_e","_s","_i","next","push","length","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","prototype","toString","call","slice","constructor","name","from","test","_nonIterableRest","TypeError","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_defineProperty","obj","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","target","source","forEach","getOwnPropertyDescriptors","defineProperties","PageViewManager","appInsights","overridePageViewDuration","core","pageViewPerformanceManager","_self","_logger","intervalHandle","itemQueue","pageViewPerformanceSent","_flushChannels","isAsync","flush","_addQueue","cb","setInterval","allItems","doFlush","item","clearInterval","logger","trackPageView","pageView","customProperties","doc","title","uri","location_1","href","isPerformanceTimingSupported","sendPageViewInternal","customDuration","duration","pageViewSent","start","getPerformanceTiming","navigationStart","Date","shouldCollectDuration","isNaN","maxDurationLimit","processed","isPerformanceTimingDataReady","pageViewPerformance","populatePageViewPerformanceEvent","isValid","durationMs","sendPageViewPerformanceInternal","e","exception","teardown","unloadCtx","unloadState","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","trackPreviousPageVisit","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","pageVisitTime","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","currPageVisitDataStr","stringify","pageVisitEndTime","pageVisitDataJsonStr","parse","pageVisitStartTime","PageVisitData","PageViewPerformanceManager","MAX_DURATION_ALLOWED","navigationTiming","getPerformanceNavigationTiming","timing","total","network","request","response","dom","startTime","connectEnd","requestStart","responseStart","responseEnd","loadEventEnd","Math","floor","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","isPerformanceNavigationTimingSupported","getEntriesByType","perf","domainLookupStart","domLoading","durations","_navigator","botAgentNames","userAgent","isGoogleBot","toLowerCase","indexOf","Timing","_events","stop","url","properties","measurements","end","action","durationProperty","strEvent","_dispatchEvent","evnt","dispatchEvent","_getReason","reason","MinMilliSeconds","_configMilliseconds","defValue","_getDefaultConfig","config","sessionRenewalMs","sessionExpirationMs","disableExceptionTracking","autoTrackPageVisitTime","enableUnhandledPromiseRejectionTracking","samplingPercentage","isStorageUseDisabled","isBrowserLinkTrackingEnabled","enableAutoRouteTracking","namePrefix","enableDebug","disableFlushOnBeforeUnload","disableFlushOnUnload","_updateStorageUsage","extConfig","_super","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_this","identifier","priority","autoRoutePVDelay","_prevUri","_currUri","_evtNamespace","_base","_addHook","_populateDefaults","ctx","defaults","getExtCfg","field","getConfig","_updateBrowserLinkTracking","_addDefaultTelemetryInitializers","trackPageVisitTime","PageName","PageUrl","trackMetric","average","max","min","sampleCount","browserLinkPaths_1","dropBrowserLinkRequests","envelope","baseType","RemoteDependencyData","dataType","remoteData","baseData","addTelemetryInitializer","_sendCORSException","telemetryItem","Exception","envelopeType","diagLog","track","_updateExceptionTracking","_window","locn","autoExceptionInstrumented","ns","rsp","callDetails","message","lineNumber","columnNumber","rslt","_onerror","CreateAutoException","evt","_addUnhandledPromiseRejectionTracking","_updateLocationChange","win","_history","pushState","replaceState","Event","_addHistoryListener","history","_popstateHandler","_locationChangeHandler","getPlugin","context","plugin","telemetryTrace","traceID","traceLocationName","pathname","hash","setTimeout","refUri","bind","_location","autoUnhandledPromiseInstrumented","_throwInternal","severity","msgId","msg","isUserAct","throwInternal","_initDefaults","location","getCookieMgr","processTelemetry","env","itemCtx","processNext","trackEvent","event","startTrackEvent","stopTrackEvent","trackTrace","trace","Trace","metric","Metric","inPv","systemProperties","referrer","PageView","PageViewPerformance","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","sendExceptionInternal","theError","Error","exceptionPartB","severityLevel","id","toInterface","trackException","URL","errorSrc","errorString","telemetryInitializer","initialize","extensions","pluginChain","isInitialized","evtNamespace","initializer","pageViewItem","setInitialized","_doTeardown","window","Version","getDefaultConfig","BaseTelemetryPlugin"],"mappings":"sKAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,MACjB,MAAOC,GAEP,YADAP,EAAOO,GAILF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,GAIxB,SAASS,EAAkBC,GACxC,OAAO,WACL,IAAIC,EAAOC,KACPC,EAAOC,UACX,OAAO,IAAIP,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMc,EAAGK,MAAMJ,EAAME,GAEzB,SAASd,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,GAGlE,SAASJ,EAAOgB,GACdrB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASgB,GAGnEjB,OAAMkB,S,kCC/BG,SAASC,EAAgBC,GACtC,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,E,8FCDlB,SAASG,EAAsBH,EAAKI,GACjD,GAAsB,qBAAXC,QAA4BA,OAAOC,YAAYC,OAAOP,GAAjE,CACA,IAAIQ,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKb,EAET,IACE,IAAK,IAAiCc,EAA7BC,EAAKb,EAAIK,OAAOC,cAAmBG,GAAMG,EAAKC,EAAGC,QAAQ3B,MAAOsB,GAAK,EAG5E,GAFAD,EAAKO,KAAKH,EAAG3B,OAETmB,GAAKI,EAAKQ,SAAWZ,EAAG,MAE9B,MAAOP,GACPa,GAAK,EACLC,EAAKd,EARP,QAUE,IACOY,GAAsB,MAAhBI,EAAG,WAAmBA,EAAG,YADtC,QAGE,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,G,wCCxBM,SAASS,EAAkBjB,EAAKkB,IAClC,MAAPA,GAAeA,EAAMlB,EAAIgB,UAAQE,EAAMlB,EAAIgB,QAE/C,IAAK,IAAIZ,EAAI,EAAGe,EAAO,IAAIlB,MAAMiB,GAAMd,EAAIc,EAAKd,IAC9Ce,EAAKf,GAAKJ,EAAII,GAGhB,OAAOe,ECNM,SAASC,EAA4BC,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOE,EAAiBF,EAAGC,GACtD,IAAIE,EAAIjB,OAAOkB,UAAUC,SAASC,KAAKN,GAAGO,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBH,EAAEQ,cAAaL,EAAIH,EAAEQ,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBvB,MAAM8B,KAAKV,GACxC,cAANG,GAAqB,2CAA2CQ,KAAKR,GAAWD,EAAiBF,EAAGC,QAAxG,GCPa,SAASW,IACtB,MAAM,IAAIC,UAAU,6ICGP,SAASC,EAAenC,EAAKI,GAC1C,OAAOgC,EAAepC,IAAQqC,EAAqBrC,EAAKI,IAAMkC,EAA2BtC,EAAKI,IAAMmC,M,0ICLvF,SAASC,EAAgBC,EAAK3D,EAAKG,GAYhD,OAXIH,KAAO2D,EACTlC,OAAOmC,eAAeD,EAAK3D,EAAK,CAC9BG,MAAOA,EACP0D,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZJ,EAAI3D,GAAOG,EAGNwD,ECVT,SAASK,EAAQC,EAAQC,GACvB,IAAIC,EAAO1C,OAAO0C,KAAKF,GAEvB,GAAIxC,OAAO2C,sBAAuB,CAChC,IAAIC,EAAU5C,OAAO2C,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAO9C,OAAO+C,yBAAyBP,EAAQM,GAAKV,eAEtDM,EAAKlC,KAAKnB,MAAMqD,EAAME,GAGxB,OAAOF,EAGM,SAASM,EAAeC,GACrC,IAAK,IAAIpD,EAAI,EAAGA,EAAIT,UAAUqB,OAAQZ,IAAK,CACzC,IAAIqD,EAAyB,MAAhB9D,UAAUS,GAAaT,UAAUS,GAAK,GAE/CA,EAAI,EACN0C,EAAQvC,OAAOkD,IAAS,GAAMC,SAAQ,SAAU5E,GAC9C4D,EAAec,EAAQ1E,EAAK2E,EAAO3E,OAE5ByB,OAAOoD,0BAChBpD,OAAOqD,iBAAiBJ,EAAQjD,OAAOoD,0BAA0BF,IAEjEX,EAAQvC,OAAOkD,IAASC,SAAQ,SAAU5E,GACxCyB,OAAOmC,eAAec,EAAQ1E,EAAKyB,OAAO+C,yBAAyBG,EAAQ3E,OAKjF,OAAO0E,I,wZCrBL,EAAiC,WACjC,SAASK,EAAgBC,EAAaC,EAA0BC,EAAMC,GAClE,eAAaJ,EAAiBpE,MAAM,SAAUyE,GAC1C,IAGIC,EAHAC,EAAiB,KACjBC,EAAY,GACZC,GAA0B,EAK9B,SAASC,EAAeC,GAChBR,GACAA,EAAKS,MAAMD,GAGnB,SAASE,EAAUC,GACfN,EAAUtD,KAAK4D,GACVP,IACDA,EAAiBQ,aAAY,WACzB,IAAIC,EAAWR,EAAUzC,MAAM,GAC3BkD,GAAU,EACdT,EAAY,GACZ,eAAWQ,GAAU,SAAUE,GACtBA,IAKDD,GAAU,EAHVT,EAAUtD,KAAKgE,MAME,IAArBV,EAAUrD,SACVgE,cAAcZ,GACdA,EAAiB,MAEjBU,GAEAP,GAAe,KAEnB,MAhCRP,IACAG,EAAUH,EAAKiB,QAkCnBf,EAAMgB,cAAgB,SAAUC,EAAUC,GACtC,IAAItD,EAAOqD,EAASrD,KACpB,GAAI,eAAkBA,IAAyB,kBAATA,EAAmB,CACrD,IAAIuD,EAAM,iBACVvD,EAAOqD,EAASrD,KAAOuD,GAAOA,EAAIC,OAAS,GAE/C,IAAIC,EAAMJ,EAASI,IACnB,GAAI,eAAkBA,IAAuB,kBAARA,EAAkB,CACnD,IAAIC,EAAa,iBACjBD,EAAMJ,EAASI,IAAMC,GAAcA,EAAWC,MAAQ,GAK1D,IAAKxB,EAA2ByB,+BAK5B,OAJA5B,EAAY6B,qBAAqBR,EAAUC,GAC3Cb,GAAe,QAEf,eAAeJ,EAAS,EAAiB,GAAuC,mLAGpF,IACIyB,EAWAC,EAZAC,GAAe,EAGfC,EAAQ9B,EAA2B+B,uBAAuBC,gBAC1DF,EAAQ,IACRH,EAAiB,eAAsBG,GAAQ,IAAIG,MAC9CjC,EAA2BkC,sBAAsBP,KAClDA,OAAiB9F,IAMpB,eAAkBsF,IAClB,eAAkBA,EAAiBS,YACpCA,EAAWT,EAAiBS,WAE5B9B,GAA6BqC,MAAMP,KAC/BO,MAAMP,KAEDT,IACDA,EAAmB,IAEvBA,EAAiB,YAAcQ,GAGnC9B,EAAY6B,qBAAqBR,EAAUC,GAC3Cb,GAAe,GACfuB,GAAe,GAGnB,IAAIO,EAAmB,IAClBjB,IACDA,EAAmB,IAGvBV,GAAU,WACN,IAAI4B,GAAY,EAChB,IACI,GAAIrC,EAA2BsC,+BAAgC,CAC3DD,GAAY,EACZ,IAAIE,EAAsB,CACtB1E,KAAMA,EACNyD,IAAKA,GAETtB,EAA2BwC,iCAAiCD,GACvDA,EAAoBE,SAAYZ,GAO5BA,IACDV,EAAiB,YAAcoB,EAAoBG,WACnD7C,EAAY6B,qBAAqBR,EAAUC,IAE1Cd,IACDR,EAAY8C,gCAAgCJ,EAAqBpB,GACjEd,GAA0B,KAV9Bc,EAAiB,YAAcQ,EAC/B9B,EAAY6B,qBAAqBR,EAAUC,SAa1CW,EAAQ,GAAK,eAAsBA,GAAQ,IAAIG,MAAQG,IAG5DC,GAAY,EACPR,IACDV,EAAiB,YAAciB,EAC/BvC,EAAY6B,qBAAqBR,EAAUC,KAIvD,MAAOyB,GACH,eAAe1C,EAAS,EAAkB,GAA4B,kDAAoD,eAAiB0C,GAAI,CAAEC,UAAW,eAAQD,KAExK,OAAOP,MAGfpC,EAAM6C,SAAW,SAAUC,EAAWC,GAClC,GAAI7C,EAAgB,CAChBY,cAAcZ,GACdA,EAAiB,KACjB,IAAIS,EAAWR,EAAUzC,MAAM,GAE/ByC,EAAY,GACZ,eAAWQ,GAAU,SAAUE,GACvBA,MACY,UASpC,OAAOlB,EAhKyB,GCDhC,EAAsC,WAMtC,SAASqD,EAAqBjC,EAAQkC,GAClC1H,KAAK2H,yBAA2B,oBAChC3H,KAAK0H,6BAA+BA,EACpC1H,KAAK0E,QAAUc,EAwFnB,OAjFAiC,EAAqBzF,UAAU4F,uBAAyB,SAAUC,EAAiBC,GAC/E,IAEI,IAAIC,EAAwB/H,KAAKgI,sBAAsBH,EAAiBC,GAEpEC,GACA/H,KAAK0H,6BAA6BK,EAAsBE,SAAUF,EAAsBG,QAASH,EAAsBI,eAG/H,MAAOf,GACH,eAAepH,KAAK0E,QAAS,oEAAsE,eAAQ0C,MAQnHK,EAAqBzF,UAAUgG,sBAAwB,SAAUC,EAAUC,GACvE,IACI,IAAIE,EAAoBpI,KAAKqI,qBAE7B,OADArI,KAAKsI,oBAAoBL,EAAUC,GAC5BE,EAEX,MAAOhB,GAEH,OADA,eAAepH,KAAK0E,QAAS,2BAA6B,eAAQ0C,IAC3D,OAQfK,EAAqBzF,UAAUsG,oBAAsB,SAAUL,EAAUC,GACrE,IACI,GAAI,iBAA2B,CAC8C,MAArE,eAAqBlI,KAAK0E,QAAS1E,KAAK2H,2BACxC,eAAW,gFAEf,IAAIY,EAAoB,IAAI,EAAcN,EAAUC,GAChDM,EAAuB,iBAAUC,UAAUF,GAC/C,eAAqBvI,KAAK0E,QAAS1E,KAAK2H,yBAA0Ba,IAG1E,MAAOpB,GAEH,eAAepH,KAAK0E,QAAS,yBAA2B,eAAQ0C,MAOxEK,EAAqBzF,UAAUqG,mBAAqB,WAChD,IACI,GAAI,iBAA2B,CAE3B,IAAIK,EAAmB,iBAEnBC,EAAuB,eAAqB3I,KAAK0E,QAAS1E,KAAK2H,0BACnE,GAAIgB,GAAwB,iBAAW,CAEnC,IAAIP,EAAoB,iBAAUQ,MAAMD,GAKxC,OAJAP,EAAkBD,cAAgBO,EAAmBN,EAAkBS,mBAEvE,eAAwB7I,KAAK0E,QAAS1E,KAAK2H,0BAEpCS,EAGP,OAAO,KAGf,OAAO,KAEX,MAAOhB,GAEH,OADA,eAAepH,KAAK0E,QAAS,iCAAmC,eAAQ0C,IACjE,OAGRK,EAjG8B,GAoGrC,EAA+B,WAC/B,SAASqB,EAAcb,EAAUC,GAC7BlI,KAAK6I,mBAAqB,iBAC1B7I,KAAKiI,SAAWA,EAChBjI,KAAKkI,QAAUA,EAEnB,OAAOY,EANuB,GCpG9B,EAA4C,WAC5C,SAASC,EAA2BxE,GAChCvE,KAAKgJ,qBAAuB,KACxBzE,IACAvE,KAAK0E,QAAUH,EAAKiB,QAuJ5B,OApJAuD,EAA2B/G,UAAUgF,iCAAmC,SAAUD,GAC9EA,EAAoBE,SAAU,EAqB9B,IAAIgC,EAAmBjJ,KAAKkJ,iCACxBC,EAASnJ,KAAKuG,uBACd6C,EAAQ,EACRC,EAAU,EACVC,EAAU,EACVC,EAAW,EACXC,EAAM,EACV,GAAIP,GAAoBE,EAAQ,CACxBF,GACAG,EAAQH,EAAiB7C,SAMzBiD,EAAyC,IAA/BJ,EAAiBQ,UAAkBR,EAAiBS,WAAa,eAAsBT,EAAiBQ,UAAWR,EAAiBS,YAC9IJ,EAAU,eAAsBL,EAAiBU,aAAcV,EAAiBW,eAChFL,EAAW,eAAsBN,EAAiBW,cAAeX,EAAiBY,aAClFL,EAAM,eAAsBP,EAAiBY,YAAaZ,EAAiBa,gBAG3EV,EAAQ,eAAsBD,EAAO3C,gBAAiB2C,EAAOW,cAC7DT,EAAU,eAAsBF,EAAO3C,gBAAiB2C,EAAOO,YAC/DJ,EAAU,eAAsBH,EAAOQ,aAAcR,EAAOS,eAC5DL,EAAW,eAAsBJ,EAAOS,cAAeT,EAAOU,aAC9DL,EAAM,eAAsBL,EAAOU,YAAaV,EAAOW,eAE3D,IAAItE,EAASxF,KAAK0E,QACJ,IAAV0E,EACA,eAAe5D,EAAQ,EAAiB,GAAsB,2CAA4C,CAAE4D,MAAOA,EAAOC,QAASA,EAASC,QAASA,EAASC,SAAUA,EAAUC,IAAKA,IAEjLxJ,KAAK0G,sBAAsB0C,EAAOC,EAASC,EAASC,EAAUC,GAG/DJ,EAAQW,KAAKC,MAAMX,GAAWU,KAAKC,MAAMV,GAAWS,KAAKC,MAAMT,GAAYQ,KAAKC,MAAMR,GAG3F,eAAehE,EAAQ,EAAiB,EAAoC,iCAAkC,CAAE4D,MAAOA,EAAOC,QAASA,EAASC,QAASA,EAASC,SAAUA,EAAUC,IAAKA,KAG3LzC,EAAoBG,WAAakC,EAEjCrC,EAAoBkD,UAAYlD,EAAoBX,SAAW,eAAagD,GAC5ErC,EAAoBmD,eAAiB,eAAab,GAClDtC,EAAoBoD,YAAc,eAAab,GAC/CvC,EAAoBqD,iBAAmB,eAAab,GACpDxC,EAAoBsD,cAAgB,eAAab,GACjDzC,EAAoBE,SAAU,GAf9B,eAAezB,EAAQ,EAAiB,GAA+B,qEAAsE,CAAE4D,MAAOA,EAAOC,QAASA,EAASC,QAASA,EAASC,SAAUA,EAAUC,IAAKA,MAmBtOT,EAA2B/G,UAAUuE,qBAAuB,WACxD,OAAIvG,KAAKiG,+BACE,iBAAiBkD,OAErB,MAEXJ,EAA2B/G,UAAUkH,+BAAiC,WAClE,OAAIlJ,KAAKsK,yCACE,iBAAiBC,iBAAiB,cAAc,GAEpD,MAKXxB,EAA2B/G,UAAUsI,uCAAyC,WAC1E,IAAIE,EAAO,iBACX,OAAOA,GAAQA,EAAKD,kBAAoBC,EAAKD,iBAAiB,cAAchJ,OAAS,GAKzFwH,EAA2B/G,UAAUiE,6BAA+B,WAChE,IAAIuE,EAAO,iBACX,OAAOA,GAAQA,EAAKrB,QAMxBJ,EAA2B/G,UAAU8E,6BAA+B,WAChE,IAAI0D,EAAO,iBACPrB,EAASqB,EAAOA,EAAKrB,OAAS,EAClC,OAAOA,GACAA,EAAOsB,kBAAoB,GAC3BtB,EAAO3C,gBAAkB,GACzB2C,EAAOS,cAAgB,GACvBT,EAAOQ,aAAe,GACtBR,EAAOW,aAAe,GACtBX,EAAOU,YAAc,GACrBV,EAAOO,WAAa,GACpBP,EAAOuB,WAAa,GAK/B3B,EAA2B/G,UAAU0E,sBAAwB,WAEzD,IADA,IAAIiE,EAAY,GACPvJ,EAAK,EAAGA,EAAKlB,UAAUqB,OAAQH,IACpCuJ,EAAUvJ,GAAMlB,UAAUkB,GAE9B,IAAIwJ,EAAa,kBAAkB,GAE/BC,EAAgB,CAAC,YAAa,gBAAiB,cAAe,wBAC9DC,EAAYF,EAAWE,UACvBC,GAAc,EAClB,GAAID,EACA,IAAK,IAAInK,EAAI,EAAGA,EAAIkK,EAActJ,OAAQZ,IACtCoK,EAAcA,IAAsE,IAAvDD,EAAUE,cAAcC,QAAQJ,EAAclK,IAGnF,GAAIoK,EAEA,OAAO,EAIP,IAASpK,EAAI,EAAGA,EAAIgK,EAAUpJ,OAAQZ,IAClC,GAAIgK,EAAUhK,GAAK,GAAKgK,EAAUhK,IAAMX,KAAKgJ,qBACzC,OAAO,EAInB,OAAO,GAEJD,EA3JoC,GCA3C,EAAwB,WACxB,SAASmC,EAAO1F,EAAQnD,GACpB,IAAIoC,EAAQzE,KACRmL,EAAU,GACd1G,EAAM6B,MAAQ,SAAUjE,GACS,qBAAlB8I,EAAQ9I,IACf,eAAemD,EAAQ,EAAiB,GAAkC,uEAAwE,CAAEnD,KAAMA,EAAMhD,IAAKgD,IAAQ,GAEjL8I,EAAQ9I,IAAS,IAAIoE,MAEzBhC,EAAM2G,KAAO,SAAU/I,EAAMgJ,EAAKC,EAAYC,GAC1C,IAAIjF,EAAQ6E,EAAQ9I,GACpB,GAAIsE,MAAML,GACN,eAAed,EAAQ,EAAiB,GAAiC,iDAAkD,CAAEnD,KAAMA,EAAMhD,IAAKgD,IAAQ,OAErJ,CACD,IAAImJ,GAAO,IAAI/E,KACXL,EAAW,eAAsBE,EAAOkF,GAC5C/G,EAAMgH,OAAOpJ,EAAMgJ,EAAKjF,EAAUkF,EAAYC,UAE3CJ,EAAQ9I,GACf8I,EAAQ9I,QAAQhC,GAGxB,OAAO6K,EAxBgB,GCMvBQ,EAAmB,WACnBC,EAAW,QACf,SAASC,EAAe7H,EAAQ8H,GACxB9H,GAAUA,EAAO+H,eAAiBD,GAClC9H,EAAO+H,cAAcD,GAG7B,SAASE,EAAWtM,GAChB,GAAIA,GAASA,EAAMuM,OAAQ,CACvB,IAAIA,EAASvM,EAAMuM,OACnB,OAAK,eAASA,IAAW,eAAWA,EAAO/J,UAChC+J,EAAO/J,WAEX,eAAQ+J,GAGnB,OAAOvM,GAAS,GAEpB,IAAIwM,EAAkB,IACtB,SAASC,EAAoB1M,EAAO2M,GAKhC,OAJA3M,EAAQA,GAAS2M,EACb3M,EAAQyM,IACRzM,EAAQyM,GAELzM,EAEX,SAAS4M,EAAkBC,GAqBvB,OApBKA,IACDA,EAAS,IAGbA,EAAOC,iBAAmBJ,EAAoBG,EAAOC,iBAAkB,MACvED,EAAOE,oBAAsBL,EAAoBG,EAAOE,oBAAqB,OAC7EF,EAAOG,yBAA2B,eAAsBH,EAAOG,0BAC/DH,EAAOI,uBAAyB,eAAsBJ,EAAOI,wBAC7DJ,EAAO/H,yBAA2B,eAAsB+H,EAAO/H,0BAC/D+H,EAAOK,wCAA0C,eAAsBL,EAAOK,0CAC1E/F,MAAM0F,EAAOM,qBAAuBN,EAAOM,oBAAsB,GAAKN,EAAOM,oBAAsB,OACnGN,EAAOM,mBAAqB,KAEhCN,EAAOO,qBAAuB,eAAsBP,EAAOO,sBAC3DP,EAAOQ,6BAA+B,eAAsBR,EAAOQ,8BACnER,EAAOS,wBAA0B,eAAsBT,EAAOS,yBAC9DT,EAAOU,WAAaV,EAAOU,YAAc,GACzCV,EAAOW,YAAc,eAAsBX,EAAOW,aAClDX,EAAOY,2BAA6B,eAAsBZ,EAAOY,4BACjEZ,EAAOa,qBAAuB,eAAsBb,EAAOa,qBAAsBb,EAAOY,4BACjFZ,EAEX,SAASc,EAAoBC,GAGpB,eAAYA,EAAUR,wBACnBQ,EAAUR,qBACV,iBAGA,kBAIZ,IAAI,EAAiC,SAAUS,GAE3C,SAASC,IACL,IAIIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAjBAC,EAAQhB,EAAOnL,KAAKlC,OAASA,KACjCqO,EAAMC,WAAa,OACnBD,EAAME,SAAW,IACjBF,EAAMG,iBAAmB,IAmBzB,IAEIC,EACAC,EACAC,EA6hBJ,OA5hBA,eAAarB,EAAiBe,GAAO,SAAU5J,EAAOmK,GAClD,IAAIC,EAAWD,EAAMC,SAyUrB,SAASC,GAAkBzC,GACvB,IAAI0C,EAAM,eAA8B,KAAM1C,EAAQ5H,EAAMF,MACxD+J,EAAa7J,EAAM6J,WAEnBU,EAAW5C,EAAkBC,GAC7Be,EAAY3I,EAAM4H,OAAS0C,EAAIE,UAAUX,GAU7C,YATiBjO,IAAb2O,GACA,eAAcA,GAAU,SAAUE,EAAO1P,GAErC4N,EAAU8B,GAASH,EAAII,UAAUb,EAAYY,EAAO1P,QAC3Ba,IAArB+M,EAAU8B,KACV9B,EAAY5N,MAIjB4N,EAEX,SAASgC,GAA2BhC,EAAWf,GAC3CwB,EAAgCT,EAAUP,8BAAgCR,EAAOQ,6BACjFwC,KAOJ,SAASC,GAAmBrH,EAAUC,EAASC,GAC3C,IAAImD,EAAa,CAAEiE,SAAUtH,EAAUuH,QAAStH,GAChDzD,EAAMgL,YAAY,CACdpN,KAAM,gBACNqN,QAASvH,EACTwH,IAAKxH,EACLyH,IAAKzH,EACL0H,YAAa,GACdvE,GAEP,SAAS+D,KACL,IAAKvB,GAAgCD,EAA+B,CAChE,IAAIiC,EAAqB,CAAC,uBAAwB,mBAC9CC,EAA0B,SAAUC,GACpC,GAAInC,GAAiCmC,EAASC,WAAaC,EAAA,KAAqBC,SAAU,CACtF,IAAIC,EAAaJ,EAASK,SAC1B,GAAID,EACA,IAAK,IAAIzP,EAAI,EAAGA,EAAImP,EAAmBvO,OAAQZ,IAC3C,GAAIyP,EAAWrM,QAAUqM,EAAWrM,OAAOkH,QAAQ6E,EAAmBnP,KAAO,EACzE,OAAO,EAKvB,OAAO,GAEX8D,EAAM6L,wBAAwBP,GAC9BjC,GAA+B,GAGvC,SAASyC,GAAmBlJ,EAAWiE,GACnC,IAAIkF,EAAgB,eAAoBnJ,EAAWoJ,EAAA,KAAUN,SAAUM,EAAA,KAAUC,aAAcjM,EAAMkM,UAAWrF,GAChH7G,EAAMF,KAAKqM,MAAMJ,GAErB,SAASK,GAAyBzD,GAC9B,IAAI0D,EAAU,iBACVC,EAAO,gBAAY,GACvB9C,EAA4Bb,EAAUZ,yBACjCyB,GAA8BC,GAA+Bd,EAAU4D,4BAExEnC,EAAS,eAAgBiC,EAAS,UAAW,CACzCG,GAAItC,EACJuC,IAAK,SAAUC,EAAaC,EAAS/F,EAAKgG,EAAYC,EAAc7R,GAC3DwO,IAAkD,IAArBkD,EAAYI,MAC1C9M,EAAM+M,SAASf,EAAA,KAAUgB,oBAAoBL,EAAS/F,EAAKgG,EAAYC,EAAc7R,EAAO0R,EAAYO,SAGjH,IACHxD,GAA6B,GAEjCyD,GAAsCvE,EAAW0D,EAASC,GAE9D,SAASa,GAAsBxE,GAC3B,IAAIyE,EAAM,iBACNd,EAAO,gBAAY,GAKvB,GAJAhD,GAAiE,IAAtCX,EAAUN,wBAIjC+E,GAAO9D,GAA4B,iBAAc,CACjD,IAAI+D,EAAW,iBACX,eAAWA,EAASC,YAAc,eAAWD,EAASE,sBAAwBC,QAAU,QACxFC,GAAoB9E,EAAWyE,EAAKC,EAAUf,IAO1D,SAASmB,GAAoB9E,EAAWyE,EAAKM,EAASpB,GAClD,SAASqB,IACDrE,GACAnC,EAAeiG,EAAK,eAAezE,EAAUL,WAAa,mBAGlE,SAASsF,IASL,GAPI3D,GACAD,EAAWC,EACXA,EAAWqC,GAAQA,EAAK/K,MAAQ,IAGhC0I,EAAWqC,GAAQA,EAAK/K,MAAQ,GAEhC+H,EAA0B,CAC1B,IAAIzC,EAAa7G,EAAMF,KAAK+N,UAAU,QACtC,GAAIhH,EAAY,CACZ,IAAIiH,EAAUjH,EAAWkH,OAAOD,QAChC,GAAIA,GAAWA,EAAQE,eAAgB,CACnCF,EAAQE,eAAeC,QAAU,iBACjC,IAAIC,EAAoB,YACpB5B,GAAQA,EAAK6B,WACbD,EAAoB5B,EAAK6B,UAAY7B,EAAK8B,MAAQ,KAGtDN,EAAQE,eAAepQ,KAAO,eAAmBoC,EAAMkM,UAAWgC,IAG1EG,WAAW,SAAWhN,GAElBrB,EAAMgB,cAAc,CAAEsN,OAAQjN,EAAKwF,WAAY,CAAElF,SAAU,MAC5D4M,KAAKhT,KAAMyO,GAAWhK,EAAM+J,mBAGlCR,IACDa,EAAS,eAAgBsD,EAAS,YAAa,CAC3ClB,GAAItC,EACJuC,IAAK,WACGnD,IACAnC,EAAeiG,EAAK,eAAezE,EAAUL,WAAa,cAC1DnB,EAAeiG,EAAK,eAAezE,EAAUL,WAAa,uBAGnE,IACH8B,EAAS,eAAgBsD,EAAS,eAAgB,CAC9ClB,GAAItC,EACJuC,IAAK,WACGnD,IACAnC,EAAeiG,EAAK,eAAezE,EAAUL,WAAa,iBAC1DnB,EAAeiG,EAAK,eAAezE,EAAUL,WAAa,uBAGnE,IACH,eAAQ8E,EAAKzE,EAAUL,WAAa,WAAYqF,EAAkBzD,GAClE,eAAQkD,EAAKzE,EAAUL,WAAa,iBAAkBsF,EAAwB1D,GAC9EX,GAAwB,GAGhC,SAAS2D,GAAsCvE,EAAW0D,EAASmC,GAC/D9E,GAAiG,IAAtDf,EAAUV,wCACjDyB,IAA6CC,IAE7CS,EAAS,eAAgBiC,EAAS,uBAAwB,CACtDG,GAAItC,EACJuC,IAAK,SAAUC,EAAa1R,GACpB0O,IAAiE,IAArBgD,EAAYI,MACxD9M,EAAM+M,SAASf,EAAA,KAAUgB,oBAAoB1F,EAAWtM,GAAQwT,EAAYA,EAAUjN,KAAO,GAAI,EAAG,EAAGvG,EAAO0R,EAAYO,SAGnI,IACHtD,GAAoC,EACpChB,EAAU8F,iCAAmC9E,GAQrD,SAAS+E,GAAeC,EAAUC,EAAOC,EAAKhI,EAAYiI,GACtD9O,EAAMkM,UAAU6C,cAAcJ,EAAUC,EAAOC,EAAKhI,EAAYiI,GAEpE,SAASE,KACLlG,EAAiB,KACjBC,EAAgB,KAChBC,EAAmB,KACnBC,EAA8B,KAC9BC,EAAwB,KACxBC,EAAgC,KAChCC,GAAgC,EAChCC,GAA+B,EAC/BC,GAA2B,EAC3BC,GAAwB,EACxBC,GAA4B,EAC5BC,GAA6B,EAC7BC,GAA2C,EAC3CC,GAAoC,EAKf,EAErB,IAAIsF,EAAW,gBAAY,GAC3BjF,EAAWiF,GAAYA,EAAS1N,MAAQ,GACxC0I,EAAW,KACXC,EAAgB,KAlhBpB8E,KACAhP,EAAMkP,aAAe,WACjB,OAAO,eAAiBlP,EAAMF,OAElCE,EAAMmP,iBAAmB,SAAUC,EAAKC,GACpCrP,EAAMsP,YAAYF,EAAKC,IAE3BrP,EAAMuP,WAAa,SAAUC,EAAOtO,GAChC,IACI,IAAI6K,EAAgB,eAAoByD,EAAO,OAAe9D,SAAU,OAAeO,aAAcjM,EAAMkM,UAAWhL,GACtHlB,EAAMF,KAAKqM,MAAMJ,GAErB,MAAOpJ,GACH+L,GAAe,EAAiB,GAA2B,mDAAqD,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAOlK3C,EAAMyP,gBAAkB,SAAU7R,GAC9B,IACIkL,EAAejH,MAAMjE,GAEzB,MAAO+E,GACH+L,GAAe,EAAkB,GAAgC,wDAA0D,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAS7K3C,EAAM0P,eAAiB,SAAU9R,EAAMiJ,EAAYC,GAC/C,IACIgC,EAAenC,KAAK/I,OAAMhC,EAAWiL,GAEzC,MAAOlE,GACH+L,GAAe,EAAkB,GAA+B,uDAAyD,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAS3K3C,EAAM2P,WAAa,SAAUC,EAAO1O,GAChC,IACI,IAAI6K,EAAgB,eAAoB6D,EAAOC,EAAA,KAAMnE,SAAUmE,EAAA,KAAM5D,aAAcjM,EAAMkM,UAAWhL,GACpGlB,EAAMF,KAAKqM,MAAMJ,GAErB,MAAOpJ,GACH+L,GAAe,EAAiB,GAA2B,mDAAqD,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAclK3C,EAAMgL,YAAc,SAAU8E,EAAQ5O,GAClC,IACI,IAAI6K,EAAgB,eAAoB+D,EAAQC,EAAA,KAAOrE,SAAUqE,EAAA,KAAO9D,aAAcjM,EAAMkM,UAAWhL,GACvGlB,EAAMF,KAAKqM,MAAMJ,GAErB,MAAOpJ,GACH+L,GAAe,EAAkB,GAA4B,qDAAuD,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAStK3C,EAAMgB,cAAgB,SAAUC,EAAUC,GACtC,IACI,IAAI8O,EAAO/O,GAAY,GACvB+H,EAAiBhI,cAAcgP,EAAM,eAAS,eAAS,eAAS,GAAIA,EAAKnJ,YAAamJ,EAAKlJ,cAAe5F,IACtGlB,EAAM4H,OAAOI,wBACbkB,EAAsB/F,uBAAuB6M,EAAKpS,KAAMoS,EAAK3O,KAGrE,MAAOsB,GACH+L,GAAe,EAAkB,GAAwB,0DAA4D,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OASvK3C,EAAMyB,qBAAuB,SAAUR,EAAU4F,EAAYoJ,GACzD,IAAI9O,EAAM,iBACNA,IACAF,EAASqN,YAA6B1S,IAApBqF,EAASqN,OAAuBnN,EAAI+O,SAAWjP,EAASqN,QAE9E,IAAIvC,EAAgB,eAAoB9K,EAAUkP,EAAA,KAASzE,SAAUyE,EAAA,KAASlE,aAAcjM,EAAMkM,UAAWrF,EAAYoJ,GACzHjQ,EAAMF,KAAKqM,MAAMJ,GAEI,GAOzB/L,EAAM0C,gCAAkC,SAAUJ,EAAqBuE,EAAYoJ,GAC/E,IAAIlE,EAAgB,eAAoBzJ,EAAqB8N,EAAA,KAAoB1E,SAAU0E,EAAA,KAAoBnE,aAAcjM,EAAMkM,UAAWrF,EAAYoJ,GAC1JjQ,EAAMF,KAAKqM,MAAMJ,IAOrB/L,EAAMqQ,yBAA2B,SAAU/N,EAAqBpB,GAC5D,IAAIoP,EAAQhO,GAAuB,GACnC,IACI2G,EAA4B1G,iCAAiC+N,GAC7DtQ,EAAM0C,gCAAgC4N,EAAOpP,GAEjD,MAAOyB,GACH+L,GAAe,EAAkB,GAAwB,qEAAuE,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OASlL3C,EAAMuQ,eAAiB,SAAU3S,GAC7B,IACI,GAAoB,kBAATA,EAAmB,CAC1B,IAAIuD,EAAM,iBACVvD,EAAOuD,GAAOA,EAAIC,OAAS,GAE/B2H,EAAclH,MAAMjE,GAExB,MAAO+E,GACH+L,GAAe,EAAkB,GAA2B,0DAA4D,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAW1K3C,EAAMwQ,cAAgB,SAAU5S,EAAMgJ,EAAKC,EAAY4J,GACnD,IACI,GAAoB,kBAAT7S,EAAmB,CAC1B,IAAIuD,EAAM,iBACVvD,EAAOuD,GAAOA,EAAIC,OAAS,GAE/B,GAAmB,kBAARwF,EAAkB,CACzB,IAAI8J,EAAM,iBACV9J,EAAM8J,GAAOA,EAAInP,MAAQ,GAE7BwH,EAAcpC,KAAK/I,EAAMgJ,EAAKC,EAAY4J,GACtCzQ,EAAM4H,OAAOI,wBACbkB,EAAsB/F,uBAAuBvF,EAAMgJ,GAG3D,MAAOjE,GACH+L,GAAe,EAAkB,GAA0B,0DAA4D,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OASzK3C,EAAM2Q,sBAAwB,SAAU/N,EAAW1B,EAAkB+O,GACjE,IAAIW,EAAWhO,EAAUA,WAAaA,EAAU5H,OAAS,IAAI6V,MAAM,QAC/DC,EAAiB,IAAI9E,EAAA,KAAUhM,EAAMkM,UAAW0E,EAAUhO,EAAUiE,YAAc3F,EAAkB0B,EAAUkE,aAAclE,EAAUmO,cAAenO,EAAUoO,IAAIC,cACnKlF,EAAgB,eAAoB+E,EAAgB9E,EAAA,KAAUN,SAAUM,EAAA,KAAUC,aAAcjM,EAAMkM,UAAWhL,EAAkB+O,GACvIjQ,EAAMF,KAAKqM,MAAMJ,IAWrB/L,EAAMkR,eAAiB,SAAUtO,EAAW1B,GACpC0B,IAAcA,EAAUA,WAAaA,EAAU5H,QAC/C4H,EAAUA,UAAYA,EAAU5H,OAEpC,IACIgF,EAAM2Q,sBAAsB/N,EAAW1B,GAE3C,MAAOyB,GACH+L,GAAe,EAAkB,GAA+B,2DAA6D,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,OAQ/K3C,EAAM+M,SAAW,SAAUnK,GACvB,IAAI5H,EAAQ4H,GAAaA,EAAU5H,MAC/BiS,EAAMrK,GAAaA,EAAUqK,IACjC,IACI,IAAKA,EAAK,CACN,IAAIZ,EAAU,iBACVA,IACAY,EAAMZ,EAAQnF,IAGtB,IAAIN,EAAOhE,GAAaA,EAAUgE,MAAS,kBAAiB,IAAIuK,IAE5DC,EAAWxO,EAAUwO,UAAY,kBAAoBxK,EAAM,KAAOhE,EAAUgK,YAAc,GAAK,KAAOhK,EAAUiK,cAAgB,GAChIhG,EAAa,CACbuK,SAAUA,EACVxK,IAAKA,EACLgG,WAAYhK,EAAUgK,YAAc,EACpCC,aAAcjK,EAAUiK,cAAgB,EACxCF,QAAS/J,EAAU+J,SAEnB,eAAmB/J,EAAU+J,QAAS/J,EAAUgE,IAAKhE,EAAUgK,WAAYhK,EAAUiK,aAAcjK,EAAU5H,OAC7G8Q,GAAmBE,EAAA,KAAUgB,oBAAoB,qJAAsJpG,EAAKhE,EAAUgK,YAAc,EAAGhK,EAAUiK,cAAgB,EAAG7R,EAAOiS,EAAK,KAAMmE,GAAWvK,IAG5RjE,EAAUwO,WACXxO,EAAUwO,SAAWA,GAEzBpR,EAAMkR,eAAe,CAAEtO,UAAWA,EAAWmO,cAAe,GAAiBlK,IAGrF,MAAOlE,GACH,IAAI0O,EAAcrW,EAASA,EAAM4C,KAAO,KAAO5C,EAAM2R,QAAW,OAChE+B,GAAe,EAAkB,GAAqC,8EAChE,eAAiB/L,GAAI,CAAEC,UAAW,eAAQD,GAAI0O,YAAaA,MAGzErR,EAAM6L,wBAA0B,SAAUyF,GACtC,GAAItR,EAAMF,KAEN,OAAOE,EAAMF,KAAK+L,wBAAwByF,GAGzCnI,IACDA,EAAgC,IAEpCA,EAA8BtM,KAAKyU,IAEvCtR,EAAMuR,WAAa,SAAU3J,EAAQ9H,EAAM0R,EAAYC,GACnD,IAAIzR,EAAM0R,gBAAV,CAGI,eAAkB5R,IAClB,eAAW,sBAEfqK,EAAMoH,WAAW3J,EAAQ9H,EAAM0R,EAAYC,GAC3C,IACIvH,EAAgB,eAAkB,eAAsBlK,EAAM6J,YAAa/J,EAAK6R,cAAgB7R,EAAK6R,gBACjGxI,IACA,eAAWA,GAA+B,SAAUyI,GAChD9R,EAAK+L,wBAAwB+F,MAEjCzI,EAAgC,MAEpC,IAAIR,EAAY0B,GAAkBzC,GAClCc,EAAoBC,GACpBM,EAA8B,IAAI,EAA2BjJ,EAAMF,MACnEkJ,EAAmB,IAAI,EAAgBY,EAAOjB,EAAU9I,yBAA0BG,EAAMF,KAAMmJ,GAC9FC,EAAwB,IAAI,EAAqBlJ,EAAMkM,WAAW,SAAU1I,EAAUC,EAASC,GAAiB,OAAOmH,GAAmBrH,EAAUC,EAASC,MAC7JiH,GAA2BhC,EAAWf,GACtCkB,EAAiB,IAAI,EAAO9I,EAAMkM,UAAW,cAC7CpD,EAAe9B,OACX,SAAUpJ,EAAMgJ,EAAKjF,EAAUkF,GACtBA,IACDA,EAAa,IAEjBA,EAAWI,GAAoBtF,EAASnE,WACxCwC,EAAMuP,WAAW,CAAE3R,KAAMA,EAAMiJ,WAAYA,KAGnDkC,EAAgB,IAAI,EAAO/I,EAAMkM,UAAW,iBAC5CnD,EAAc/B,OAAS,SAAUpJ,EAAMgJ,EAAKjF,EAAUkF,EAAYC,GAE1D,eAAkBD,KAClBA,EAAa,IAEjBA,EAAWI,GAAoBtF,EAASnE,WACxC,IAAIqU,EAAe,CACfjU,KAAMA,EACNyD,IAAKuF,EACLC,WAAYA,EACZC,aAAcA,GAElB9G,EAAMyB,qBAAqBoQ,EAAchL,IAEzC,mBACAuF,GAAyBzD,GACzBwE,GAAsBxE,IAG9B,MAAOhG,GAGH,MADA3C,EAAM8R,gBAAe,GACfnP,KAGd3C,EAAM+R,YAAc,SAAUjP,EAAWC,GACrCiG,GAAoBA,EAAiBnG,SAASC,EAAWC,GAEzD,eAASiP,OAAQ,KAAM,KAAM9H,GAC7B8E,MA+MJ,eAAmBhP,EAAO,oBAAoB,WAAc,OAAOgJ,KACnE,eAAmBhJ,EAAO,+BAA+B,WAAc,OAAOiJ,KAC9E,eAAmBjJ,EAAO,yBAAyB,WAAc,OAAOkJ,KACxE,eAAmBlJ,EAAO,iBAAiB,WAAc,MAAO,IAAMkK,QAEnEN,EAsBX,OA/kBA,eAAUf,EAAiBD,GA6kB3BC,EAAgBoJ,QAAU,QAC1BpJ,EAAgBqJ,iBAAmBvK,EAC5BkB,EAhlByB,CAilBlCsJ,EAAA","file":"js/chunk-vendors~0f485567.6e47abfc.js","sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue.length === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self.trackPageView = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels(true);\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* WARNING */, 25 /* NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* CRITICAL */, 38 /* TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (intervalHandle) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError, _warnToConsole } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Call to restart failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n _warnToConsole(this._logger, \"Call to start failed: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { getNavigator, getPerformance, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n var logger = this._logger;\r\n if (total === 0) {\r\n _throwInternal(logger, 2 /* WARNING */, 10 /* ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n _throwInternal(logger, 2 /* WARNING */, 45 /* InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(logger, 2 /* WARNING */, 8 /* ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* WARNING */, 62 /* StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* WARNING */, 63 /* StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, createTelemetryItem, Metric, Exception, Trace, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage, utlEnableStorage, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, getWindow, getDocument, getHistory, getLocation, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, safeGetCookieMgr, hasHistory, strUndefined, objDefineAccessors, InstrumentEvent, eventOn, eventOff, mergeEvtNamespace, createUniqueNamespace, throwError, isUndefined, hasWindow, createProcessTelemetryContext } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Timing } from \"./Timing\";\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason.toString)) {\r\n return reason.toString();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nfunction _configMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return value;\r\n}\r\nfunction _getDefaultConfig(config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);\r\n config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);\r\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\r\n return config;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig.isStorageUseDisabled)) {\r\n if (extConfig.isStorageUseDisabled) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base._addHook;\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* WARNING */, 39 /* TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 29 /* StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 30 /* StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* WARNING */, 39 /* TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 36 /* TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager.trackPageView(inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 37 /* TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);\r\n _self.sendPageViewPerformanceInternal(inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 37 /* TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 31 /* StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 32 /* StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var theError = exception.exception || exception.error || new Error(strNotSpecified);\r\n var exceptionPartB = new Exception(_self.diagLog(), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n try {\r\n _self.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* CRITICAL */, 35 /* TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self._onerror = function (exception) {\r\n var error = exception && exception.error;\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception.lineNumber || 0) + \":\" + (exception.columnNumber || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception.lineNumber || 0,\r\n columnNumber: exception.columnNumber || 0,\r\n message: exception.message\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n _sendCORSException(Exception.CreateAutoException(\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception.lineNumber || 0, exception.columnNumber || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception.errorSrc) {\r\n exception.errorSrc = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error.message) : \"null\";\r\n _throwInternal(1 /* CRITICAL */, 11 /* ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n if (_self.core) {\r\n // Just add to the core\r\n return _self.core.addTelemetryInitializer(telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core.addTelemetryInitializer(initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n var extConfig = _populateDefaults(config);\r\n _updateStorageUsage(extConfig);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\r\n _pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _updateBrowserLinkTracking(extConfig, config);\r\n _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _self.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self.sendPageViewInternal(pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking(extConfig);\r\n _updateLocationChange(extConfig);\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var ctx = createProcessTelemetryContext(null, config, _self.core);\r\n var identifier = _self.identifier;\r\n // load default values if specified\r\n var defaults = _getDefaultConfig(config);\r\n var extConfig = _self.config = ctx.getExtCfg(identifier);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n extConfig[field] = ctx.getConfig(identifier, field, value);\r\n if (extConfig[field] === undefined) {\r\n extConfig = value;\r\n }\r\n });\r\n }\r\n return extConfig;\r\n }\r\n function _updateBrowserLinkTracking(extConfig, config) {\r\n _isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;\r\n _addDefaultTelemetryInitializers();\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self.addTelemetryInitializer(dropBrowserLinkRequests);\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);\r\n _self.core.track(telemetryItem);\r\n }\r\n function _updateExceptionTracking(extConfig) {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _disableExceptionTracking = extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);\r\n }\r\n function _updateLocationChange(extConfig) {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(extConfig, win, _history, locn);\r\n }\r\n }\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(extConfig, win, history, locn) {\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(extConfig.namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn.href || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn.href || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var properties = _self.core.getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context && context.telemetryTrace) {\r\n context.telemetryTrace.traceID = generateW3CId();\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);\r\n }\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(this, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n if (!_historyListenerAdded) {\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(extConfig.namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(extConfig.namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(extConfig.namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(extConfig.namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, extConfig.namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, extConfig.namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n }\r\n function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {\r\n _enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoUnhandledPromiseInstrumented = true;\r\n extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;\r\n }\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location.href || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n }\r\n // For backward compatibility\r\n objDefineAccessors(_self, \"_pageViewManager\", function () { return _pageViewManager; });\r\n objDefineAccessors(_self, \"_pageViewPerformanceManager\", function () { return _pageViewPerformanceManager; });\r\n objDefineAccessors(_self, \"_pageVisitTimeManager\", function () { return _pageVisitTimeManager; });\r\n objDefineAccessors(_self, \"_evtNamespace\", function () { return \".\" + _evtNamespace; });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = \"2.8.3\"; // Not currently used anywhere\r\n AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map"],"sourceRoot":""}