{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@bugsnag/js/browser/notifier.js","webpack:///./app/javascript/packs/bugsnag.js.erb","webpack:///./node_modules/@bugsnag/browser/dist/bugsnag.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","bugsnagClient","bugsnag","apiKey","releaseStage","notifyReleaseStages","collectUserIp","f","_typeof","iterator","obj","constructor","reduce","arr","fn","accum","val","len","length","_hasDontEnumBug","toString","propertyIsEnumerable","_dontEnums","_pad","_$esUtils_8","item","concat","x","prop","result","push","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","slice","_$validators_15","min","max","Infinity","parseInt","_$config_5","__filter_5","__reduce_5","__keys_5","__isArray_5","__includes_5","intRange","stringWithLength","_extends","assign","target","arguments","source","apply","this","schema","defaultValue","message","validate","appVersion","appType","autoNotify","beforeSend","endpoints","notify","sessions","autoCaptureSessions","k","opts","undefined","maxBreadcrumbs","autoBreadcrumbs","user","metaData","logger","method","filters","test","mergeDefaults","Error","errors","valid","__map_1","_$config_1","location","host","console","debug","getPrefixedConsole","consoleLog","consoleMethod","__isoDate_3","BugsnagBreadcrumb","type","timestamp","toJSON","_$BugsnagBreadcrumb_3","_$inferReleaseStage_10","client","app","config","_$iserror_11","shouldPreventSend","report","isIgnored","_$stackframe_23","root","factory","StackFrame","_isNumber","isNaN","parseFloat","isFinite","_capitalize","str","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","props","getArgs","args","setArgs","v","TypeError","getEvalOrigin","evalOrigin","setEvalOrigin","getFunctionName","join","getFileName","getLineNumber","getColumnNumber","Boolean","j","Number","String","_$errorStackParser_20","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","indexOf","parts","exec","replace","split","filter","line","map","sanitizedLine","tokens","locationParts","pop","functionName","fileName","lineNumber","columnNumber","functionNameRegex","matches","e","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","_$errorStackParser_7","_$hasStack_9","err","_$stackGenerator_22","___extends_24","StackGenerator","backtrace","maxStackSize","curr","callee","Array","RegExp","$1","caller","__reduce_24","__filter_24","BugsnagReport","errorClass","errorMessage","handledState","originalError","defaultHandledState","__isBugsnagReport","_ignored","_handledState","breadcrumbs","context","device","stringOrFallback","groupingHash","request","severity","frame","formatStackframe","JSON","stringify","session","_proto","ignore","updateMetaData","section","_updates","updates","removeMetaData","payloadVersion","exceptions","unhandled","severityReason","file","normaliseFunctionName","code","inProject","fallback","getStacktrace","errorFramesToSkip","generatedFramesToSkip","ensureReport","reportOrError","_$BugsnagReport_24","_$pad_18","num","size","substr","env","self","globalCount","mimeTypesLength","navigator","mimeTypes","clientId","userAgent","_$fingerprint_17","discreteValues","Math","pow","randomBlock","random","cuid","getTime","fingerprint","_$cuid_16","__isoDate_25","_$Session_25","Session","id","startedAt","_handled","_unhandled","events","handled","trackError","___extends_4","__map_4","__includes_4","__isArray_4","BugsnagClient","notifier","version","url","_configured","_opts","_delivery","sendSession","sendReport","_logger","info","warn","_plugins","_session","BugsnagSession","setOptions","configure","partialSchema","conf","validity","generateConfigErrorMessage","use","plugin","configSchema","_len","_key","init","getPlugin","delivery","sid","sessionDelegate","_sessionDelegate","startSession","leaveBreadcrumb","crumb","cb","_this","_normaliseError","normaliseError","originalSeverity","onBeforeSendErr","index","next","_$asyncSome_6","onError","ret","then","setTimeout","_$runBeforeSend_14","preventSend","createAndLogUsageError","reason","msg","generateNotifyUsageMessage","LOG_USAGE_ERR_PREFIX","REPORT_USAGE_ERR_PREFIX","notifyArgs","hasNecessaryFields","actual","_$BugsnagClient_4","_$safeJsonStringify_19","data","replacer","space","filterKeys","filterPaths","seen","edges","visit","path","edgesExceeded","REPLACEMENT_NODE","haystack","needle","find","fResult","throwsMessage","eResult","__isArray_19","aResult","isDescendent","shouldFilter","safelyGetProp","prepareObjForSerialization","paths","patterns","_$jsonPayload_13","REPORT_FILTER_PATHS","SESSION_FILTER_PATHS","payload","_$delivery_26","__isoDate_26","win","getApiUrl","req","XDomainRequest","onload","open","send","endpoint","matchPageProtocol","protocol","encodeURIComponent","_matchPageProtocol","pageProtocol","__isoDate_27","_$delivery_27","XMLHttpRequest","onreadystatechange","readyState","DONE","setRequestHeader","_$context_28","unshift","pathname","___extends_29","__isoDate_29","_$device_29","nav","locale","browserLanguage","systemLanguage","userLanguage","language","time","___extends_30","_$request_30","href","___extends_31","__isArray_31","__includes_31","_$session_31","sessionClient","___extends_32","_$clientIp_32","clientIp","_$consoleBreadcrumbs_33","__map_33","__reduce_33","__filter_33","isDev","explicitlyDisabled","consoleBreadcrumbsEnabled","implicitlyDisabled","CONSOLE_LOG_METHODS","original","arg","stringified","_restore","__map_34","__reduce_34","__filter_34","MAX_SCRIPT_LENGTH","_$inlineScriptContent_34","doc","document","trackInlineScripts","originalLocation","html","DOMContentLoaded","getHtml","documentElement","outerHTML","prev","_lastScript","updateLastScript","script","getCurrentScript","currentScript","scripts","getElementsByTagName","content","innerHTML","htmlLines","zeroBasedLine","start","end","addSurroundingCode","_setTimeout","__proxy","__traceOriginalScript","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","__trace__","replacement","isEventHandlerObj","handleEvent","_$interactionBreadcrumbs_35","interactionBreadcrumbsEnabled","addEventListener","event","targetText","targetSelector","getNodeText","getNodeSelector","el","ommision","text","textContent","innerText","tagName","className","querySelectorAll","parentNode","childNodes","getIgnoredUrls","_$navigationBreadcrumbs_36","navigationBreadcrumbsEnabled","drop","oldURL","from","relativeLocation","to","newURL","state","getCurrentState","history","replaceState","wrapHistoryFn","pushState","a","createElement","search","hash","orig","title","currentPath","prevState","stateChangeToMetaData","refresh","_$networkBreadcrumbs_37","BREADCRUMB_TYPE","__includes_37","defaultIgnoredUrls","_client","_getIgnoredUrls","_win","networkBreadcrumbsEnabled","monkeyPatchXMLHttpRequest","monkeyPatchFetch","nativeOpen","REQUEST_URL_KEY","REQUEST_METHOD_KEY","REQUEST_SETUP_KEY","removeEventListener","handleXHRLoad","handleXHRError","status","fetch","polyfill","oldFetch","_arguments","urlOrRequest","options","Promise","resolve","reject","response","handleFetchSuccess","handleFetchError","__intRange_38","_$throttle_38","maxEvents","_$stripQueryString_39","___extends_39","__map_39","strip","_strip","_$onerror_40","prevOnError","onerror","messageOrEvent","lineNo","charNo","decorateStack","detail","extraParameters","culprit","setFileName","isActualNumber","setLineNumber","setColumnNumber","errorCharacter","_$unhandledRejection_41","__reduce_41","listener","isBluebird","fixBluebirdStacktrace","serializableReason","onunhandledrejection","promise","_$notifier_2","_ref","___extends_2","__schema_2","warningMessage","Bugsnag","Client","Report","Breadcrumb"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,I,oBClFrDhC,EAAOD,QAAU,EAAQ,K,gCCCzB,2BACAkC,OAAOC,cAAgBC,IAAQ,CACvBC,OAAQ,mCACRC,aAAc,UACdC,oBAAqB,CAAC,cAAe,UAAW,cAChDC,eAAe,K,mBCNvB,UAEWC,EAFX,cAAoW,OAAtOC,EAArD,oBAAXzB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiBC,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX3B,QAAyB2B,EAAIC,cAAgB5B,QAAU2B,IAAQ3B,OAAOa,UAAY,gBAAkBc,GAAiBF,EAAQE,GAExWH,EAoBR,WACD,IAIIK,EAAS,SAAgBC,EAAKC,EAAIC,GAGpC,IAFA,IAAIC,EAAMD,EAED/C,EAAI,EAAGiD,EAAMJ,EAAIK,OAAQlD,EAAIiD,EAAKjD,IACzCgD,EAAMF,EAAGE,EAAKH,EAAI7C,GAAIA,EAAG6C,GAG3B,OAAOG,GAwBLG,GAAmB,CACrBC,SAAU,MACVC,qBAAqB,YAEnBC,EAAa,CAAC,WAAY,iBAAkB,UAAW,iBAAkB,gBAAiB,uBAAwB,eA0BlHC,EAAO,SAAc9B,GACvB,OAAOA,EAAI,GAAK,IAAMA,EAAIA,GAUxB+B,EAtDM,SAAaX,EAAKC,GAC1B,OAAOF,EAAOC,GAAK,SAAUE,EAAOU,EAAMzD,EAAG6C,GAC3C,OAAOE,EAAMW,OAAOZ,EAAGW,EAAMzD,EAAG6C,MAC/B,KAmDDW,EAEMZ,EAFNY,EA7DS,SAAgBX,EAAKC,GAChC,OAAOF,EAAOC,GAAK,SAAUE,EAAOU,EAAMzD,EAAG6C,GAC3C,OAAQC,EAAGW,EAAMzD,EAAG6C,GAAeE,EAAMW,OAAOD,GAArBV,IAC1B,KA0DDS,EA/CW,SAAkBX,EAAKc,GACpC,OAAOf,EAAOC,GAAK,SAAUE,EAAOU,EAAMzD,EAAG6C,GAC3C,OAAiB,IAAVE,GAAkBU,IAASE,KACjC,IA4CDH,EAnCO,SAAcd,GAGvB,IACIkB,EADAC,EAAS,GAGb,IAAKD,KAAQlB,EACPhC,OAAOkB,UAAUC,eAAe1B,KAAKuC,EAAKkB,IAAOC,EAAOC,KAAKF,GAGnE,IAAKT,EAAiB,OAAOU,EAE7B,IAAK,IAAI7D,EAAI,EAAGiD,EAAMK,EAAWJ,OAAQlD,EAAIiD,EAAKjD,IAC5CU,OAAOkB,UAAUC,eAAe1B,KAAKuC,EAAKY,EAAWtD,KAAK6D,EAAOC,KAAKR,EAAWtD,IAGvF,OAAO6D,GAmBLL,EAfU,SAAiBd,GAC7B,MAA+C,mBAAxChC,OAAOkB,UAAUwB,SAASjD,KAAKuC,IAcpCc,EANU,WAEZ,IAAIlD,EAAI,IAAIyD,KACZ,OAAOzD,EAAE0D,iBAAmB,IAAMT,EAAKjD,EAAE2D,cAAgB,GAAK,IAAMV,EAAKjD,EAAE4D,cAAgB,IAAMX,EAAKjD,EAAE6D,eAAiB,IAAMZ,EAAKjD,EAAE8D,iBAAmB,IAAMb,EAAKjD,EAAE+D,iBAAmB,KAAO/D,EAAEgE,qBAAuB,KAAMC,QAAQ,GAAGC,MAAM,EAAG,GAAK,KAYtPC,EAAkB,CAEtBA,SAA2B,SAAUC,EAAKC,GASxC,YARY,IAARD,IACFA,EAAM,QAGI,IAARC,IACFA,EAAMC,KAGD,SAAU3D,GACf,MAAwB,kBAAVA,GAAsB4D,SAAS,GAAK5D,EAAO,MAAQA,GAASA,GAASyD,GAAOzD,GAAS0D,IAIvGF,iBAAmC,SAAUxD,GAC3C,MAAwB,kBAAVA,KAAwBA,EAAMiC,SAG1C4B,EAAa,GACbC,EAAavB,EACbwB,EAAaxB,EACbyB,EAAWzB,EACX0B,EAAc1B,EACd2B,EAAe3B,EACf4B,EAAWX,EAAgBW,SAC3BC,EAAmBZ,EAAgBY,iBAqLvC,SAASC,IAeP,OAdAA,EAAW5E,OAAO6E,QAAU,SAAUC,GACpC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFF,EAASK,MAAMC,KAAMH,WAnM9BX,EAAWe,OAAS,CAClB1D,OAAQ,CACN2D,aAAc,WACZ,OAAO,MAETC,QAAS,cACTC,SAAUX,GAEZY,WAAY,CACVH,aAAc,WACZ,OAAO,MAETC,QAAS,qBACTC,SAAU,SAAkB/E,GAC1B,OAAiB,OAAVA,GAAkBoE,EAAiBpE,KAG9CiF,QAAS,CACPJ,aAAc,WACZ,OAAO,MAETC,QAAS,qBACTC,SAAU,SAAkB/E,GAC1B,OAAiB,OAAVA,GAAkBoE,EAAiBpE,KAG9CkF,WAAY,CACVL,aAAc,WACZ,OAAO,GAETC,QAAS,uBACTC,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,IAG7BmF,WAAY,CACVN,aAAc,WACZ,MAAO,IAETC,QAAS,6CACTC,SAAU,SAAkB/E,GAC1B,MAAwB,oBAAVA,GAAwBiE,EAAYjE,IAAU8D,EAAW9D,GAAO,SAAUsB,GACtF,MAAoB,oBAANA,KACbW,SAAWjC,EAAMiC,SAGxBmD,UAAW,CACTP,aAAc,WACZ,MAAO,CACLQ,OAAQ,6BACRC,SAAU,iCAGdR,QAAS,uHACTC,SAAU,SAAkBhD,EAAKN,GAC/B,OACEM,GAAwB,WAAjBR,EAAQQ,IACfqC,EAAiBrC,EAAIsD,WACO,IAA5B5D,EAAI8D,qBAAiCnB,EAAiBrC,EAAIuD,YAG5C,IAFdxB,EAAWE,EAASjC,IAAM,SAAUyD,GAClC,OAAQtB,EAAa,CAAC,SAAU,YAAasB,MAC5CvD,SAITsD,oBAAqB,CACnBV,aAAc,SAAsB9C,EAAK0D,GACvC,YAA0BC,IAAnBD,EAAKL,aAA6BK,EAAKL,aAAeK,EAAKL,UAAUE,UAE9ER,QAAS,uBACTC,SAAU,SAAkBhD,GAC1B,OAAe,IAARA,IAAwB,IAARA,IAG3BX,oBAAqB,CACnByD,aAAc,WACZ,OAAO,MAETC,QAAS,gCACTC,SAAU,SAAkB/E,GAC1B,OAAiB,OAAVA,GAAkBiE,EAAYjE,IAAU8D,EAAW9D,GAAO,SAAUsB,GACzE,MAAoB,kBAANA,KACbW,SAAWjC,EAAMiC,SAGxBd,aAAc,CACZ0D,aAAc,WACZ,MAAO,cAETC,QAAS,qBACTC,SAAU,SAAkB/E,GAC1B,MAAwB,kBAAVA,GAAsBA,EAAMiC,SAG9C0D,eAAgB,CACdd,aAAc,WACZ,OAAO,IAETC,QAAS,8BACTC,SAAU,SAAkB/E,GAC1B,OAAOmE,EAAS,EAAG,GAAZA,CAAgBnE,KAG3B4F,gBAAiB,CACff,aAAc,WACZ,OAAO,GAETC,QAAS,uBACTC,SAAU,SAAkB/E,GAC1B,MAAwB,mBAAVA,IAGlB6F,KAAM,CACJhB,aAAc,WACZ,OAAO,MAETC,QAAS,oCACTC,SAAU,SAAkB/E,GAC1B,MAA0B,WAAnBuB,EAAQvB,KAGnB8F,SAAU,CACRjB,aAAc,WACZ,OAAO,MAETC,QAAS,sBACTC,SAAU,SAAkB/E,GAC1B,MAA0B,WAAnBuB,EAAQvB,KAGnB+F,OAAQ,CACNlB,aAAc,aAGdC,QAAS,wEACTC,SAAU,SAAkB/E,GAC1B,OAAQA,GAASA,GAAS+D,EAAW,CAAC,QAAS,OAAQ,OAAQ,UAAU,SAAUjC,EAAOkE,GACxF,OAAOlE,GAAkC,oBAAlB9B,EAAMgG,MAC5B,KAGPC,QAAS,CACPpB,aAAc,WACZ,MAAO,CAAC,aAEVC,QAAS,wCACTC,SAAU,SAAkB/E,GAC1B,OAAOiE,EAAYjE,IAAUA,EAAMiC,SAAW6B,EAAW9D,GAAO,SAAUc,GACxE,MAAoB,kBAANA,GAAkBA,GAAuB,oBAAXA,EAAEoF,QAC7CjE,UAKT4B,EAAWsC,cAAgB,SAAUV,EAAMb,GACzC,IAAKa,IAASb,EAAQ,MAAM,IAAIwB,MAAM,wCACtC,OAAOrC,EAAWC,EAASY,IAAS,SAAU9C,EAAOxB,GAEnD,OADAwB,EAAMxB,QAAqBoF,IAAdD,EAAKnF,GAAqBmF,EAAKnF,GAAOsE,EAAOtE,GAAKuE,aAAaY,EAAKnF,GAAMmF,GAChF3D,IACN,KAGL+B,EAAWkB,SAAW,SAAUU,EAAMb,GACpC,IAAKa,IAASb,EAAQ,MAAM,IAAIwB,MAAM,wCAEtC,IAAIC,EAAStC,EAAWC,EAASY,IAAS,SAAU9C,EAAOxB,GACzD,OAAIsE,EAAOtE,GAAKyE,SAASU,EAAKnF,GAAMmF,GAAc3D,EAC3CA,EAAMW,OAAO,CAClBnC,IAAKA,EACLwE,QAASF,EAAOtE,GAAKwE,QACrB9E,MAAOyF,EAAKnF,OAEb,IAEH,MAAO,CACLgG,OAAQD,EAAOpE,OACfoE,OAAQA,IAsBZ,IAAIzB,EAASf,EAAWe,OACpB2B,EAAUhE,EAEViE,EAAa,CACfrF,aAAc,CACZ0D,aAAc,WACZ,MAAI,qBAAqBqB,KAAKnF,OAAO0F,SAASC,MAAc,cACrD,cAET5B,QAAS,gBACTC,SARuBvB,EAAgBY,kBAUzC2B,OAAQ1B,EAAS,GAAIO,EAAOmB,OAAQ,CAClClB,aAAc,WACZ,MACqB,qBAAZ8B,SAAoD,oBAAlBA,QAAQC,MAAuBC,SAAuBnB,MAMnGmB,EAAqB,WACvB,IAAId,EAAS,GACTe,EAAaH,QAAa,IAO9B,OALAJ,EAAQ,CAAC,QAAS,OAAQ,OAAQ,UAAU,SAAUP,GACpD,IAAIe,EAAgBJ,QAAQX,GAC5BD,EAAOC,GAAmC,oBAAlBe,EAA+BA,EAAcxG,KAAKoG,QAAS,aAAeG,EAAWvG,KAAKoG,QAAS,gBAGtHZ,GAGLiB,EAAczE,EAEd0E,EAAiC,WACnC,SAASA,EAAkB3H,EAAMwG,EAAUoB,EAAMC,QAClC,IAAT7H,IACFA,EAAO,oBAGQ,IAAbwG,IACFA,EAAW,SAGA,IAAToB,IACFA,EAAO,eAGS,IAAdC,IACFA,EAAYH,KAGdrC,KAAKuC,KAAOA,EACZvC,KAAKrF,KAAOA,EACZqF,KAAKmB,SAAWA,EAChBnB,KAAKwC,UAAYA,EAcnB,OAXaF,EAAkBtG,UAExByG,OAAS,WACd,MAAO,CACLF,KAAMvC,KAAKuC,KACX5H,KAAMqF,KAAKrF,KACX6H,UAAWxC,KAAKwC,UAChBrB,SAAUnB,KAAKmB,WAIZmB,EAnC4B,GAsCjCI,EAAwBJ,EA+BxBK,EAAyB,SAAgCC,GAC3D,OAAOA,EAAOC,KAA0C,kBAA5BD,EAAOC,IAAIrG,aAA4BoG,EAAOC,IAAIrG,aAAeoG,EAAOE,OAAOtG,cA+BzGuG,EAhBJ,SAAiB1H,GACf,OAAQP,OAAOkB,UAAUwB,SAASjD,KAAKc,IACrC,IAAK,iBAGL,IAAK,qBAGL,IAAK,wBACH,OAAO,EAET,QACE,OAAOA,aAAiBoG,QAiD1BuB,EAAoB,SAA2BC,EAAQ5H,GACzD,OAAO4H,EAAOC,cAAyB,IAAV7H,GAG3B8H,EAAkB,IAEtB,SAAWC,EAAMC,GACf,aAMwC,WAA7BzG,EAAQuG,GACjBA,EAAkBE,IAElBD,EAAKE,WAAaD,IAVtB,CAYGrD,MAAM,WACP,aAEA,SAASuD,EAAU1H,GACjB,OAAQ2H,MAAMC,WAAW5H,KAAO6H,SAAS7H,GAG3C,SAAS8H,EAAYC,GACnB,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAIG,UAAU,GAGrD,SAASC,EAAQ9H,GACf,OAAO,WACL,OAAO8D,KAAK9D,IAIhB,IAAI+H,EAAe,CAAC,gBAAiB,SAAU,WAAY,cACvDC,EAAe,CAAC,eAAgB,cAChCC,EAAc,CAAC,WAAY,eAAgB,UAE3CC,EAAQH,EAAanG,OAAOoG,EAAcC,EAD7B,CAAC,SAGlB,SAASb,EAAWxG,GAClB,GAAIA,aAAehC,OACjB,IAAK,IAAIV,EAAI,EAAGA,EAAIgK,EAAM9G,OAAQlD,IAC5B0C,EAAIb,eAAemI,EAAMhK,UAAyB2G,IAAlBjE,EAAIsH,EAAMhK,KAC5C4F,KAAK,MAAQ2D,EAAYS,EAAMhK,KAAK0C,EAAIsH,EAAMhK,KAMtDkJ,EAAWtH,UAAY,CACrBqI,QAAS,WACP,OAAOrE,KAAKsE,MAEdC,QAAS,SAAiBC,GACxB,GAA0C,mBAAtC1J,OAAOkB,UAAUwB,SAASjD,KAAKiK,GACjC,MAAM,IAAIC,UAAU,yBAGtBzE,KAAKsE,KAAOE,GAEdE,cAAe,WACb,OAAO1E,KAAK2E,YAEdC,cAAe,SAAuBJ,GACpC,GAAIA,aAAalB,EACftD,KAAK2E,WAAaH,MACb,MAAIA,aAAa1J,QAGtB,MAAM,IAAI2J,UAAU,+CAFpBzE,KAAK2E,WAAa,IAAIrB,EAAWkB,KAKrChH,SAAU,WAMR,OALmBwC,KAAK6E,mBAAqB,eAClC,KAAO7E,KAAKqE,WAAa,IAAIS,KAAK,KAAO,KACrC9E,KAAK+E,cAAgB,IAAM/E,KAAK+E,cAAgB,KAC9CxB,EAAUvD,KAAKgF,iBAAmB,IAAMhF,KAAKgF,gBAAkB,KAC7DzB,EAAUvD,KAAKiF,mBAAqB,IAAMjF,KAAKiF,kBAAoB,MAK1F,IAAK,IAAI7K,EAAI,EAAGA,EAAI6J,EAAa3G,OAAQlD,IACvCkJ,EAAWtH,UAAU,MAAQ2H,EAAYM,EAAa7J,KAAO4J,EAAQC,EAAa7J,IAElFkJ,EAAWtH,UAAU,MAAQ2H,EAAYM,EAAa7J,KAAO,SAAU8B,GACrE,OAAO,SAAUsI,GACfxE,KAAK9D,GAAKgJ,QAAQV,IAFuC,CAI3DP,EAAa7J,IAGjB,IAAK,IAAI+K,EAAI,EAAGA,EAAIjB,EAAa5G,OAAQ6H,IACvC7B,EAAWtH,UAAU,MAAQ2H,EAAYO,EAAaiB,KAAOnB,EAAQE,EAAaiB,IAElF7B,EAAWtH,UAAU,MAAQ2H,EAAYO,EAAaiB,KAAO,SAAUjJ,GACrE,OAAO,SAAUsI,GACf,IAAKjB,EAAUiB,GACb,MAAM,IAAIC,UAAUvI,EAAI,qBAG1B8D,KAAK9D,GAAKkJ,OAAOZ,IANwC,CAQ3DN,EAAaiB,IAGjB,IAAK,IAAItE,EAAI,EAAGA,EAAIsD,EAAY7G,OAAQuD,IACtCyC,EAAWtH,UAAU,MAAQ2H,EAAYQ,EAAYtD,KAAOmD,EAAQG,EAAYtD,IAEhFyC,EAAWtH,UAAU,MAAQ2H,EAAYQ,EAAYtD,KAAO,SAAU3E,GACpE,OAAO,SAAUsI,GACfxE,KAAK9D,GAAKmJ,OAAOb,IAFuC,CAI1DL,EAAYtD,IAGhB,OAAOyC,KAGT,IAAIgC,EAAwB,IAE5B,SAAWlC,EAAMC,GACf,aAM8C,WAAnCzG,EAAQ0I,GACjBA,EAAwBjC,EAAQF,GAEhCC,EAAKmC,iBAAmBlC,EAAQD,EAAKE,YAVzC,CAYGtD,MAAM,SAA0BsD,GACjC,aAEA,IAAIkC,EAA8B,gBAC9BC,EAAyB,kCACzBC,EAA4B,+BAChC,MAAO,CAOLC,MAAO,SAAiCC,GACtC,GAAgC,qBAArBA,EAAMC,YAAkE,qBAA7BD,EAAM,mBAC1D,OAAO5F,KAAK8F,WAAWF,GAClB,GAAIA,EAAMG,OAASH,EAAMG,MAAMC,MAAMP,GAC1C,OAAOzF,KAAKiG,YAAYL,GACnB,GAAIA,EAAMG,MACf,OAAO/F,KAAKkG,gBAAgBN,GAE5B,MAAM,IAAInE,MAAM,oCAIpB0E,gBAAiB,SAA2CC,GAE1D,IAA8B,IAA1BA,EAAQC,QAAQ,KAClB,MAAO,CAACD,GAGV,IACIE,EADS,iCACMC,KAAKH,EAAQI,QAAQ,UAAW,KACnD,MAAO,CAACF,EAAM,GAAIA,EAAM,SAAMvF,EAAWuF,EAAM,SAAMvF,IAEvDkF,YAAa,SAAuCL,GAIlD,OAHeA,EAAMG,MAAMU,MAAM,MAAMC,QAAO,SAAUC,GACtD,QAASA,EAAKX,MAAMP,KACnBzF,MACa4G,KAAI,SAAUD,GACxBA,EAAKN,QAAQ,WAAa,IAE5BM,EAAOA,EAAKH,QAAQ,aAAc,QAAQA,QAAQ,iCAAkC,KAGtF,IAAIK,EAAgBF,EAAKH,QAAQ,OAAQ,IAAIA,QAAQ,eAAgB,KAGjE1E,EAAW+E,EAAcb,MAAM,4BAG/Bc,GADJD,EAAgB/E,EAAW+E,EAAcL,QAAQ1E,EAAS,GAAI,IAAM+E,GACzCJ,MAAM,OAAO7H,MAAM,GAE1CmI,EAAgB/G,KAAKmG,gBAAgBrE,EAAWA,EAAS,GAAKgF,EAAOE,OACrEC,EAAeH,EAAOhC,KAAK,WAAQ/D,EACnCmG,EAAW,CAAC,OAAQ,eAAeb,QAAQU,EAAc,KAAO,OAAIhG,EAAYgG,EAAc,GAClG,OAAO,IAAIzD,EAAW,CACpB2D,aAAcA,EACdC,SAAUA,EACVC,WAAYJ,EAAc,GAC1BK,aAAcL,EAAc,GAC5BjH,OAAQ6G,MAET3G,OAELkG,gBAAiB,SAA2CN,GAI1D,OAHeA,EAAMG,MAAMU,MAAM,MAAMC,QAAO,SAAUC,GACtD,OAAQA,EAAKX,MAAMN,KAClB1F,MACa4G,KAAI,SAAUD,GAM5B,GAJIA,EAAKN,QAAQ,YAAc,IAC7BM,EAAOA,EAAKH,QAAQ,qDAAsD,SAGjD,IAAvBG,EAAKN,QAAQ,OAAsC,IAAvBM,EAAKN,QAAQ,KAE3C,OAAO,IAAI/C,EAAW,CACpB2D,aAAcN,IAGhB,IAAIU,EAAoB,6BACpBC,EAAUX,EAAKX,MAAMqB,GACrBJ,EAAeK,GAAWA,EAAQ,GAAKA,EAAQ,QAAKvG,EACpDgG,EAAgB/G,KAAKmG,gBAAgBQ,EAAKH,QAAQa,EAAmB,KACzE,OAAO,IAAI/D,EAAW,CACpB2D,aAAcA,EACdC,SAAUH,EAAc,GACxBI,WAAYJ,EAAc,GAC1BK,aAAcL,EAAc,GAC5BjH,OAAQ6G,MAGX3G,OAEL8F,WAAY,SAAsCyB,GAChD,OAAKA,EAAE1B,YAAc0B,EAAEpH,QAAQkG,QAAQ,OAAS,GAAKkB,EAAEpH,QAAQsG,MAAM,MAAMnJ,OAASiK,EAAE1B,WAAWY,MAAM,MAAMnJ,OACpG0C,KAAKwH,YAAYD,GACdA,EAAExB,MAGL/F,KAAKyH,aAAaF,GAFlBvH,KAAK0H,aAAaH,IAK7BC,YAAa,SAAuCD,GAKlD,IAJA,IAAII,EAAS,oCACTC,EAAQL,EAAEpH,QAAQsG,MAAM,MACxBxI,EAAS,GAEJ7D,EAAI,EAAGiD,EAAMuK,EAAMtK,OAAQlD,EAAIiD,EAAKjD,GAAK,EAAG,CACnD,IAAI4L,EAAQ2B,EAAOpB,KAAKqB,EAAMxN,IAE1B4L,GACF/H,EAAOC,KAAK,IAAIoF,EAAW,CACzB4D,SAAUlB,EAAM,GAChBmB,WAAYnB,EAAM,GAClBlG,OAAQ8H,EAAMxN,MAKpB,OAAO6D,GAETyJ,aAAc,SAAwCH,GAKpD,IAJA,IAAII,EAAS,6DACTC,EAAQL,EAAE1B,WAAWY,MAAM,MAC3BxI,EAAS,GAEJ7D,EAAI,EAAGiD,EAAMuK,EAAMtK,OAAQlD,EAAIiD,EAAKjD,GAAK,EAAG,CACnD,IAAI4L,EAAQ2B,EAAOpB,KAAKqB,EAAMxN,IAE1B4L,GACF/H,EAAOC,KAAK,IAAIoF,EAAW,CACzB2D,aAAcjB,EAAM,SAAMjF,EAC1BmG,SAAUlB,EAAM,GAChBmB,WAAYnB,EAAM,GAClBlG,OAAQ8H,EAAMxN,MAKpB,OAAO6D,GAGTwJ,aAAc,SAAwC7B,GAIpD,OAHeA,EAAMG,MAAMU,MAAM,MAAMC,QAAO,SAAUC,GACtD,QAASA,EAAKX,MAAMR,KAAiCmB,EAAKX,MAAM,uBAC/DhG,MACa4G,KAAI,SAAUD,GAC5B,IAIIkB,EAJAf,EAASH,EAAKF,MAAM,KACpBM,EAAgB/G,KAAKmG,gBAAgBW,EAAOE,OAC5Cc,EAAehB,EAAOiB,SAAW,GACjCd,EAAea,EAAatB,QAAQ,iCAAkC,MAAMA,QAAQ,cAAe,UAAOzF,EAG1G+G,EAAa9B,MAAM,kBACrB6B,EAAUC,EAAatB,QAAQ,uBAAwB,OAGzD,IAAIlC,OAAmBvD,IAAZ8G,GAAqC,8BAAZA,OAA0C9G,EAAY8G,EAAQpB,MAAM,KACxG,OAAO,IAAInD,EAAW,CACpB2D,aAAcA,EACd3C,KAAMA,EACN4C,SAAUH,EAAc,GACxBI,WAAYJ,EAAc,GAC1BK,aAAcL,EAAc,GAC5BjH,OAAQ6G,MAET3G,WAKT,IAAIgI,EAAuB1C,EAEvB2C,EAAe,SAAsBC,GACvC,QAASA,MAAUA,EAAInC,SAAWmC,EAAIrC,cAAgBqC,EAAI,qBAA0F,kBAA3DA,EAAInC,OAASmC,EAAIrC,YAAcqC,EAAI,qBAAoCA,EAAInC,QAAUmC,EAAIvN,KAAO,KAAOuN,EAAI/H,SAKlMgI,EAAsB,GAyD1B,SAASC,IAeP,OAdAA,EAAgBtN,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFwI,EAAcrI,MAAMC,KAAMH,YAtEnC,SAAWuD,EAAMC,GACf,aAM4C,WAAjCzG,EAAQuL,GACjBA,EAAsB9E,EAAQF,GAE9BC,EAAKiF,eAAiBhF,EAAQD,EAAKE,YAVvC,CAYGtD,MAAM,SAAUsD,GACjB,MAAO,CACLgF,UAAW,SAAmCxH,GAC5C,IAAIiF,EAAQ,GACRwC,EAAe,GAEG,WAAlB3L,EAAQkE,IAAmD,kBAAtBA,EAAKyH,eAC5CA,EAAezH,EAAKyH,cAKtB,IAFA,IAAIC,EAAO3I,UAAU4I,OAEdD,GAAQzC,EAAMzI,OAASiL,GAAgBC,EAAgB,WAAG,CAI/D,IAFA,IAAIlE,EAAO,IAAIoE,MAAMF,EAAgB,UAAElL,QAE9BlD,EAAI,EAAGA,EAAIkK,EAAKhH,SAAUlD,EACjCkK,EAAKlK,GAAKoO,EAAgB,UAAEpO,GAG1B,gCAAgCmH,KAAKiH,EAAKhL,YAC5CuI,EAAM7H,KAAK,IAAIoF,EAAW,CACxB2D,aAAc0B,OAAOC,SAAM7H,EAC3BuD,KAAMA,KAGRyB,EAAM7H,KAAK,IAAIoF,EAAW,CACxBgB,KAAMA,KAIV,IACEkE,EAAOA,EAAKK,OACZ,MAAOtB,GACP,OAIJ,OAAOxB,OAgCb,IAAI+C,EAAclL,EACdmL,EAAcnL,EAKdoL,EAA6B,WAC/B,SAASA,EAAcC,EAAYC,EAAcrD,EAAYsD,EAAcC,QACtD,IAAfvD,IACFA,EAAa,SAGM,IAAjBsD,IACFA,EAAeE,KAIjBrJ,KAAKsJ,mBAAoB,EACzBtJ,KAAKuJ,UAAW,EAEhBvJ,KAAKwJ,cAAgBL,EAErBnJ,KAAK6C,SAAM9B,EACXf,KAAKzD,YAASwE,EACdf,KAAKyJ,YAAc,GACnBzJ,KAAK0J,aAAU3I,EACff,KAAK2J,YAAS5I,EACdf,KAAKiJ,WAAaW,EAAiBX,EAAY,oBAC/CjJ,KAAKkJ,aAAeU,EAAiBV,EAAc,sBACnDlJ,KAAK6J,kBAAe9I,EACpBf,KAAKmB,SAAW,GAChBnB,KAAK8J,aAAU/I,EACff,KAAK+J,SAAW/J,KAAKwJ,cAAcO,SACnC/J,KAAK6F,WAAaiD,EAAYjD,GAAY,SAAU1I,EAAO6M,GACzD,IAAIrN,EAAIsN,EAAiBD,GAEzB,IACE,MAA0B,OAAtBE,KAAKC,UAAUxN,GAAoBQ,EAChCA,EAAMW,OAAOnB,GACpB,MAAO4K,GACP,OAAOpK,KAER,IACH6C,KAAKkB,UAAOH,EACZf,KAAKoK,aAAUrJ,EACff,KAAKoJ,cAAgBA,EAOvB,IAAIiB,EAASrB,EAAchN,UAwE3B,OAtEAqO,EAAOC,OAAS,WACdtK,KAAKuJ,UAAW,GAGlBc,EAAOnH,UAAY,WACjB,OAAOlD,KAAKuJ,UAGdc,EAAOE,eAAiB,SAAwBC,GAC9C,IAAIC,EAGAC,EADJ,OAAKF,EAGsD,QAAtD3K,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,IAAqBG,KAAK2K,eAAeH,GAEjC,QAAtD3K,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,IAAqBG,KAAK2K,eAAeH,EAAS3K,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,GAAIA,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,KAEnI,WAA9DjD,EAAQiD,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,MAAkB6K,EAAU7K,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,IAClE,kBAAtDA,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,OAA6B4K,EAAW,IAAa5K,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,IAAMA,UAAUvC,QAAU,OAAIyD,EAAYlB,UAAU,GAArI6K,EAAyID,GAEhNC,GAEA1K,KAAKmB,SAASqJ,KAAUxK,KAAKmB,SAASqJ,GAAW,IAEtDxK,KAAKmB,SAASqJ,GAAWpC,EAAc,GAAIpI,KAAKmB,SAASqJ,GAAUE,GAC5D1K,MALcA,MAVAA,MAkBvBqK,EAAOM,eAAiB,SAAwBH,EAASzO,GACvD,MAAuB,kBAAZyO,EAA6BxK,KAEnCjE,EAMDiE,KAAKmB,SAASqJ,WACTxK,KAAKmB,SAASqJ,GAASzO,GACvBiE,MAGFA,aAVEA,KAAKmB,SAASqJ,GACdxK,OAYXqK,EAAO5H,OAAS,WACd,MAAO,CACLmI,eAAgB,IAChBC,WAAY,CAAC,CACX5B,WAAYjJ,KAAKiJ,WACjB9I,QAASH,KAAKkJ,aACdrD,WAAY7F,KAAK6F,WACjBtD,KAjMqB,cAmMvBwH,SAAU/J,KAAK+J,SACfe,UAAW9K,KAAKwJ,cAAcsB,UAC9BC,eAAgB/K,KAAKwJ,cAAcuB,eACnClI,IAAK7C,KAAK6C,IACV8G,OAAQ3J,KAAK2J,OACbF,YAAazJ,KAAKyJ,YAClBC,QAAS1J,KAAK0J,QACdxI,KAAMlB,KAAKkB,KACXC,SAAUnB,KAAKmB,SACf0I,aAAc7J,KAAK6J,aACnBC,QAAS9J,KAAK8J,QACdM,QAASpK,KAAKoK,UAIXpB,EAtHwB,GA2H7BiB,EAAmB,SAA0BD,GAC/C,IAAIrN,EAAI,CACNqO,KAAMhB,EAAM9C,SACZ7F,OAAQ4J,EAAsBjB,EAAM/C,cACpCE,WAAY6C,EAAM7C,WAClBC,aAAc4C,EAAM5C,aACpB8D,UAAMnK,EACNoK,eAAWpK,GAWb,OAJIpE,EAAEwK,YAAc,IAAMxK,EAAEqO,OAASrO,EAAE0E,SACrC1E,EAAEqO,KAAO,eAGJrO,GAGLsO,EAAwB,SAA+BtQ,GACzD,MAAO,iBAAiB4G,KAAK5G,GAAQ,cAAgBA,GAGnD0O,EAAsB,WACxB,MAAO,CACLyB,WAAW,EACXf,SAAU,UACVgB,eAAgB,CACdxI,KAAM,sBAKRqH,EAAmB,SAA0BhG,EAAKwH,GACpD,MAAsB,kBAARxH,GAAoBA,EAAMA,EAAMwH,GAIhDpC,EAAcqC,cAAgB,SAAUzF,EAAO0F,EAAmBC,GAShE,QAR0B,IAAtBD,IACFA,EAAoB,QAGQ,IAA1BC,IACFA,EAAwB,GAGtBtD,EAAarC,GAAQ,OAAOoC,EAAqBrC,MAAMC,GAAOhH,MAAM0M,GAExE,IACE,MAAM1F,EACN,MAAO2B,GACP,GAAIU,EAAaV,GAAI,OAAOS,EAAqBrC,MAAMC,GAAOhH,MAAM,EAAI2M,GAExE,IACE,OAAOxC,EAAYZ,EAAoBG,aAAa,SAAU0B,GAC5D,OAAmE,KAA3DA,EAAM/C,cAAgB,IAAIZ,QAAQ,uBACzCzH,MAAM,EAAI2M,GACb,MAAOhE,GACP,MAAO,MAKbyB,EAAcwC,aAAe,SAAUC,EAAeH,EAAmBC,GAUvE,QAT0B,IAAtBD,IACFA,EAAoB,QAGQ,IAA1BC,IACFA,EAAwB,GAItBE,EAAcnC,kBAAmB,OAAOmC,EAE5C,IACE,IAAI5F,EAAamD,EAAcqC,cAAcI,EAAeH,EAAmB,EAAIC,GACnF,OAAO,IAAIvC,EAAcyC,EAAc9Q,KAAM8Q,EAActL,QAAS0F,OAAY9E,EAAW0K,GAC3F,MAAOlE,GACP,OAAO,IAAIyB,EAAcyC,EAAc9Q,KAAM8Q,EAActL,QAAS,QAAIY,EAAW0K,KAIvF,IAAIC,EAAqB1C,EAErB2C,EAAW,SAAaC,EAAKC,GAC/B,IAAI1P,EAAI,YAAcyP,EACtB,OAAOzP,EAAE2P,OAAO3P,EAAEmB,OAASuO,IAMzBE,EAA0E,YAAjD,qBAAX3P,OAAyB,YAAcQ,EAAQR,SAAwBA,OAAS4P,KAC9FC,EAAc,EAElB,IAAK,IAAIjO,KAAQ+N,EACXjR,OAAOmB,eAAe1B,KAAKwR,EAAK/N,IAAOiO,IAG7C,IAAIC,EAAkBC,UAAUC,UAAYD,UAAUC,UAAU9O,OAAS,EAErE+O,EAAWV,GAAUO,EAAkBC,UAAUG,UAAUhP,QAAQE,SAAS,IAAMyO,EAAYzO,SAAS,IAAK,GAE5G+O,EAAmB,WACrB,OAAOF,GAqBL5R,EAAI,EAGJ+R,GAAiBC,KAAKC,IADf,GADK,GAIhB,SAASC,KACP,OAAOhB,GAAUc,KAAKG,SAAWJ,IAAkB,GAAGhP,SAJ7C,IADK,GAehB,SAASqP,KAkBP,MAfa,KAKD,IAAI1O,MAAO2O,UAAUtP,SAtBxB,IAwBCmO,GAhBVlR,EAAIA,EAAI+R,GAAiB/R,EAAI,IAC7BA,EAEW,GAasB+C,SAxBxB,IADK,GA6BN+O,KAECI,KAAgBA,MAK3BE,GAAKE,YAAcR,EACnB,IAAIS,GAAYH,GACZI,GAAerP,EAiCfsP,GA5BuB,WACzB,SAASC,IACPnN,KAAKoN,GAAKJ,KACVhN,KAAKqN,UAAYJ,KACjBjN,KAAKsN,SAAW,EAChBtN,KAAKuN,WAAa,EAGpB,IAAIlD,EAAS8C,EAAQnR,UAiBrB,OAfAqO,EAAO5H,OAAS,WACd,MAAO,CACL2K,GAAIpN,KAAKoN,GACTC,UAAWrN,KAAKqN,UAChBG,OAAQ,CACNC,QAASzN,KAAKsN,SACdxC,UAAW9K,KAAKuN,cAKtBlD,EAAOqD,WAAa,SAAoBzK,GACtCjD,KAAKiD,EAAOuG,cAAcsB,UAAY,aAAe,aAAe,GAG/DqC,EAzBkB,GA8B3B,SAASQ,KAeP,OAdAA,GAAe7S,OAAO6E,QAAU,SAAUC,GACxC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGF+N,GAAa5N,MAAMC,KAAMH,WAelC,IAAI+N,GAAUhQ,EACViQ,GAAejQ,EACfkQ,GAAclQ,EAgBdmQ,GAA6B,WAC/B,SAASA,EAAcC,GACrB,IAAKA,IAAaA,EAASrT,OAASqT,EAASC,UAAYD,EAASE,IAChE,MAAM,IAAIzM,MAAM,mCAIlBzB,KAAKgO,SAAWA,EAEhBhO,KAAKmO,aAAc,EAEnBnO,KAAKoO,MAAQ,GACbpO,KAAK8C,OAAS,GAEd9C,KAAKqO,UAAY,CACfC,YAAa,aACbC,WAAY,cAEdvO,KAAKwO,QAAU,CACbvM,MAAO,aACPwM,KAAM,aACNC,KAAM,aACN9I,MAAO,cAGT5F,KAAK2O,SAAW,GAChB3O,KAAK4O,SAAW,KAChB5O,KAAKyJ,YAAc,GAEnBzJ,KAAK6C,IAAM,GACX7C,KAAK0J,aAAU3I,EACff,KAAK2J,YAAS5I,EACdf,KAAKmB,cAAWJ,EAChBf,KAAK8J,aAAU/I,EACff,KAAKkB,KAAO,GAEZlB,KAAK+N,cAAgBA,EACrB/N,KAAKgJ,cAAgB0C,EACrB1L,KAAKsC,kBAAoBI,EACzB1C,KAAK6O,eAAiB3B,GACtB,IAAIlB,EAAOhM,KACPU,EAASV,KAAKU,OAElBV,KAAKU,OAAS,WACZ,OAAOA,EAAOX,MAAMiM,EAAMnM,YAI9B,IAAIwK,EAAS0D,EAAc/R,UAoM3B,OAlMAqO,EAAOyE,WAAa,SAAoBhO,GACtCd,KAAKoO,MAAQT,GAAa,GAAI3N,KAAKoO,MAAOtN,IAG5CuJ,EAAO0E,UAAY,SAAmBC,QACd,IAAlBA,IACFA,EAAgB9P,EAAWe,QAG7B,IAAIgP,EAAO/P,EAAWsC,cAAcxB,KAAKoO,MAAOY,GAE5CE,EAAWhQ,EAAWkB,SAAS6O,EAAMD,GAEzC,IAAwB,KAAnBE,EAASvN,MAAgB,MAAM,IAAIF,MAAM0N,GAA2BD,EAASxN,SAWlF,MAT+B,oBAApBuN,EAAKzO,aAA2ByO,EAAKzO,WAAa,CAACyO,EAAKzO,aAC/DyO,EAAK5O,aAAYL,KAAK6C,IAAIoL,QAAUgB,EAAK5O,YACzC4O,EAAK3O,UAASN,KAAK6C,IAAIN,KAAO0M,EAAK3O,SACnC2O,EAAK9N,WAAUnB,KAAKmB,SAAW8N,EAAK9N,UACpC8N,EAAK/N,OAAMlB,KAAKkB,KAAO+N,EAAK/N,MAC5B+N,EAAK7N,QAAQpB,KAAKoB,OAAO6N,EAAK7N,QAElCpB,KAAK8C,OAAS6K,GAAa,GAAI3N,KAAK8C,OAAQmM,GAC5CjP,KAAKmO,aAAc,EACZnO,MAGTqK,EAAO+E,IAAM,SAAaC,GACxB,IAAKrP,KAAKmO,YAAa,MAAM,IAAI1M,MAAM,yBACnC4N,EAAOC,cAActP,KAAK+O,UAAUM,EAAOC,cAE/C,IAAK,IAAIC,EAAO1P,UAAUvC,OAAQgH,EAAO,IAAIoE,MAAM6G,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGlL,EAAKkL,EAAO,GAAK3P,UAAU2P,GAG7B,IAAIvR,EAASoR,EAAOI,KAAK1P,MAAMsP,EAAQ,CAACrP,MAAMlC,OAAOwG,IAMrD,OADI+K,EAAO1U,OAAMqF,KAAK2O,SAAS,IAAMU,EAAO1U,KAAO,KAAOsD,GACnD+B,MAGTqK,EAAOqF,UAAY,SAAmB/U,GACpC,OAAOqF,KAAK2O,SAAS,IAAMhU,EAAO,MAGpC0P,EAAOsF,SAAW,SAAkBjV,GAElC,OADAsF,KAAKqO,UAAY3T,EAAEsF,MACZA,MAGTqK,EAAOjJ,OAAS,SAAgB/G,EAAGuV,GAEjC,OADA5P,KAAKwO,QAAUnU,EACR2F,MAGTqK,EAAOwF,gBAAkB,SAAyB1T,GAEhD,OADA6D,KAAK8P,iBAAmB3T,EACjB6D,MAGTqK,EAAO0F,aAAe,WACpB,OAAK/P,KAAK8P,iBAMH9P,KAAK8P,iBAAiBC,aAAa/P,OALxCA,KAAKwO,QAAQE,KAAK,0CAEX1O,OAMXqK,EAAO2F,gBAAkB,SAAyBrV,EAAMwG,EAAUoB,EAAMC,GACtE,IAAKxC,KAAKmO,YAAa,MAAM,IAAI1M,MAAM,yBAOvC,GALA9G,EAAOA,QAAQoG,EACfwB,EAAuB,kBAATA,EAAoBA,OAAOxB,EACzCyB,EAAiC,kBAAdA,EAAyBA,OAAYzB,EACxDI,EAAiC,WAAtBvE,EAAQuE,IAAuC,OAAbA,EAAoBA,OAAWJ,EAExD,kBAATpG,GAAsBwG,EAAjC,CACA,IAAI8O,EAAQ,IAAIvN,EAAsB/H,EAAMwG,EAAUoB,EAAMC,GAQ5D,OANAxC,KAAKyJ,YAAYvL,KAAK+R,GAElBjQ,KAAKyJ,YAAYnM,OAAS0C,KAAK8C,OAAO9B,iBACxChB,KAAKyJ,YAAczJ,KAAKyJ,YAAY7K,MAAMoB,KAAKyJ,YAAYnM,OAAS0C,KAAK8C,OAAO9B,iBAG3EhB,OAGTqK,EAAO3J,OAAS,SAAgBkF,EAAO9E,EAAMoP,GAC3C,IAAIC,EAAQnQ,KAUZ,QARa,IAATc,IACFA,EAAO,SAGE,IAAPoP,IACFA,EAAK,eAGFlQ,KAAKmO,YAAa,MAAM,IAAI1M,MAAM,yBAEvC,IAAIjF,EAAemG,EAAuB3C,MAGtCoQ,EAAkBC,GAAezK,EAAO9E,EAAMd,KAAKwO,SACnDtG,EAAMkI,EAAgBlI,IACtBoD,EAAoB8E,EAAgB9E,kBACpC8C,EAAQgC,EAAgBhC,MAExBA,IAAOtN,EAAOsN,GAEI,WAAlBxR,EAAQkE,IAA+B,OAATA,IAAeA,EAAO,IAExD,IAAImC,EAASyI,EAAmBF,aAAatD,EAAKoD,EAAmB,GA2BrE,GAzBArI,EAAOJ,IAAM8K,GAAa,GAAI,CAC5BnR,aAAcA,GACbyG,EAAOJ,IAAK7C,KAAK6C,KACpBI,EAAOyG,QAAUzG,EAAOyG,SAAW5I,EAAK4I,SAAW1J,KAAK0J,cAAW3I,EACnEkC,EAAO0G,OAASgE,GAAa,GAAI1K,EAAO0G,OAAQ3J,KAAK2J,OAAQ7I,EAAK6I,QAClE1G,EAAO6G,QAAU6D,GAAa,GAAI1K,EAAO6G,QAAS9J,KAAK8J,QAAShJ,EAAKgJ,SACrE7G,EAAO/B,KAAOyM,GAAa,GAAI1K,EAAO/B,KAAMlB,KAAKkB,KAAMJ,EAAKI,MAC5D+B,EAAO9B,SAAWwM,GAAa,GAAI1K,EAAO9B,SAAUnB,KAAKmB,SAAUL,EAAKK,UACxE8B,EAAOwG,YAAczJ,KAAKyJ,YAAY7K,MAAM,GAExCoB,KAAK4O,WACP5O,KAAK4O,SAASlB,WAAWzK,GAEzBA,EAAOmH,QAAUpK,KAAK4O,eAIF7N,IAAlBD,EAAKiJ,WACP9G,EAAO8G,SAAWjJ,EAAKiJ,SACvB9G,EAAOuG,cAAcuB,eAAiB,CACpCxI,KAAM,0BAKNuL,GAAY9N,KAAK8C,OAAOrG,uBAAyBoR,GAAa7N,KAAK8C,OAAOrG,oBAAqBD,GAGjG,OAFAwD,KAAKwO,QAAQE,KAAK,yEAEXwB,EAAG,KAAMjN,GAGlB,IAAIqN,EAAmBrN,EAAO8G,SAC1BvJ,EAAa,GAAG1C,OAAOgD,EAAKN,YAAY1C,OAAOkC,KAAK8C,OAAOtC,YAE3D+P,EAAkB,SAAyBrI,GAC7CiI,EAAM3B,QAAQ5I,MAAM,kEAEpBuK,EAAM3B,QAAQ5I,MAAMsC,KAzjCN,SAAuBjL,EAAKC,EAAIgT,GAClD,IAAI5S,EAASL,EAAIK,OACbkT,EAAQ,GAED,SAASC,IAClB,GAAID,GAASlT,EAAQ,OAAO4S,EAAG,MAAM,GACrChT,EAAGD,EAAIuT,IAAQ,SAAUtI,EAAKjK,GAC5B,OAAIiK,EAAYgI,EAAGhI,GAAK,IACT,IAAXjK,EAAwBiS,EAAG,MAAM,IACrCM,SACAC,QAIJA,GA8iCEC,CAAclQ,EAzgCO,SAA4ByC,EAAQ0N,GAC3D,OAAO,SAAUzT,EAAIgT,GACnB,GAAkB,oBAAPhT,EAAmB,OAAOgT,EAAG,MAAM,GAE9C,IAEE,GAAkB,IAAdhT,EAAGI,OAAc,CACnB,IAAIsT,EAAM1T,EAAG+F,GAEb,OAAI2N,GAA2B,oBAAbA,EAAIC,KACbD,EAAIC,MACX,SAAUzT,GACR,OAAO0T,YAAW,WAChB,OAAOZ,EAAG,KAAMlN,EAAkBC,EAAQ7F,MACzC,MAEL,SAAU8K,GACR4I,YAAW,WAET,OADAH,EAAQzI,GACDgI,EAAG,MAAM,SAKfA,EAAG,KAAMlN,EAAkBC,EAAQ2N,IAI5C1T,EAAG+F,GAAQ,SAAUiF,EAAKjK,GACxB,GAAIiK,EAEF,OADAyI,EAAQzI,GACDgI,EAAG,MAAM,GAGlBA,EAAG,KAAMlN,EAAkBC,EAAQhF,OAErC,MAAOsJ,GACPoJ,EAAQpJ,GACR2I,EAAG,MAAM,KAm+Bea,CAAmB9N,EAAQsN,IAAkB,SAAUrI,EAAK8I,GAGpF,GAFI9I,GAAKqI,EAAgBrI,GAErB8I,EAGF,OAFAb,EAAM3B,QAAQvM,MAAM,8CAEbiO,EAAG,KAAMjN,GAIdkN,EAAMrN,OAAO7B,iBACfkP,EAAMH,gBAAgB/M,EAAOgG,WAAY,CACvCA,WAAYhG,EAAOgG,WACnBC,aAAcjG,EAAOiG,aACrBa,SAAU9G,EAAO8G,UAChB,SAGDuG,IAAqBrN,EAAO8G,WAC9B9G,EAAOuG,cAAcuB,eAAiB,CACpCxI,KAAM,4BAIV4N,EAAM9B,UAAUE,WAAW,CACzBhS,OAAQ0G,EAAO1G,QAAU4T,EAAMrN,OAAOvG,OACtCyR,SAAUmC,EAAMnC,SAChBR,OAAQ,CAACvK,KACR,SAAUiF,GACX,OAAOgI,EAAGhI,EAAKjF,UAKd8K,EApPwB,GAuP7BsC,GAAiB,SAAwBzK,EAAO9E,EAAMM,GACxD,IAQI8G,EAGAkG,EATA6C,EAAyB,SAAgCC,GAC3D,IAAIC,EAAMC,GAA2BF,GAErC,OADA9P,EAAOsN,KAAK2C,gBAA6BF,GAClC,IAAI1P,MAAM6P,wBAAgCH,IAI/C7F,EAAoB,EAIxB,OAAQ1O,EAAQgJ,IACd,IAAK,SACiB,kBAAT9E,GAGToH,EAAM+I,EAAuB,iBAC7B7C,EAAQ,CACNjN,SAAU,CACR6M,SAAU,CACRuD,WAAY,CAAC3L,EAAO9E,QAK1BoH,EAAM,IAAIzG,MAAM4D,OAAOO,IACvB0F,EA5B6B,GA+B/B,MAEF,IAAK,SACL,IAAK,UACHpD,EAAM,IAAIzG,MAAM4D,OAAOO,IACvB,MAEF,IAAK,WACHsC,EAAM+I,EAAuB,YAC7B,MAEF,IAAK,SACW,OAAVrL,IAAmB7C,EAAa6C,IAAUA,EAAM0D,mBAClDpB,EAAMtC,EACa,OAAVA,GAAkB4L,GAAmB5L,KAC9CsC,EAAM,IAAIzG,MAAMmE,EAAMzF,SAAWyF,EAAMsD,eACnCvO,KAAOiL,EAAMjL,MAAQiL,EAAMqD,WAC/BqC,EAhD6B,GAkD7BpD,EAAM+I,EAAiC,OAAVrL,EAAiB,OAAS,sBAGzD,MAEF,QACEsC,EAAM+I,EAAuB,WAGjC,MAAO,CACL/I,IAAKA,EACLoD,kBAAmBA,EACnB8C,MAAOA,IAIPoD,GAAqB,SAA4B5L,GACnD,OAA8B,kBAAfA,EAAMjL,MAAiD,kBAArBiL,EAAMqD,cAAsD,kBAAlBrD,EAAMzF,SAAsD,kBAAvByF,EAAMsD,eAGpIiG,GAA6B,SAAoCzN,GACnE,MAAO,gCAAkCkM,GAAQlM,GAAQ,SAAUwG,GACjE,MAAO,IAAOA,EAAIvM,IAAM,KAAQuM,EAAI/H,QAAU,cAAgBgK,GAAUjC,EAAI7M,UAC3EyJ,KAAK,SAGNsM,GAA6B,SAAoCK,GACnE,MAAO,gDAAkDA,GAGvDtH,GAAY,SAAmB/M,GACjC,MAAwB,WAAjBR,EAAQQ,GAAoB8M,KAAKC,UAAU/M,GAAOiI,OAAOjI,IAG9DsU,GAAoB3D,GAEpB4D,GAAyB,SAAgCC,EAAMC,EAAUC,EAAOhR,GAClF,IAAIiR,EAAajR,GAAQA,EAAKiR,WAAajR,EAAKiR,WAAa,GACzDC,EAAclR,GAAQA,EAAKkR,YAAclR,EAAKkR,YAAc,GAChE,OAAO9H,KAAKC,UAsDd,SAAoCrN,EAAKiV,EAAYC,GACnD,IAAIC,EAAO,GAEPC,EAAQ,EAEZ,SAASC,EAAMrV,EAAKsV,GAClB,SAASC,IACP,OAAOD,EAAK9U,OAxDQ,GAwDwB4U,EAzDlC,KA6DZ,GADAA,IACIE,EAAK9U,OA9DG,GA8DiB,OAAOgV,GACpC,GAAID,IAAiB,OAAOC,GAC5B,GAAY,OAARxV,GAAiC,WAAjBF,EAAQE,GAAmB,OAAOA,EACtD,GApDJ,SAAcyV,EAAUC,GACtB,IAAK,IAAIpY,EAAI,EAAGiD,EAAMkV,EAASjV,OAAQlD,EAAIiD,EAAKjD,IAC9C,GAAImY,EAASnY,KAAOoY,EAAQ,OAAO,EAGrC,OAAO,EA+CDC,CAAKR,EAAMnV,GAAM,MAAO,aAG5B,GAFAmV,EAAK/T,KAAKpB,GAEgB,oBAAfA,EAAI2F,OACb,IAGEyP,IACA,IAAIQ,EAAUP,EAAMrV,EAAI2F,SAAU2P,GAElC,OADAH,EAAKjL,MACE0L,EACP,MAAOxK,GACP,OAAOyK,GAAczK,GAIzB,IA5EkBrN,EA8ElB,IA9EkBA,EA4EIiC,aA3EJ2E,OAAS,uCAAuCF,KAAKzG,OAAOkB,UAAUwB,SAASjD,KAAKM,IA6E9F,CACNqX,IACA,IAAIU,EAAUT,EAAM,CAClBxX,KAAMmC,EAAInC,KACVwF,QAASrD,EAAIqD,SACZiS,GAEH,OADAH,EAAKjL,MACE4L,EAGT,GAtDJ,SAAsB9V,GACpB,MAA+C,mBAAxChC,OAAOkB,UAAUwB,SAASjD,KAAKuC,GAqDhC+V,CAAa/V,GAAM,CAGrB,IAFA,IAAIgW,EAAU,GAEL1Y,EAAI,EAAGiD,EAAMP,EAAIQ,OAAQlD,EAAIiD,EAAKjD,IAAK,CAC9C,GAAIiY,IAAiB,CACnBS,EAAQ5U,KAAKoU,IACb,MAGFQ,EAAQ5U,KAAKiU,EAAMrV,EAAI1C,GAAIgY,EAAKtU,OAAO,QAIzC,OADAmU,EAAKjL,MACE8L,EAGT,IAAI7U,EAAS,GAEb,IACE,IAAK,IAAID,KAAQlB,EACf,GAAKhC,OAAOkB,UAAUC,eAAe1B,KAAKuC,EAAKkB,GAE/C,GAAI+U,GAAaf,EAAaI,EAAKtN,KAAK,OAASkO,GAAajB,EAAY/T,GACxEC,EAAOD,GAAQ,iBADjB,CAKA,GAAIqU,IAAiB,CACnBpU,EAAOD,GAAQsU,GACf,MAGFrU,EAAOD,GAAQmU,EAAMc,GAAcnW,EAAKkB,GAAOoU,EAAKtU,OAAOE,KAE7D,MAAOuJ,IAGT,OADA0K,EAAKjL,MACE/I,EAGT,OAAOkU,EAAMrV,EAAK,IAxIIoW,CAA2BtB,EAAMG,EAAYC,GAAcH,EAAUC,IAMzFQ,GAAmB,MAMvB,SAASK,GAAczK,GACrB,MAAO,aAAeA,EAAMA,EAAI/H,QAAU,KAAO,IAYnD,SAAS4S,GAAaI,EAAOf,GAC3B,IAAK,IAAIhY,EAAI,EAAGiD,EAAM8V,EAAM7V,OAAQlD,EAAIiD,EAAKjD,IAC3C,GAA+B,IAA3BgY,EAAK/L,QAAQ8M,EAAM/Y,IAAW,OAAO,EAG3C,OAAO,EAGT,SAAS4Y,GAAaI,EAAUzX,GAC9B,IAAK,IAAIvB,EAAI,EAAGiD,EAAM+V,EAAS9V,OAAQlD,EAAIiD,EAAKjD,IAAK,CACnD,GAA2B,kBAAhBgZ,EAAShZ,IAAmBgZ,EAAShZ,KAAOuB,EAAK,OAAO,EACnE,GAAIyX,EAAShZ,IAAkC,oBAArBgZ,EAAShZ,GAAGmH,MAAuB6R,EAAShZ,GAAGmH,KAAK5F,GAAM,OAAO,EAG7F,OAAO,EAOT,SAASsX,GAAcnW,EAAKkB,GAC1B,IACE,OAAOlB,EAAIkB,GACX,MAAOkK,GACP,OAAOyK,GAAczK,IAyFzB,IAAImL,GAAmB,GAInBC,GAAsB,CAAC,gBAAiB,qBAAsB,iBAAkB,wBAAyB,oBAAqB,oBAC9HC,GAAuB,CAAC,SAAU,MAAO,QAE7CF,GAAiBpQ,OAAS,SAAUA,EAAQ8O,GAC1C,IAAIyB,EAAU7B,GAAuB1O,EAAQ,KAAM,KAAM,CACvD+O,YAAasB,GACbvB,WAAYA,IAGd,GAAIyB,EAAQlW,OAAS,aACZ2F,EAAOuK,OAAO,GAAGrM,SACxB8B,EAAOuK,OAAO,GAAGrM,SAAW,CAC1B6M,SAAU,oCAAsCwF,EAAQlW,OAAS,IAAO,2CAE1EkW,EAAU7B,GAAuB1O,EAAQ,KAAM,KAAM,CACnD+O,YAAasB,GACbvB,WAAYA,KAEFzU,OAAS,KAAM,MAAM,IAAImE,MAAM,8BAG7C,OAAO+R,GAGTH,GAAiBjJ,QAAU,SAAUnH,EAAQ8O,GAC3C,IAAIyB,EAAU7B,GAAuB1O,EAAQ,KAAM,KAAM,CACvD+O,YAAauB,GACbxB,WAAYA,IAGd,GAAIyB,EAAQlW,OAAS,IAAM,MAAM,IAAImE,MAAM,8BAC3C,OAAO+R,GAGT,IAAIC,GAIAC,GAAe9V,EAEnB6V,GAAgB,SAAuB7Q,EAAQ+Q,GAK7C,YAJY,IAARA,IACFA,EAAMvX,QAGD,CACLmS,WAAY,SAAoBtL,EAAQiN,QAC3B,IAAPA,IACFA,EAAK,cAGP,IAAIhC,EAAM0F,GAAUhR,EAAOE,OAAQ,SAAU,IAAK6Q,GAC9CE,EAAM,IAAIF,EAAIG,eAElBD,EAAIE,OAAS,WACX7D,EAAG,OAGL2D,EAAIG,KAAK,OAAQ9F,GACjB4C,YAAW,WACT,IACE+C,EAAII,KAAKZ,GAAiBpQ,OAAOA,EAAQL,EAAOE,OAAOxB,UACvD,MAAOiG,GACP3E,EAAO4L,QAAQ5I,MAAM2B,GAErB2I,EAAG3I,MAEJ,IAEL+G,YAAa,SAAqBlE,EAAS8F,QAC9B,IAAPA,IACFA,EAAK,cAGP,IAAIhC,EAAM0F,GAAUhR,EAAOE,OAAQ,WAAY,IAAK6Q,GAChDE,EAAM,IAAIF,EAAIG,eAElBD,EAAIE,OAAS,WACX7D,EAAG,OAGL2D,EAAIG,KAAK,OAAQ9F,GACjB4C,YAAW,WACT,IACE+C,EAAII,KAAKZ,GAAiBjJ,QAAQA,EAASxH,EAAOE,OAAOxB,UACzD,MAAOiG,GACP3E,EAAO4L,QAAQ5I,MAAM2B,GAErB2I,EAAG3I,MAEJ,MAKT,IAAIqM,GAAY,SAAmB9Q,EAAQoR,EAAUjG,EAAS0F,GAC5D,OAAOQ,GAAkBrR,EAAOrC,UAAUyT,GAAWP,EAAI7R,SAASsS,UAAY,WAAaC,mBAAmBvR,EAAOvG,QAAU,mBAAqB0R,EAAU,WAAaoG,mBAAmBX,OAG5LS,GAAoBV,GAAca,mBAAqB,SAAUJ,EAAUK,GAC7E,MAAwB,UAAjBA,EAA2BL,EAAS1N,QAAQ,UAAW,SAAW0N,GAMvEM,GAAe5W,EAEf6W,GAAgB,SAAuB7R,EAAQ+Q,GAKjD,YAJY,IAARA,IACFA,EAAMvX,QAGD,CACLmS,WAAY,SAAoBtL,EAAQiN,QAC3B,IAAPA,IACFA,EAAK,cAGP,IACE,IAAIhC,EAAMtL,EAAOE,OAAOrC,UAAUC,OAC9BmT,EAAM,IAAIF,EAAIe,eAElBb,EAAIc,mBAAqB,WACnBd,EAAIe,aAAejB,EAAIe,eAAeG,MAAM3E,EAAG,OAGrD2D,EAAIG,KAAK,OAAQ9F,GACjB2F,EAAIiB,iBAAiB,eAAgB,oBACrCjB,EAAIiB,iBAAiB,kBAAmB7R,EAAO1G,QAAUqG,EAAOE,OAAOvG,QACvEsX,EAAIiB,iBAAiB,0BAA2B,KAChDjB,EAAIiB,iBAAiB,kBAAmBN,MACxCX,EAAII,KAAKZ,GAAiBpQ,OAAOA,EAAQL,EAAOE,OAAOxB,UACvD,MAAOiG,GACP3E,EAAO4L,QAAQ5I,MAAM2B,KAGzB+G,YAAa,SAAqBlE,EAAS8F,QAC9B,IAAPA,IACFA,EAAK,cAGP,IACE,IAAIhC,EAAMtL,EAAOE,OAAOrC,UAAUE,SAC9BkT,EAAM,IAAIF,EAAIe,eAElBb,EAAIc,mBAAqB,WACnBd,EAAIe,aAAejB,EAAIe,eAAeG,MAAM3E,EAAG,OAGrD2D,EAAIG,KAAK,OAAQ9F,GACjB2F,EAAIiB,iBAAiB,eAAgB,oBACrCjB,EAAIiB,iBAAiB,kBAAmBlS,EAAOE,OAAOvG,QACtDsX,EAAIiB,iBAAiB,0BAA2B,KAChDjB,EAAIiB,iBAAiB,kBAAmBN,MACxCX,EAAII,KAAKZ,GAAiBjJ,QAAQA,EAASxH,EAAOE,OAAOxB,UACzD,MAAOiG,GACP3E,EAAO4L,QAAQ5I,MAAM2B,OAUzBwN,GAAe,CACjBtF,KAAM,SAAc7M,EAAQ+Q,QACd,IAARA,IACFA,EAAMvX,QAGRwG,EAAOE,OAAOtC,WAAWwU,SAAQ,SAAU/R,GACrCA,EAAOyG,UACXzG,EAAOyG,QAAUiK,EAAI7R,SAASmT,eAKpC,SAASC,KAeP,OAdAA,GAAgBpa,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFsV,GAAcnV,MAAMC,KAAMH,WAGnC,IAAIsV,GAAevX,EAKfwX,GAAc,CAChB3F,KAAM,SAAc7M,EAAQyS,QACd,IAARA,IACFA,EAAMlJ,WAGR,IAAIxC,EAAS,CACX2L,OAAQD,EAAIE,iBAAmBF,EAAIG,gBAAkBH,EAAII,cAAgBJ,EAAIK,SAC7EpJ,UAAW+I,EAAI/I,WAGjB1J,EAAO+G,OAASuL,GAAc,GAAIvL,EAAQ/G,EAAO+G,QAEjD/G,EAAOE,OAAOtC,WAAWwU,SAAQ,SAAU/R,GACzCA,EAAO0G,OAASuL,GAAc,GAAIjS,EAAO0G,OAAQ,CAC/CgM,KAAMR,YAMd,SAASS,KAeP,OAdAA,GAAgB9a,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFgW,GAAc7V,MAAMC,KAAMH,WAOnC,IAAIgW,GAAe,CACjBpG,KAAM,SAAc7M,EAAQ+Q,QACd,IAARA,IACFA,EAAMvX,QAGRwG,EAAOE,OAAOtC,WAAWwU,SAAQ,SAAU/R,GACrCA,EAAO6G,SAAW7G,EAAO6G,QAAQoE,MACrCjL,EAAO6G,QAAU8L,GAAc,GAAI3S,EAAO6G,QAAS,CACjDoE,IAAKyF,EAAI7R,SAASgU,aAM1B,SAASC,KAeP,OAdAA,GAAgBjb,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFmW,GAAchW,MAAMC,KAAMH,WAGnC,IAAImW,GAAepY,EACfqY,GAAgBrY,EAIhBsY,GAAe,CACjBzG,KAAM,SAAc7M,GAClB,OAAOA,EAAOiN,gBAAgBA,MAG9BA,GAAkB,CACpBE,aAAc,SAAsBnN,GAClC,IAAIuT,EAAgBvT,EACpBuT,EAAcvH,SAAW,IAAIhM,EAAOiM,eAEpC,IAAIrS,EAAemG,EAAuBwT,GAG1C,OAAIH,GAAaG,EAAcrT,OAAOrG,uBAAyBwZ,GAAcE,EAAcrT,OAAOrG,oBAAqBD,IACrH2Z,EAAc3H,QAAQE,KAAK,0EAEpByH,GAGJA,EAAcrT,OAAOrC,UAAUE,UAMpCwV,EAAc9H,UAAUC,YAAY,CAClCN,SAAUmI,EAAcnI,SACxBrE,OAAQwM,EAAcxM,OACtB9G,IAAKkT,GAAc,GAAI,CACrBvZ,aAAcA,GACb2Z,EAActT,KACjBlC,SAAU,CAAC,CACTyM,GAAI+I,EAAcvH,SAASxB,GAC3BC,UAAW8I,EAAcvH,SAASvB,UAClCnM,KAAMiV,EAAcjV,SAIjBiV,IAlBLA,EAAc3H,QAAQE,KAAK,oEAEpByH,KAoBb,SAASC,KAeP,OAdAA,GAAgBtb,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGFwW,GAAcrW,MAAMC,KAAMH,WAOnC,IAAIwW,GAAgB,CAClB5G,KAAM,SAAc7M,GACdA,EAAOE,OAAOpG,eAClBkG,EAAOE,OAAOtC,WAAWtC,MAAK,SAAU+E,GAGlCA,EAAO/B,MAAkC,qBAAnB+B,EAAO/B,KAAKkM,WAA2BnK,EAAO/B,KAAKkM,GAC7EnK,EAAO/B,KAAOkV,GAAc,CAC1BhJ,GAAI,mBACHnK,EAAO/B,MACV+B,EAAO6G,QAAUsM,GAAc,CAC7BE,SAAU,mBACTrT,EAAO6G,aAGdwF,aAAc,CACZ5S,cAAe,CACbwD,aAAc,WACZ,OAAO,GAETC,QAAS,uBACTC,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,MAK7Bkb,GAA0B,GAC1BC,GAAW5Y,EACX6Y,GAAc7Y,EACd8Y,GAAc9Y,EAKlB2Y,GAAwB9G,KAAO,SAAU7M,GACvC,IAAI+T,EAAQ,mBAAmBpV,KAAKqB,EAAOE,OAAOtG,cAC9Coa,GAAiE,IAA5ChU,EAAOE,OAAO+T,0BACnCC,IAAwD,IAAlClU,EAAOE,OAAO7B,iBAA6B0V,KAAsD,IAA5C/T,EAAOE,OAAO+T,0BACzFD,GAAsBE,GAE1BN,GAASO,IAAqB,SAAU1V,GACtC,IAAI2V,EAAWhV,QAAQX,GAEvBW,QAAQX,GAAU,WAChB,IAAK,IAAIkO,EAAO1P,UAAUvC,OAAQgH,EAAO,IAAIoE,MAAM6G,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ElL,EAAKkL,GAAQ3P,UAAU2P,GAGzB5M,EAAOoN,gBAAgB,iBAAkByG,GAAYnS,GAAM,SAAUnH,EAAO8Z,EAAK7c,GAE/E,IAAI8c,EAAc,kBAIlB,IACEA,EAAc7R,OAAO4R,GACrB,MAAO1P,IAGT,GAAoB,oBAAhB2P,EAEF,IACEA,EAAchN,KAAKC,UAAU8M,GAC7B,MAAO1P,IAIX,OADApK,EAAM,IAAM/C,EAAI,KAAO8c,EAChB/Z,IACN,CACD4M,SAAsC,IAA5B1I,EAAOgF,QAAQ,SAAiB,MAAQhF,IAChD,OACJ2V,EAASjX,MAAMiC,QAASsC,IAG1BtC,QAAQX,GAAQ8V,SAAW,WACzBnV,QAAQX,GAAU2V,OAKxBT,GAAwBjH,aAAe,CACrCuH,0BAA2B,CACzB3W,aAAc,aAGdE,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,QAA6B0F,IAAV1F,GAE9C8E,QAAS,yBAYb,IAAI4W,GAAsBL,GAAY,CAAC,MAAO,QAAS,OAAQ,OAAQ,UAAU,SAAUrV,GACzF,MAA0B,qBAAZW,SAAsD,oBAApBA,QAAQX,MAGtD+V,GAAWxZ,EACXyZ,GAAczZ,EACd0Z,GAAc1Z,EAEd2Z,GAAoB,IACpBC,GAA2B,CAC7B/H,KAAM,SAAc7M,EAAQ6U,EAAK9D,GAS/B,QARY,IAAR8D,IACFA,EAAMC,eAGI,IAAR/D,IACFA,EAAMvX,QAGHwG,EAAOE,OAAO6U,mBAAnB,CACA,IAAIC,EAAmBjE,EAAI7R,SAASgU,KAChC+B,EAAO,GACPC,GAAmB,EAEnBC,EAAU,WACZ,OAAON,EAAIO,gBAAgBC,WAI7BJ,EAAOE,IACP,IAAIG,EAAOT,EAAI9C,mBAEf8C,EAAI9C,mBAAqB,WAEA,gBAAnB8C,EAAI7C,aACNiD,EAAOE,IACPD,GAAmB,GAGrB,IACEI,EAAKnY,MAAMC,KAAMH,WACjB,MAAO0H,MAGX,IAAI4Q,EAAc,KAEdC,EAAmB,SAA0BC,GAC/CF,EAAcE,GAGZC,EAAmB,WACrB,IAAID,EAASZ,EAAIc,eAAiBJ,EAElC,IAAKE,IAAWP,EAAkB,CAChC,IAAIU,EAAUf,EAAIe,SAAWf,EAAIgB,qBAAqB,UACtDJ,EAASG,EAAQA,EAAQlb,OAAS,GAGpC,OAAO+a,GAiBTzV,EAAOE,OAAOtC,WAAWwU,SAAQ,SAAU/R,GAGzCA,EAAO4C,WAAayR,GAAYrU,EAAO4C,YAAY,SAAUlJ,GAC3D,OAAQ,aAAa4E,KAAK5E,EAAE0E,WAE9B,IAAI2I,EAAQ/G,EAAO4C,WAAW,GAE9B,IAAImE,IAASA,EAAMgB,MAAQhB,EAAMgB,KAAKxE,QAAQ,OAAQ,MAAQoR,EAAiBpR,QAAQ,OAAQ,IAA/F,CAEA,IAAI+R,EAAgBD,IAEpB,GAAIC,EAAe,CACjB,IAAIG,EAAUH,EAAcI,UAC5B1V,EAAOsH,eAAe,SAAU,UAAWmO,EAAQpb,QAAUia,GAAoBmB,EAAUA,EAAQ5M,OAAO,EAAGyL,KAI1GvN,GAAUA,EAAM7C,aACrB6C,EAAMkB,KAjCiB,SAA4B/D,GAE9C2Q,GAAqBD,IAAMA,EAAOE,KAEvC,IAAIa,EAAY,CAAC,4BAAsB9a,OAAO+Z,EAAKpR,MAAM,OACrDoS,EAAgB1R,EAAa,EAC7B2R,EAAQrM,KAAK1N,IAAI8Z,EAAgB,EAAG,GACpCE,EAAMtM,KAAK3N,IAAI+Z,EAAgB,EAAGD,EAAUtb,QAChD,OAAO+Z,GAAYuB,EAAUha,MAAMka,EAAOC,IAAM,SAAU5b,EAAOwJ,EAAMvM,GAErE,OADA+C,EAAM2b,EAAQ,EAAI1e,GAAKuM,EAAKrJ,QA/Dd,IA+D0CqJ,EAAOA,EAAKmF,OAAO,EA/D7D,KAgEP3O,IACN,IAsBU6b,CAAmBhP,EAAM7C,iBAIxC,IAcI8R,EAdO7B,GAAS,CAAC,aAAc,cAAe,eAAgB,0BAA0B,SAAUla,GACpG,OAAOgc,GAAQvF,EAAKzW,GAAI,SAAU8Z,GAChC,OAAOmC,EAAsBnC,GAAU,SAAU1S,GAC/C,MAAO,CACLrJ,IAAK,WACH,OAAOqJ,EAAK,IAEdkC,QAAS,SAAiBtJ,GACxBoH,EAAK,GAAKpH,aAMG,GAGvBka,GAAS,CAAC,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,oBAAqB,kBAAmB,cAAe,aAAc,qBAAsB,cAAe,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAAe,eAAgB,qBAAsB,SAAU,YAAa,eAAgB,gBAAiB,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,yBAAyB,SAAUvc,GAC/e8Y,EAAI9Y,IAAO8Y,EAAI9Y,GAAGmB,WAAc2X,EAAI9Y,GAAGmB,UAAUC,gBAAmB0X,EAAI9Y,GAAGmB,UAAUC,eAAe,sBAEzGid,GAAQvF,EAAI9Y,GAAGmB,UAAW,oBAAoB,SAAUgb,GACtD,OAAOmC,EAAsBnC,EAAUoC,OAGzCF,GAAQvF,EAAI9Y,GAAGmB,UAAW,uBAAuB,SAAUgb,GACzD,OAAOmC,EAAsBnC,EAAUoC,IAA6B,UAIxE,SAASD,EAAsBjc,EAAImc,EAAkBC,GAKnD,YAJyB,IAArBA,IACFA,GAAmB,GAGd,WAGL,IAAIhV,EAAOoE,MAAM1M,UAAU4C,MAAMrE,KAAKsF,WAEtC,IACE,IAAI0Z,EAAMF,EAAiB/U,GACvB4L,EAAKqJ,EAAIte,MAEb,GADIqe,GAAkBpc,EAAG6C,MAAMC,KAAMsE,GACnB,oBAAP4L,EAAmB,OAAOhT,EAAG6C,MAAMC,KAAMsE,GAEpD,GAAI4L,EAAGsJ,UACLD,EAAI/S,QAAQ0J,EAAGsJ,eACV,CACL,IAAInB,EAASC,IAIbpI,EAAGsJ,UAAY,WAEbpB,EAAiBC,GAIjBY,GAAY,WACVb,EAAiB,QAChB,GAEH,IAAIxH,EAAMV,EAAGnQ,MAAMC,KAAMH,WAEzB,OADAuY,EAAiB,MACVxH,GAGTV,EAAGsJ,UAAUA,UAAYtJ,EAAGsJ,UAC5BD,EAAI/S,QAAQ0J,EAAGsJ,YAEjB,MAAOjS,IAMT,GAAIrK,EAAG6C,MAAO,OAAO7C,EAAG6C,MAAMC,KAAMsE,GAEpC,OAAQA,EAAKhH,QACX,KAAK,EACH,OAAOJ,EAAGoH,EAAK,IAEjB,KAAK,EACH,OAAOpH,EAAGoH,EAAK,GAAIA,EAAK,IAE1B,QACE,OAAOpH,QAKjBoS,aAAc,CACZqI,mBAAoB,CAClBvX,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,GAE3B6E,aAAc,WACZ,OAAO,GAETC,QAAS,0BAKf,SAAS+Y,GAAQnX,EAAMpH,EAAMkX,GAC3B,IAAImF,EAAWjV,EAAKpH,GACpB,IAAKqc,EAAU,OAAOA,EACtB,IAAIyC,EAAc5H,EAASmF,GAE3B,OADAjV,EAAKpH,GAAQ8e,EACNzC,EAGT,SAASoC,GAA4B9U,GACnC,IAAIoV,IAAsBpV,EAAK,IAAqC,oBAAxBA,EAAK,GAAGqV,YACpD,MAAO,CACL1e,IAAK,WACH,OAAOye,EAAoBpV,EAAK,GAAGqV,YAAcrV,EAAK,IAExDkC,QAAS,SAAiBtJ,GACpBwc,EACFpV,EAAK,GAAGqV,YAAczc,EAEtBoH,EAAK,GAAKpH,IAUlB,IAAI0c,GAA8B,CAChCnK,KAAM,SAAc7M,EAAQ+Q,GAK1B,QAJY,IAARA,IACFA,EAAMvX,QAGF,qBAAsBuX,EAA5B,CACA,IAAIiD,GAAqE,IAAhDhU,EAAOE,OAAO+W,8BACnC/C,GAAuD,IAAlClU,EAAOE,OAAO7B,kBAA6E,IAAhD2B,EAAOE,OAAO+W,8BAC9EjD,GAAsBE,GAC1BnD,EAAImG,iBAAiB,SAAS,SAAUC,GACtC,IAAIC,EAAYC,EAEhB,IACED,EAAaE,GAAYH,EAAMna,QAC/Bqa,EAAiBE,GAAgBJ,EAAMna,OAAQ+T,GAC/C,MAAOpM,GACPyS,EAAa,WACbC,EAAiB,WAEjBrX,EAAO4L,QAAQ5I,MAAM,wFAGvBhD,EAAOoN,gBAAgB,WAAY,CACjCgK,WAAYA,EACZC,eAAgBA,GACf,WACF,KAEL3K,aAAc,CACZuK,8BAA+B,CAC7B3Z,aAAc,aAGdE,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,QAA6B0F,IAAV1F,GAE9C8E,QAAS,0BAMX+Z,GAAc,SAAqBE,GACrC,IAkCgB/e,EAAOiC,EACnB+c,EAnCAC,EAAOF,EAAGG,aAAeH,EAAGI,WAAa,GAI7C,OAHKF,GAAqB,WAAZF,EAAG7X,MAAiC,WAAZ6X,EAAG7X,OAAoB+X,EAAOF,EAAG/e,OACvEif,EAAOA,EAAK9T,QAAQ,aAAc,IAgCXlJ,EA9BD,IA+BlB+c,EAAW,SADChf,EA9BAif,IAgCHjf,EAAMiC,QAAUA,EAAejC,EACrCA,EAAMuD,MAAM,EAAGtB,EAAS+c,EAAS/c,QAAU+c,GA7BpD,SAASF,GAAgBC,EAAIzG,GAC3B,IAAIrN,EAAQ,CAAC8T,EAAGK,SAIhB,GAHIL,EAAGhN,IAAI9G,EAAMpI,KAAK,IAAMkc,EAAGhN,IAC3BgN,EAAGM,WAAaN,EAAGM,UAAUpd,QAAQgJ,EAAMpI,KAAK,IAAMkc,EAAGM,UAAUjU,MAAM,KAAK3B,KAAK,OAElF6O,EAAI+D,SAASiD,mBAAqBjS,MAAM1M,UAAUqK,QAAS,OAAOC,EAAMxB,KAAK,IAElF,IACE,GAA6D,IAAzD6O,EAAI+D,SAASiD,iBAAiBrU,EAAMxB,KAAK,KAAKxH,OAAc,OAAOgJ,EAAMxB,KAAK,IAClF,MAAOyC,GAEP,OAAOjB,EAAMxB,KAAK,IAIpB,GAAIsV,EAAGQ,WAAWC,WAAWvd,OAAS,EAAG,CACvC,IAAIkT,EAAQ9H,MAAM1M,UAAUqK,QAAQ9L,KAAK6f,EAAGQ,WAAWC,WAAYT,GAAM,EACzE9T,EAAMpI,KAAK,cAAgBsS,EAAQ,KAGrC,OAA6D,IAAzDmD,EAAI+D,SAASiD,iBAAiBrU,EAAMxB,KAAK,KAAKxH,OAAqBgJ,EAAMxB,KAAK,IAE9EsV,EAAGQ,WAAmBT,GAAgBC,EAAGQ,WAAYjH,GAAO,MAAQrN,EAAMxB,KAAK,IAC5EwB,EAAMxB,KAAK,IASpB,IA6HIlC,GACA+Q,GACAmH,GA/HAC,GAA6B,CAKjCA,KAAkC,SAAUnY,EAAQ+Q,GAKlD,QAJY,IAARA,IACFA,EAAMvX,QAGF,qBAAsBuX,EAA5B,CACA,IAAIiD,GAAoE,IAA/ChU,EAAOE,OAAOkY,6BACnClE,GAAuD,IAAlClU,EAAOE,OAAO7B,kBAA4E,IAA/C2B,EAAOE,OAAOkY,6BAClF,IAAIpE,IAAsBE,EAA1B,CAEA,IAAImE,EAAO,SAActgB,GACvB,OAAO,WACL,OAAOiI,EAAOoN,gBAAgBrV,EAAM,GAAI,gBAK5CgZ,EAAImG,iBAAiB,WAAYmB,EAAK,gBAAgB,GACtDtH,EAAImG,iBAAiB,WAAYmB,EAAK,eAAe,GACrDtH,EAAImG,iBAAiB,OAAQmB,EAAK,gBAAgB,GAClDtH,EAAI+D,SAASoC,iBAAiB,mBAAoBmB,EAAK,qBAAqB,GAE5EtH,EAAImG,iBAAiB,QAAQ,WAC3B,OAAOnG,EAAImG,iBAAiB,WAAYmB,EAAK,mBAAmB,MAGlEtH,EAAImG,iBAAiB,cAAc,SAAUC,GAC3C,IAAI5Y,EAAW4Y,EAAMmB,OAAS,CAC5BC,KAAMC,GAAiBrB,EAAMmB,OAAQvH,GACrC0H,GAAID,GAAiBrB,EAAMuB,OAAQ3H,GACnC4H,MAAOC,GAAgB7H,IACrB,CACF0H,GAAID,GAAiBzH,EAAI7R,SAASgU,KAAMnC,IAE1C/Q,EAAOoN,gBAAgB,eAAgB7O,EAAU,iBAChD,GAECwS,EAAI8H,QAAQC,cAAcC,GAAc/Y,EAAQ+Q,EAAI8H,QAAS,eAAgB9H,GAC7EA,EAAI8H,QAAQG,WAAWD,GAAc/Y,EAAQ+Q,EAAI8H,QAAS,YAAa9H,GAC3E/Q,EAAOoN,gBAAgB,iBAAkB,GAAI,iBAG/C+K,aAA0C,CACxCC,6BAA8B,CAC5B9a,aAAc,aAGdE,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,QAA6B0F,IAAV1F,GAE9C8E,QAAS,0BAkBTib,GAAmB,SAA0BlN,EAAKyF,GACpD,IAAIkI,EAAIlI,EAAI+D,SAASoE,cAAc,KAEnC,OADAD,EAAE/F,KAAO5H,EACF,GAAK2N,EAAE5G,SAAW4G,EAAEE,OAASF,EAAEG,MAcpCL,GAAgB,SAAuB/Y,EAAQhD,EAAQ1C,EAAIyW,GAC7D,IAAIsI,EAAOrc,EAAO1C,GAElB0C,EAAO1C,GAAM,SAAUqe,EAAOW,EAAOhO,GACnCtL,EAAOoN,gBAAgB,WAAa9S,EAfZ,SAA+ByW,EAAK4H,EAAOW,EAAOhO,GAC5E,IAAIiO,EAAcf,GAAiBzH,EAAI7R,SAASgU,KAAMnC,GACtD,MAAO,CACLuI,MAAOA,EACPX,MAAOA,EACPa,UAAWZ,GAAgB7H,GAC3B0H,GAAInN,GAAOiO,EACXhB,KAAMgB,GAQkCE,CAAsB1I,EAAK4H,EAAOW,EAAOhO,GAAM,cAEzD,oBAAnBtL,EAAO0Z,SAAwB1Z,EAAO0Z,UAE7C1Z,EAAOE,OAAOlC,qBAAqBgC,EAAOmN,eAG9CkM,EAAKlc,MAAMH,EAAQ,CAAC2b,EAAOW,GAAOpe,YAAeiD,IAARmN,EAAoBA,EAAM,OAUnEsN,GAAkB,SAAyB7H,GAC7C,IACE,OAAOA,EAAI8H,QAAQF,MACnB,MAAOhU,MAGPgV,GAA0B,GAC1BC,GAAkB,UAKlBC,GAAgB7e,EAMhB8e,GAAqB,WACvB,MAAO,CAAC9Z,GAAOE,OAAOrC,UAAUC,OAAQkC,GAAOE,OAAOrC,UAAUE,WAOlE4b,GAAwB5hB,KAAO,qBAE/B4hB,GAAwB9M,KAAO,SAAUkN,EAASC,EAAiBC,QACzC,IAApBD,IACFA,EAAkBF,SAGP,IAATG,IACFA,EAAOzgB,QAGT,IAAIwa,GAAkE,IAA7C+F,EAAQ7Z,OAAOga,0BACpChG,GAAwD,IAAnC6F,EAAQ7Z,OAAO7B,kBAA0E,IAA7C0b,EAAQ7Z,OAAOga,0BAChFlG,GAAsBE,IAC1BlU,GAAS+Z,EACThJ,GAAMkJ,EACN/B,GAAiB8B,EACjBG,KACAC,OAGFT,GAAwBjN,aAAe,CACrCwN,0BAA2B,CACzB5c,aAAc,aAGdE,SAAU,SAAkB/E,GAC1B,OAAiB,IAAVA,IAA4B,IAAVA,QAA6B0F,IAAV1F,GAE9C8E,QAAS,yBAcb,IAAI4c,GAA4B,WAC9B,GAAM,qBAAsBpJ,GAAIe,eAAe1Y,UAA/C,CACA,IAAIihB,EAAatJ,GAAIe,eAAe1Y,UAAUgY,KAE9CL,GAAIe,eAAe1Y,UAAUgY,KAAO,SAAc3S,EAAQ6M,GAExDlO,KAAKkd,SAAmBhP,EACxBlO,KAAKmd,SAAsB9b,EAGvBrB,KAAKod,WACPpd,KAAKqd,oBAAoB,OAAQC,IACjCtd,KAAKqd,oBAAoB,QAASE,KAIpCvd,KAAK8Z,iBAAiB,OAAQwD,IAE9Btd,KAAK8Z,iBAAiB,QAASyD,IAC/Bvd,KAAKod,UAAqB,EAC1BH,EAAWld,MAAMC,KAAMH,cAU3B,SAASyd,KACP,IAAIb,GAAc3B,KAAkB9a,KAAKkd,UAAzC,CAKA,IAAI/b,EAAW,CACbqc,OAAQxd,KAAKwd,OACb1T,QAAS9J,KAAKmd,SAAsB,IAAMnd,KAAKkd,UAG7Cld,KAAKwd,QAAU,IAEjB5a,GAAOoN,gBAAgB,wBAAyB7O,EAAUqb,IAE1D5Z,GAAOoN,gBAAgB,2BAA4B7O,EAAUqb,KAIjE,SAASe,KACHd,GAAc3B,GAAgB9a,KAAKkd,WAMvCta,GAAOoN,gBAAgB,uBAAwB,CAC7ClG,QAAS9J,KAAKmd,SAAsB,IAAMnd,KAAKkd,UAC9CV,IAIL,IAAIQ,GAAmB,WAIrB,GAAM,UAAWrJ,KAAQA,GAAI8J,MAAMC,SAAnC,CACA,IAAIC,EAAWhK,GAAI8J,MAEnB9J,GAAI8J,MAAQ,WACV,IAGIpc,EAHAuc,EAAa/d,UACbge,EAAehe,UAAU,GACzBie,EAAUje,UAAU,GAEpBqO,EAAM,KAsBV,OApBI2P,GAA0C,WAA1BjhB,EAAQihB,IAC1B3P,EAAM2P,EAAa3P,IAEf4P,GAAW,WAAYA,EACzBzc,EAASyc,EAAQzc,OACRwc,GAAgB,WAAYA,IACrCxc,EAASwc,EAAaxc,UAGxB6M,EAAM2P,EAEFC,GAAW,WAAYA,IACzBzc,EAASyc,EAAQzc,cAINN,IAAXM,IACFA,EAAS,OAGJ,IAAI0c,SAAQ,SAAUC,EAASC,GAEpCN,EAAS5d,WAAM,EAAQ6d,GAAY/M,MAAK,SAAUqN,GAChDC,GAAmBD,EAAU7c,EAAQ6M,GACrC8P,EAAQE,MACA,OAAE,SAAUtY,GACpBwY,GAAiB/c,EAAQ6M,GACzB+P,EAAOrY,YAYXuY,GAAqB,SAA4BD,EAAU7c,EAAQ6M,GACrE,IAAI/M,EAAW,CACbqc,OAAQU,EAASV,OACjB1T,QAASzI,EAAS,IAAM6M,GAGtBgQ,EAASV,QAAU,IAErB5a,GAAOoN,gBAAgB,iBAAkB7O,EAAUqb,IAEnD5Z,GAAOoN,gBAAgB,oBAAqB7O,EAAUqb,KAItD4B,GAAmB,SAA0B/c,EAAQ6M,GACvDtL,GAAOoN,gBAAgB,gBAAiB,CACtClG,QAASzI,EAAS,IAAM6M,GACvBsO,KAGD6B,GAAgBxf,EAAgBW,SAKhC8e,GAAgB,CAClB7O,KAAM,SAAc7M,GAElB,IAAI/G,EAAI,EAER+G,EAAOE,OAAOtC,WAAWtC,MAAK,SAAU+E,GAEtC,GAAIpH,GAAK+G,EAAOE,OAAOyb,UAAW,OAAOtb,EAAOqH,SAChDzO,OAGF+G,EAAO0Z,QAAU,WACfzgB,EAAI,IAGRyT,aAAc,CACZiP,UAAW,CACTre,aAAc,WACZ,OAAO,IAETC,QAAS,yCACTC,SAAU,SAAkBhD,GAC1B,OAAOihB,GAAc,EAAG,IAAjBA,CAAsBjhB,OAKjCohB,GAAwB,GAE5B,SAASC,KAeP,OAdAA,GAAgB3jB,OAAO6E,QAAU,SAAUC,GACzC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGF6e,GAAc1e,MAAMC,KAAMH,WAOnC,IAAI6e,GAAW9gB,EACf4gB,GAAwB,CACtB/O,KAAM,SAAc7M,GAClBA,EAAOE,OAAOtC,WAAWtC,MAAK,SAAU+E,GACtCA,EAAO4C,WAAa6Y,GAASzb,EAAO4C,YAAY,SAAUmE,GACxD,OAAOyU,GAAc,GAAIzU,EAAO,CAC9BgB,KAAM2T,GAAM3U,EAAMgB,gBAO5B,IAAI2T,GAAQH,GAAsBI,OAAS,SAAUhb,GACnD,MAAsB,kBAARA,EAAmBA,EAAI4C,QAAQ,QAAS,IAAIA,QAAQ,OAAQ,IAAM5C,GAO9Eib,GAAe,CACjBpP,KAAM,SAAc7M,EAAQ+Q,QACd,IAARA,IACFA,EAAMvX,QAsER,IAAI0iB,EAAcnL,EAAIoL,QACtBpL,EAAIoL,QApEJ,SAAiBC,EAAgB9Q,EAAK+Q,EAAQC,EAAQtZ,GAEpD,GAAe,IAAXqZ,GAAgB,kBAAkB1d,KAAKyd,GACzCpc,EAAO4L,QAAQE,KAAK,0FACf,CAEL,IAOIzL,EAPAkG,EAAe,CACjBY,SAAU,QACVe,WAAW,EACXC,eAAgB,CACdxI,KAAM,uBAMV,GAAIqD,EAGEA,EAAMjL,MAAQiL,EAAMzF,QAEtB8C,EAAS,IAAIL,EAAOoG,cAAcpD,EAAMjL,KAAMiL,EAAMzF,QAASgf,GAAcvc,EAAOoG,cAAcqC,cAAczF,GAAQsI,EAAK+Q,EAAQC,GAAS/V,EAAcvD,IAI1J3C,EAAS,IAAIL,EAAOoG,cAAc,iBAAkB3D,OAAOO,GAAQuZ,GAAcvc,EAAOoG,cAAcqC,cAAczF,EAAO,GAAIsI,EAAK+Q,EAAQC,GAAS/V,EAAcvD,IAE5J2E,eAAe,iBAAkB,CACtC3E,MAAOA,SAGN,GAQqB,WAA5BhJ,EAAQoiB,IAAmD,OAAnBA,GAA6B9Q,GAAsB,kBAARA,GAAsB+Q,GAAWC,GAAWtZ,GAe7H3C,EAAS,IAAIL,EAAOoG,cAAc,iBAAkB3D,OAAO2Z,GAAiBG,GAAcvc,EAAOoG,cAAcqC,cAAczF,EAAO,GAAIsI,EAAK+Q,EAAQC,GAAS/V,EAAc6V,IAErKzU,eAAe,iBAAkB,CACtCwP,MAAOiF,QAlB2H,CAEpI,IAAIrkB,EAAOqkB,EAAezc,KAAO,UAAYyc,EAAezc,KAAO,iBAG/DpC,EAAU6e,EAAe7e,SAAW6e,EAAeI,QAAU,IACjEnc,EAAS,IAAIL,EAAOoG,cAAcrO,EAAMwF,EAASyC,EAAOoG,cAAcqC,cAAc,IAAI5J,MAAS,GAAG7C,MAAM,GAAIuK,EAAc6V,IAErHzU,eAAe,iBAAkB,CACtCwP,MAAOiF,EACPK,gBAAiBnR,IAYrBtL,EAAOlC,OAAOuC,GAGW,oBAAhB6b,GAA4BA,EAAY/e,MAAMC,KAAMH,cAWjEsf,GAAgB,SAAuBpZ,EAAOmI,EAAK+Q,EAAQC,GAC7D,IAAII,EAAUvZ,EAAM,GACpB,OAAKuZ,GACAA,EAAQpY,UAA2B,kBAARgH,GAAkBoR,EAAQC,YAAYrR,IACjEoR,EAAQnY,YAAcqY,GAAeP,IAASK,EAAQG,cAAcR,GAEpEK,EAAQlY,eACPoY,GAAeN,GACjBI,EAAQI,gBAAgBR,GACf9iB,OAAO2d,OAASyF,GAAepjB,OAAO2d,MAAM4F,iBACrDL,EAAQI,gBAAgBtjB,OAAO2d,MAAM4F,iBAIlC5Z,GAZcA,GAenByZ,GAAiB,SAAwB3jB,GAC3C,MAAoB,kBAANA,GAAqC,QAAnBwJ,OAAO9K,KAAKsB,IAG1C+jB,GAA0B,GAI1BC,GAAcjiB,EAalBgiB,GAAwBnQ,KAAO,SAAU7M,EAAQ+Q,QACnC,IAARA,IACFA,EAAMvX,QAGR,IAAI0jB,EAAW,SAAkB/F,GAC/B,IAAInU,EAAQmU,EAAM7I,OACd6O,GAAa,EAEjB,IACMhG,EAAMqF,QAAUrF,EAAMqF,OAAOlO,SAC/BtL,EAAQmU,EAAMqF,OAAOlO,OACrB6O,GAAa,GAEf,MAAOxY,IAET,IAOItE,EAPAkG,EAAe,CACjBY,SAAU,QACVe,WAAW,EACXC,eAAgB,CACdxI,KAAM,8BAKNqD,GAASqC,EAAarC,IAExB3C,EAAS,IAAIL,EAAOoG,cAAcpD,EAAMjL,KAAMiL,EAAMzF,QAAS6H,EAAqBrC,MAAMC,GAAQuD,EAAcvD,GAE1Gma,IACF9c,EAAO4C,WAAaga,GAAY5c,EAAO4C,WAAYma,GAAsBpa,GAAQ,OAKnF3C,EAAS,IAAIL,EAAOoG,cAAcpD,GAASA,EAAMjL,KAAOiL,EAAMjL,KAAO,qBAAsBiL,GAASA,EAAMzF,QAAUyF,EAAMzF,QADhH,wEAC+H,GAAIgJ,EAAcvD,IAEpJ2E,eAAe,UAAW,mBAAoB0V,GAAmBra,IAG1EhD,EAAOlC,OAAOuC,IAGZ,qBAAsB0Q,EACxBA,EAAImG,iBAAiB,qBAAsBgG,GAE3CnM,EAAIuM,qBAAuB,SAAUhP,EAAQiP,GAC3CL,EAAS,CACPV,OAAQ,CACNlO,OAAQA,EACRiP,QAASA,OA2BnB,IA+CIC,GA/CAH,GAAqB,SAA4B/X,GACnD,OAAY,OAARA,QAAwBnH,IAARmH,EACX,sBACEnF,EAAamF,KAGfmY,EAAO,IAASvlB,OAAOkB,UAAUwB,SAASjD,KAAK2N,IAAQ,CAC5DvN,KAAMuN,EAAIvN,KACVwF,QAAS+H,EAAI/H,QACb+K,KAAMhD,EAAIgD,KACVnF,MAAOmC,EAAInC,OACVsa,GAEInY,EATP,IAAImY,GA+BJL,GAAwB,SAA+Bpa,GACzD,OAAO,SAAUzI,EAAO6M,GACtB,OAAIA,EAAMgB,OAASpF,EAAMpI,WAAmBL,GAExC6M,EAAM3I,SACR2I,EAAM3I,OAAS2I,EAAM3I,OAAOmF,QAAQ,OAAQ,KAGvCrJ,EAAMW,OAAOkM,MAMxB,SAASsW,KAeP,OAdAA,GAAexlB,OAAO6E,QAAU,SAAUC,GACxC,IAAK,IAAIxF,EAAI,EAAGA,EAAIyF,UAAUvC,OAAQlD,IAAK,CACzC,IAAI0F,EAASD,UAAUzF,GAEvB,IAAK,IAAIuB,KAAOmE,EACVhF,OAAOkB,UAAUC,eAAe1B,KAAKuF,EAAQnE,KAC/CiE,EAAOjE,GAAOmE,EAAOnE,IAK3B,OAAOiE,GAGF0gB,GAAavgB,MAAMC,KAAMH,WAGlC,IAgBI0gB,GAAaD,GAAa,GAAIphB,EAAWe,OAAQ4B,GAgHrD,OA5DAue,GAAe,SAAsBtf,GAEf,kBAATA,IAAmBA,EAAO,CACnCvE,OAAQuE,IAGV,IAAI0f,EAAiB,GAEjB1f,EAAKL,WAAaK,EAAKL,UAAUC,SAAWI,EAAKL,UAAUE,WAC7D6f,GAAkB,kFAGpB,IAAIlkB,EAAU,IAAIoV,GAAkB,CAClC/W,KAjFO,qBAkFPsT,QAjFU,QAkFVC,IAjFM,0CAiHR,OA9BA5R,EAAQwS,WAAWhO,GAEnBxE,EAAQqT,SAASvT,OAAO0X,eAAiBL,GAAgBgB,IAGzDnY,EAAQyS,UAAUwR,IACdC,GAAgBlkB,EAAQkS,QAAQE,KAAK8R,GAEzClkB,EAAQ8S,IAAIgG,IACZ9Y,EAAQ8S,IAAI2F,IACZzY,EAAQ8S,IAAIyG,IACZvZ,EAAQ8S,IAAIkP,IACZhiB,EAAQ8S,IAAI8G,IACZ5Z,EAAQ8S,IAAIiH,IACZ/Z,EAAQ8S,IAAIoP,KAEsB,IAA9BliB,EAAQwG,OAAOvC,aACjBjE,EAAQ8S,IAAIyP,IACZviB,EAAQ8S,IAAIwQ,KAGdtjB,EAAQ8S,IAAI2L,IACZze,EAAQ8S,IAAIwK,IACZtd,EAAQ8S,IAAImN,IACZjgB,EAAQ8S,IAAImH,IAEZja,EAAQ8S,IAAIoI,IAEZlb,EAAQkS,QAAQvM,MAAM,WAEf3F,EAAQwG,OAAOlC,oBAAsBtE,EAAQyT,eAAiBzT,IAK1DmkB,QAAU,CACrBC,OAAQhP,GACRiP,OAAQjV,EACRyB,QAASD,GACT0T,WAAYle,GAGd0d,GAAsB,QAAIA,GACnBA,IAtvGmE,WAAtBxjB,EAAQ1C,IAA4C,qBAAXC,EAC3FA,EAAOD,QAAUyC,KAEjB,EAAO,QAAK,2BAAD,EAAF,GAAG","file":"js/bugsnag-042c0ceb258eef096b75.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","module.exports = require('@bugsnag/browser');","\nimport bugsnag from '@bugsnag/js'\nwindow.bugsnagClient = bugsnag({\n apiKey: '82b79dfb75e3bb7148eb2febe7a2c999',\n releaseStage: 'staging',\n notifyReleaseStages: ['development', 'staging', 'production'],\n collectUserIp: false,\n }\n)\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (f) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.bugsnag = f();\n }\n})(function () {\n var define, module, exports; // minimal implementations of useful ES functionality\n // all we really need for arrays is reduce – everything else is just sugar!\n // Array#reduce\n\n var reduce = function reduce(arr, fn, accum) {\n var val = accum;\n\n for (var i = 0, len = arr.length; i < len; i++) {\n val = fn(val, arr[i], i, arr);\n }\n\n return val;\n }; // Array#filter\n\n\n var filter = function filter(arr, fn) {\n return reduce(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n }; // Array#map\n\n\n var map = function map(arr, fn) {\n return reduce(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n }; // Array#includes\n\n\n var includes = function includes(arr, x) {\n return reduce(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n };\n\n var _hasDontEnumBug = !{\n toString: null\n }.propertyIsEnumerable('toString');\n\n var _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor']; // Object#keys\n\n var keys = function keys(obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n\n if (!_hasDontEnumBug) return result;\n\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n\n return result;\n }; // Array#isArray\n\n\n var isArray = function isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n var _pad = function _pad(n) {\n return n < 10 ? \"0\" + n : n;\n }; // Date#toISOString\n\n\n var isoDate = function isoDate() {\n // from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString\n var d = new Date();\n return d.getUTCFullYear() + '-' + _pad(d.getUTCMonth() + 1) + '-' + _pad(d.getUTCDate()) + 'T' + _pad(d.getUTCHours()) + ':' + _pad(d.getUTCMinutes()) + ':' + _pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n };\n\n var _$esUtils_8 = {\n map: map,\n reduce: reduce,\n filter: filter,\n includes: includes,\n keys: keys,\n isArray: isArray,\n isoDate: isoDate\n };\n var _$validators_15 = {};\n\n _$validators_15.intRange = function (min, max) {\n if (min === void 0) {\n min = 1;\n }\n\n if (max === void 0) {\n max = Infinity;\n }\n\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n };\n\n _$validators_15.stringWithLength = function (value) {\n return typeof value === 'string' && !!value.length;\n };\n\n var _$config_5 = {};\n var __filter_5 = _$esUtils_8.filter,\n __reduce_5 = _$esUtils_8.reduce,\n __keys_5 = _$esUtils_8.keys,\n __isArray_5 = _$esUtils_8.isArray,\n __includes_5 = _$esUtils_8.includes;\n var intRange = _$validators_15.intRange,\n stringWithLength = _$validators_15.stringWithLength;\n _$config_5.schema = {\n apiKey: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'is required',\n validate: stringWithLength\n },\n appVersion: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'should be a string',\n validate: function validate(value) {\n return value === null || stringWithLength(value);\n }\n },\n appType: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'should be a string',\n validate: function validate(value) {\n return value === null || stringWithLength(value);\n }\n },\n autoNotify: {\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(value) {\n return value === true || value === false;\n }\n },\n beforeSend: {\n defaultValue: function defaultValue() {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: function validate(value) {\n return typeof value === 'function' || __isArray_5(value) && __filter_5(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n }\n },\n endpoints: {\n defaultValue: function defaultValue() {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }. sessions is optional if autoCaptureSessions=false',\n validate: function validate(val, obj) {\n return (// first, ensure it's an object\n val && _typeof(val) === 'object' && // endpoints.notify must always be set\n stringWithLength(val.notify) && ( // endpoints.sessions must be set unless session tracking is explicitly off\n obj.autoCaptureSessions === false || stringWithLength(val.sessions)) && // ensure no keys other than notify/session are set on endpoints object\n __filter_5(__keys_5(val), function (k) {\n return !__includes_5(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoCaptureSessions: {\n defaultValue: function defaultValue(val, opts) {\n return opts.endpoints === undefined || !!opts.endpoints && !!opts.endpoints.sessions;\n },\n message: 'should be true|false',\n validate: function validate(val) {\n return val === true || val === false;\n }\n },\n notifyReleaseStages: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'should be an array of strings',\n validate: function validate(value) {\n return value === null || __isArray_5(value) && __filter_5(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function defaultValue() {\n return 'production';\n },\n message: 'should be a string',\n validate: function validate(value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function defaultValue() {\n return 20;\n },\n message: 'should be a number ≤40',\n validate: function validate(value) {\n return intRange(0, 40)(value);\n }\n },\n autoBreadcrumbs: {\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(value) {\n return typeof value === 'boolean';\n }\n },\n user: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: '(object) user should be an object',\n validate: function validate(value) {\n return _typeof(value) === 'object';\n }\n },\n metaData: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'should be an object',\n validate: function validate(value) {\n return _typeof(value) === 'object';\n }\n },\n logger: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function validate(value) {\n return !value || value && __reduce_5(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n filters: {\n defaultValue: function defaultValue() {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function validate(value) {\n return __isArray_5(value) && value.length === __filter_5(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n }\n };\n\n _$config_5.mergeDefaults = function (opts, schema) {\n if (!opts || !schema) throw new Error('opts and schema objects are required');\n return __reduce_5(__keys_5(schema), function (accum, key) {\n accum[key] = opts[key] !== undefined ? opts[key] : schema[key].defaultValue(opts[key], opts);\n return accum;\n }, {});\n };\n\n _$config_5.validate = function (opts, schema) {\n if (!opts || !schema) throw new Error('opts and schema objects are required');\n\n var errors = __reduce_5(__keys_5(schema), function (accum, key) {\n if (schema[key].validate(opts[key], opts)) return accum;\n return accum.concat({\n key: key,\n message: schema[key].message,\n value: opts[key]\n });\n }, []);\n\n return {\n valid: !errors.length,\n errors: errors\n };\n };\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n var schema = _$config_5.schema;\n var __map_1 = _$esUtils_8.map;\n var __stringWithLength_1 = _$validators_15.stringWithLength;\n var _$config_1 = {\n releaseStage: {\n defaultValue: function defaultValue() {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n },\n message: 'should be set',\n validate: __stringWithLength_1\n },\n logger: _extends({}, schema.logger, {\n defaultValue: function defaultValue() {\n return (// set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n };\n\n var getPrefixedConsole = function getPrefixedConsole() {\n var logger = {};\n var consoleLog = console['log'];\n\n __map_1(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n\n return logger;\n };\n\n var __isoDate_3 = _$esUtils_8.isoDate;\n\n var BugsnagBreadcrumb = /*#__PURE__*/function () {\n function BugsnagBreadcrumb(name, metaData, type, timestamp) {\n if (name === void 0) {\n name = '[anonymous]';\n }\n\n if (metaData === void 0) {\n metaData = {};\n }\n\n if (type === void 0) {\n type = 'manual';\n }\n\n if (timestamp === void 0) {\n timestamp = __isoDate_3();\n }\n\n this.type = type;\n this.name = name;\n this.metaData = metaData;\n this.timestamp = timestamp;\n }\n\n var _proto = BugsnagBreadcrumb.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.name,\n timestamp: this.timestamp,\n metaData: this.metaData\n };\n };\n\n return BugsnagBreadcrumb;\n }();\n\n var _$BugsnagBreadcrumb_3 = BugsnagBreadcrumb; // This is a heavily modified/simplified version of\n // https://github.com/othiym23/async-some\n //\n // We can't use that because:\n // a) it inflates the bundle size to over 10kB\n // b) it depends on a module that uses Object.keys()\n // (which we can't use due to ie8 support)\n // run the asynchronous test function (fn) over each item in the array (arr)\n // in series until:\n // - fn(item, cb) => calls cb(null, true)\n // - or the end of the array is reached\n // the callback (cb) will be passed true if any of the items resulted in a true\n // callback, otherwise false\n\n var _$asyncSome_6 = function _$asyncSome_6(arr, fn, cb) {\n var length = arr.length;\n var index = 0;\n\n var next = function next() {\n if (index >= length) return cb(null, false);\n fn(arr[index], function (err, result) {\n if (err) return cb(err, false);\n if (result === true) return cb(null, true);\n index++;\n next();\n });\n };\n\n next();\n };\n\n var _$inferReleaseStage_10 = function _$inferReleaseStage_10(client) {\n return client.app && typeof client.app.releaseStage === 'string' ? client.app.releaseStage : client.config.releaseStage;\n };\n /**\n * Expose `isError`.\n */\n\n\n var _$isError_21 = isError;\n /**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\n function isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return value instanceof Error;\n }\n }\n\n var _$iserror_11 = _$isError_21;\n\n var _$runBeforeSend_14 = function _$runBeforeSend_14(report, onError) {\n return function (fn, cb) {\n if (typeof fn !== 'function') return cb(null, false);\n\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(report); // check if it returned a \"thenable\" (promise)\n\n if (ret && typeof ret.then === 'function') {\n return ret.then( // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, shouldPreventSend(report, val));\n }, 0);\n }, // reject\n function (err) {\n setTimeout(function () {\n onError(err);\n return cb(null, false);\n });\n });\n }\n\n return cb(null, shouldPreventSend(report, ret));\n } // if function is async…\n\n\n fn(report, function (err, result) {\n if (err) {\n onError(err);\n return cb(null, false);\n }\n\n cb(null, shouldPreventSend(report, result));\n });\n } catch (e) {\n onError(e);\n cb(null, false);\n }\n };\n };\n\n var shouldPreventSend = function shouldPreventSend(report, value) {\n return report.isIgnored() || value === false;\n };\n\n var _$stackframe_23 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (_typeof(_$stackframe_23) === 'object') {\n _$stackframe_23 = factory();\n } else {\n root.StackFrame = factory();\n }\n })(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function getArgs() {\n return this.args;\n },\n setArgs: function setArgs(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n\n this.args = v;\n },\n getEvalOrigin: function getEvalOrigin() {\n return this.evalOrigin;\n },\n setEvalOrigin: function setEvalOrigin(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function toString() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? '@' + this.getFileName() : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? ':' + this.getLineNumber() : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? ':' + this.getColumnNumber() : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n\n return StackFrame;\n });\n\n var _$errorStackParser_20 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (_typeof(_$errorStackParser_20) === 'object') {\n _$errorStackParser_20 = factory(_$stackframe_23);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n })(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '('); // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/); // remove the parenthesized location from the line, if it was matched\n\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1); // if a location was matched, pass it to extractLocation() otherwise pop the last token\n\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n });\n\n var _$errorStackParser_7 = _$errorStackParser_20; // Given `err` which may be an error, does it have a stack property which is a string?\n\n var _$hasStack_9 = function _$hasStack_9(err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n };\n\n var _$jsRuntime_12 = \"yes\" ? 'browserjs' : typeof navigator !== 'undefined' && navigator.product === 'ReactNative' ? typeof Expo !== 'undefined' ? 'expojs' : 'reactnativejs' : 'nodejs';\n\n var _$stackGenerator_22 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (_typeof(_$stackGenerator_22) === 'object') {\n _$stackGenerator_22 = factory(_$stackframe_23);\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n })(this, function (StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (_typeof(opts) === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n\n return stack;\n }\n };\n });\n\n function ___extends_24() {\n ___extends_24 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_24.apply(this, arguments);\n }\n /* removed: var _$errorStackParser_7 = require('./lib/error-stack-parser'); */\n\n\n ;\n /* removed: var _$stackGenerator_22 = require('stack-generator'); */\n\n ;\n /* removed: var _$hasStack_9 = require('./lib/has-stack'); */\n\n ;\n var __reduce_24 = _$esUtils_8.reduce,\n __filter_24 = _$esUtils_8.filter;\n /* removed: var _$jsRuntime_12 = require('./lib/js-runtime'); */\n\n ;\n\n var BugsnagReport = /*#__PURE__*/function () {\n function BugsnagReport(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n\n if (handledState === void 0) {\n handledState = defaultHandledState();\n } // duck-typing ftw >_<\n\n\n this.__isBugsnagReport = true;\n this._ignored = false; // private (un)handled state\n\n this._handledState = handledState; // setable props\n\n this.app = undefined;\n this.apiKey = undefined;\n this.breadcrumbs = [];\n this.context = undefined;\n this.device = undefined;\n this.errorClass = stringOrFallback(errorClass, '[no error class]');\n this.errorMessage = stringOrFallback(errorMessage, '[no error message]');\n this.groupingHash = undefined;\n this.metaData = {};\n this.request = undefined;\n this.severity = this._handledState.severity;\n this.stacktrace = __reduce_24(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame); // don't include a stackframe if none of its properties are defined\n\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\n }\n }, []);\n this.user = undefined;\n this.session = undefined;\n this.originalError = originalError; // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n var _proto = BugsnagReport.prototype;\n\n _proto.ignore = function ignore() {\n this._ignored = true;\n };\n\n _proto.isIgnored = function isIgnored() {\n return this._ignored;\n };\n\n _proto.updateMetaData = function updateMetaData(section) {\n var _updates;\n\n if (!section) return this;\n var updates; // updateMetaData(\"section\", null) -> removes section\n\n if ((arguments.length <= 1 ? undefined : arguments[1]) === null) return this.removeMetaData(section); // updateMetaData(\"section\", \"property\", null) -> removes property from section\n\n if ((arguments.length <= 2 ? undefined : arguments[2]) === null) return this.removeMetaData(section, arguments.length <= 1 ? undefined : arguments[1], arguments.length <= 2 ? undefined : arguments[2]); // normalise the two supported input types into object form\n\n if (_typeof(arguments.length <= 1 ? undefined : arguments[1]) === 'object') updates = arguments.length <= 1 ? undefined : arguments[1];\n if (typeof (arguments.length <= 1 ? undefined : arguments[1]) === 'string') updates = (_updates = {}, _updates[arguments.length <= 1 ? undefined : arguments[1]] = arguments.length <= 2 ? undefined : arguments[2], _updates); // exit if we don't have an updates object at this point\n\n if (!updates) return this; // ensure a section with this name exists\n\n if (!this.metaData[section]) this.metaData[section] = {}; // merge the updates with the existing section\n\n this.metaData[section] = ___extends_24({}, this.metaData[section], updates);\n return this;\n };\n\n _proto.removeMetaData = function removeMetaData(section, property) {\n if (typeof section !== 'string') return this; // remove an entire section\n\n if (!property) {\n delete this.metaData[section];\n return this;\n } // remove a single property from a section\n\n\n if (this.metaData[section]) {\n delete this.metaData[section][property];\n return this;\n }\n\n return this;\n };\n\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: [{\n errorClass: this.errorClass,\n message: this.errorMessage,\n stacktrace: this.stacktrace,\n type: _$jsRuntime_12\n }],\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n user: this.user,\n metaData: this.metaData,\n groupingHash: this.groupingHash,\n request: this.request,\n session: this.session\n };\n };\n\n return BugsnagReport;\n }(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n // and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\n\n\n var formatStackframe = function formatStackframe(frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n\n };\n\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n\n return f;\n };\n\n var normaliseFunctionName = function normaliseFunctionName(name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n };\n\n var defaultHandledState = function defaultHandledState() {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n };\n\n var stringOrFallback = function stringOrFallback(str, fallback) {\n return typeof str === 'string' && str ? str : fallback;\n }; // Helpers\n\n\n BugsnagReport.getStacktrace = function (error, errorFramesToSkip, generatedFramesToSkip) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n\n if (generatedFramesToSkip === void 0) {\n generatedFramesToSkip = 0;\n }\n\n if (_$hasStack_9(error)) return _$errorStackParser_7.parse(error).slice(errorFramesToSkip); // in IE11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n\n try {\n throw error;\n } catch (e) {\n if (_$hasStack_9(e)) return _$errorStackParser_7.parse(error).slice(1 + generatedFramesToSkip); // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n\n try {\n return __filter_24(_$stackGenerator_22.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + generatedFramesToSkip);\n } catch (e) {\n return [];\n }\n }\n };\n\n BugsnagReport.ensureReport = function (reportOrError, errorFramesToSkip, generatedFramesToSkip) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n\n if (generatedFramesToSkip === void 0) {\n generatedFramesToSkip = 0;\n } // notify() can be called with a Report object. In this case no action is required\n\n\n if (reportOrError.__isBugsnagReport) return reportOrError;\n\n try {\n var stacktrace = BugsnagReport.getStacktrace(reportOrError, errorFramesToSkip, 1 + generatedFramesToSkip);\n return new BugsnagReport(reportOrError.name, reportOrError.message, stacktrace, undefined, reportOrError);\n } catch (e) {\n return new BugsnagReport(reportOrError.name, reportOrError.message, [], undefined, reportOrError);\n }\n };\n\n var _$BugsnagReport_24 = BugsnagReport;\n\n var _$pad_18 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n };\n /* removed: var _$pad_18 = require('./pad.js'); */\n\n\n ;\n var env = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : self;\n var globalCount = 0;\n\n for (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n }\n\n var mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\n\n var clientId = _$pad_18((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\n\n var _$fingerprint_17 = function fingerprint() {\n return clientId;\n };\n /**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\n /* removed: var _$fingerprint_17 = require('./lib/fingerprint.js'); */\n\n\n ;\n /* removed: var _$pad_18 = require('./lib/pad.js'); */\n\n ;\n var c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\n function randomBlock() {\n return _$pad_18((Math.random() * discreteValues << 0).toString(base), blockSize);\n }\n\n function safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n\n return c - 1;\n }\n\n function cuid() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_18(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_17(),\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n\n return letter + timestamp + counter + print + random;\n }\n\n cuid.fingerprint = _$fingerprint_17;\n var _$cuid_16 = cuid;\n var __isoDate_25 = _$esUtils_8.isoDate;\n /* removed: var _$cuid_16 = require('@bugsnag/cuid'); */\n\n ;\n\n var Session = /*#__PURE__*/function () {\n function Session() {\n this.id = _$cuid_16();\n this.startedAt = __isoDate_25();\n this._handled = 0;\n this._unhandled = 0;\n }\n\n var _proto = Session.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n\n _proto.trackError = function trackError(report) {\n this[report._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n\n return Session;\n }();\n\n var _$Session_25 = Session;\n\n function ___extends_4() {\n ___extends_4 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_4.apply(this, arguments);\n }\n /* removed: var _$config_5 = require('./config'); */\n\n\n ;\n /* removed: var _$BugsnagReport_24 = require('./report'); */\n\n ;\n /* removed: var _$BugsnagBreadcrumb_3 = require('./breadcrumb'); */\n\n ;\n /* removed: var _$Session_25 = require('./session'); */\n\n ;\n var __map_4 = _$esUtils_8.map,\n __includes_4 = _$esUtils_8.includes,\n __isArray_4 = _$esUtils_8.isArray;\n /* removed: var _$inferReleaseStage_10 = require('./lib/infer-release-stage'); */\n\n ;\n /* removed: var _$iserror_11 = require('./lib/iserror'); */\n\n ;\n /* removed: var _$asyncSome_6 = require('./lib/async-some'); */\n\n ;\n /* removed: var _$runBeforeSend_14 = require('./lib/run-before-send'); */\n\n ;\n var LOG_USAGE_ERR_PREFIX = \"Usage error.\";\n var REPORT_USAGE_ERR_PREFIX = \"Bugsnag usage error.\";\n\n var BugsnagClient = /*#__PURE__*/function () {\n function BugsnagClient(notifier) {\n if (!notifier || !notifier.name || !notifier.version || !notifier.url) {\n throw new Error('`notifier` argument is required');\n } // notifier id\n\n\n this.notifier = notifier; // configure() should be called before notify()\n\n this._configured = false; // intialise opts and config\n\n this._opts = {};\n this.config = {}; // // i/o\n\n this._delivery = {\n sendSession: function sendSession() {},\n sendReport: function sendReport() {}\n };\n this._logger = {\n debug: function debug() {},\n info: function info() {},\n warn: function warn() {},\n error: function error() {} // plugins\n\n };\n this._plugins = {};\n this._session = null;\n this.breadcrumbs = []; // setable props\n\n this.app = {};\n this.context = undefined;\n this.device = undefined;\n this.metaData = undefined;\n this.request = undefined;\n this.user = {}; // expose internal constructors\n\n this.BugsnagClient = BugsnagClient;\n this.BugsnagReport = _$BugsnagReport_24;\n this.BugsnagBreadcrumb = _$BugsnagBreadcrumb_3;\n this.BugsnagSession = _$Session_25;\n var self = this;\n var notify = this.notify;\n\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n\n var _proto = BugsnagClient.prototype;\n\n _proto.setOptions = function setOptions(opts) {\n this._opts = ___extends_4({}, this._opts, opts);\n };\n\n _proto.configure = function configure(partialSchema) {\n if (partialSchema === void 0) {\n partialSchema = _$config_5.schema;\n }\n\n var conf = _$config_5.mergeDefaults(this._opts, partialSchema);\n\n var validity = _$config_5.validate(conf, partialSchema);\n\n if (!validity.valid === true) throw new Error(generateConfigErrorMessage(validity.errors)); // update and elevate some special options if they were passed in at this point\n\n if (typeof conf.beforeSend === 'function') conf.beforeSend = [conf.beforeSend];\n if (conf.appVersion) this.app.version = conf.appVersion;\n if (conf.appType) this.app.type = conf.appType;\n if (conf.metaData) this.metaData = conf.metaData;\n if (conf.user) this.user = conf.user;\n if (conf.logger) this.logger(conf.logger); // merge with existing config\n\n this.config = ___extends_4({}, this.config, conf);\n this._configured = true;\n return this;\n };\n\n _proto.use = function use(plugin) {\n if (!this._configured) throw new Error('client not configured');\n if (plugin.configSchema) this.configure(plugin.configSchema);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var result = plugin.init.apply(plugin, [this].concat(args)); // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n return this;\n };\n\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n\n _proto.delivery = function delivery(d) {\n this._delivery = d(this);\n return this;\n };\n\n _proto.logger = function logger(l, sid) {\n this._logger = l;\n return this;\n };\n\n _proto.sessionDelegate = function sessionDelegate(s) {\n this._sessionDelegate = s;\n return this;\n };\n\n _proto.startSession = function startSession() {\n if (!this._sessionDelegate) {\n this._logger.warn('No session implementation is installed');\n\n return this;\n }\n\n return this._sessionDelegate.startSession(this);\n };\n\n _proto.leaveBreadcrumb = function leaveBreadcrumb(name, metaData, type, timestamp) {\n if (!this._configured) throw new Error('client not configured'); // coerce bad values so that the defaults get set\n\n name = name || undefined;\n type = typeof type === 'string' ? type : undefined;\n timestamp = typeof timestamp === 'string' ? timestamp : undefined;\n metaData = _typeof(metaData) === 'object' && metaData !== null ? metaData : undefined; // if no name and no metaData, usefulness of this crumb is questionable at best so discard\n\n if (typeof name !== 'string' && !metaData) return;\n var crumb = new _$BugsnagBreadcrumb_3(name, metaData, type, timestamp); // push the valid crumb onto the queue and maintain the length\n\n this.breadcrumbs.push(crumb);\n\n if (this.breadcrumbs.length > this.config.maxBreadcrumbs) {\n this.breadcrumbs = this.breadcrumbs.slice(this.breadcrumbs.length - this.config.maxBreadcrumbs);\n }\n\n return this;\n };\n\n _proto.notify = function notify(error, opts, cb) {\n var _this = this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n if (!this._configured) throw new Error('client not configured'); // releaseStage can be set via config.releaseStage or client.app.releaseStage\n\n var releaseStage = _$inferReleaseStage_10(this); // ensure we have an error (or a reasonable object representation of an error)\n\n\n var _normaliseError = normaliseError(error, opts, this._logger),\n err = _normaliseError.err,\n errorFramesToSkip = _normaliseError.errorFramesToSkip,\n _opts = _normaliseError._opts;\n\n if (_opts) opts = _opts; // ensure opts is an object\n\n if (_typeof(opts) !== 'object' || opts === null) opts = {}; // create a report from the error, if it isn't one already\n\n var report = _$BugsnagReport_24.ensureReport(err, errorFramesToSkip, 2);\n\n report.app = ___extends_4({}, {\n releaseStage: releaseStage\n }, report.app, this.app);\n report.context = report.context || opts.context || this.context || undefined;\n report.device = ___extends_4({}, report.device, this.device, opts.device);\n report.request = ___extends_4({}, report.request, this.request, opts.request);\n report.user = ___extends_4({}, report.user, this.user, opts.user);\n report.metaData = ___extends_4({}, report.metaData, this.metaData, opts.metaData);\n report.breadcrumbs = this.breadcrumbs.slice(0);\n\n if (this._session) {\n this._session.trackError(report);\n\n report.session = this._session;\n } // set severity if supplied\n\n\n if (opts.severity !== undefined) {\n report.severity = opts.severity;\n report._handledState.severityReason = {\n type: 'userSpecifiedSeverity'\n };\n } // exit early if the reports should not be sent on the current releaseStage\n\n\n if (__isArray_4(this.config.notifyReleaseStages) && !__includes_4(this.config.notifyReleaseStages, releaseStage)) {\n this._logger.warn(\"Report not sent due to releaseStage/notifyReleaseStages configuration\");\n\n return cb(null, report);\n }\n\n var originalSeverity = report.severity;\n var beforeSend = [].concat(opts.beforeSend).concat(this.config.beforeSend);\n\n var onBeforeSendErr = function onBeforeSendErr(err) {\n _this._logger.error(\"Error occurred in beforeSend callback, continuing anyway\\u2026\");\n\n _this._logger.error(err);\n };\n\n _$asyncSome_6(beforeSend, _$runBeforeSend_14(report, onBeforeSendErr), function (err, preventSend) {\n if (err) onBeforeSendErr(err);\n\n if (preventSend) {\n _this._logger.debug(\"Report not sent due to beforeSend callback\");\n\n return cb(null, report);\n } // only leave a crumb for the error if actually got sent\n\n\n if (_this.config.autoBreadcrumbs) {\n _this.leaveBreadcrumb(report.errorClass, {\n errorClass: report.errorClass,\n errorMessage: report.errorMessage,\n severity: report.severity\n }, 'error');\n }\n\n if (originalSeverity !== report.severity) {\n report._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n\n _this._delivery.sendReport({\n apiKey: report.apiKey || _this.config.apiKey,\n notifier: _this.notifier,\n events: [report]\n }, function (err) {\n return cb(err, report);\n });\n });\n };\n\n return BugsnagClient;\n }();\n\n var normaliseError = function normaliseError(error, opts, logger) {\n var synthesizedErrorFramesToSkip = 3;\n\n var createAndLogUsageError = function createAndLogUsageError(reason) {\n var msg = generateNotifyUsageMessage(reason);\n logger.warn(LOG_USAGE_ERR_PREFIX + \" \" + msg);\n return new Error(REPORT_USAGE_ERR_PREFIX + \" \" + msg);\n };\n\n var err;\n var errorFramesToSkip = 0;\n\n var _opts;\n\n switch (_typeof(error)) {\n case 'string':\n if (typeof opts === 'string') {\n // ≤v3 used to have a notify('ErrorName', 'Error message') interface\n // report usage/deprecation errors if this function is called like that\n err = createAndLogUsageError('string/string');\n _opts = {\n metaData: {\n notifier: {\n notifyArgs: [error, opts]\n }\n }\n };\n } else {\n err = new Error(String(error));\n errorFramesToSkip = synthesizedErrorFramesToSkip;\n }\n\n break;\n\n case 'number':\n case 'boolean':\n err = new Error(String(error));\n break;\n\n case 'function':\n err = createAndLogUsageError('function');\n break;\n\n case 'object':\n if (error !== null && (_$iserror_11(error) || error.__isBugsnagReport)) {\n err = error;\n } else if (error !== null && hasNecessaryFields(error)) {\n err = new Error(error.message || error.errorMessage);\n err.name = error.name || error.errorClass;\n errorFramesToSkip = synthesizedErrorFramesToSkip;\n } else {\n err = createAndLogUsageError(error === null ? 'null' : 'unsupported object');\n }\n\n break;\n\n default:\n err = createAndLogUsageError('nothing');\n }\n\n return {\n err: err,\n errorFramesToSkip: errorFramesToSkip,\n _opts: _opts\n };\n };\n\n var hasNecessaryFields = function hasNecessaryFields(error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n };\n\n var generateConfigErrorMessage = function generateConfigErrorMessage(errors) {\n return \"Bugsnag configuration error\\n\" + __map_4(errors, function (err) {\n return \"\\\"\" + err.key + \"\\\" \" + err.message + \" \\n got \" + stringify(err.value);\n }).join('\\n\\n');\n };\n\n var generateNotifyUsageMessage = function generateNotifyUsageMessage(actual) {\n return \"notify() expected error/opts parameters, got \" + actual;\n };\n\n var stringify = function stringify(val) {\n return _typeof(val) === 'object' ? JSON.stringify(val) : String(val);\n };\n\n var _$BugsnagClient_4 = BugsnagClient;\n\n var _$safeJsonStringify_19 = function _$safeJsonStringify_19(data, replacer, space, opts) {\n var filterKeys = opts && opts.filterKeys ? opts.filterKeys : [];\n var filterPaths = opts && opts.filterPaths ? opts.filterPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, filterKeys, filterPaths), replacer, space);\n };\n\n var MAX_DEPTH = 20;\n var MAX_EDGES = 25000;\n var MIN_PRESERVED_DEPTH = 8;\n var REPLACEMENT_NODE = '...';\n\n function __isError_19(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n }\n\n function throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n }\n\n function find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n\n return false;\n } // returns true if the string `path` starts with any of the provided `paths`\n\n\n function isDescendent(paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true;\n }\n\n return false;\n }\n\n function shouldFilter(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i] === key) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n\n return false;\n }\n\n function __isArray_19(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n }\n\n function safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n }\n\n function prepareObjForSerialization(obj, filterKeys, filterPaths) {\n var seen = []; // store references to objects we have seen before\n\n var edges = 0;\n\n function visit(obj, path) {\n function edgesExceeded() {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES;\n }\n\n edges++;\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || _typeof(obj) !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--;\n var fResult = visit(obj.toJSON(), path);\n seen.pop();\n return fResult;\n } catch (err) {\n return throwsMessage(err);\n }\n }\n\n var er = __isError_19(obj);\n\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n\n if (__isArray_19(obj)) {\n var aResult = [];\n\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n\n seen.pop();\n return aResult;\n }\n\n var result = {};\n\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n\n if (isDescendent(filterPaths, path.join('.')) && shouldFilter(filterKeys, prop)) {\n result[prop] = '[Filtered]';\n continue;\n }\n\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n\n seen.pop();\n return result;\n }\n\n return visit(obj, []);\n }\n\n var _$jsonPayload_13 = {};\n /* removed: var _$safeJsonStringify_19 = require('@bugsnag/safe-json-stringify'); */\n\n ;\n var REPORT_FILTER_PATHS = ['events.[].app', 'events.[].metaData', 'events.[].user', 'events.[].breadcrumbs', 'events.[].request', 'events.[].device'];\n var SESSION_FILTER_PATHS = ['device', 'app', 'user'];\n\n _$jsonPayload_13.report = function (report, filterKeys) {\n var payload = _$safeJsonStringify_19(report, null, null, {\n filterPaths: REPORT_FILTER_PATHS,\n filterKeys: filterKeys\n });\n\n if (payload.length > 10e5) {\n delete report.events[0].metaData;\n report.events[0].metaData = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetaData was removed\"\n };\n payload = _$safeJsonStringify_19(report, null, null, {\n filterPaths: REPORT_FILTER_PATHS,\n filterKeys: filterKeys\n });\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n }\n\n return payload;\n };\n\n _$jsonPayload_13.session = function (report, filterKeys) {\n var payload = _$safeJsonStringify_19(report, null, null, {\n filterPaths: SESSION_FILTER_PATHS,\n filterKeys: filterKeys\n });\n\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n return payload;\n };\n\n var _$delivery_26 = {};\n /* removed: var _$jsonPayload_13 = require('@bugsnag/core/lib/json-payload'); */\n\n ;\n var __isoDate_26 = _$esUtils_8.isoDate;\n\n _$delivery_26 = function _$delivery_26(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendReport: function sendReport(report, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n var url = getApiUrl(client.config, 'notify', '4', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_13.report(report, client.config.filters));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n },\n sendSession: function sendSession(session, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n var url = getApiUrl(client.config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_13.session(session, client.config.filters));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n }\n };\n };\n\n var getApiUrl = function getApiUrl(config, endpoint, version, win) {\n return matchPageProtocol(config.endpoints[endpoint], win.location.protocol) + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(__isoDate_26());\n };\n\n var matchPageProtocol = _$delivery_26._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n };\n /* removed: var _$jsonPayload_13 = require('@bugsnag/core/lib/json-payload'); */\n\n\n ;\n var __isoDate_27 = _$esUtils_8.isoDate;\n\n var _$delivery_27 = function _$delivery_27(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendReport: function sendReport(report, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n try {\n var url = client.config.endpoints.notify;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', report.apiKey || client.config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', __isoDate_27());\n req.send(_$jsonPayload_13.report(report, client.config.filters));\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function sendSession(session, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n try {\n var url = client.config.endpoints.sessions;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client.config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', __isoDate_27());\n req.send(_$jsonPayload_13.session(session, client.config.filters));\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n };\n /*\n * Sets the default context to be the current URL\n */\n\n\n var _$context_28 = {\n init: function init(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n client.config.beforeSend.unshift(function (report) {\n if (report.context) return;\n report.context = win.location.pathname;\n });\n }\n };\n\n function ___extends_29() {\n ___extends_29 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_29.apply(this, arguments);\n }\n\n var __isoDate_29 = _$esUtils_8.isoDate;\n /*\n * Automatically detects browser device details\n */\n\n var _$device_29 = {\n init: function init(client, nav) {\n if (nav === void 0) {\n nav = navigator;\n }\n\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent // merge with anything already set on the client\n\n };\n client.device = ___extends_29({}, device, client.device); // add time just as the report is sent\n\n client.config.beforeSend.unshift(function (report) {\n report.device = ___extends_29({}, report.device, {\n time: __isoDate_29()\n });\n });\n }\n };\n\n function ___extends_30() {\n ___extends_30 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_30.apply(this, arguments);\n }\n /*\n * Sets the report request: { url } to be the current href\n */\n\n\n var _$request_30 = {\n init: function init(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n client.config.beforeSend.unshift(function (report) {\n if (report.request && report.request.url) return;\n report.request = ___extends_30({}, report.request, {\n url: win.location.href\n });\n });\n }\n };\n\n function ___extends_31() {\n ___extends_31 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_31.apply(this, arguments);\n }\n\n var __isArray_31 = _$esUtils_8.isArray,\n __includes_31 = _$esUtils_8.includes;\n /* removed: var _$inferReleaseStage_10 = require('@bugsnag/core/lib/infer-release-stage'); */\n\n ;\n var _$session_31 = {\n init: function init(client) {\n return client.sessionDelegate(sessionDelegate);\n }\n };\n var sessionDelegate = {\n startSession: function startSession(client) {\n var sessionClient = client;\n sessionClient._session = new client.BugsnagSession();\n\n var releaseStage = _$inferReleaseStage_10(sessionClient); // exit early if the reports should not be sent on the current releaseStage\n\n\n if (__isArray_31(sessionClient.config.notifyReleaseStages) && !__includes_31(sessionClient.config.notifyReleaseStages, releaseStage)) {\n sessionClient._logger.warn(\"Session not sent due to releaseStage/notifyReleaseStages configuration\");\n\n return sessionClient;\n }\n\n if (!sessionClient.config.endpoints.sessions) {\n sessionClient._logger.warn(\"Session not sent due to missing endpoints.sessions configuration\");\n\n return sessionClient;\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient.notifier,\n device: sessionClient.device,\n app: ___extends_31({}, {\n releaseStage: releaseStage\n }, sessionClient.app),\n sessions: [{\n id: sessionClient._session.id,\n startedAt: sessionClient._session.startedAt,\n user: sessionClient.user\n }]\n });\n\n return sessionClient;\n }\n };\n\n function ___extends_32() {\n ___extends_32 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_32.apply(this, arguments);\n }\n /*\n * Prevent collection of user IPs\n */\n\n\n var _$clientIp_32 = {\n init: function init(client) {\n if (client.config.collectUserIp) return;\n client.config.beforeSend.push(function (report) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (report.user && typeof report.user.id === 'undefined') delete report.user.id;\n report.user = ___extends_32({\n id: '[NOT COLLECTED]'\n }, report.user);\n report.request = ___extends_32({\n clientIp: '[NOT COLLECTED]'\n }, report.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(value) {\n return value === true || value === false;\n }\n }\n }\n };\n var _$consoleBreadcrumbs_33 = {};\n var __map_33 = _$esUtils_8.map,\n __reduce_33 = _$esUtils_8.reduce,\n __filter_33 = _$esUtils_8.filter;\n /*\n * Leaves breadcrumbs when console log methods are called\n */\n\n _$consoleBreadcrumbs_33.init = function (client) {\n var isDev = /^dev(elopment)?$/.test(client.config.releaseStage);\n var explicitlyDisabled = client.config.consoleBreadcrumbsEnabled === false;\n var implicitlyDisabled = (client.config.autoBreadcrumbs === false || isDev) && client.config.consoleBreadcrumbsEnabled !== true;\n if (explicitlyDisabled || implicitlyDisabled) return;\n\n __map_33(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n client.leaveBreadcrumb('Console output', __reduce_33(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]'; // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n\n try {\n stringified = String(arg);\n } catch (e) {} // if it stringifies to [object Object] attempt to JSON stringify\n\n\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n\n accum[\"[\" + i + \"]\"] = stringified;\n return accum;\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log');\n original.apply(console, args);\n };\n\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n };\n\n _$consoleBreadcrumbs_33.configSchema = {\n consoleBreadcrumbsEnabled: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n validate: function validate(value) {\n return value === true || value === false || value === undefined;\n },\n message: 'should be true|false'\n }\n };\n\n if (\"production\" !== 'production') {\n _$consoleBreadcrumbs_33.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n }\n\n var CONSOLE_LOG_METHODS = __filter_33(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n });\n\n var __map_34 = _$esUtils_8.map,\n __reduce_34 = _$esUtils_8.reduce,\n __filter_34 = _$esUtils_8.filter;\n var MAX_LINE_LENGTH = 200;\n var MAX_SCRIPT_LENGTH = 500000;\n var _$inlineScriptContent_34 = {\n init: function init(client, doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n\n if (win === void 0) {\n win = window;\n }\n\n if (!client.config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = '';\n var DOMContentLoaded = false;\n\n var getHtml = function getHtml() {\n return doc.documentElement.outerHTML;\n }; // get whatever HTML exists at this point in time\n\n\n html = getHtml();\n var prev = doc.onreadystatechange; // then update it when the DOM content has loaded\n\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n\n var _lastScript = null;\n\n var updateLastScript = function updateLastScript(script) {\n _lastScript = script;\n };\n\n var getCurrentScript = function getCurrentScript() {\n var script = doc.currentScript || _lastScript;\n\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n\n return script;\n };\n\n var addSurroundingCode = function addSurroundingCode(lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml(); // simulate the raw html\n\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return __reduce_34(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n\n client.config.beforeSend.unshift(function (report) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n report.stacktrace = __filter_34(report.stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = report.stacktrace[0]; // if frame.file exists and is not the original location of the page, this can't be an inline script\n\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return; // grab the last script known to have run\n\n var currentScript = getCurrentScript();\n\n if (currentScript) {\n var content = currentScript.innerHTML;\n report.updateMetaData('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH));\n } // only attempt to grab some surrounding code if we have a line number\n\n\n if (!frame || !frame.lineNumber) return;\n frame.code = addSurroundingCode(frame.lineNumber);\n }); // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n\n var _map = __map_34(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function get() {\n return args[0];\n },\n replace: function replace(fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0]; // Proxy all the host objects whose prototypes have an addEventListener function\n\n\n __map_34(['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'], function (o) {\n if (!win[o] || !win[o].prototype || !win[o].prototype.hasOwnProperty || !win[o].prototype.hasOwnProperty('addEventListener')) return;\n\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = Array.prototype.slice.call(arguments);\n\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript(); // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script); // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {} // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n\n\n if (fn.apply) return fn.apply(this, args);\n\n switch (args.length) {\n case 1:\n return fn(args[0]);\n\n case 2:\n return fn(args[0], args[1]);\n\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function validate(value) {\n return value === true || value === false;\n },\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n\n function __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n }\n\n function eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function get() {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function replace(fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n }\n /*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\n\n\n var _$interactionBreadcrumbs_35 = {\n init: function init(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n if (!('addEventListener' in win)) return;\n var explicitlyDisabled = client.config.interactionBreadcrumbsEnabled === false;\n var implicitlyDisabled = client.config.autoBreadcrumbs === false && client.config.interactionBreadcrumbsEnabled !== true;\n if (explicitlyDisabled || implicitlyDisabled) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n },\n configSchema: {\n interactionBreadcrumbsEnabled: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n validate: function validate(value) {\n return value === true || value === false || value === undefined;\n },\n message: 'should be true|false'\n }\n } // extract text content from a element\n\n };\n\n var getNodeText = function getNodeText(el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) text = el.value;\n text = text.replace(/^\\s+|\\s+$/g, ''); // trim whitespace\n\n return truncate(text, 140);\n }; // Create a label from tagname, id and css class of the element\n\n\n function getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.')); // Can't get much more advanced with the current browser\n\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('');\n } // try to get a more specific selector if this one matches more than one element\n\n\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join(''); // try prepending the parent node selector\n\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n }\n\n function truncate(value, length) {\n var ommision = '(...)';\n if (value && value.length <= length) return value;\n return value.slice(0, length - ommision.length) + ommision;\n }\n\n var _$navigationBreadcrumbs_36 = {};\n /*\n * Leaves breadcrumbs when navigation methods are called or events are emitted\n */\n\n _$navigationBreadcrumbs_36.init = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n if (!('addEventListener' in win)) return;\n var explicitlyDisabled = client.config.navigationBreadcrumbsEnabled === false;\n var implicitlyDisabled = client.config.autoBreadcrumbs === false && client.config.navigationBreadcrumbsEnabled !== true;\n if (explicitlyDisabled || implicitlyDisabled) return; // returns a function that will drop a breadcrumb with a given name\n\n var drop = function drop(name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n }; // simple drops – just names, no meta\n\n\n win.addEventListener('pagehide', drop('Page hidden'), true);\n win.addEventListener('pageshow', drop('Page shown'), true);\n win.addEventListener('load', drop('Page loaded'), true);\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true); // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n }); // hashchange has some metaData that we care about\n\n win.addEventListener('hashchange', function (event) {\n var metaData = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metaData, 'navigation');\n }, true); // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win);\n client.leaveBreadcrumb('Bugsnag loaded', {}, 'navigation');\n };\n\n _$navigationBreadcrumbs_36.configSchema = {\n navigationBreadcrumbsEnabled: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n validate: function validate(value) {\n return value === true || value === false || value === undefined;\n },\n message: 'should be true|false'\n }\n };\n\n if (\"production\" !== 'production') {\n _$navigationBreadcrumbs_36.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n } // takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n // just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\n\n\n var relativeLocation = function relativeLocation(url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n };\n\n var stateChangeToMetaData = function stateChangeToMetaData(win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n };\n\n var wrapHistoryFn = function wrapHistoryFn(client, target, fn, win) {\n var orig = target[fn];\n\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetaData(win, state, title, url), 'navigation'); // if throttle plugin is in use, refresh the event sent count\n\n if (typeof client.refresh === 'function') client.refresh(); // if the client is operating in auto session-mode, a new route should trigger a new session\n\n if (client.config.autoCaptureSessions) client.startSession(); // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n };\n\n var getCurrentState = function getCurrentState(win) {\n try {\n return win.history.state;\n } catch (e) {}\n };\n\n var _$networkBreadcrumbs_37 = {};\n var BREADCRUMB_TYPE = 'request'; // keys to safely store metadata on the request object\n\n var REQUEST_SETUP_KEY = 'BS~~S';\n var REQUEST_URL_KEY = 'BS~~U';\n var REQUEST_METHOD_KEY = 'BS~~M';\n var __includes_37 = _$esUtils_8.includes;\n var restoreFunctions = [];\n var client;\n var win;\n var getIgnoredUrls;\n\n var defaultIgnoredUrls = function defaultIgnoredUrls() {\n return [client.config.endpoints.notify, client.config.endpoints.sessions];\n };\n /*\n * Leaves breadcrumbs when network requests occur\n */\n\n\n _$networkBreadcrumbs_37.name = 'networkBreadcrumbs';\n\n _$networkBreadcrumbs_37.init = function (_client, _getIgnoredUrls, _win) {\n if (_getIgnoredUrls === void 0) {\n _getIgnoredUrls = defaultIgnoredUrls;\n }\n\n if (_win === void 0) {\n _win = window;\n }\n\n var explicitlyDisabled = _client.config.networkBreadcrumbsEnabled === false;\n var implicitlyDisabled = _client.config.autoBreadcrumbs === false && _client.config.networkBreadcrumbsEnabled !== true;\n if (explicitlyDisabled || implicitlyDisabled) return;\n client = _client;\n win = _win;\n getIgnoredUrls = _getIgnoredUrls;\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch();\n };\n\n _$networkBreadcrumbs_37.configSchema = {\n networkBreadcrumbsEnabled: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n validate: function validate(value) {\n return value === true || value === false || value === undefined;\n },\n message: 'should be true|false'\n }\n };\n\n if (\"production\" !== 'production') {\n _$networkBreadcrumbs_37.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n } // XMLHttpRequest monkey patch\n\n\n var monkeyPatchXMLHttpRequest = function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return;\n var nativeOpen = win.XMLHttpRequest.prototype.open; // override native open()\n\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n // store url and HTTP method for later\n this[REQUEST_URL_KEY] = url;\n this[REQUEST_METHOD_KEY] = method; // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n\n if (this[REQUEST_SETUP_KEY]) {\n this.removeEventListener('load', handleXHRLoad);\n this.removeEventListener('error', handleXHRError);\n } // attach load event listener\n\n\n this.addEventListener('load', handleXHRLoad); // attach error event listener\n\n this.addEventListener('error', handleXHRError);\n this[REQUEST_SETUP_KEY] = true;\n nativeOpen.apply(this, arguments);\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = nativeOpen;\n });\n }\n };\n\n function handleXHRLoad() {\n if (__includes_37(getIgnoredUrls(), this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n var metaData = {\n status: this.status,\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n };\n\n if (this.status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metaData, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metaData, BREADCRUMB_TYPE);\n }\n }\n\n function handleXHRError() {\n if (__includes_37(getIgnoredUrls, this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n } // failed to contact server\n\n\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n }, BREADCRUMB_TYPE);\n } // window.fetch monkey patch\n\n\n var monkeyPatchFetch = function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n\n if (urlOrRequest && _typeof(urlOrRequest) === 'object') {\n url = urlOrRequest.url;\n\n if (options && 'method' in options) {\n method = options.method;\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method;\n }\n } else {\n url = urlOrRequest;\n\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n\n if (method === undefined) {\n method = 'GET';\n }\n\n return new Promise(function (resolve, reject) {\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url);\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url);\n reject(error);\n });\n });\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n };\n\n var handleFetchSuccess = function handleFetchSuccess(response, method, url) {\n var metaData = {\n status: response.status,\n request: method + \" \" + url\n };\n\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metaData, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metaData, BREADCRUMB_TYPE);\n }\n };\n\n var handleFetchError = function handleFetchError(method, url) {\n client.leaveBreadcrumb('fetch() error', {\n request: method + \" \" + url\n }, BREADCRUMB_TYPE);\n };\n\n var __intRange_38 = _$validators_15.intRange;\n /*\n * Throttles and dedupes error reports\n */\n\n var _$throttle_38 = {\n init: function init(client) {\n // track sent events for each init of the plugin\n var n = 0; // add beforeSend hook\n\n client.config.beforeSend.push(function (report) {\n // have max events been sent already?\n if (n >= client.config.maxEvents) return report.ignore();\n n++;\n });\n\n client.refresh = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function defaultValue() {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function validate(val) {\n return __intRange_38(1, 100)(val);\n }\n }\n }\n };\n var _$stripQueryString_39 = {};\n\n function ___extends_39() {\n ___extends_39 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_39.apply(this, arguments);\n }\n /*\n * Remove query strings (and fragments) from stacktraces\n */\n\n\n var __map_39 = _$esUtils_8.map;\n _$stripQueryString_39 = {\n init: function init(client) {\n client.config.beforeSend.push(function (report) {\n report.stacktrace = __map_39(report.stacktrace, function (frame) {\n return ___extends_39({}, frame, {\n file: strip(frame.file)\n });\n });\n });\n }\n };\n\n var strip = _$stripQueryString_39._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n };\n /*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\n\n var _$onerror_40 = {\n init: function init(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var report; // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n if (error.name && error.message) {\n // if it looks like an error, construct a report object using its stack\n report = new client.BugsnagReport(error.name, error.message, decorateStack(client.BugsnagReport.getStacktrace(error), url, lineNo, charNo), handledState, error);\n } else {\n // otherwise, for non error values that were thrown, stringify it for\n // use as the error message and get/generate a stacktrace\n report = new client.BugsnagReport('window.onerror', String(error), decorateStack(client.BugsnagReport.getStacktrace(error, 1), url, lineNo, charNo), handledState, error); // include the raw input as metadata\n\n report.updateMetaData('window onerror', {\n error: error\n });\n }\n } else if ( // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n _typeof(messageOrEvent) === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'window.onerror'; // attempt to find a message from one of the conventional properties, but\n // default to empty string (the report will fill it with a placeholder)\n\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n report = new client.BugsnagReport(name, message, client.BugsnagReport.getStacktrace(new Error(), 1).slice(1), handledState, messageOrEvent); // include the raw input as metadata – it might contain more info than we extracted\n\n report.updateMetaData('window onerror', {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n report = new client.BugsnagReport('window.onerror', String(messageOrEvent), decorateStack(client.BugsnagReport.getStacktrace(error, 1), url, lineNo, charNo), handledState, messageOrEvent); // include the raw input as metadata – it might contain more info than we extracted\n\n report.updateMetaData('window onerror', {\n event: messageOrEvent\n });\n }\n\n client.notify(report);\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n\n var prevOnError = win.onerror;\n win.onerror = onerror;\n } // Sometimes the stacktrace has less information than was passed to window.onerror.\n // This function will augment the first stackframe with any useful info that was\n // received as arguments to the onerror callback.\n\n };\n\n var decorateStack = function decorateStack(stack, url, lineNo, charNo) {\n var culprit = stack[0];\n if (!culprit) return stack;\n if (!culprit.fileName && typeof url === 'string') culprit.setFileName(url);\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.setLineNumber(lineNo);\n\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.setColumnNumber(charNo);\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.setColumnNumber(window.event.errorCharacter);\n }\n }\n\n return stack;\n };\n\n var isActualNumber = function isActualNumber(n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n };\n\n var _$unhandledRejection_41 = {};\n /* removed: var _$hasStack_9 = require('@bugsnag/core/lib/has-stack'); */\n\n ;\n var __reduce_41 = _$esUtils_8.reduce;\n /* removed: var _$errorStackParser_7 = require('@bugsnag/core/lib/error-stack-parser'); */\n\n ;\n /* removed: var _$iserror_11 = require('@bugsnag/core/lib/iserror'); */\n\n ;\n /*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\n\n var _listener;\n\n _$unhandledRejection_41.init = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n var listener = function listener(event) {\n var error = event.reason;\n var isBluebird = false; // accessing properties on event.detail can throw errors (see #394)\n\n try {\n if (event.detail && event.detail.reason) {\n error = event.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n };\n var report;\n\n if (error && _$hasStack_9(error)) {\n // if it quacks like an Error…\n report = new client.BugsnagReport(error.name, error.message, _$errorStackParser_7.parse(error), handledState, error);\n\n if (isBluebird) {\n report.stacktrace = __reduce_41(report.stacktrace, fixBluebirdStacktrace(error), []);\n }\n } else {\n // if it doesn't…\n var msg = 'Rejection reason was not an Error. See \"Promise\" tab for more detail.';\n report = new client.BugsnagReport(error && error.name ? error.name : 'UnhandledRejection', error && error.message ? error.message : msg, [], handledState, error); // stuff the rejection reason into metaData, it could be useful\n\n report.updateMetaData('promise', 'rejection reason', serializableReason(error));\n }\n\n client.notify(report);\n };\n\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n\n _listener = listener;\n };\n\n if (\"production\" !== 'production') {\n _$unhandledRejection_41.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n\n _listener = null;\n };\n }\n\n var serializableReason = function serializableReason(err) {\n if (err === null || err === undefined) {\n return 'undefined (or null)';\n } else if (_$iserror_11(err)) {\n var _ref;\n\n return _ref = {}, _ref[Object.prototype.toString.call(err)] = {\n name: err.name,\n message: err.message,\n code: err.code,\n stack: err.stack\n }, _ref;\n } else {\n return err;\n }\n }; // The stack parser on bluebird stacks in FF get a suprious first frame:\n //\n // Error: derp\n // b@http://localhost:5000/bluebird.html:22:24\n // a@http://localhost:5000/bluebird.html:18:9\n // @http://localhost:5000/bluebird.html:14:9\n //\n // results in\n // […]\n // 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n // 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n // 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n // 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n //\n // so the following reduce/accumulator function removes such frames\n //\n // Bluebird pads method names with spaces so trim that too…\n // https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\n\n\n var fixBluebirdStacktrace = function fixBluebirdStacktrace(error) {\n return function (accum, frame) {\n if (frame.file === error.toString()) return accum;\n\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n\n return accum.concat(frame);\n };\n };\n\n var _$notifier_2 = {};\n\n function ___extends_2() {\n ___extends_2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return ___extends_2.apply(this, arguments);\n }\n\n var name = 'Bugsnag JavaScript';\n var version = '6.5.2';\n var url = 'https://github.com/bugsnag/bugsnag-js';\n /* removed: var _$BugsnagClient_4 = require('@bugsnag/core/client'); */\n\n ;\n /* removed: var _$BugsnagReport_24 = require('@bugsnag/core/report'); */\n\n ;\n /* removed: var _$Session_25 = require('@bugsnag/core/session'); */\n\n ;\n /* removed: var _$BugsnagBreadcrumb_3 = require('@bugsnag/core/breadcrumb'); */\n\n ; // extend the base config schema with some browser-specific options\n\n var __schema_2 = ___extends_2({}, _$config_5.schema, _$config_1);\n /* removed: var _$onerror_40 = require('@bugsnag/plugin-window-onerror'); */\n\n\n ;\n /* removed: var _$unhandledRejection_41 = require('@bugsnag/plugin-window-unhandled-rejection'); */\n\n ;\n /* removed: var _$device_29 = require('@bugsnag/plugin-browser-device'); */\n\n ;\n /* removed: var _$context_28 = require('@bugsnag/plugin-browser-context'); */\n\n ;\n /* removed: var _$request_30 = require('@bugsnag/plugin-browser-request'); */\n\n ;\n /* removed: var _$throttle_38 = require('@bugsnag/plugin-simple-throttle'); */\n\n ;\n /* removed: var _$consoleBreadcrumbs_33 = require('@bugsnag/plugin-console-breadcrumbs'); */\n\n ;\n /* removed: var _$networkBreadcrumbs_37 = require('@bugsnag/plugin-network-breadcrumbs'); */\n\n ;\n /* removed: var _$navigationBreadcrumbs_36 = require('@bugsnag/plugin-navigation-breadcrumbs'); */\n\n ;\n /* removed: var _$interactionBreadcrumbs_35 = require('@bugsnag/plugin-interaction-breadcrumbs'); */\n\n ;\n /* removed: var _$inlineScriptContent_34 = require('@bugsnag/plugin-inline-script-content'); */\n\n ;\n /* removed: var _$session_31 = require('@bugsnag/plugin-browser-session'); */\n\n ;\n /* removed: var _$clientIp_32 = require('@bugsnag/plugin-client-ip'); */\n\n ;\n /* removed: var _$stripQueryString_39 = require('@bugsnag/plugin-strip-query-string'); */\n\n ; // delivery mechanisms\n\n /* removed: var _$delivery_26 = require('@bugsnag/delivery-x-domain-request'); */\n\n ;\n /* removed: var _$delivery_27 = require('@bugsnag/delivery-xml-http-request'); */\n\n ;\n\n _$notifier_2 = function _$notifier_2(opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts // support renamed/deprecated options\n\n };\n var warningMessage = '';\n\n if (opts.endpoints && opts.endpoints.notify && !opts.endpoints.sessions) {\n warningMessage += 'notify endpoint is set but sessions endpoint is not. No sessions will be sent.';\n }\n\n var bugsnag = new _$BugsnagClient_4({\n name: name,\n version: version,\n url: url\n });\n bugsnag.setOptions(opts); // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n\n bugsnag.delivery(window.XDomainRequest ? _$delivery_26 : _$delivery_27); // configure with user supplied options\n // errors can be thrown here that prevent the lib from being in a useable state\n\n bugsnag.configure(__schema_2);\n if (warningMessage) bugsnag._logger.warn(warningMessage); // always-on browser-specific plugins\n\n bugsnag.use(_$device_29);\n bugsnag.use(_$context_28);\n bugsnag.use(_$request_30);\n bugsnag.use(_$throttle_38);\n bugsnag.use(_$session_31);\n bugsnag.use(_$clientIp_32);\n bugsnag.use(_$stripQueryString_39); // optional browser-specific plugins\n\n if (bugsnag.config.autoNotify !== false) {\n bugsnag.use(_$onerror_40);\n bugsnag.use(_$unhandledRejection_41);\n }\n\n bugsnag.use(_$navigationBreadcrumbs_36);\n bugsnag.use(_$interactionBreadcrumbs_35);\n bugsnag.use(_$networkBreadcrumbs_37);\n bugsnag.use(_$consoleBreadcrumbs_33); // this one added last to avoid wrapping functionality before bugsnag uses it\n\n bugsnag.use(_$inlineScriptContent_34);\n\n bugsnag._logger.debug(\"Loaded!\");\n\n return bugsnag.config.autoCaptureSessions ? bugsnag.startSession() : bugsnag;\n }; // Angular's DI system needs this interface to match what is exposed\n // in the type definition file (types/bugsnag.d.ts)\n\n\n _$notifier_2.Bugsnag = {\n Client: _$BugsnagClient_4,\n Report: _$BugsnagReport_24,\n Session: _$Session_25,\n Breadcrumb: _$BugsnagBreadcrumb_3 // Export a \"default\" property for compatibility with ESM imports\n\n };\n _$notifier_2['default'] = _$notifier_2;\n return _$notifier_2;\n});"],"sourceRoot":""}