profile-viewer 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dist/029b9e4fd0218d7b09c6.svg +8 -0
- data/dist/{f0599659345cf76717cd.svg → 118632062f4755918dac.svg} +1 -1
- data/dist/{136.4ad3301b8aacf759ea70.bundle.js → 136.ad4176dc2a8e5cf33ef3.bundle.js} +2 -2
- data/dist/{136.4ad3301b8aacf759ea70.bundle.js.map → 136.ad4176dc2a8e5cf33ef3.bundle.js.map} +1 -1
- data/dist/{171.621b9df5978342be5662.bundle.js → 171.37d1e1824587d8df0ae2.bundle.js} +2 -2
- data/dist/{171.621b9df5978342be5662.bundle.js.map → 171.37d1e1824587d8df0ae2.bundle.js.map} +1 -1
- data/dist/234ed61ab185caff67e3.svg +8 -0
- data/dist/280.4edd20bd6228986bbf2e.bundle.js +2 -0
- data/dist/280.4edd20bd6228986bbf2e.bundle.js.map +1 -0
- data/dist/{79eaad4fc0c398100809.svg → 3a829bf1fcf02598aa4b.svg} +1 -1
- data/dist/556.b8d3d4d402ced081615a.bundle.js +2 -0
- data/dist/{556.2be67a37a0c61fdc2485.bundle.js.map → 556.b8d3d4d402ced081615a.bundle.js.map} +1 -1
- data/dist/874.7cb94ee0732c5a2ca826.bundle.js +2 -0
- data/dist/874.7cb94ee0732c5a2ca826.bundle.js.map +1 -0
- data/dist/8846b19a497771fe0e9d.svg +4 -0
- data/dist/957.2f40be4cef3037bc352b.bundle.js +3 -0
- data/dist/957.2f40be4cef3037bc352b.bundle.js.LICENSE.txt +19 -0
- data/dist/957.2f40be4cef3037bc352b.bundle.js.map +1 -0
- data/dist/999.a1119c25d77e1883c1e1.bundle.js +2 -0
- data/dist/999.a1119c25d77e1883c1e1.bundle.js.map +1 -0
- data/dist/docs/_navbar.md +3 -3
- data/dist/docs/_sidebar.md +28 -28
- data/dist/docs/advanced-topics.md +5 -5
- data/dist/docs/async-posix-signal-control.md +5 -6
- data/dist/docs/bunny-2.md +3 -2
- data/dist/docs/bunny.md +29 -26
- data/dist/docs/gitpod.md +5 -10
- data/dist/docs/guide-android-profiling.md +18 -2
- data/dist/docs/guide-filtering-call-trees.md +11 -11
- data/dist/docs/guide-getting-started.md +4 -5
- data/dist/docs/guide-perf-profiling.md +8 -8
- data/dist/docs/guide-profiling-android-directly-on-device.md +14 -13
- data/dist/docs/guide-profiling-firefox-android.md +2 -3
- data/dist/docs/guide-remote-profiling.md +24 -23
- data/dist/docs/guide-removing-profiler.md +1 -0
- data/dist/docs/guide-stack-samples-and-call-trees.md +2 -0
- data/dist/docs/guide-startup-shutdown.md +14 -9
- data/dist/docs/guide-ui-tour-panels.md +4 -3
- data/dist/docs/guide-ui-tour-timeline.md +3 -0
- data/dist/docs/index.html +21 -18
- data/dist/docs/ipc-messages.md +6 -6
- data/dist/docs/js/docsify_v4.12.2+.min.js +1 -1
- data/dist/docs/memory-allocations.md +28 -6
- data/dist/docs/videos.md +10 -10
- data/dist/index.html +1 -1
- data/dist/locales/be/app.ftl +108 -0
- data/dist/locales/de/app.ftl +20 -0
- data/dist/locales/el/app.ftl +36 -11
- data/dist/locales/en-CA/app.ftl +29 -5
- data/dist/locales/en-GB/app.ftl +25 -5
- data/dist/locales/en-US/app.ftl +23 -4
- data/dist/locales/es-CL/app.ftl +19 -2
- data/dist/locales/fr/app.ftl +61 -0
- data/dist/locales/fur/app.ftl +16 -0
- data/dist/locales/fy-NL/app.ftl +20 -0
- data/dist/locales/ia/app.ftl +14 -0
- data/dist/locales/it/app.ftl +14 -0
- data/dist/locales/kab/app.ftl +19 -0
- data/dist/locales/nl/app.ftl +20 -0
- data/dist/locales/pt-BR/app.ftl +14 -0
- data/dist/locales/ru/app.ftl +20 -0
- data/dist/locales/sv-SE/app.ftl +20 -0
- data/dist/locales/tr/app.ftl +52 -0
- data/dist/locales/uk/app.ftl +20 -0
- data/dist/locales/zh-CN/app.ftl +18 -3
- data/dist/locales/zh-TW/app.ftl +61 -47
- data/dist/main.6cdc9308b67c00785584.bundle.js +198 -0
- data/dist/{main.ac7130d34ce3b872712a.bundle.js.LICENSE.txt → main.6cdc9308b67c00785584.bundle.js.LICENSE.txt} +2 -2
- data/dist/main.6cdc9308b67c00785584.bundle.js.map +1 -0
- data/dist/photon/{f0599659345cf76717cd.svg → 118632062f4755918dac.svg} +1 -1
- data/dist/photon/index.html +1 -1
- data/dist/photon/main.e1d25e5ea6d5812b127b.bundle.js +2 -0
- data/dist/photon/main.e1d25e5ea6d5812b127b.bundle.js.map +1 -0
- data/dist/sw.js +1 -1
- data/dist/sw.js.map +1 -1
- data/ruby-bin/profile-viewer +10 -1
- data/ruby-bin/profile-viewer-version.rb +1 -1
- metadata +29 -25
- data/dist/280.b4210a48e650408000c3.bundle.js +0 -2
- data/dist/280.b4210a48e650408000c3.bundle.js.map +0 -1
- data/dist/556.2be67a37a0c61fdc2485.bundle.js +0 -2
- data/dist/874.2a087b9b5a296a9c3fcd.bundle.js +0 -2
- data/dist/874.2a087b9b5a296a9c3fcd.bundle.js.map +0 -1
- data/dist/b805360fcc91834556c9.svg +0 -4
- data/dist/main.ac7130d34ce3b872712a.bundle.js +0 -201
- data/dist/main.ac7130d34ce3b872712a.bundle.js.map +0 -1
- data/dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js +0 -2
- data/dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js.map +0 -1
@@ -0,0 +1,198 @@
|
|
1
|
+
/*! For license information please see main.6cdc9308b67c00785584.bundle.js.LICENSE.txt */
|
2
|
+
(()=>{var e,t,n,r,o={0:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".flameGraphCanvas{left:0;position:absolute;top:0}.flameGraphCanvasTooltip{padding:5px}.flameGraphCanvasTooltip>.tooltipHeader{display:grid;grid-gap:2px 0;grid-template-columns:min-content auto}.flameGraphCanvasTooltip .tooltipTitle{overflow:visible;white-space:nowrap}","",{version:3,sources:["webpack://./src/components/flame-graph/Canvas.css"],names:[],mappings:"AAIA,kBAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAMA,yBACE,WACF,CAEA,wCACE,YAAa,CACb,cAAe,CACf,sCACF,CAEA,uCACE,gBAAiB,CACjB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.flameGraphCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n/**\n * This tooltip is multi-line and more intense, so add additional whitespace to make it\n * more readable.\n */\n.flameGraphCanvasTooltip {\n padding: 5px;\n}\n\n.flameGraphCanvasTooltip > .tooltipHeader {\n display: grid;\n grid-gap: 2px 0;\n grid-template-columns: min-content auto;\n}\n\n.flameGraphCanvasTooltip .tooltipTitle {\n overflow: visible;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},12:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".network-color-css{--marker-color:var(--purple-70)}.network-color-js{--marker-color:var(--yellow-60)}.network-color-html{--marker-color:var(--blue-70)}.network-color-img{--marker-color:var(--green-70)}.network-color-other{--marker-color:var(--grey-70)}","",{version:3,sources:["webpack://./res/css/network.css"],names:[],mappings:"AASA,mBACE,+BACF,CAEA,kBACE,+BACF,CAEA,oBACE,6BACF,CAEA,mBACE,8BACF,CAEA,qBACE,6BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* These colors are used with network markers, to give a quick visual indication\n * of their mime types. They're used in the network chart and in the tooltip.\n * They're quite bright and strong on purpose, because the marker has some\n * transparency, and we need the marker to stand out, especially when only the\n * border is displayed. */\n.network-color-css {\n --marker-color: var(--purple-70);\n}\n\n.network-color-js {\n --marker-color: var(--yellow-60);\n}\n\n.network-color-html {\n --marker-color: var(--blue-70);\n}\n\n.network-color-img {\n --marker-color: var(--green-70);\n}\n\n.network-color-other {\n --marker-color: var(--grey-70);\n}\n"],sourceRoot:""}]);const s=i},26:(e,t,n)=>{"use strict";e.exports=n.p+"4260d5db8309a6f83637.svg"},92:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4391),n.b),d=new URL(n(8122),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.trackSearchField{align-items:center;display:inline-flex;flex-flow:row nowrap;position:relative;width:100%}.photon-input.trackSearchFieldInput{border:.5px solid #aaa;height:25px;margin:0 5px;padding:0 18px 0 17px;width:calc(100% - 10px)}.trackSearchFieldInput{background:url(${h}) 3px no-repeat #fff;background-size:11px 11px;flex:1;margin:0;position:relative}.trackSearchFieldButton{background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:10px;width:11px;-moz-user-focus:ignore;vertical-align:middle}.trackSearchFieldInput:invalid+.trackSearchFieldButton{visibility:hidden}`,"",{version:3,sources:["webpack://./src/components/shared/TrackSearchField.css"],names:[],mappings:"AAIA,kBAOE,kBAAmB,CALnB,mBAAoB,CAIpB,oBAAqB,CALrB,iBAAkB,CAIlB,UAGF,CAEA,oCAME,sBAAwB,CAFxB,WAAY,CAGZ,YAAa,CAFb,qBAAsB,CAFtB,uBAKF,CAEA,uBAIE,qEACiB,CACjB,yBAA0B,CAJ1B,MAAO,CACP,QAAS,CAFT,iBAMF,CAEA,wBAUE,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CAPV,iBAAkB,CAGlB,UAAW,CAEX,UAAW,CAQX,sBAAuB,CACvB,qBACF,CAEA,uDACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.trackSearchField {\n position: relative; /* to properly position the button */\n display: inline-flex;\n\n /* If context menu has long items, we should make sure to take the 100% of the width. */\n width: 100%;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.photon-input.trackSearchFieldInput {\n /* the chain class selectors are used here\n to override the styling for the photon-input class */\n width: calc(100% - 10px);\n height: 25px;\n padding: 0 18px 0 17px; /* right padding for the reset button, left padding for the search icon */\n border: 0.5px solid #aaa;\n margin: 0 5px;\n}\n\n.trackSearchFieldInput {\n position: relative;\n flex: 1;\n margin: 0;\n background: url(../../../res/img/svg/searchfield-icon.svg) 3px center\n no-repeat white;\n background-size: 11px 11px;\n}\n\n.trackSearchFieldButton {\n position: absolute;\n\n /* 5px is margin and the other 5px is the location inside the input */\n right: 10px;\n overflow: hidden;\n width: 11px;\n height: 11px;\n padding: 0;\n border: 0;\n background: url(../../../res/img/svg/searchfield-cancel.svg) top left\n no-repeat;\n background-size: contain;\n color: transparent;\n -moz-user-focus: ignore;\n vertical-align: middle;\n}\n\n.trackSearchFieldInput:invalid + .trackSearchFieldButton {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const m=u},129:(e,t,n)=>{"use strict";e.exports=n.p+"9eb1fab2684d1e1f0e26.svg"},135:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.codeView{flex:1;flex-flow:column;min-height:0;--blue-55:#0074e8;--magenta-65:#dd00a9;--theme-highlight-keyword:var(--magenta-65);--theme-highlight-type:var(--purple-60);--theme-highlight-variable:var(--blue-55);--theme-highlight-method:var(--green-70);--theme-highlight-literal:var(--blue-70);--theme-highlight-comment:var(--grey-50);--theme-highlight-punctuation:var(--grey-70)}.codeView,.codeViewHeader{background:#fff;display:flex}.codeViewHeader{border-bottom:1px solid var(--grey-30);flex-flow:row;height:16px;padding:1px 0}.codeMirrorContainer{display:flex;flex:1;flex-flow:column;min-height:0}.cm-editor{min-height:0}.cm-scroller{font:inherit!important;line-height:16px!important;overflow:auto}.cm-gutters{background-color:#fff!important;border-right:0!important}.codeViewHeaderMainColumn{flex:1}.codeViewHeaderColumn{box-sizing:border-box;line-height:15px;padding:1px 5px;position:relative;white-space:nowrap}.codeViewHeaderColumn.codeViewFixedColumn:after{background:#e5e5e5;bottom:3px;content:"";position:absolute;right:0;top:3px;width:1px}.cm-self-timings-gutter,.cm-total-timings-gutter,.codeViewHeaderColumn.self,.codeViewHeaderColumn.total{text-align:right;width:50px}.cm-self-timings-gutter,.cm-total-timings-gutter{border-right:1px solid var(--grey-30);color:#000}.cm-lineNumbers{color:#aaa;font-variant-numeric:tabular-nums}.cm-lineNumbers .cm-gutterElement{min-width:45px!important}.cm-instruction-address-gutter{color:#aaa;font-family:ui-monospace,Roboto Mono,monospace;font-variant-numeric:tabular-nums}.cm-instruction-address-gutter .cm-gutterElement{min-width:45px!important;padding:0 8px}.cm-self-timings-gutter .cm-gutterElement,.cm-total-timings-gutter .cm-gutterElement{box-sizing:border-box;overflow:hidden;padding-right:5px;text-overflow:ellipsis;width:100%}.cm-nonZeroLine{background-color:#edf6ff}.cm-content{font-family:ui-monospace,Roboto Mono,monospace;hyphens:none;word-break:normal;word-spacing:normal;word-wrap:normal}.tok-macroName,.tok-namespace,.tok-variableName,.tok-variableName2{color:var(--theme-highlight-variable)}.tok-typeName{color:var(--theme-highlight-type)}.tok-propertyName{color:var(--theme-highlight-method)}.tok-number,.tok-string,.tok-string2{color:var(--theme-highlight-literal)}.tok-atom,.tok-bool,.tok-error,.tok-keyword{color:var(--theme-highlight-keyword)}.tok-comment,.tok-meta{color:var(--theme-highlight-comment)}.tok-operator,.tok-punctuation{color:var(--theme-highlight-punctuation)}',"",{version:3,sources:["webpack://./src/components/shared/CodeView.css"],names:[],mappings:"AAIA,UAGE,MAAO,CACP,gBAAiB,CAFjB,YAAa,CAOb,iBAAkB,CAClB,oBAAqB,CAGrB,2CAA4C,CAC5C,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CACzC,wCAAyC,CACzC,wCAAyC,CACzC,4CACF,CAEA,0BAjBE,eAAiB,CAJjB,YA4BF,CAPA,gBAKE,sCAAuC,CAFvC,aAAc,CADd,WAAY,CAEZ,aAGF,CAEA,qBACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,YAGF,CAEA,WACE,YACF,CAEA,aAEE,sBAAwB,CACxB,0BAA4B,CAF5B,aAGF,CAEA,YAEE,+BAAkC,CADlC,wBAEF,CAEA,0BACE,MACF,CAEA,sBAEE,qBAAsB,CAEtB,gBAAiB,CADjB,eAAgB,CAFhB,iBAAkB,CAIlB,kBACF,CAGA,gDAME,kBAAmB,CAFnB,UAAW,CAGX,UAAW,CANX,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAGR,SAGF,CAEA,wGAKE,gBAAiB,CADjB,UAEF,CAEA,iDAEE,qCAAsC,CACtC,UACF,CAEA,gBACE,UAAW,CACX,iCACF,CAEA,kCACE,wBACF,CAEA,+BACE,UAAW,CACX,8CAAmD,CACnD,iCACF,CAEA,iDACE,wBAA0B,CAC1B,aACF,CAEA,qFAIE,qBAAsB,CAFtB,eAAgB,CAGhB,iBAAkB,CAClB,sBAAuB,CAHvB,UAIF,CAEA,gBACE,wBACF,CAEA,YACE,8CAAmD,CACnD,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,gBACF,CA0CA,mEAIE,qCACF,CAEA,cACE,iCACF,CAEA,kBACE,mCACF,CAEA,qCAGE,oCACF,CAEA,4CAIE,oCACF,CAEA,uBAEE,oCACF,CAEA,+BAEE,wCACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.codeView {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n background: white;\n\n /* Extra intermediate colors which Photon doesn\'t have, from\n https://searchfox.org/mozilla-central/rev/8012bca692dddb307c2787bac1d4dd48cb0d8243/devtools/client/themes/variables.css#34-100 */\n --blue-55: #0074e8;\n --magenta-65: #dd00a9;\n\n /* Theme colors. Loosely based on the Firefox devtools light theme as of Jan 2022. */\n --theme-highlight-keyword: var(--magenta-65);\n --theme-highlight-type: var(--purple-60);\n --theme-highlight-variable: var(--blue-55);\n --theme-highlight-method: var(--green-70);\n --theme-highlight-literal: var(--blue-70);\n --theme-highlight-comment: var(--grey-50);\n --theme-highlight-punctuation: var(--grey-70);\n}\n\n.codeViewHeader {\n display: flex;\n height: 16px;\n flex-flow: row;\n padding: 1px 0;\n border-bottom: 1px solid var(--grey-30);\n background: white;\n}\n\n.codeMirrorContainer {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n}\n\n.cm-editor {\n min-height: 0;\n}\n\n.cm-scroller {\n overflow: auto;\n font: inherit !important;\n line-height: 16px !important;\n}\n\n.cm-gutters {\n border-right: 0 !important;\n background-color: white !important;\n}\n\n.codeViewHeaderMainColumn {\n flex: 1;\n}\n\n.codeViewHeaderColumn {\n position: relative;\n box-sizing: border-box;\n padding: 1px 5px;\n line-height: 15px;\n white-space: nowrap;\n}\n\n/* A small vertical separator line */\n.codeViewHeaderColumn.codeViewFixedColumn::after {\n position: absolute;\n top: 3px;\n right: 0;\n bottom: 3px;\n width: 1px;\n background: #e5e5e5;\n content: \'\';\n}\n\n.codeViewHeaderColumn.total,\n.codeViewHeaderColumn.self,\n.cm-total-timings-gutter,\n.cm-self-timings-gutter {\n width: 50px;\n text-align: right;\n}\n\n.cm-total-timings-gutter,\n.cm-self-timings-gutter {\n border-right: 1px solid var(--grey-30);\n color: black;\n}\n\n.cm-lineNumbers {\n color: #aaa;\n font-variant-numeric: tabular-nums;\n}\n\n.cm-lineNumbers .cm-gutterElement {\n min-width: 45px !important;\n}\n\n.cm-instruction-address-gutter {\n color: #aaa;\n font-family: ui-monospace, \'Roboto Mono\', monospace;\n font-variant-numeric: tabular-nums;\n}\n\n.cm-instruction-address-gutter .cm-gutterElement {\n min-width: 45px !important;\n padding: 0 8px;\n}\n\n.cm-total-timings-gutter .cm-gutterElement,\n.cm-self-timings-gutter .cm-gutterElement {\n overflow: hidden;\n width: 100%;\n box-sizing: border-box;\n padding-right: 5px;\n text-overflow: ellipsis;\n}\n\n.cm-nonZeroLine {\n background-color: #edf6ff;\n}\n\n.cm-content {\n font-family: ui-monospace, \'Roboto Mono\', monospace;\n hyphens: none;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n\n/**\n * Syntax highlighting uses the Lezer\'s classHighlighter. From its documentation:\n *\n * This is a highlighter that adds stable, predictable classes to tokens, for styling with external CSS.\n *\n * The following tags are mapped to their name prefixed with "tok-" (for example "tok-comment"):\n * - link\n * - heading\n * - emphasis\n * - strong\n * - keyword\n * - atom bool\n * - url\n * - labelName\n * - inserted\n * - deleted\n * - literal\n * - string\n * - number\n * - variableName\n * - typeName\n * - namespace\n * - className\n * - macroName\n * - propertyName\n * - operator\n * - comment\n * - meta\n * - punctuation\n * - invalid\n *\n * In addition, these mappings are provided:\n *\n * - regexp, escape, and special(string) are mapped to "tok-string2"\n * - special(variableName) to "tok-variableName2"\n * - local(variableName) to "tok-variableName tok-local"\n * - definition(variableName) to "tok-variableName tok-definition"\n * - definition(propertyName) to "tok-propertyName tok-definition"\n */\n\n.tok-namespace,\n.tok-variableName,\n.tok-variableName2,\n.tok-macroName {\n color: var(--theme-highlight-variable);\n}\n\n.tok-typeName {\n color: var(--theme-highlight-type);\n}\n\n.tok-propertyName {\n color: var(--theme-highlight-method);\n}\n\n.tok-number,\n.tok-string,\n.tok-string2 {\n color: var(--theme-highlight-literal);\n}\n\n.tok-bool,\n.tok-atom,\n.tok-error,\n.tok-keyword {\n color: var(--theme-highlight-keyword);\n}\n\n.tok-comment,\n.tok-meta {\n color: var(--theme-highlight-comment);\n}\n\n.tok-operator,\n.tok-punctuation {\n color: var(--theme-highlight-punctuation);\n}\n'],sourceRoot:""}]);const s=i},211:(e,t,n)=>{"use strict";e.exports=n.p+"7273fadce89da05535e5.svg"},218:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.arrowPanelAnchor{left:50%;position:absolute;top:75%;z-index:10}.arrowPanel{--internal-offset-from-right:var(--offset-from-right,60px);--internal-offset-from-top:15px;--internal-width:var(--width,initial);--internal-button-height:30px;background:#f7f7f7;background-clip:padding-box;border:.5px solid #00000040;border-radius:5px;box-shadow:0 8px 12px #00000059;color:#000;line-height:1.3;min-width:var(--internal-width);position:absolute;right:calc(var(--internal-offset-from-right)*-1);text-align:left;top:var(--internal-offset-from-top);transform-origin:calc(100% - var(--internal-offset-from-right)) calc(var(--internal-offset-from-top)*-1)}.arrowPanel:not(.open){opacity:0;pointer-events:none;transition:opacity .2s ease-out,visibility 0s .2s;visibility:hidden}.arrowPanel.open{animation:arrowPanelAppear .2s cubic-bezier(.07,.95,0,1)}@media (prefers-reduced-motion){.arrowPanel.open{animation:none;opacity:1}}@keyframes arrowPanelAppear{0%{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:none}}.arrowPanelArrow{height:var(--internal-offset-from-top);left:0;overflow:hidden;position:absolute;right:0;top:calc(var(--internal-offset-from-top)*-1)}.arrowPanelArrow:before{background:#f7f7f7;background-clip:padding-box;border:.5px solid #00000040;content:"";display:block;height:calc(var(--internal-offset-from-top)*1.42);left:calc(100% - var(--internal-offset-from-right));position:absolute;top:0;transform:rotate(45deg);transform-origin:top left;width:calc(var(--internal-offset-from-top)*1.42)}.arrowPanelContent{max-height:calc(100vh - var(--internal-approx-distance-from-top) - var(--internal-button-height) - var(--internal-approx-distance-to-bottom));overflow:auto;padding:16px;--internal-approx-distance-from-top:60px;--internal-approx-distance-to-bottom:100px}',"",{version:3,sources:["webpack://./src/components/shared/ButtonWithPanel/ArrowPanel.css"],names:[],mappings:"AAIA,kBAIE,QAAS,CAHT,iBAAkB,CAElB,OAAQ,CADR,UAGF,CAEA,YACE,0DAA4D,CAC5D,+BAAgC,CAChC,qCAAuC,CACvC,6BAA8B,CAQ9B,kBAA4B,CAC5B,2BAA4B,CAH5B,2BAAqC,CACrC,iBAAkB,CAGlB,+BAAwC,CACxC,UAAY,CACZ,eAAgB,CAPhB,+BAAgC,CAHhC,iBAAkB,CAElB,gDAAmD,CASnD,eAAgB,CAVhB,mCAAoC,CAWpC,wGAEF,CAEA,uBACE,SAAU,CACV,mBAAoB,CAGpB,iDAEqB,CAGrB,iBACF,CAEA,iBACE,wDACF,CAEA,gCACE,iBACE,cAAe,CACf,SACF,CACF,CAEA,4BACE,GACE,SAAU,CACV,2BACF,CAEA,GACE,SAAU,CACV,cACF,CACF,CAEA,iBAME,sCAAuC,CAFvC,MAAO,CACP,eAAgB,CAJhB,iBAAkB,CAElB,OAAQ,CADR,4CAKF,CAEA,wBAQE,kBAA4B,CAC5B,2BAA4B,CAF5B,2BAAqC,CAGrC,UAAW,CANX,aAAc,CAEd,iDAAoD,CAHpD,mDAAoD,CAFpD,iBAAkB,CAClB,KAAM,CASN,uBAAwB,CACxB,yBAA0B,CAP1B,gDAQF,CAEA,mBAEE,6IAGC,CAJD,aAAc,CAKd,YAAa,CAEb,wCAAyC,CACzC,0CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.arrowPanelAnchor {\n position: absolute;\n z-index: 10;\n top: 75%;\n left: 50%;\n}\n\n.arrowPanel {\n --internal-offset-from-right: var(--offset-from-right, 60px);\n --internal-offset-from-top: 15px;\n --internal-width: var(--width, initial);\n --internal-button-height: 30px;\n\n position: absolute;\n top: var(--internal-offset-from-top);\n right: calc(var(--internal-offset-from-right) * -1);\n min-width: var(--internal-width);\n border: 0.5px solid rgb(0 0 0 / 0.25);\n border-radius: 5px;\n background: hsl(0deg 0% 97%);\n background-clip: padding-box;\n box-shadow: 0 8px 12px rgb(0 0 0 / 0.35);\n color: black;\n line-height: 1.3;\n text-align: left;\n transform-origin: calc(100% - var(--internal-offset-from-right))\n calc(var(--internal-offset-from-top) * -1);\n}\n\n.arrowPanel:not(.open) {\n opacity: 0;\n pointer-events: none;\n\n /* The visibility is set to hidden after the panel closing transition. */\n transition:\n opacity 200ms ease-out,\n visibility 0s 200ms;\n\n /* visibility: hidden hides the panel from the accessibility tree when it's closed */\n visibility: hidden;\n}\n\n.arrowPanel.open {\n animation: arrowPanelAppear 200ms cubic-bezier(0.07, 0.95, 0, 1);\n}\n\n@media (prefers-reduced-motion) {\n .arrowPanel.open {\n animation: none;\n opacity: 1;\n }\n}\n\n@keyframes arrowPanelAppear {\n from {\n opacity: 0;\n transform: translateY(-25px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n.arrowPanelArrow {\n position: absolute;\n top: calc(var(--internal-offset-from-top) * -1);\n right: 0;\n left: 0;\n overflow: hidden;\n height: var(--internal-offset-from-top);\n}\n\n.arrowPanelArrow::before {\n position: absolute;\n top: 0;\n left: calc(100% - var(--internal-offset-from-right));\n display: block;\n width: calc(1.42 * var(--internal-offset-from-top));\n height: calc(1.42 * var(--internal-offset-from-top));\n border: 0.5px solid rgb(0 0 0 / 0.25);\n background: hsl(0deg 0% 97%);\n background-clip: padding-box;\n content: '';\n transform: rotate(45deg);\n transform-origin: top left;\n}\n\n.arrowPanelContent {\n overflow: auto;\n max-height: calc(\n 100vh - var(--internal-approx-distance-from-top) -\n var(--internal-button-height) - var(--internal-approx-distance-to-bottom)\n );\n padding: 16px;\n\n --internal-approx-distance-from-top: 60px;\n --internal-approx-distance-to-bottom: 100px;\n}\n"],sourceRoot:""}]);const s=i},226:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".networkSettings{display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.networkSettingsSpacer{flex:1}","",{version:3,sources:["webpack://./src/components/shared/NetworkSettings.css"],names:[],mappings:"AAIA,iBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,gBAAiB,CADjB,SAEF,CAEA,uBACE,MACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.networkSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n line-height: 25px;\n}\n\n.networkSettingsSpacer {\n flex: 1;\n}\n"],sourceRoot:""}]);const s=i},241:(e,t,n)=>{"use strict";e.exports=n.p+"8b8b909e42722172d494.svg"},290:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(852),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.treeViewHeaderColumn.self,.treeViewHeaderColumn.total{text-align:right}.treeViewHeaderColumn.totalPercent{display:none}.treeViewFixedColumn.self{width:70px}.treeViewFixedColumn.icon{align-items:center;display:flex;flex-flow:column nowrap;overflow:visible}.treeViewRowColumn.self,.treeViewRowColumn.timestamp,.treeViewRowColumn.total,.treeViewRowColumn.totalPercent{text-align:right}.treeBadge.divergent-inlining,.treeBadge.inlined{background:url(${u})}`,"",{version:3,sources:["webpack://./src/components/calltree/CallTree.css"],names:[],mappings:"AAIA,uDAEE,gBACF,CAGA,mCACE,YACF,CAEA,0BACE,UACF,CAEA,0BAIE,kBAAmB,CAHnB,YAAa,CAEb,uBAAwB,CADxB,gBAGF,CAEA,8GAIE,gBACF,CAEA,iDAEE,kDACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.treeViewHeaderColumn.total,\n.treeViewHeaderColumn.self {\n text-align: right;\n}\n\n/* The header for the totalPercent column is not visible */\n.treeViewHeaderColumn.totalPercent {\n display: none;\n}\n\n.treeViewFixedColumn.self {\n width: 70px;\n}\n\n.treeViewFixedColumn.icon {\n display: flex;\n overflow: visible;\n flex-flow: column nowrap;\n align-items: center;\n}\n\n.treeViewRowColumn.total,\n.treeViewRowColumn.totalPercent,\n.treeViewRowColumn.self,\n.treeViewRowColumn.timestamp {\n text-align: right;\n}\n\n.treeBadge.inlined,\n.treeBadge.divergent-inlining {\n background: url(../../../res/img/svg/inlined-icon.svg);\n}\n"],sourceRoot:""}]);const h=d},291:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.react-contextmenu{background-color:#fff;border-radius:3px;box-shadow:0 0 0 .5px #0000001a,0 10px 12px #0000004d;color:#000;display:none;font-size:12px;margin:2px 0 0;max-width:600px;min-width:160px;padding:5px 0;text-align:left;-webkit-user-select:none;user-select:none;z-index:4}.react-contextmenu-separator{border-bottom:1px solid #ddd;margin:6px 0}.react-contextmenu.react-contextmenu--visible{display:block;max-height:90vh}.react-contextmenu-item:not(.react-contextmenu-submenu){align-items:center;cursor:default;display:flex;line-height:1.5;overflow:hidden;padding:2px 12px;text-overflow:ellipsis;white-space:nowrap}.react-contextmenu-item--selected,.react-contextmenu-item.react-contextmenu-item--active{background-color:var(--blue-60);border-color:var(--blue-60);color:#fff;text-decoration:none}.react-contextmenu-item.react-contextmenu-item--disabled,.react-contextmenu-item.react-contextmenu-item--disabled:hover{background-color:initial;color:#888}.react-contextmenu-item--divider{border-bottom:1px solid #00000026;margin-bottom:3px;padding:2px 0}.react-contextmenu-item.react-contextmenu-submenu>.react-contextmenu-item:after{border:6px solid #0000;border-left-color:#000;content:"";height:0;position:absolute;right:7px;top:5px;width:0}.react-contextmenu-item.react-contextmenu-submenu>.react-contextmenu-item--active:after,.react-contextmenu-item:hover.react-contextmenu-submenu>.react-contextmenu-item:after{border-left-color:highlighttext}.react-contextmenu-item.checkable{padding-right:21px;position:relative}.react-contextmenu-item.indented{padding-left:35px}.react-contextmenu-item.checked:not(.react-contextmenu-item--disabled):before{border:solid #000;border-width:0 2px 2px 0;content:"";display:block;height:6px;position:absolute;right:8px;top:6px;transform:rotate(45deg);width:3px}.react-contextmenu-item--selected.checked,.react-contextmenu-item.react-contextmenu-item--active.checked{border-color:#fff}.react-contextmenu-item--disabled.react-contextmenu-item--selected{background-color:var(--blue-50-a30)}.react-contextmenu-item--selected.checked:not(.react-contextmenu-item--disabled):before{border-color:#fff}.react-contextmenu-item-content{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.react-contextmenu-icon{background:50% no-repeat;flex:none;height:16px;margin-inline-end:8px;pointer-events:auto;width:16px}.react-contextmenu-item>strong{color:#38383d}.react-contextmenu-item--selected>strong{color:#fff}@media (forced-colors:active){.react-contextmenu{border:1px solid CanvasText}.react-contextmenu-item:not(.react-contextmenu-item--disabled):hover{background-color:SelectedItem;color:SelectedItemText}.react-contextmenu-item.react-contextmenu-item--disabled,.react-contextmenu-item.react-contextmenu-item--disabled:hover{color:GrayText}}',"",{version:3,sources:["webpack://./src/components/shared/ContextMenu.css"],names:[],mappings:"AAIA,mBAQE,qBAAsB,CAFtB,iBAAkB,CAGlB,qDAE8B,CAC9B,UAAW,CAVX,YAAa,CAWb,cAAe,CANf,cAAe,CAHf,eAAgB,CADhB,eAAgB,CAEhB,aAAc,CASd,eAAgB,CAChB,wBAAiB,CAAjB,gBAAiB,CAdjB,SAeF,CAEA,6BACE,4BAA6B,CAC7B,YACF,CAGA,8CACE,aAAc,CACd,eACF,CAEA,wDAGE,kBAAmB,CAEnB,cAAe,CAJf,YAAa,CAKb,eAAgB,CAJhB,eAAgB,CAEhB,gBAAiB,CAGjB,sBAAuB,CACvB,kBACF,CAEA,yFAGE,+BAAgC,CADhC,2BAA4B,CAE5B,UAAW,CACX,oBACF,CAEA,wHAEE,wBAA6B,CAC7B,UACF,CAEA,iCAEE,iCAA0C,CAC1C,iBAAkB,CAFlB,aAGF,CAGA,gFAQE,sBAAuB,CAAvB,sBAAuB,CACvB,UAAW,CAHX,QAAS,CAJT,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAER,OAKF,CAGA,8KAIE,+BACF,CAEA,kCAEE,kBAAmB,CADnB,iBAEF,CAEA,iCACE,iBACF,CAEA,8EAQE,iBAAyB,CAAzB,wBAAyB,CACzB,UAAW,CALX,aAAc,CAEd,UAAW,CALX,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAQR,uBAAwB,CALxB,SAMF,CAEA,yGAEE,iBACF,CAEA,mEACE,mCACF,CAEA,wFAIE,iBACF,CAIA,gCAGE,MAAO,CADP,WAAY,CADZ,eAAgB,CAGhB,sBACF,CAGA,wBAIE,wBAA4B,CAD5B,SAAU,CADV,WAAY,CAGZ,qBAAsB,CACtB,mBAAoB,CALpB,UAMF,CAGA,+BACE,aACF,CAEA,yCACE,UACF,CAEA,8BACE,mBACE,2BACF,CAEA,qEACE,6BAA8B,CAC9B,sBACF,CAEA,wHAEE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.react-contextmenu {\n z-index: 4; /* needs to be on a higher level than .overflowEdgeIndicatorEdge */\n display: none;\n min-width: 160px;\n max-width: 600px;\n padding: 5px 0;\n border-radius: 3px;\n margin: 2px 0 0;\n background-color: #fff;\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 10px 12px rgb(0 0 0 / 0.3);\n color: #000;\n font-size: 12px;\n text-align: left;\n user-select: none;\n}\n\n.react-contextmenu-separator {\n border-bottom: 1px solid #ddd;\n margin: 6px 0;\n}\n\n/* max-height for context menus in the panel changed to 90vh for better zoom experience */\n.react-contextmenu.react-contextmenu--visible {\n display: block;\n max-height: 90vh;\n}\n\n.react-contextmenu-item:not(.react-contextmenu-submenu) {\n display: flex;\n overflow: hidden;\n align-items: center;\n padding: 2px 12px;\n cursor: default;\n line-height: 1.5;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.react-contextmenu-item.react-contextmenu-item--active,\n.react-contextmenu-item--selected {\n border-color: var(--blue-60);\n background-color: var(--blue-60);\n color: #fff;\n text-decoration: none;\n}\n\n.react-contextmenu-item.react-contextmenu-item--disabled,\n.react-contextmenu-item.react-contextmenu-item--disabled:hover {\n background-color: transparent;\n color: #888;\n}\n\n.react-contextmenu-item--divider {\n padding: 2px 0;\n border-bottom: 1px solid rgb(0 0 0 / 0.15);\n margin-bottom: 3px;\n}\n\n/* Submenu arrow */\n.react-contextmenu-item.react-contextmenu-submenu\n > .react-contextmenu-item::after {\n position: absolute;\n top: 5px;\n right: 7px;\n width: 0;\n height: 0;\n border: 6px solid transparent;\n border-left-color: #000;\n content: '';\n}\n\n/* Submenu arrow highlighted color */\n.react-contextmenu-item:hover.react-contextmenu-submenu\n > .react-contextmenu-item::after,\n.react-contextmenu-item.react-contextmenu-submenu\n > .react-contextmenu-item--active::after {\n border-left-color: highlighttext;\n}\n\n.react-contextmenu-item.checkable {\n position: relative;\n padding-right: 21px;\n}\n\n.react-contextmenu-item.indented {\n padding-left: 35px;\n}\n\n.react-contextmenu-item.checked:not(.react-contextmenu-item--disabled)::before {\n position: absolute;\n top: 6px;\n right: 8px;\n display: block;\n width: 3px;\n height: 6px;\n border: solid #000;\n border-width: 0 2px 2px 0;\n content: '';\n transform: rotate(45deg);\n}\n\n.react-contextmenu-item.react-contextmenu-item--active.checked,\n.react-contextmenu-item--selected.checked {\n border-color: #fff;\n}\n\n.react-contextmenu-item--disabled.react-contextmenu-item--selected {\n background-color: var(--blue-50-a30);\n}\n\n.react-contextmenu-item--selected.checked:not(\n .react-contextmenu-item--disabled\n )::before {\n /* Invert the colors of the checkmark when selected */\n border-color: #fff;\n}\n\n/* Use this wrapper for a content that needs to take the available space or if\n * it contains other HTML elements (eg <strong>) */\n.react-contextmenu-item-content {\n overflow: hidden;\n min-width: 0;\n flex: 1;\n text-overflow: ellipsis;\n}\n\n/* Use a span with this class to add an icon to an item. */\n.react-contextmenu-icon {\n width: 16px;\n height: 16px;\n flex: none;\n background: center no-repeat;\n margin-inline-end: 8px;\n pointer-events: auto;\n}\n\n/* Soften a bit the style of highlighted words */\n.react-contextmenu-item > strong {\n color: #38383d;\n}\n\n.react-contextmenu-item--selected > strong {\n color: #fff;\n}\n\n@media (forced-colors: active) {\n .react-contextmenu {\n border: 1px solid CanvasText;\n }\n\n .react-contextmenu-item:not(.react-contextmenu-item--disabled):hover {\n background-color: SelectedItem;\n color: SelectedItemText;\n }\n\n .react-contextmenu-item.react-contextmenu-item--disabled,\n .react-contextmenu-item.react-contextmenu-item--disabled:hover {\n color: GrayText;\n }\n}\n"],sourceRoot:""}]);const s=i},348:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(1196),n.b),d=new URL(n(5572),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.timelineTrack{margin:0;padding:0}.timelineTrackLocal{margin-left:15px}.timelineTrackRow{--selected-left-border-width:3px;background-color:#fff;border-top:1px solid var(--grey-30);display:flex;flex-flow:row nowrap;padding-left:var(--selected-left-border-width)}.timelineTrackRow.selected{background-color:#edf6ff;box-shadow:calc(var(--selected-left-border-width)*-1) 0 var(--blue-60);margin-left:var(--selected-left-border-width);padding-left:0}.timelineTrackRow.activeTab{margin:0;padding:0}.timelineTrackLocalRow{border-left:1px solid var(--grey-30)}.timelineTrackLocalRow.selected{border-left-color:#0000}.timelineTrackHidden{height:0;pointer-events:none}.timelineTrackLabel{align-items:center;border-right:1px solid var(--grey-30);box-sizing:border-box;cursor:default;display:flex;flex-flow:row nowrap;width:calc(150px - var(--selected-left-border-width))}.timelineTrackNameButton{background:none;border:none;font:inherit;height:calc(100% - 8px);overflow:hidden;padding:0 0 0 calc(10px - var(--selected-left-border-width));text-align:left;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 8px)}.timelineTrackNameButtonAdditionalDetails{color:var(--grey-90-a60);font-size:10px}.timelineTrackCloseButton{background:url(${h}) no-repeat 50%;background-origin:content-box;background-size:contain;border:0;border-radius:2px;color:#0000;flex-shrink:0;height:15px;margin-inline-end:2px;overflow:hidden;padding:1px;width:15px;-moz-user-focus:ignore}.timelineTrackCloseButton:hover{background-color:#00000026}.timelineTrackCloseButton:active:hover{background-color:#0000004d}.timelineTrackLabel:not(:hover)>.timelineTrackCloseButton{display:none}.timelineTrackTrack{display:flex;flex:1;flex-flow:column nowrap;position:relative}.timelineTrackLocalTracks{background:var(--grey-20);list-style:none;padding:0;position:relative}.timelineTrackLocalTracks:before{box-shadow:inset 0 1px 5px #0003;content:"";height:100%;left:-15px;pointer-events:none;position:absolute;width:calc(100% + 15px);z-index:3}.timelineTrackLocalLabel{width:calc(134px - var(--selected-left-border-width))}@media (forced-colors:active){.timelineTrackRow{--selected-left-border-width:0px}.timelineTrackRow.selected .timelineTrackLabel{background-color:SelectedItem;border-color:CanvasText;color:SelectedItemText}.timelineTrackRow.selected .timelineTrackLabel button{color:inherit}.timelineTrackRow:not(.selected):hover .timelineTrackLabel{background-color:SelectedItemText;color:SelectedItem}.timelineTrackRow:not(.selected):hover .timelineTrackLabel button{color:inherit}.timelineTrackLocalTracks:before{border-top:1px solid}.timelineTrackCloseButton{background-color:ButtonFace;border:1px solid ButtonText}.timelineTrackCloseButton:hover{background-color:ButtonFace;border-color:SelectedItem}@media (prefers-color-scheme:dark){.timelineTrackCloseButton{background-image:url(${p})}}}`,"",{version:3,sources:["webpack://./src/components/timeline/Track.css"],names:[],mappings:"AAQA,eAEE,QAAS,CADT,SAEF,CAEA,oBACE,gBACF,CAEA,kBAIE,gCAAiC,CASjC,qBAAsB,CADtB,mCAAoC,CANpC,YAAa,CACb,oBAAqB,CAIrB,8CAGF,CAEA,2BAME,wBAAyB,CAKzB,sEAAyE,CANzE,6CAA8C,CAD9C,cAQF,CAKA,4BAEE,QAAS,CADT,SAEF,CAEA,uBACE,oCACF,CAEA,gCAIE,uBACF,CAEA,qBACE,QAAS,CACT,mBACF,CAEA,oBAOE,kBAAmB,CACnB,qCAAsC,CAHtC,qBAAsB,CAItB,cAAe,CARf,YAAa,CAKb,oBAAqB,CAFrB,qDAMF,CAEA,yBAWE,eAAgB,CADhB,WAAY,CAEZ,YAAa,CAPb,uBAAwB,CAJxB,eAAgB,CAQhB,4DAA6D,CAI7D,eAAgB,CAChB,sBAAuB,CACvB,kBAAmB,CAXnB,sBAYF,CAEA,0CACE,wBAAyB,CACzB,cACF,CAEA,0BAQE,gEAAqE,CACrE,6BAA8B,CAC9B,uBAAwB,CAJxB,QAAS,CACT,iBAAkB,CAIlB,WAAkB,CAPlB,aAAc,CADd,WAAY,CASZ,qBAAsB,CAXtB,eAAgB,CAIhB,WAAY,CAHZ,UAAW,CAWX,sBACF,CAEA,gCACE,0BACF,CAEA,uCACE,0BACF,CAEA,0DACE,YACF,CAEA,oBAEE,YAAa,CACb,MAAO,CACP,uBAAwB,CAHxB,iBAIF,CAEA,0BAGE,yBAA0B,CAC1B,eAAgB,CAFhB,SAAU,CADV,iBAIF,CAOA,iCAQE,gCAA4C,CAC5C,UAAW,CAFX,WAAY,CAFZ,UAAW,CAKX,mBAAoB,CATpB,iBAAkB,CAKlB,uBAAwB,CAFxB,SAOF,CAEA,yBAEE,qDACF,CAEA,8BACE,kBAKE,gCACF,CAEA,+CAEE,6BAA8B,CAD9B,uBAAwB,CAExB,sBACF,CAEA,sDACE,aACF,CAEA,2DACE,iCAAkC,CAClC,kBACF,CAEA,kEACE,aACF,CAIA,iCACE,oBACF,CAEA,0BAEE,2BAA4B,CAD5B,2BAEF,CAEA,gCAEE,2BAA4B,CAD5B,yBAEF,CAEA,mCAEE,0BACE,wDACF,CACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This file is a little different. It combines the GlobalTrack and LocalTrack css\n * into one file, as it is mostly shared style.\n */\n.timelineTrack {\n padding: 0;\n margin: 0;\n}\n\n.timelineTrackLocal {\n margin-left: 15px;\n}\n\n.timelineTrackRow {\n /* This is the width of the blue left border when a track is selected.\n * This variable will be used every time we need to calculate some width that\n * depends on this value, from the intended perceived width. */\n --selected-left-border-width: 3px;\n\n display: flex;\n flex-flow: row nowrap;\n\n /* This padding is added to the button's padding as the perceived padding. For\n * a global row, it will be replaced with a margin when it's selected. */\n padding-left: var(--selected-left-border-width);\n border-top: 1px solid var(--grey-30);\n background-color: #fff;\n}\n\n.timelineTrackRow.selected {\n /* We replace the padding by some margin. Indeed the box-shadow used to draw\n * the blue selected left border is drawn outside of the border box, so the\n * 3px margin makes this space available. */\n padding-left: 0;\n margin-left: var(--selected-left-border-width);\n background-color: #edf6ff;\n\n /* We use a box-shadow on the track row instead of using border, so\n * that when we select adjacent tracks, we see just one line, without any\n * border on top of it. */\n box-shadow: calc(-1 * var(--selected-left-border-width)) 0 var(--blue-60);\n}\n\n/* In the active tab view, we don't want any margin or padding, because\n * otherwise we lose the alignment with the other panels. Therefore we won't\n * have the blue left border when a track is selected in this view. */\n.timelineTrackRow.activeTab {\n padding: 0;\n margin: 0;\n}\n\n.timelineTrackLocalRow {\n border-left: 1px solid var(--grey-30);\n}\n\n.timelineTrackLocalRow.selected {\n /* By removing the left border, it looks like the blue border is on top of it.\n * By using the transparent color instead of removing it altogether, we keep\n * the 1px space. */\n border-left-color: transparent;\n}\n\n.timelineTrackHidden {\n height: 0;\n pointer-events: none;\n}\n\n.timelineTrackLabel {\n display: flex;\n\n /* We want the width to look like it's 150px, but need to substract the 3px padding/margin */\n width: calc(150px - var(--selected-left-border-width));\n box-sizing: border-box;\n flex-flow: row nowrap;\n align-items: center;\n border-right: 1px solid var(--grey-30);\n cursor: default;\n}\n\n.timelineTrackNameButton {\n overflow: hidden;\n\n /* The 8px are used by the box-shadow when the button receives focus */\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n\n /* We want the left padding to look like 10px, but need to remove 3px to\n * account for the padding/margin on the row. */\n padding: 0 0 0 calc(10px - var(--selected-left-border-width));\n border: none;\n background: none;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.timelineTrackNameButtonAdditionalDetails {\n color: var(--grey-90-a60);\n font-size: 10px;\n}\n\n.timelineTrackCloseButton {\n overflow: hidden;\n width: 15px;\n height: 15px;\n flex-shrink: 0;\n padding: 1px;\n border: 0;\n border-radius: 2px;\n background: url(../../../res/img/svg/close-dark.svg) no-repeat center;\n background-origin: content-box;\n background-size: contain;\n color: transparent;\n margin-inline-end: 2px;\n -moz-user-focus: ignore;\n}\n\n.timelineTrackCloseButton:hover {\n background-color: rgb(0 0 0 / 0.15);\n}\n\n.timelineTrackCloseButton:active:hover {\n background-color: rgb(0 0 0 / 0.3);\n}\n\n.timelineTrackLabel:not(:hover) > .timelineTrackCloseButton {\n display: none;\n}\n\n.timelineTrackTrack {\n position: relative;\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.timelineTrackLocalTracks {\n position: relative;\n padding: 0;\n background: var(--grey-20);\n list-style: none;\n}\n\n/**\n * Local tracks are indented 15px. This rule adds an inset shadow overlay over the\n * entire local tracks area, including the indented space. This is why it is shifted\n * to the left, and slightly larger than 100%.\n */\n.timelineTrackLocalTracks::before {\n position: absolute;\n\n /* Place it above the Reorderable component, which has a z-index of 2. */\n z-index: 3;\n left: -15px;\n width: calc(100% + 15px);\n height: 100%;\n box-shadow: inset 0 1px 5px rgb(0 0 0 / 0.2);\n content: '';\n pointer-events: none;\n}\n\n.timelineTrackLocalLabel {\n /* We want the width to look like it's 150px, but need to substract the 3px padding/margin and the 1px border */\n width: calc(135px - var(--selected-left-border-width) - 1px);\n}\n\n@media (forced-colors: active) {\n .timelineTrackRow {\n /* In regular mode, the left border is drawn with a box-shadow which is not visible in HCM,\n and would make the selected track look misaligned.\n Since we're rendering the track with a completely different color, we can avoid setting this\n border, setting it to 0px so the computation made to account for it handle everything fine */\n --selected-left-border-width: 0px;\n }\n\n .timelineTrackRow.selected .timelineTrackLabel {\n border-color: CanvasText;\n background-color: SelectedItem;\n color: SelectedItemText;\n }\n\n .timelineTrackRow.selected .timelineTrackLabel button {\n color: inherit;\n }\n\n .timelineTrackRow:not(.selected):hover .timelineTrackLabel {\n background-color: SelectedItemText;\n color: SelectedItem;\n }\n\n .timelineTrackRow:not(.selected):hover .timelineTrackLabel button {\n color: inherit;\n }\n\n /* In regular mode, there's an inset box-shadow, which we don't see in HCM.\n Add a solid border so we do have a separation between a parent and a local track */\n .timelineTrackLocalTracks::before {\n border-top: 1px solid;\n }\n\n .timelineTrackCloseButton {\n border: 1px solid ButtonText;\n background-color: ButtonFace;\n }\n\n .timelineTrackCloseButton:hover {\n border-color: SelectedItem;\n background-color: ButtonFace;\n }\n\n @media (prefers-color-scheme: dark) {\n /* We need to adapt the cross icon in dark mode so it still visible */\n .timelineTrackCloseButton {\n background-image: url(../../../res/img/svg/close-light.svg);\n }\n }\n}\n"],sourceRoot:""}]);const m=u},489:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".panelSearchField{padding:0 4px;z-index:1}.panelSearchFieldLabel{align-items:center;display:inline-flex;gap:4px;height:100%}.panelSearchFieldInput{width:300px}.panelSearchFieldIntroduction{background-color:#fff;box-shadow:0 1px 4px #0c0c0d1a;color:var(--grey-50);font-size:.9em;line-height:2;padding:0 4px;transform:translate(2px,-2px);z-index:-1}.panelSearchFieldIntroduction.isDisplayed{transition:transform .15s var(--animation-curve),opacity .15s ease-in-out,visibility .15s ease-in-out}.panelSearchFieldIntroduction.isHidden{opacity:0;transform:translateY(-100%);transition:transform .15s steps(1),opacity .15s ease-in-out,visibility .15s ease-in-out;visibility:hidden}","",{version:3,sources:["webpack://./src/components/shared/PanelSearch.css"],names:[],mappings:"AAAA,kBAIE,aAAc,CADd,SAEF,CAEA,uBAIE,kBAAmB,CAFnB,mBAAoB,CAGpB,OAAQ,CAFR,WAGF,CAEA,uBACE,WACF,CAEA,8BAGE,qBAAuB,CACvB,8BAAyC,CACzC,oBAAqB,CACrB,cAAgB,CAChB,aAAc,CALd,aAAc,CAMd,6BAA+B,CAP/B,UAQF,CAEA,0CACE,qGAIF,CAEA,uCACE,SAAU,CACV,2BAA4B,CAG5B,uFAG8B,CAC9B,iBACF",sourcesContent:[".panelSearchField {\n /* so that the introduction is on top of other panels, _but_ still keep it\n * below the input field (see below) */\n z-index: 1;\n padding: 0 4px;\n}\n\n.panelSearchFieldLabel {\n /* We fix the height so that the panelSearchFieldIntroduction doesn't increase it */\n display: inline-flex;\n height: 100%;\n align-items: center;\n gap: 4px;\n}\n\n.panelSearchFieldInput {\n width: 300px;\n}\n\n.panelSearchFieldIntroduction {\n z-index: -1; /* it needs to be below the input field */\n padding: 0 4px;\n background-color: white;\n box-shadow: 0 1px 4px rgb(12 12 13 / 0.1); /* This is grey-90 with 10% opacity, according to the photon design document */\n color: var(--grey-50);\n font-size: 0.9em;\n line-height: 2;\n transform: translate(2px, -2px);\n}\n\n.panelSearchFieldIntroduction.isDisplayed {\n transition:\n transform 150ms var(--animation-curve),\n opacity 150ms ease-in-out,\n visibility 150ms ease-in-out;\n}\n\n.panelSearchFieldIntroduction.isHidden {\n opacity: 0;\n transform: translateY(-100%);\n\n /* steps(1) is to wait until the end for the transform to happen */\n transition:\n transform 150ms steps(1),\n opacity 150ms ease-in-out,\n visibility 150ms ease-in-out;\n visibility: hidden;\n}\n"],sourceRoot:""}]);const s=i},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},561:(e,t,n)=>{"use strict";n.d(t,{J:()=>p,o:()=>h});var r=n(919),o=n(9839);const a=/^(?<vcs>hg|git):(?<repo>[^:]*):(?<path>[^:]*):(?<rev>.*)$/,i=/^s3:(?<bucket>[^:]*):(?<digest>[0-9a-f]*)\/(?<path>[^:]*):$/,s=/^cargo:(?<registry>[^:]*):(?<crate>[^/]+)-(?<version>[0-9]+\.[0-9]+\.[0-9]+):(?<path>[^:]*)$/,l=new RegExp("^(?<host>"+o.HT+")/source(?<path>.*)$"),c=/^gem:(?<gem>[A-Za-z0-9\-_\.]+):(?<path>[^:]*)$/,d=/^rubylib:(?<version>[0-9\.]+):(?<ext>bigdecimal|cgi|continuation|coverage|date|digest|erb|etc|fcntl|fiddle|io|json|monitor|nkf|objspace|openssl|pathname|psych|pty|racc|rbconfig|readline|ripper|rubyvm|socket|stringio|strscan|syslog|win32|win32ole|zlib)\/(?<path>[^:]*)$/,u=/^rubylib:(?<version>[0-9\.]+):(?<path>[^:]*)$/;function h(e){const t=a.exec(e);if(null!==t&&t.groups){const{vcs:e,repo:n,path:r,rev:o}=t.groups;if("hg"!==e&&"git"!==e)throw new Error('The regexp ensures that "vcs" is "hg" or "git", so this cannot happen.');return{type:e,repo:n,path:r,rev:o}}const n=i.exec(e);if(null!==n&&n.groups){const{bucket:e,digest:t,path:r}=n.groups;return{type:"s3",bucket:e,digest:t,path:r}}const r=s.exec(e);if(null!==r&&r.groups){const{registry:e,crate:t,version:n,path:o}=r.groups;return{type:"cargo",registry:e,crate:t,version:n,path:`${t}-${n}/${o}`}}const o=c.exec(e);if(null!==o&&o.groups){const{gem:e,path:t}=o.groups;return{type:"gem",gem:e,path:t}}const h=d.exec(e);if(null!==h&&h.groups){const{version:e,ext:t,path:n}=h.groups,r=`ext/${t}/lib/${t}/${n}`;return{type:"git",repo:"github.com/ruby/ruby",rev:`v${e.replaceAll(".","_")}`,path:r}}const p=u.exec(e);if(null!==p&&p.groups){const{version:e,path:t}=p.groups,n=`lib/${t}`;return{type:"git",repo:"github.com/ruby/ruby",rev:`v${e.replaceAll(".","_")}`,path:n}}const m=l.exec(e);if(null!==m&&m.groups){const{host:e,path:t}=m.groups;return{type:"localhost",host:e+"/source",path:t}}return{type:"normal",path:e}}function p(e){switch(e.type){case"hg":{const{repo:t,rev:n,path:r}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://${t}/raw-file/${n}/${r}`}}case"localhost":{const{host:t,path:n}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`${t}${n}`}}case"git":{const{repo:t,rev:n,path:r}=e,o=t.indexOf("/");if(-1===o)return{type:"NO_KNOWN_CORS_URL"};const a=t.slice(0,o),i=t.slice(o+1);return"github.com"===a?{type:"CORS_ENABLED_SINGLE_FILE",url:`https://raw.githubusercontent.com/${i}/${n}/${r}`}:a.endsWith(".googlesource.com")?{type:"CORS_ENABLED_SINGLE_FILE",url:`https://googlesource-proxy.mstange.workers.dev/${a.slice(0,a.length-17)}/${i}.git/+/${n}/${r}`}:{type:"NO_KNOWN_CORS_URL"}}case"s3":{const{bucket:t,digest:n,path:r}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://${t}.s3.amazonaws.com/${n}/${r}`}}case"cargo":{const{crate:t,version:n,path:r}=e;return{type:"CORS_ENABLED_ARCHIVE",archiveUrl:`https://crates.io/api/v1/crates/${t}/${n}/download`,pathInArchive:r}}case"gem":{if("function"==typeof m)return m(e);const{gem:t,path:n}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://gems.vernier.prof/${t}/${n}`}}case"normal":return"function"==typeof f?f(e):{type:"NO_KNOWN_CORS_URL"};default:throw(0,r.lC)(e.type,"unhandled ParsedFile type")}}let m,f;(async()=>{const e=await async function(){try{const e=n(2020)("./ruby-custom-hooks.js");return e?{rubyGemDownloadRecipe:e.rubyGemDownloadRecipe,normalPathCatchall:e.normalPathCatchall}:null}catch(e){}return null}();e&&(m=e.rubyGemDownloadRecipe,f=e.normalPathCatchall)})()},717:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".rootMessageContainer{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.rootMessage{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:130%;max-width:600px;overflow:hidden;padding:3em;width:80%}.rootBackHomeLink,.rootMessageAdditional,.rootMessageText{line-height:1.5}.rootMessageTitle{margin-top:0}.rootMessageAdditional{border-top:1px solid #ccc;font-size:12px;margin-top:1em;padding-top:1em}.loading{height:40px;margin-top:10px;position:relative}.loading-div{animation-duration:4s;animation-iteration-count:infinite;animation-name:loadingdiv;border-radius:2px;height:8px;position:absolute}.loading-row-1{top:0}.loading-row-2{top:10px}.loading-row-3{top:20px}.loading-row-4{top:30px}.loading-div-1{animation-delay:-.9s;background-color:var(--red-50);width:100%}.loading-div-2{animation-delay:-.8s;background-color:var(--blue-50);left:1%;width:97%}.loading-div-3{animation-delay:-.7s;background-color:var(--orange-50);left:5%;width:30%}.loading-div-4{animation-delay:-.6s;left:43%;width:53%}.loading-div-4,.loading-div-5{background-color:var(--purple-50)}.loading-div-5{animation-delay:-.5s;left:8%;width:14%}.loading-div-6{animation-delay:-.4s;background-color:var(--green-50);left:23%;width:11%}.loading-div-7{animation-delay:-.3s;left:44%;width:15%}.loading-div-7,.loading-div-8{background-color:var(--orange-50)}.loading-div-8{animation-delay:-.2s;left:60%;width:17%}.loading-div-9{animation-delay:-.1s;background-color:var(--blue-50);left:78%;width:2%}.loading-div-10{animation-delay:0s;background-color:var(--green-60);left:81%;width:11%}@keyframes loadingdiv{0%{opacity:0;transform:translateX(100px)}20%{opacity:0;transform:translateX(100px)}45%{opacity:1;transform:translateX(0)}65%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100px)}}@media (prefers-reduced-motion){.loading-div{animation:none}}","",{version:3,sources:["webpack://./src/components/app/ProfileRootMessage.css"],names:[],mappings:"AAIA,sBAOE,kBAAmB,CAHnB,YAAa,CAEb,WAAY,CAEZ,sBAAuB,CALvB,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,UAIF,CAEA,aAQE,qBAAsB,CAFtB,qBAAsB,CACtB,iBAAkB,CAElB,6BAA8B,CAL9B,qBAAsB,CAMtB,cAAe,CAPf,eAAgB,CAFhB,eAAgB,CAIhB,WAAY,CAHZ,SASF,CAEA,0DAGE,eACF,CAEA,kBACE,YACF,CAEA,uBAEE,yBAA0B,CAE1B,cAAe,CADf,cAAe,CAFf,eAIF,CAEA,SAEE,WAAY,CACZ,eAAgB,CAFhB,iBAGF,CAEA,aAIE,qBAA0B,CAC1B,kCAAmC,CACnC,yBAA0B,CAH1B,iBAAkB,CADlB,UAAW,CADX,iBAMF,CAEA,eACE,KACF,CAEA,eACE,QACF,CAEA,eACE,QACF,CAEA,eACE,QACF,CAEA,eAEE,oBAAuB,CACvB,8BAA+B,CAF/B,UAGF,CAEA,eAGE,oBAAuB,CACvB,+BAAgC,CAHhC,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CACvB,iCAAkC,CAHlC,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,8BAHE,iCAQF,CALA,eAGE,oBAAuB,CAFvB,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CACvB,gCAAiC,CAHjC,QAAS,CACT,SAGF,CAEA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,8BAHE,iCAQF,CALA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,eAGE,oBAAuB,CACvB,+BAAgC,CAHhC,QAAS,CACT,QAGF,CAEA,gBAGE,kBAAoB,CACpB,gCAAiC,CAHjC,QAAS,CACT,SAGF,CAEA,sBACE,GACE,SAAU,CACV,2BACF,CAEA,IACE,SAAU,CACV,2BACF,CAEA,IACE,SAAU,CACV,uBACF,CAEA,IACE,SAAU,CACV,uBACF,CAEA,GACE,SAAU,CACV,4BACF,CACF,CAKA,gCACE,aACE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.rootMessageContainer {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.rootMessage {\n overflow: hidden;\n width: 80%;\n max-width: 600px;\n box-sizing: border-box;\n padding: 3em;\n border: 1px solid #ccc;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.rootMessageText,\n.rootMessageAdditional,\n.rootBackHomeLink {\n line-height: 1.5;\n}\n\n.rootMessageTitle {\n margin-top: 0;\n}\n\n.rootMessageAdditional {\n padding-top: 1em;\n border-top: 1px solid #ccc;\n margin-top: 1em;\n font-size: 12px;\n}\n\n.loading {\n position: relative;\n height: 40px;\n margin-top: 10px;\n}\n\n.loading-div {\n position: absolute;\n height: 8px;\n border-radius: 2px;\n animation-duration: 4000ms;\n animation-iteration-count: infinite;\n animation-name: loadingdiv;\n}\n\n.loading-row-1 {\n top: 0;\n}\n\n.loading-row-2 {\n top: 10px;\n}\n\n.loading-row-3 {\n top: 20px;\n}\n\n.loading-row-4 {\n top: 30px;\n}\n\n.loading-div-1 {\n width: 100%;\n animation-delay: -900ms;\n background-color: var(--red-50);\n}\n\n.loading-div-2 {\n left: 1%;\n width: 97%;\n animation-delay: -800ms;\n background-color: var(--blue-50);\n}\n\n.loading-div-3 {\n left: 5%;\n width: 30%;\n animation-delay: -700ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-4 {\n left: 43%;\n width: 53%;\n animation-delay: -600ms;\n background-color: var(--purple-50);\n}\n\n.loading-div-5 {\n left: 8%;\n width: 14%;\n animation-delay: -500ms;\n background-color: var(--purple-50);\n}\n\n.loading-div-6 {\n left: 23%;\n width: 11%;\n animation-delay: -400ms;\n background-color: var(--green-50);\n}\n\n.loading-div-7 {\n left: 44%;\n width: 15%;\n animation-delay: -300ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-8 {\n left: 60%;\n width: 17%;\n animation-delay: -200ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-9 {\n left: 78%;\n width: 2%;\n animation-delay: -100ms;\n background-color: var(--blue-50);\n}\n\n.loading-div-10 {\n left: 81%;\n width: 11%;\n animation-delay: 0ms;\n background-color: var(--green-60);\n}\n\n@keyframes loadingdiv {\n 0% {\n opacity: 0;\n transform: translateX(100px);\n }\n\n 20% {\n opacity: 0;\n transform: translateX(100px);\n }\n\n 45% {\n opacity: 1;\n transform: translateX(0);\n }\n\n 65% {\n opacity: 1;\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n transform: translateX(-100px);\n }\n}\n\n/* Do not animate the loading animation when user prefers reduced motion. The\n * other alternative was to remove these boxes completely, but it's still nice\n * to keep the boxes as a nice visualization. */\n@media (prefers-reduced-motion) {\n .loading-div {\n animation: none;\n }\n}\n"],sourceRoot:""}]);const s=i},797:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".tooltipCallNodeCategory{align-items:center;border-top:1px solid var(--grey-40);display:grid;padding-bottom:10px;grid-gap:4px;grid-template-columns:repeat(4,min-content)}.tooltipCallNodeHeader{border-right:1px solid var(--grey-30);color:var(--grey-50);margin-top:5px;padding:0 5px;white-space:nowrap}.tooltipCallNodeName{white-space:nowrap}.tooltipCallNodeGraph{display:flex;flex-direction:column;gap:2px;height:10px;width:150px}.tooltipCallNodeGraphMeter{appearance:none;background:var(--grey-90-a10);flex:1;height:0}.tooltipCallNodeGraphMeterBar{border-inline-end:1px solid var(--grey-50);box-sizing:border-box;height:100%}.tooltipCallNodeCategory .tooltipCategoryRowHeader{font-weight:700;margin-top:12px}.tooltipCallNodeTiming{padding:0 5px;text-align:right;white-space:nowrap}.tooltipCallNodeHeaderSwatchRunning,.tooltipCallNodeHeaderSwatchSelf{border:.5px solid #0000001a;box-sizing:border-box;display:inline-block;height:9px;margin-right:3px;width:9px}.tooltipCallNodeHeaderSwatchRunning{background-color:var(--blue-40)}.tooltipCallNodeHeaderSwatchSelf{background-color:var(--blue-60)}.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchRunning,.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchSelf{display:none}.tooltipCallNodeDetailsLeft{min-width:150px;padding:10px 10px 5px}","",{version:3,sources:["webpack://./src/components/tooltip/CallNode.css"],names:[],mappings:"AAIA,yBAEE,kBAAmB,CAEnB,mCAAoC,CAHpC,YAAa,CAEb,mBAAoB,CAEpB,YAAa,CACb,2CACF,CAEA,uBAEE,qCAAsC,CAEtC,oBAAqB,CADrB,cAAe,CAFf,aAAc,CAId,kBACF,CAEA,qBACE,kBACF,CAGA,sBACE,YAAa,CAGb,qBAAsB,CACtB,OAAQ,CAFR,WAAY,CADZ,WAIF,CAGA,2BAKE,eAAgB,CAChB,6BAA8B,CAF9B,MAAO,CADP,QAIF,CAGA,8BAME,0CAA2C,CAJ3C,qBAAsB,CADtB,WAMF,CAEA,mDAEE,eAAiB,CADjB,eAEF,CAEA,uBACE,aAAc,CACd,gBAAiB,CACjB,kBACF,CAEA,qEAME,2BAAoC,CADpC,qBAAsB,CAHtB,oBAAqB,CAErB,UAAW,CAGX,gBAAiB,CAJjB,SAKF,CAEA,oCACE,+BACF,CAEA,iCACE,+BACF,CAEA,uHAEE,YACF,CAEA,4BACE,eAAgB,CAEhB,qBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.tooltipCallNodeCategory {\n display: grid;\n align-items: center;\n padding-bottom: 10px;\n border-top: 1px solid var(--grey-40);\n grid-gap: 4px;\n grid-template-columns: repeat(4, min-content);\n}\n\n.tooltipCallNodeHeader {\n padding: 0 5px;\n border-right: 1px solid var(--grey-30);\n margin-top: 5px;\n color: var(--grey-50);\n white-space: nowrap;\n}\n\n.tooltipCallNodeName {\n white-space: nowrap;\n}\n\n/* This contains the 2 meters (self and total sample count values). */\n.tooltipCallNodeGraph {\n display: flex;\n width: 150px;\n height: 10px;\n flex-direction: column;\n gap: 2px;\n}\n\n/* This is just one meter (either self or total sample count values). */\n.tooltipCallNodeGraphMeter {\n /* It's not fully clear why height: 0 is needed here, but otherwise the meter\n * has a height of 11px despite the parent's 10px height... */\n height: 0;\n flex: 1;\n appearance: none;\n background: var(--grey-90-a10);\n}\n\n/* This is the bar inside the meter. */\n.tooltipCallNodeGraphMeterBar {\n height: 100%;\n box-sizing: border-box;\n\n /* Some colors don't have enough contrast (yellow for JavaScript, white for\n * Idle), therefore adding a border improves accessibility. */\n border-inline-end: 1px solid var(--grey-50);\n}\n\n.tooltipCallNodeCategory .tooltipCategoryRowHeader {\n margin-top: 12px;\n font-weight: bold;\n}\n\n.tooltipCallNodeTiming {\n padding: 0 5px;\n text-align: right;\n white-space: nowrap;\n}\n\n.tooltipCallNodeHeaderSwatchRunning,\n.tooltipCallNodeHeaderSwatchSelf {\n display: inline-block;\n width: 9px;\n height: 9px;\n box-sizing: border-box;\n border: 0.5px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n}\n\n.tooltipCallNodeHeaderSwatchRunning {\n background-color: var(--blue-40);\n}\n\n.tooltipCallNodeHeaderSwatchSelf {\n background-color: var(--blue-60);\n}\n\n.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchSelf,\n.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchRunning {\n display: none;\n}\n\n.tooltipCallNodeDetailsLeft {\n min-width: 150px;\n padding: 10px;\n padding-bottom: 5px;\n}\n"],sourceRoot:""}]);const s=i},852:(e,t,n)=>{"use strict";e.exports=n.p+"d09537c705fb0878eb63.svg"},877:(e,t,n)=>{"use strict";e.exports=n.p+"490065792b7e903c9f3e.svg"},919:(e,t,n)=>{"use strict";function r(e,t=`There was an unhandled case for the value: "${e}"`){throw new Error(t)}function o(e,...t){return Object.assign({},e,...t)}function a(e){const t=e;switch(t){case"calltree":case"stack-chart":case"marker-chart":case"network-chart":case"marker-table":case"flame-graph":case"js-tracer":return t;default:return null}}function i(e){const t=a(e);if(!t)throw new Error(`Attempted to assert that "${e}" is a valid TransformType, and it was not.`);return t}function s(e){const t=e;switch(t){case"merge-call-node":case"merge-function":case"focus-subtree":case"focus-function":case"focus-category":case"collapse-resource":case"collapse-direct-recursion":case"collapse-recursion":case"collapse-function-subtree":case"drop-function":case"filter-samples":return t;default:return null}}function l(e){return e}function c(e){return Object.entries(e)}function d(e,t){const n={};for(const[r,o]of c(e))n[r]=t(o,r);return n}function u(e){return Object.values(e)}function h(e,t){if(null===e)throw new Error(t||"Expected an item to exist, and it was null.");if(void 0===e)throw new Error(t||"Expected an item to exist, and it was undefined.");return e}function p(e){return e.values().next().value}n.d(t,{Cn:()=>o,DO:()=>s,K0:()=>d,Nn:()=>h,WP:()=>c,au:()=>l,cF:()=>p,hQ:()=>i,lC:()=>r,q3:()=>a,rj:()=>u})},946:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(4199);const o=3,a={};function i(e,t){if("undefined"!=typeof performance){const n=performance.now(),i=t(),s=Math.round(performance.now()-n),l=a[e]||0;return l<o&&(a[e]=1+l,(0,r.H)({hitType:"timing",timingCategory:"timeCode",timingVar:e,timingValue:s})),i}return t()}},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(2551)},976:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".stackSettings{align-items:stretch;display:flex;flex-flow:row nowrap;height:25px;padding:0;white-space:nowrap}.stackSettingsSelect{color:inherit;font-size:inherit;height:24px;position:relative}","",{version:3,sources:["webpack://./src/components/shared/StackSettings.css"],names:[],mappings:"AAIA,eAIE,mBAAoB,CAHpB,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,SAAU,CACV,kBACF,CAEA,qBAKE,aAAc,CACd,iBAAkB,CAFlB,WAAY,CADZ,iBAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n align-items: stretch;\n padding: 0;\n white-space: nowrap;\n}\n\n.stackSettingsSelect {\n /* Create a new stacking context for the select using a position:relative. This way\n * the focus ring around the select breaks out of its surrounding container. */\n position: relative;\n height: 24px;\n color: inherit; /* important so that the text is still legible when the OS is configured in dark mode. */\n font-size: inherit;\n}\n"],sourceRoot:""}]);const s=i},1086:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,"button::-moz-focus-inner,input::-moz-focus-inner{border:0}button:focus-visible,input[type=button]:focus-visible,input[type=checkbox]:focus-visible,input[type=image]:focus-visible,input[type=radio]:focus-visible,input[type=range]:focus-visible,input[type=reset]:focus-visible,input[type=submit]:focus-visible,select:focus-visible{box-shadow:0 0 0 1px var(--blue-50) inset,0 0 0 1px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}a:focus-visible{box-shadow:0 0 0 2px var(--blue-50),0 0 0 6px var(--blue-50-a30);outline:0}","",{version:3,sources:["webpack://./res/css/focus.css"],names:[],mappings:"AAKA,iDAEE,QACF,CAEA,+QASE,+FAG8B,CAC9B,SACF,CAEA,gBACE,gEAE8B,CAC9B,SACF",sourcesContent:["/* the box shadow is taken from photon-button primary button focus styling\nhttps://design.firefox.com/photon/components/buttons.html */\n\n/* removes the default Firefox focus indicator,\nso that we can add a custom indicator */\ninput::-moz-focus-inner,\nbutton::-moz-focus-inner {\n border: 0;\n}\n\ninput[type='radio']:focus-visible,\ninput[type='checkbox']:focus-visible,\ninput[type='button']:focus-visible,\ninput[type='submit']:focus-visible,\ninput[type='reset']:focus-visible,\ninput[type='image']:focus-visible,\ninput[type='range']:focus-visible,\nselect:focus-visible,\nbutton:focus-visible {\n box-shadow:\n 0 0 0 1px var(--blue-50) inset,\n 0 0 0 1px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n\na:focus-visible {\n box-shadow:\n 0 0 0 2px var(--blue-50),\n 0 0 0 6px var(--blue-50-a30);\n outline: 0;\n}\n"],sourceRoot:""}]);const s=i},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},1172:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".chartCanvas{left:0;position:absolute;top:0}.chartCanvas.hover{cursor:default}","",{version:3,sources:["webpack://./src/components/shared/chart/Canvas.css"],names:[],mappings:"AAAA,aAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAEA,mBACE,cACF",sourcesContent:[".chartCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.chartCanvas.hover {\n cursor: default;\n}\n"],sourceRoot:""}]);const s=i},1190:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".confirmDialogTitle{font-size:1.2em;margin:0;overflow:hidden;text-overflow:ellipsis}.confirmDialogContent{margin:16px 0}.confirmDialogButtons{display:flex;gap:8px}.confirmDialogButtons>.photon-button{flex:auto}","",{version:3,sources:["webpack://./res/css/photon/confirm-dialog.css"],names:[],mappings:"AAkCA,oBAGE,eAAgB,CADhB,QAAS,CADT,eAAgB,CAGhB,sBACF,CAEA,sBACE,aACF,CAEA,sBACE,YAAa,CACb,OACF,CAEA,qCACE,SACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* This implements a confirm dialog using Photon components. \n * While not formally part of photon.\n *\n * This is how we can use it:\n *\n * <div className="confirmDialog">\n * <h3 className="confirmDialogTitle">\n * Wonderful title\n * </h3>\n * <div className="confirmDialogContent">\n * Wonderful content\n * </div>\n * <div className="confirmDialogButtons">\n * <input\n * type="button"\n * className="photon-button photon-button-default"\n * value="Cancel"\n * onClick={doSomethingOnCancel}\n * />\n * <input\n * type="button"\n * className="photon-button photon-button-destructive"\n * value="Confirm"\n * onClick={doSomethingOnConfirm}\n * />\n * </div>\n * </div>\n *\n */\n\n.confirmDialogTitle {\n overflow: hidden;\n margin: 0;\n font-size: 1.2em;\n text-overflow: ellipsis;\n}\n\n.confirmDialogContent {\n margin: 16px 0;\n}\n\n.confirmDialogButtons {\n display: flex;\n gap: 8px;\n}\n\n.confirmDialogButtons > .photon-button {\n flex: auto;\n}\n'],sourceRoot:""}]);const s=i},1196:(e,t,n)=>{"use strict";e.exports=n.p+"6bd0589a27236471fdab.svg"},1228:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackNetwork{position:relative;width:100%}.timelineTrackNetworkCanvas{height:100%;position:absolute;width:100%}","",{version:3,sources:["webpack://./src/components/timeline/TrackNetwork.css"],names:[],mappings:"AAIA,sBACE,iBAAkB,CAClB,UACF,CAEA,4BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackNetwork {\n position: relative;\n width: 100%;\n}\n\n.timelineTrackNetworkCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n"],sourceRoot:""}]);const s=i},1332:(e,t,n)=>{"use strict";e.exports=n.p+"0c510afd6169a0a83f97.svg"},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(o," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},1359:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".photon-button{align-items:center;background:none;background-color:var(--grey-90-a10);border:none;border-radius:2px;box-sizing:border-box;color:var(--grey-90);cursor:auto;display:inline-flex;font:inherit;justify-content:center;margin:0;padding:0 8px;text-decoration:none;-webkit-user-select:none;user-select:none}.photon-button::-moz-focus-inner{border:none}.photon-button:disabled{opacity:.4}.photon-button:hover:not(:disabled){background-color:var(--grey-90-a20)}.photon-button:hover:active:not(:disabled){background-color:var(--grey-90-a30)}.photon-button-default,.photon-button-destructive,.photon-button-primary{font-size:13px;height:32px;min-width:132px;padding:0 8px}.photon-button-primary{background-color:var(--blue-60);color:#fff}.photon-button-primary:hover:not(:disabled){background-color:var(--blue-70)}.photon-button-primary:hover:active:not(:disabled){background-color:var(--blue-80)}.photon-button-destructive{background-color:var(--red-60);color:#fff}.photon-button-destructive:hover:not(:disabled){background-color:var(--red-70)}.photon-button-destructive:hover:active:not(:disabled){background-color:var(--red-80)}.photon-button-ghost{background-color:initial;height:32px;width:32px}.photon-button-ghost--checked,.photon-button-ghost:hover:not(:disabled){background-color:var(--grey-90-a10)}.photon-button-ghost:hover:active:not(:disabled){background-color:var(--grey-90-a20)}.photon-button-micro{height:24px}","",{version:3,sources:["webpack://./res/css/photon/button.css"],names:[],mappings:"AAKA,eAKE,kBAAmB,CAQnB,eAAgB,CAGhB,mCAAoC,CARpC,WAAY,CACZ,iBAAkB,CALlB,qBAAsB,CAatB,oBAAqB,CACrB,WAAe,CAff,mBAAoB,CAgBpB,YAAa,CAbb,sBAAuB,CAIvB,QAAS,CAHT,aAAc,CAad,oBAAqB,CACrB,wBAAiB,CAAjB,gBACF,CAIA,iCACE,WACF,CAEA,wBACE,UACF,CAIA,oCACE,mCACF,CAEA,2CACE,mCACF,CAEA,yEAME,cAAe,CAFf,WAAY,CADZ,eAAgB,CAEhB,aAEF,CAEA,uBACE,+BAAgC,CAChC,UACF,CAEA,4CACE,+BACF,CAEA,mDACE,+BACF,CAGA,2BACE,8BAA+B,CAC/B,UACF,CAEA,gDACE,8BACF,CAEA,uDACE,8BACF,CAEA,qBAGE,wBAA6B,CAD7B,WAAY,CADZ,UAGF,CAEA,wEAEE,mCACF,CAEA,iDACE,mCACF,CAEA,qBACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/buttons.html for the spec */\n.photon-button {\n /* These flex and sizing properties aren't necessary when a real <button> is used,\n * but they are when a <a> element is used as a button. */\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n padding: 0 8px;\n border: none;\n border-radius: 2px;\n margin: 0;\n\n /* reset default styles */\n background: none;\n\n /* photon styles */\n background-color: var(--grey-90-a10);\n color: var(--grey-90);\n cursor: initial; /* reset the defaut link style when used as a button */\n font: inherit;\n text-decoration: none; /* reset the defaut link style when used as a button */\n user-select: none;\n}\n\n/* This is a Firefox-specific style because Firefox adds a focusring at a bad\n * position. We're adding our own below. */\n.photon-button::-moz-focus-inner {\n border: none;\n}\n\n.photon-button:disabled {\n opacity: 0.4;\n}\n\n/* Note: we're using :not(:disabled) instead of :enabled so that this can apply\n * to non-input elements too. */\n.photon-button:hover:not(:disabled) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-button:hover:active:not(:disabled) {\n background-color: var(--grey-90-a30);\n}\n\n.photon-button-primary,\n.photon-button-destructive,\n.photon-button-default {\n min-width: 132px;\n height: 32px;\n padding: 0 8px;\n font-size: 13px;\n}\n\n.photon-button-primary {\n background-color: var(--blue-60);\n color: #fff;\n}\n\n.photon-button-primary:hover:not(:disabled) {\n background-color: var(--blue-70);\n}\n\n.photon-button-primary:hover:active:not(:disabled) {\n background-color: var(--blue-80);\n}\n\n/* Use this class for destructive actions only. */\n.photon-button-destructive {\n background-color: var(--red-60);\n color: #fff;\n}\n\n.photon-button-destructive:hover:not(:disabled) {\n background-color: var(--red-70);\n}\n\n.photon-button-destructive:hover:active:not(:disabled) {\n background-color: var(--red-80);\n}\n\n.photon-button-ghost {\n width: 32px;\n height: 32px;\n background-color: transparent;\n}\n\n.photon-button-ghost:hover:not(:disabled),\n.photon-button-ghost--checked {\n background-color: var(--grey-90-a10);\n}\n\n.photon-button-ghost:hover:active:not(:disabled) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-button-micro {\n height: 24px;\n}\n"],sourceRoot:""}]);const s=i},1392:(e,t,n)=>{"use strict";e.exports=n.p+"d9c199b3e3e469cc5713.svg"},1460:(e,t,n)=>{"use strict";e.exports=n.p+"390aa266f451c1005f61.svg"},1501:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackPowerGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackPowerCanvas{height:100%;position:absolute;width:100%}.timelineTrackPowerGraphDot{border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}","",{version:3,sources:["webpack://./src/components/timeline/TrackPower.css"],names:[],mappings:"AAIA,yBAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,0BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,4BAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackPowerGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackPowerCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackPowerGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},1520:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4564),n.b),d=i()(o()),u=l()(c);d.push([e.id,`@keyframes profileViewerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes profileViewerFadeInSanitized{0%{opacity:0;transform:scale(1.05)}to{opacity:1}}@keyframes profileViewerFadeOut{0%{opacity:1}to{opacity:0;transform:scale(.95)}}.profileViewerWrapper{display:flex;flex:1;min-width:0}.profileViewerWrapperBackground{background-color:var(--grey-40)}.profileViewer{animation-duration:.2s;animation-name:profileViewerFadeIn;background-color:#fff;display:flex;flex:1;flex-flow:column nowrap;min-width:0}.profileViewerFadeOut{animation-duration:.3s;animation-name:profileViewerFadeOut;opacity:0;pointer-events:none}.profileViewerFadeInSanitized{animation-duration:.5s;animation-name:profileViewerFadeInSanitized}.profileViewerZipButton{background:var(--green-50) url(${u}) center center no-repeat;border:1px solid var(--green-60);border-radius:3px;color:#000;flex:none;height:18px;margin:3px 0 3px 3px;padding:0;width:18px}.profileViewerZipButton:hover{border-color:#000}.profileViewerSplitter{position:relative;z-index:0}.profileViewerSplitter>.layout-pane:not(.layout-pane-primary){display:flex;flex-direction:column;max-height:var(--profile-viewer-splitter-max-height);overflow:hidden}.profileViewerTopBar{background:var(--grey-10);border-bottom:1px solid var(--grey-30);display:flex;flex:none;flex-flow:row nowrap;height:24px;margin:0;padding:0}.profileViewerSpacer{flex:1}@media (prefers-reduced-motion){.profileViewer,.profileViewerFadeInSanitized,.profileViewerFadeOut{animation:none}}`,"",{version:3,sources:["webpack://./src/components/app/ProfileViewer.css"],names:[],mappings:"AAIA,+BACE,GACE,SACF,CAEA,GACE,SACF,CACF,CAEA,wCACE,GACE,SAAU,CACV,qBACF,CAEA,GACE,SACF,CACF,CAEA,gCACE,GACE,SACF,CAEA,GACE,SAAU,CACV,oBACF,CACF,CAEA,sBACE,YAAa,CAEb,MAAO,CADP,WAEF,CAEA,gCACE,+BACF,CAEA,eAKE,sBAAyB,CACzB,kCAAmC,CACnC,qBAAsB,CANtB,YAAa,CAEb,MAAO,CACP,uBAAwB,CAFxB,WAMF,CAEA,sBAEE,sBAAyB,CACzB,mCAAoC,CACpC,SAAU,CACV,mBACF,CAEA,8BACE,sBAAyB,CACzB,2CACF,CAEA,wBAaE,0FACkB,CANlB,gCAAiC,CACjC,iBAAkB,CAMlB,UAAW,CATX,SAAU,CAHV,WAAY,CAOZ,oBAAqB,CAHrB,SAAU,CALV,UAcF,CAEA,8BACE,iBACF,CAEA,uBAIE,iBAAkB,CAClB,SACF,CAEA,8DACE,YAAa,CAGb,qBAAsB,CADtB,oDAAqD,CADrD,eAGF,CAEA,qBAQE,yBAA0B,CAF1B,sCAAuC,CALvC,YAAa,CAEb,SAAU,CACV,oBAAqB,CAFrB,WAAY,CAKZ,QAAS,CAFT,SAIF,CAEA,qBACE,MACF,CAIA,gCACE,mEAGE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n@keyframes profileViewerFadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes profileViewerFadeInSanitized {\n 0% {\n opacity: 0;\n transform: scale(1.05);\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes profileViewerFadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n.profileViewerWrapper {\n display: flex;\n min-width: 0;\n flex: 1;\n}\n\n.profileViewerWrapperBackground {\n background-color: var(--grey-40);\n}\n\n.profileViewer {\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n flex: 1;\n flex-flow: column nowrap;\n animation-duration: 200ms;\n animation-name: profileViewerFadeIn;\n background-color: #fff;\n}\n\n.profileViewerFadeOut {\n /* Keep this duration in sync with the value in hideStaleProfile() */\n animation-duration: 300ms;\n animation-name: profileViewerFadeOut;\n opacity: 0;\n pointer-events: none;\n}\n\n.profileViewerFadeInSanitized {\n animation-duration: 500ms;\n animation-name: profileViewerFadeInSanitized;\n}\n\n.profileViewerZipButton {\n /* Position */\n width: 18px;\n height: 18px;\n\n /* Box */\n flex: none;\n padding: 0;\n border: 1px solid var(--green-60);\n border-radius: 3px;\n margin: 3px 0 3px 3px;\n\n /* Other */\n background: var(--green-50) url(../../../res/img/svg/back-arrow.svg) center\n center no-repeat;\n color: #000;\n}\n\n.profileViewerZipButton:hover {\n border-color: #000;\n}\n\n.profileViewerSplitter {\n /* Create a stacking context, so that the KeyboardShortcut can overlay the profile\n viewer. In addition, the built-in class uses position: absolute, which is not\n appropriate here. */\n position: relative;\n z-index: 0;\n}\n\n.profileViewerSplitter > .layout-pane:not(.layout-pane-primary) {\n display: flex;\n overflow: hidden;\n max-height: var(--profile-viewer-splitter-max-height);\n flex-direction: column;\n}\n\n.profileViewerTopBar {\n display: flex;\n height: 24px;\n flex: none;\n flex-flow: row nowrap;\n padding: 0;\n border-bottom: 1px solid var(--grey-30);\n margin: 0;\n background: var(--grey-10);\n}\n\n.profileViewerSpacer {\n flex: 1;\n}\n\n/* Do no animate the whole profile viewer during loading and publishing if user\n * prefers reduced motion. */\n@media (prefers-reduced-motion) {\n .profileViewer,\n .profileViewerFadeOut,\n .profileViewerFadeInSanitized {\n animation: none;\n }\n}\n"],sourceRoot:""}]);const h=d},1563:(e,t,n)=>{"use strict";e.exports=n.p+"118632062f4755918dac.svg"},1587:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5418),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.timelineSelection{--thread-label-column-width:150px;--vertical-scrollbar-reserved-width:15px;--content-width:calc(100vw - var(--thread-label-column-width) - var(--vertical-scrollbar-reserved-width));--grippy-range-background-color:#aaa;--grippy-range-border-color:#fff;--grippy-range-hover-background-color:#888;--selection-outbound-opacity:0.1;display:flex;flex:1;flex-direction:column;margin-left:var(--thread-label-column-width);position:relative;width:var(--content-width);-moz-user-focus:ignore}.timelineSelectionHoverLine{background:#0006;bottom:0;pointer-events:none;position:absolute;top:0;width:1px;z-index:1}.timelineSelectionOverlayTime{background-color:#999;border-radius:0 4px 4px 0;color:#fff;margin-left:1px;padding:3.25px 8px;position:absolute;z-index:1}.timelineSelectionOverlay{display:flex;flex-flow:row nowrap;inset:0;margin-left:-5px;overflow:hidden;padding-left:5px;pointer-events:none;position:absolute;z-index:2}.timelineSelectionDimmerAfter,.timelineSelectionDimmerBefore{background:rgb(12 12 13/var(--selection-outbound-opacity));flex-shrink:0;forced-color-adjust:none}.timelineSelectionDimmerAfter{flex:1}.timelineSelectionOverlayWrapper{display:flex;flex-flow:column nowrap}.timelineSelectionGrippy{display:flex;flex-flow:row nowrap;height:20px;pointer-events:auto}.timelineSelectionGrippyRangeEnd,.timelineSelectionGrippyRangeStart{background:var(--grippy-range-background-color);border:1px solid var(--grippy-range-border-color);border-radius:5px;cursor:ew-resize;margin:0 -4px;padding:3px;position:relative;width:0;z-index:3}.draggingEnd>.timelineSelectionGrippyRangeEnd,.draggingStart>.timelineSelectionGrippyRangeStart,.timelineSelectionGrippyRangeEnd:hover,.timelineSelectionGrippyRangeStart:hover,:not(.draggingStart,.draggingEnd)>.timelineSelectionGrippyRangeEnd.dragging,:not(.draggingStart,.draggingEnd)>.timelineSelectionGrippyRangeStart.dragging{background:var(--grippy-range-hover-background-color)}.timelineSelectionGrippyMoveRange{cursor:grab;flex:1}.timelineSelectionGrippyMoveRange.dragging{cursor:grabbing}.timelineSelectionOverlayInner{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;min-width:0}.timelineSelectionOverlayRange{background-color:var(--blue-50);border-radius:0 0 4px 4px;box-shadow:0 2px 2px #0003;color:#fff;opacity:1;padding:4px 8px;pointer-events:none;position:absolute;top:20px;transition:opacity .2s}.timelineSelectionOverlayRange.hidden{opacity:0}.timelineSelectionOverlayZoomButton{background-color:#fff9;border:1px solid #0003;border-radius:100%;box-sizing:border-box;height:30px;margin:-15px;opacity:.5;pointer-events:auto;position:relative;transition:opacity .2s ease-in-out;width:30px;will-change:opacity}.timelineSelectionOverlayZoomButton:before{content:url(${u});display:grid;inset:0;place-content:center;position:absolute}.timelineSelectionOverlayZoomButton.hidden{opacity:0!important;pointer-events:none;transition:unset}.timelineSelectionOverlayZoomButton:hover{background-color:#ffffffe6}.timelineSelection:hover .timelineSelectionOverlayZoomButton,.timelineSelectionOverlayZoomButton:active{opacity:1}.timelineSelectionOverlayZoomButton:active:hover{background-color:#a0a0a099}@media (forced-colors:active){.timelineSelectionOverlayTime{background-color:CanvasText;color:Canvas}.timelineSelectionHoverLine{background-color:CanvasText}.timelineSelection{--grippy-range-background-color:ButtonText;--grippy-range-border-color:ButtonBorder;--grippy-range-hover-background-color:SelectedItem;--selection-outbound-opacity:0.6}.timelineSelectionDimmerBefore{border-inline-end:1px solid CanvasText}.timelineSelectionDimmerAfter{border-inline-start:1px solid CanvasText}.timelineSelectionOverlayZoomButton{background-color:ButtonFace;border-color:ButtonText;opacity:1}.timelineSelectionOverlayZoomButton:before{filter:url(#--button-icon-color)}.timelineSelectionOverlayZoomButton:hover{background-color:SelectedItemText;border-color:SelectedItem}.timelineSelectionOverlayZoomButton:hover:before{filter:url(#--button-icon-hover-color)}.timelineSelectionOverlayZoomButton:active:hover{background-color:ButtonFace;border-color:ButtonText}.timelineSelectionOverlayZoomButton:hover:active:before{filter:url(#--button-icon-active-color)}}`,"",{version:3,sources:["webpack://./src/components/timeline/Selection.css"],names:[],mappings:"AAIA,mBACE,iCAAkC,CAClC,wCAAyC,CACzC,yGAGC,CACD,oCAAqC,CACrC,gCAAkC,CAClC,0CAA2C,CAC3C,gCAAiC,CAGjC,YAAa,CAEb,MAAO,CACP,qBAAsB,CACtB,4CAA6C,CAL7C,iBAAkB,CAElB,0BAA2B,CAI3B,sBACF,CAEA,4BAME,gBAA4B,CAF5B,QAAS,CAGT,mBAAoB,CANpB,iBAAkB,CAElB,KAAM,CAEN,SAAU,CAHV,SAMF,CAEA,8BAME,qBAAkC,CAFlC,yBAA0B,CAG1B,UAAW,CAFX,eAAgB,CAFhB,kBAAmB,CAFnB,iBAAkB,CAClB,SAMF,CAEA,0BAGE,YAAa,CAEb,oBAAqB,CAGrB,OAAQ,CADR,gBAAiB,CAHjB,eAAgB,CAEhB,gBAAiB,CAGjB,mBAAoB,CARpB,iBAAkB,CAClB,SAQF,CAEA,6DAGE,0DAA6D,CAD7D,aAAc,CAEd,wBACF,CAEA,8BACE,MACF,CAEA,iCACE,YAAa,CACb,uBACF,CAEA,yBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAEZ,mBACF,CAEA,oEASE,+CAAgD,CAHhD,iDAAkD,CAClD,iBAAkB,CAGlB,gBAAiB,CAFjB,aAAc,CAHd,WAAY,CAHZ,iBAAkB,CAElB,OAAQ,CADR,SAQF,CAQA,0UAOE,qDACF,CAEA,kCAEE,WAAY,CADZ,MAEF,CAEA,2CACE,eACF,CAEA,+BAKE,kBAAmB,CAJnB,YAAa,CAGb,MAAO,CAEP,sBAAuB,CAHvB,YAAa,CADb,WAKF,CAEA,+BAKE,+BAAgC,CADhC,yBAA0B,CAE1B,0BAAsC,CACtC,UAAW,CACX,SAAU,CALV,eAAgB,CAMhB,mBAAoB,CARpB,iBAAkB,CAClB,QAAS,CAQT,sBACF,CAEA,sCACE,SACF,CAEA,oCAQE,sBAAwC,CAHxC,sBAAkC,CAClC,kBAAmB,CAFnB,qBAAsB,CADtB,WAAY,CAIZ,YAAa,CAEb,UAAY,CACZ,mBAAoB,CATpB,iBAAkB,CAUlB,kCAAqC,CATrC,UAAW,CAUX,mBACF,CAEA,2CAGE,+CAAwD,CADxD,YAAa,CAEb,OAAQ,CACR,oBAAqB,CAJrB,iBAKF,CAEA,2CACE,mBAAqB,CACrB,mBAAoB,CACpB,gBACF,CAEA,0CACE,0BACF,CAEA,wGAEE,SACF,CAEA,iDACE,0BACF,CAEA,8BACE,8BACE,2BAA4B,CAC5B,YACF,CAEA,4BACE,2BACF,CAEA,mBACE,0CAA2C,CAC3C,wCAAyC,CACzC,kDAAmD,CACnD,gCACF,CAEA,+BACE,sCACF,CAEA,8BACE,wCACF,CAEA,oCAEE,2BAA4B,CAD5B,uBAAwB,CAExB,SACF,CAEA,2CACE,gCACF,CAEA,0CAEE,iCAAkC,CADlC,yBAEF,CAEA,iDACE,sCACF,CAEA,iDAEE,2BAA4B,CAD5B,uBAEF,CAEA,wDACE,uCACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineSelection {\n --thread-label-column-width: 150px;\n --vertical-scrollbar-reserved-width: 15px;\n --content-width: calc(\n 100vw - var(--thread-label-column-width) -\n var(--vertical-scrollbar-reserved-width)\n );\n --grippy-range-background-color: #aaa;\n --grippy-range-border-color: white;\n --grippy-range-hover-background-color: #888;\n --selection-outbound-opacity: 0.1;\n\n position: relative;\n display: flex;\n width: var(--content-width);\n flex: 1;\n flex-direction: column;\n margin-left: var(--thread-label-column-width);\n -moz-user-focus: ignore;\n}\n\n.timelineSelectionHoverLine {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n width: 1px;\n background: rgb(0 0 0 / 0.4);\n pointer-events: none;\n}\n\n.timelineSelectionOverlayTime {\n position: absolute;\n z-index: 1;\n padding: 3.25px 8px;\n border-radius: 0 4px 4px 0;\n margin-left: 1px;\n background-color: rgb(153 153 153);\n color: #fff;\n}\n\n.timelineSelectionOverlay {\n position: absolute;\n z-index: 2;\n display: flex;\n overflow: hidden;\n flex-flow: row nowrap;\n padding-left: 5px;\n margin-left: -5px;\n inset: 0;\n pointer-events: none;\n}\n\n.timelineSelectionDimmerBefore,\n.timelineSelectionDimmerAfter {\n flex-shrink: 0;\n background: rgb(12 12 13 / var(--selection-outbound-opacity));\n forced-color-adjust: none;\n}\n\n.timelineSelectionDimmerAfter {\n flex: 1;\n}\n\n.timelineSelectionOverlayWrapper {\n display: flex;\n flex-flow: column nowrap;\n}\n\n.timelineSelectionGrippy {\n display: flex;\n height: 20px;\n flex-flow: row nowrap;\n pointer-events: auto;\n}\n\n.timelineSelectionGrippyRangeStart,\n.timelineSelectionGrippyRangeEnd {\n position: relative;\n z-index: 3;\n width: 0;\n padding: 3px;\n border: 1px solid var(--grippy-range-border-color);\n border-radius: 5px;\n margin: 0 -4px;\n background: var(--grippy-range-background-color);\n cursor: ew-resize;\n}\n\n/* The :not() selectors are to handle the edge case where the mouse is pressed\n * on a grippy, then the pointer is moved down (above the first track) but not\n * moved horizontally.\n * In that case, because selectionDeltas are 0, the draggingStart/draggingEnd\n * classes are not set, and the grippy is not hovered, so it would be light\n * grey until the mouse is moved horizontally. */\n.timelineSelectionGrippyRangeStart:hover,\n.draggingStart > .timelineSelectionGrippyRangeStart,\n:not(.draggingStart, .draggingEnd)\n > .timelineSelectionGrippyRangeStart.dragging,\n.timelineSelectionGrippyRangeEnd:hover,\n.draggingEnd > .timelineSelectionGrippyRangeEnd,\n:not(.draggingStart, .draggingEnd) > .timelineSelectionGrippyRangeEnd.dragging {\n background: var(--grippy-range-hover-background-color);\n}\n\n.timelineSelectionGrippyMoveRange {\n flex: 1;\n cursor: grab;\n}\n\n.timelineSelectionGrippyMoveRange.dragging {\n cursor: grabbing;\n}\n\n.timelineSelectionOverlayInner {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1;\n align-items: center;\n justify-content: center;\n}\n\n.timelineSelectionOverlayRange {\n position: absolute;\n top: 20px;\n padding: 4px 8px;\n border-radius: 0 0 4px 4px;\n background-color: var(--blue-50);\n box-shadow: 0 2px 2px rgb(0 0 0 / 0.2);\n color: #fff;\n opacity: 1;\n pointer-events: none;\n transition: opacity 200ms;\n}\n\n.timelineSelectionOverlayRange.hidden {\n opacity: 0;\n}\n\n.timelineSelectionOverlayZoomButton {\n position: relative;\n width: 30px;\n height: 30px;\n box-sizing: border-box;\n border: 1px solid rgb(0 0 0 / 0.2);\n border-radius: 100%;\n margin: -15px;\n background-color: rgb(255 255 255 / 0.6);\n opacity: 0.5;\n pointer-events: auto;\n transition: opacity 200ms ease-in-out;\n will-change: opacity;\n}\n\n.timelineSelectionOverlayZoomButton::before {\n position: absolute;\n display: grid;\n content: url(firefox-profiler-res/img/svg/zoom-icon.svg);\n inset: 0;\n place-content: center;\n}\n\n.timelineSelectionOverlayZoomButton.hidden {\n opacity: 0 !important;\n pointer-events: none;\n transition: unset;\n}\n\n.timelineSelectionOverlayZoomButton:hover {\n background-color: rgb(255 255 255 / 0.9);\n}\n\n.timelineSelectionOverlayZoomButton:active,\n.timelineSelection:hover .timelineSelectionOverlayZoomButton {\n opacity: 1;\n}\n\n.timelineSelectionOverlayZoomButton:active:hover {\n background-color: rgb(160 160 160 / 0.6);\n}\n\n@media (forced-colors: active) {\n .timelineSelectionOverlayTime {\n background-color: CanvasText;\n color: Canvas;\n }\n\n .timelineSelectionHoverLine {\n background-color: CanvasText;\n }\n\n .timelineSelection {\n --grippy-range-background-color: ButtonText;\n --grippy-range-border-color: ButtonBorder;\n --grippy-range-hover-background-color: SelectedItem;\n --selection-outbound-opacity: 0.6;\n }\n\n .timelineSelectionDimmerBefore {\n border-inline-end: 1px solid CanvasText;\n }\n\n .timelineSelectionDimmerAfter {\n border-inline-start: 1px solid CanvasText;\n }\n\n .timelineSelectionOverlayZoomButton {\n border-color: ButtonText;\n background-color: ButtonFace;\n opacity: 1;\n }\n\n .timelineSelectionOverlayZoomButton::before {\n filter: url(#--button-icon-color);\n }\n\n .timelineSelectionOverlayZoomButton:hover {\n border-color: SelectedItem;\n background-color: SelectedItemText;\n }\n\n .timelineSelectionOverlayZoomButton:hover::before {\n filter: url(#--button-icon-hover-color);\n }\n\n .timelineSelectionOverlayZoomButton:active:hover {\n border-color: ButtonText;\n background-color: ButtonFace;\n }\n\n .timelineSelectionOverlayZoomButton:hover:active::before {\n filter: url(#--button-icon-active-color);\n }\n}\n"],sourceRoot:""}]);const h=d},1617:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(){this.clear()}r.prototype={toString:function(){return"[object MixedTupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=e.length,r=[],o=[],a=[],i=0;i<t;i++){var s=e[i],l=void 0===s?"undefined":n(s);null===l||"object"!==l&&"function"!==l?(r.push("string"===l?'"'+s+'"':""+s),o.push(i)):a.push(i)}if(0===a.length)throw new Error("Tuple must have at least one non-primitive part");return r.push("["+a.concat(o).join()+"]"),this._lastTuple=e,this._lastHash={nonPrimOrder:a,primHash:r.join("/<[MI_SEP]>/")},this._lastHash},has:function(e){for(var t=this._cache,n=this._hash(e),r=n.nonPrimOrder.length,o=0;o<r;o++){var a=e[n.nonPrimOrder[o]];if(!t.has||!t.has(a))return!1;t=t.get(a)}return!!t.has&&t.has(n.primHash)},set:function(e,t){for(var n=this._cache,r=this._hash(e),o=r.nonPrimOrder.length,a=!1,i=0;i<o;i++){var s=e[r.nonPrimOrder[i]];!a&&n.has(s)?n=n.get(s):(a=!0,n.set(s,n=i<o-1?new WeakMap:new Map))}return n.set(r.primHash,t),this},get:function(e){for(var t=this._cache,n=this._hash(e),r=n.nonPrimOrder.length,o=0;o<r;o++){var a=e[n.nonPrimOrder[o]],i=t.get&&t.get(a);if(void 0===i)return i;t=i}return t.get&&t.get(n.primHash)},clear:function(){this._cache=new WeakMap,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},1636:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".nodeIcon{background:50%/contain no-repeat;height:100%;min-height:14px;min-width:14px}","",{version:3,sources:["webpack://./src/components/shared/Icon.css"],names:[],mappings:"AAIA,UAIE,gCAAsC,CAFtC,WAAY,CACZ,eAAgB,CAFhB,cAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.nodeIcon {\n min-width: 14px;\n height: 100%;\n min-height: 14px;\n background: center / contain no-repeat;\n}\n"],sourceRoot:""}]);const s=i},1652:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".TabSelectorMenu{overflow-y:auto}.tabSelectorMenuItem.checkable{padding-inline:20px 10px}.react-contextmenu-item.tabSelectorMenuItem.checked:not(.react-contextmenu-item--disabled):before{inset-inline:8px 0}.tabSelectorMenuItem .nodeIcon{margin-inline-end:10px}","",{version:3,sources:["webpack://./src/components/shared/TabSelectorMenu.css"],names:[],mappings:"AAIA,iBAEE,eACF,CAEA,+BACE,wBACF,CAEA,kGAIE,kBACF,CAEA,+BACE,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.TabSelectorMenu {\n /* Make it scrollable if the tab list is too long. */\n overflow-y: auto;\n}\n\n.tabSelectorMenuItem.checkable {\n padding-inline: 20px 10px;\n}\n\n.react-contextmenu-item.tabSelectorMenuItem.checked:not(\n .react-contextmenu-item--disabled\n )::before {\n /* Move the checkmark to inline-start instead of right, as it's logically better. */\n inset-inline: 8px 0;\n}\n\n.tabSelectorMenuItem .nodeIcon {\n margin-inline-end: 10px;\n}\n"],sourceRoot:""}]);const s=i},1683:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5947),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.profileNameInput{border:none;border-radius:1px;color:var(--grey-60);font:inherit;font-weight:700;height:17px;line-height:17px;margin:4px;padding:0 6px}.profileNameButton{font-weight:700;margin-inline-end:5px;overflow:hidden;padding:0 9px;text-overflow:ellipsis;white-space:nowrap}.profileNameButton:before{background-image:url(${u})}.profileNameInput:focus-visible{box-shadow:0 0 0 2px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}`,"",{version:3,sources:["webpack://./src/components/app/ProfileName.css"],names:[],mappings:"AAIA,kBAGE,WAAY,CACZ,iBAAkB,CAElB,oBAAqB,CACrB,YAAa,CACb,eAAgB,CAPhB,WAAY,CAQZ,gBAAiB,CAJjB,UAAW,CAHX,aAQF,CAEA,mBAGE,eAAgB,CAChB,qBAAsB,CAHtB,eAAgB,CAChB,aAAc,CAGd,sBAAuB,CACvB,kBACF,CAEA,0BACE,wDACF,CAIA,gCACE,gEAE8B,CAC9B,SACF",sourcesContent:["/* this source code form is subject to the terms of the mozilla public\n * license, v. 2.0. if a copy of the mpl was not distributed with this\n * file, you can obtain one at http://mozilla.org/mpl/2.0/. */\n\n.profileNameInput {\n height: 17px;\n padding: 0 6px;\n border: none;\n border-radius: 1px;\n margin: 4px;\n color: var(--grey-60);\n font: inherit;\n font-weight: 700;\n line-height: 17px;\n}\n\n.profileNameButton {\n overflow: hidden;\n padding: 0 9px;\n font-weight: 700;\n margin-inline-end: 5px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.profileNameButton::before {\n background-image: url(firefox-profiler-res/img/svg/edit-name-profiler.svg);\n}\n\n/* Using the style for links rather than for normal inputs, because we don't\n * want to trigger a border that would move things around. */\n.profileNameInput:focus-visible {\n box-shadow:\n 0 0 0 2px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n"],sourceRoot:""}]);const h=d},1710:(e,t,n)=>{e.exports=function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){return o(t[i][1][e]||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=void 0,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=e("./utils"),o=e("./support"),a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(e){for(var t,n,o,i,s,l,c,d=[],u=0,h=e.length,p=h,m="string"!==r.getTypeOf(e);u<e.length;)p=h-u,o=m?(t=e[u++],n=u<h?e[u++]:0,u<h?e[u++]:0):(t=e.charCodeAt(u++),n=u<h?e.charCodeAt(u++):0,u<h?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|n>>4,l=1<p?(15&n)<<2|o>>6:64,c=2<p?63&o:64,d.push(a.charAt(i)+a.charAt(s)+a.charAt(l)+a.charAt(c));return d.join("")},n.decode=function(e){var t,n,r,i,s,l,c=0,d=0,u="data:";if(e.substr(0,5)===u)throw new Error("Invalid base64 input, it looks like a data url.");var h,p=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===a.charAt(64)&&p--,e.charAt(e.length-2)===a.charAt(64)&&p--,p%1!=0)throw new Error("Invalid base64 input, bad content length.");for(h=o.uint8array?new Uint8Array(0|p):new Array(0|p);c<e.length;)t=a.indexOf(e.charAt(c++))<<2|(i=a.indexOf(e.charAt(c++)))>>4,n=(15&i)<<4|(s=a.indexOf(e.charAt(c++)))>>2,r=(3&s)<<6|(l=a.indexOf(e.charAt(c++))),h[d++]=t,64!==s&&(h[d++]=n),64!==l&&(h[d++]=r);return h}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e("./external"),o=e("./stream/DataWorker"),a=e("./stream/Crc32Probe"),i=e("./stream/DataLengthProbe");function s(e,t,n,r,o){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=o}s.prototype={getContentWorker:function(){var e=new o(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new i("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new o(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},s.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new i("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new i("compressedSize")).withStreamInfo("compression",t)},t.exports=s},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e("./utils"),o=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n){var r=o,a=0+n;e^=-1;for(var i=0;i<a;i++)e=e>>>8^r[255&(e^t[i])];return~e}(0|t,e,e.length):function(e,t,n){var r=o,a=0+n;e^=-1;for(var i=0;i<a;i++)e=e>>>8^r[255&(e^t.charCodeAt(i))];return~e}(0|t,e,e.length):0}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,o=e("pako"),a=e("./utils"),i=e("./stream/GenericWorker"),s=r?"uint8array":"array";function l(e,t){i.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",a.inherits(l,i),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(a.transformTo(s,e.data),!1)},l.prototype.flush=function(){i.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";function r(e,t){var n,r="";for(n=0;n<t;n++)r+=String.fromCharCode(255&e),e>>>=8;return r}function o(e,t,n,o,i,d){var u,h,p=e.file,m=e.compression,f=d!==s.utf8encode,g=a.transformTo("string",d(p.name)),A=a.transformTo("string",s.utf8encode(p.name)),b=p.comment,C=a.transformTo("string",d(b)),v=a.transformTo("string",s.utf8encode(b)),y=A.length!==p.name.length,w=v.length!==b.length,E="",k="",x="",T=p.dir,S=p.date,B={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(B.crc32=e.crc32,B.compressedSize=e.compressedSize,B.uncompressedSize=e.uncompressedSize);var I=0;t&&(I|=8),f||!y&&!w||(I|=2048);var _=0,N=0;T&&(_|=16),"UNIX"===i?(N=798,_|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(p.unixPermissions,T)):(N=20,_|=function(e){return 63&(e||0)}(p.dosPermissions)),u=S.getUTCHours(),u<<=6,u|=S.getUTCMinutes(),u<<=5,u|=S.getUTCSeconds()/2,h=S.getUTCFullYear()-1980,h<<=4,h|=S.getUTCMonth()+1,h<<=5,h|=S.getUTCDate(),y&&(k=r(1,1)+r(l(g),4)+A,E+="up"+r(k.length,2)+k),w&&(x=r(1,1)+r(l(C),4)+v,E+="uc"+r(x.length,2)+x);var P="";return P+="\n\0",P+=r(I,2),P+=m.magic,P+=r(u,2),P+=r(h,2),P+=r(B.crc32,4),P+=r(B.compressedSize,4),P+=r(B.uncompressedSize,4),P+=r(g.length,2),P+=r(E.length,2),{fileRecord:c.LOCAL_FILE_HEADER+P+g+E,dirRecord:c.CENTRAL_FILE_HEADER+r(N,2)+P+r(C.length,2)+"\0\0\0\0"+r(_,4)+r(o,4)+g+E+C}}var a=e("../utils"),i=e("../stream/GenericWorker"),s=e("../utf8"),l=e("../crc32"),c=e("../signature");function d(e,t,n,r){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(d,i),d.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},d.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=o(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=o(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var n=this.bytesWritten-e,o=function(e,t,n,o,i){var s=a.transformTo("string",i(o));return c.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(e,2)+r(e,2)+r(t,4)+r(n,4)+r(s.length,2)+s}(this.dirRecords.length,n,e,this.zipComment,this.encodeFileName);this.push({data:o,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()})),e.on("error",(function(e){t.error(e)})),this},d.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var n=0;n<t.length;n++)try{t[n].error(e)}catch(e){}return!0},d.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,n){"use strict";var r=e("../compressions"),o=e("./ZipFileWorker");n.generateWorker=function(e,t,n){var a=new o(t.streamFiles,n,t.platform,t.encodeFileName),i=0;try{e.forEach((function(e,n){i++;var o=function(e,t){var n=e||t,o=r[n];if(!o)throw new Error(n+" is not a valid compression method !");return o}(n.options.compression,t.compression),s=n.options.compressionOptions||t.compressionOptions||{},l=n.dir,c=n.date;n._compressWorker(o,s).withStreamInfo("file",{name:e,dir:l,date:c,comment:n.comment||"",unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions}).pipe(a)})),a.entriesCount=i}catch(e){a.error(e)}return a}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,n){"use strict";function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new r;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}(r.prototype=e("./object")).loadAsync=e("./load"),r.support=e("./support"),r.defaults=e("./defaults"),r.version="3.10.1",r.loadAsync=function(e,t){return(new r).loadAsync(e,t)},r.external=e("./external"),t.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,n){"use strict";var r=e("./utils"),o=e("./external"),a=e("./utf8"),i=e("./zipEntries"),s=e("./stream/Crc32Probe"),l=e("./nodejsUtils");function c(e){return new o.Promise((function(t,n){var r=e.decompressed.getContentWorker().pipe(new s);r.on("error",(function(e){n(e)})).on("end",(function(){r.streamInfo.crc32!==e.decompressed.crc32?n(new Error("Corrupted zip : CRC32 mismatch")):t()})).resume()}))}t.exports=function(e,t){var n=this;return t=r.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:a.utf8decode}),l.isNode&&l.isStream(e)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then((function(e){var n=new i(t);return n.load(e),n})).then((function(e){var n=[o.Promise.resolve(e)],r=e.files;if(t.checkCRC32)for(var a=0;a<r.length;a++)n.push(c(r[a]));return o.Promise.all(n)})).then((function(e){for(var o=e.shift(),a=o.files,i=0;i<a.length;i++){var s=a[i],l=s.fileNameStr,c=r.resolve(s.fileNameStr);n.file(c,s.decompressed,{binary:!0,optimizedBinaryString:!0,date:s.date,dir:s.dir,comment:s.fileCommentStr.length?s.fileCommentStr:null,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,createFolders:t.createFolders}),s.dir||(n.file(c).unsafeOriginalName=l)}return o.zipComment.length&&(n.comment=o.zipComment),n}))}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,n){"use strict";var r=e("../utils"),o=e("../stream/GenericWorker");function a(e,t){o.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}r.inherits(a,o),a.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",(function(e){t.push({data:e,meta:{percent:0}})})).on("error",(function(e){t.isPaused?this.generatedError=e:t.error(e)})).on("end",(function(){t.isPaused?t._upstreamEnded=!0:t.end()}))},a.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},a.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=a},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,n){"use strict";var r=e("readable-stream").Readable;function o(e,t,n){r.call(this,t),this._helper=e;var o=this;e.on("data",(function(e,t){o.push(e)||o._helper.pause(),n&&n(t)})).on("error",(function(e){o.emit("error",e)})).on("end",(function(){o.push(null)}))}e("../utils").inherits(o,r),o.prototype._read=function(){this._helper.resume()},t.exports=o},{"../utils":32,"readable-stream":16}],14:[function(e,t,n){"use strict";t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}}},{}],15:[function(e,t,n){"use strict";function r(e,t,n){var r,o=a.getTypeOf(t),s=a.extend(n||{},l);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),"string"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=f(e)),s.createFolders&&(r=m(e))&&g.call(this,r,!0);var u="string"===o&&!1===s.binary&&!1===s.base64;n&&void 0!==n.binary||(s.binary=!u),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t="",s.compression="STORE",o="string");var A;A=t instanceof c||t instanceof i?t:h.isNode&&h.isStream(t)?new p(e,t):a.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var b=new d(e,A,s);this.files[e]=b}var o=e("./utf8"),a=e("./utils"),i=e("./stream/GenericWorker"),s=e("./stream/StreamHelper"),l=e("./defaults"),c=e("./compressedObject"),d=e("./zipObject"),u=e("./generate"),h=e("./nodejsUtils"),p=e("./nodejs/NodejsStreamInputAdapter"),m=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},f=function(e){return"/"!==e.slice(-1)&&(e+="/"),e},g=function(e,t){return t=void 0!==t?t:l.createFolders,e=f(e),this.files[e]||r.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function A(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var b={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,n,r;for(t in this.files)r=this.files[t],(n=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(n,r)},filter:function(e){var t=[];return this.forEach((function(n,r){e(n,r)&&t.push(r)})),t},file:function(e,t,n){if(1!==arguments.length)return e=this.root+e,r.call(this,e,t,n),this;if(A(e)){var o=e;return this.filter((function(e,t){return!t.dir&&o.test(e)}))}var a=this.files[this.root+e];return a&&!a.dir?a:null},folder:function(e){if(!e)return this;if(A(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=g.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!==e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,n={};try{if((n=a.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=n.type.toLowerCase(),n.compression=n.compression.toUpperCase(),"binarystring"===n.type&&(n.type="string"),!n.type)throw new Error("No output type specified.");a.checkSupport(n.type),"darwin"!==n.platform&&"freebsd"!==n.platform&&"linux"!==n.platform&&"sunos"!==n.platform||(n.platform="UNIX"),"win32"===n.platform&&(n.platform="DOS");var r=n.comment||this.comment||"";t=u.generateWorker(this,n,r)}catch(e){(t=new i("error")).error(e)}return new s(t,n.type||"string",n.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=b},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,n){"use strict";t.exports=e("stream")},{stream:void 0}],17:[function(e,t,n){"use strict";var r=e("./DataReader");function o(e){r.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e("../utils").inherits(o,r),o.prototype.byteAt=function(e){return this.data[this.zero+e]},o.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),a=this.length-4;0<=a;--a)if(this.data[a]===t&&this.data[a+1]===n&&this.data[a+2]===r&&this.data[a+3]===o)return a-this.zero;return-1},o.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&n===a[1]&&r===a[2]&&o===a[3]},o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./DataReader":18}],18:[function(e,t,n){"use strict";var r=e("../utils");function o(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,n=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=o},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e("./Uint8ArrayReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e("./DataReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},o.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},o.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e("./ArrayReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){"use strict";var r=e("../utils"),o=e("../support"),a=e("./ArrayReader"),i=e("./StringReader"),s=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||o.uint8array?"nodebuffer"===t?new s(e):o.uint8array?new l(r.transformTo("uint8array",e)):new a(r.transformTo("array",e)):new i(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){"use strict";var r=e("./GenericWorker"),o=e("../utils");function a(e){r.call(this,"ConvertWorker to "+e),this.destType=e}o.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:o.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e("./GenericWorker"),o=e("../crc32");function a(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(a,r),a.prototype.processChunk=function(e){this.streamInfo.crc32=o(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./GenericWorker");function a(e){o.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,o),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}o.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./GenericWorker");function a(e){o.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(a,o),a.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n<this._listeners[e].length;n++)this._listeners[e][n].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.end()})),e.on("error",(function(e){t.error(e)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=r},{}],29:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./ConvertWorker"),a=e("./GenericWorker"),i=e("../base64"),s=e("../support"),l=e("../external"),c=null;if(s.nodestream)try{c=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function d(e,t,n){var i=t;switch(t){case"blob":case"arraybuffer":i="uint8array";break;case"base64":i="string"}try{this._internalType=i,this._outputType=t,this._mimeType=n,r.checkSupport(i),this._worker=e.pipe(new o(i)),e.lock()}catch(e){this._worker=new a("error"),this._worker.error(e)}}d.prototype={accumulate:function(e){return function(e,t){return new l.Promise((function(n,o){var a=[],s=e._internalType,l=e._outputType,c=e._mimeType;e.on("data",(function(e,n){a.push(e),t&&t(n)})).on("error",(function(e){a=[],o(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return r.newBlob(r.transformTo("arraybuffer",t),n);case"base64":return i.encode(t);default:return r.transformTo(e,t)}}(l,function(e,t){var n,r=0,o=null,a=0;for(n=0;n<t.length;n++)a+=t[n].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(o=new Uint8Array(a),n=0;n<t.length;n++)o.set(t[n],r),r+=t[n].length;return o;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(s,a),c);n(e)}catch(e){o(e)}a=[]})).resume()}))}(this,e)},on:function(e,t){var n=this;return"data"===e?this._worker.on(e,(function(e){t.call(n,e.data,e.meta)})):this._worker.on(e,(function(){r.delay(t,arguments,n)})),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(r.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new c(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,n){"use strict";if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof Buffer,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var r=new ArrayBuffer(0);try{n.blob=0===new Blob([r],{type:"application/zip"}).size}catch(e){try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(r),n.blob=0===o.getBlob("application/zip").size}catch(e){n.blob=!1}}}try{n.nodestream=!!e("readable-stream").Readable}catch(e){n.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,n){"use strict";for(var r=e("./utils"),o=e("./support"),a=e("./nodejsUtils"),i=e("./stream/GenericWorker"),s=new Array(256),l=0;l<256;l++)s[l]=252<=l?6:248<=l?5:240<=l?4:224<=l?3:192<=l?2:1;function c(){i.call(this,"utf-8 decode"),this.leftOver=null}function d(){i.call(this,"utf-8 encode")}s[254]=s[254]=1,n.utf8encode=function(e){return o.nodebuffer?a.newBufferFrom(e,"utf-8"):function(e){var t,n,r,a,i,s=e.length,l=0;for(a=0;a<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=o.uint8array?new Uint8Array(l):new Array(l),a=i=0;i<l;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),n<128?t[i++]=n:(n<2048?t[i++]=192|n>>>6:(n<65536?t[i++]=224|n>>>12:(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63),t[i++]=128|n>>>6&63),t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){return o.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,o,a,i=e.length,l=new Array(2*i);for(t=n=0;t<i;)if((o=e[t++])<128)l[n++]=o;else if(4<(a=s[o]))l[n++]=65533,t+=a-1;else{for(o&=2===a?31:3===a?15:7;1<a&&t<i;)o=o<<6|63&e[t++],a--;1<a?l[n++]=65533:o<65536?l[n++]=o:(o-=65536,l[n++]=55296|o>>10&1023,l[n++]=56320|1023&o)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(o.uint8array?"uint8array":"array",e))},r.inherits(c,i),c.prototype.processChunk=function(e){var t=r.transformTo(o.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var a=t;(t=new Uint8Array(a.length+this.leftOver.length)).set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var i=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}(t),l=t;i!==t.length&&(o.uint8array?(l=t.subarray(0,i),this.leftOver=t.subarray(i,t.length)):(l=t.slice(0,i),this.leftOver=t.slice(i,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=c,r.inherits(d,i),d.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=d},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){"use strict";var r=e("./support"),o=e("./base64"),a=e("./nodejsUtils"),i=e("./external");function s(e){return e}function l(e,t){for(var n=0;n<e.length;++n)t[n]=255&e.charCodeAt(n);return t}e("setimmediate"),n.newBlob=function(e,t){n.checkSupport("blob");try{return new Blob([e],{type:t})}catch(n){try{var r=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return r.append(e),r.getBlob(t)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var c={stringifyByChunk:function(e,t,n){var r=[],o=0,a=e.length;if(a<=n)return String.fromCharCode.apply(null,e);for(;o<a;)"array"===t||"nodebuffer"===t?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+n,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+n,a)))),o+=n;return r.join("")},stringifyByChar:function(e){for(var t="",n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&1===String.fromCharCode.apply(null,a.allocBuffer(1)).length}catch(e){return!1}}()}};function d(e){var t=65536,r=n.getTypeOf(e),o=!0;if("uint8array"===r?o=c.applyCanBeUsed.uint8array:"nodebuffer"===r&&(o=c.applyCanBeUsed.nodebuffer),o)for(;1<t;)try{return c.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return c.stringifyByChar(e)}function u(e,t){for(var n=0;n<e.length;n++)t[n]=e[n];return t}n.applyFromCharCode=d;var h={};h.string={string:s,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return h.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,a.allocBuffer(e.length))}},h.array={string:d,array:s,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return a.newBufferFrom(e)}},h.arraybuffer={string:function(e){return d(new Uint8Array(e))},array:function(e){return u(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:s,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return a.newBufferFrom(new Uint8Array(e))}},h.uint8array={string:d,array:function(e){return u(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:s,nodebuffer:function(e){return a.newBufferFrom(e)}},h.nodebuffer={string:d,array:function(e){return u(e,new Array(e.length))},arraybuffer:function(e){return h.nodebuffer.uint8array(e).buffer},uint8array:function(e){return u(e,new Uint8Array(e.length))},nodebuffer:s},n.transformTo=function(e,t){if(t=t||"",!e)return t;n.checkSupport(e);var r=n.getTypeOf(t);return h[r][e](t)},n.resolve=function(e){for(var t=e.split("/"),n=[],r=0;r<t.length;r++){var o=t[r];"."===o||""===o&&0!==r&&r!==t.length-1||(".."===o?n.pop():n.push(o))}return n.join("/")},n.getTypeOf=function(e){return"string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":r.nodebuffer&&a.isBuffer(e)?"nodebuffer":r.uint8array&&e instanceof Uint8Array?"uint8array":r.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(e){if(!r[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(e){var t,n,r="";for(n=0;n<(e||"").length;n++)r+="\\x"+((t=e.charCodeAt(n))<16?"0":"")+t.toString(16).toUpperCase();return r},n.delay=function(e,t,n){setImmediate((function(){e.apply(n||null,t||[])}))},n.inherits=function(e,t){function n(){}n.prototype=t.prototype,e.prototype=new n},n.extend=function(){var e,t,n={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===n[t]&&(n[t]=arguments[e][t]);return n},n.prepareContent=function(e,t,a,s,c){return i.Promise.resolve(t).then((function(e){return r.blob&&(e instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(e)))&&"undefined"!=typeof FileReader?new i.Promise((function(t,n){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=function(e){n(e.target.error)},r.readAsArrayBuffer(e)})):e})).then((function(t){var d=n.getTypeOf(t);return d?("arraybuffer"===d?t=n.transformTo("uint8array",t):"string"===d&&(c?t=o.decode(t):a&&!0!==s&&(t=function(e){return l(e,r.uint8array?new Uint8Array(e.length):new Array(e.length))}(t))),t):i.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))}))}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,n){"use strict";var r=e("./reader/readerFor"),o=e("./utils"),a=e("./signature"),i=e("./zipEntry"),s=e("./support");function l(e){this.files=[],this.loadOptions=e}l.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(t)+", expected "+o.pretty(e)+")")}},isSignature:function(e,t){var n=this.reader.index;this.reader.setIndex(e);var r=this.reader.readString(4)===t;return this.reader.setIndex(n),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=s.uint8array?"uint8array":"array",n=o.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(n)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,n,r=this.zip64EndOfCentralSize-44;0<r;)e=this.reader.readInt(2),t=this.reader.readInt(4),n=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(a.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(a.CENTRAL_FILE_HEADER);)(e=new i({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(a.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,a.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(e);var t=e;if(this.checkSignature(a.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(a.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(a.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,a.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(a.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(a.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=t-n;if(0<r)this.isSignature(t,a.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=r(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=l},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,n){"use strict";var r=e("./reader/readerFor"),o=e("./utils"),a=e("./compressedObject"),i=e("./crc32"),s=e("./utf8"),l=e("./compressions"),c=e("./support");function d(e,t){this.options=e,this.loadOptions=t}d.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var t,n;if(e.skip(22),this.fileNameLength=e.readInt(2),n=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(n),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in l)if(Object.prototype.hasOwnProperty.call(l,t)&&l[t].magic===e)return l[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new a(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,o=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<o;)t=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[t]={id:t,length:n,value:r};e.setIndex(o)},handleUTF8:function(){var e=c.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=s.utf8decode(this.fileName),this.fileCommentStr=s.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var n=o.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(n)}var r=this.findExtraFieldUnicodeComment();if(null!==r)this.fileCommentStr=r;else{var a=o.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(a)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=r(e.value);return 1!==t.readInt(1)||i(this.fileName)!==t.readInt(4)?null:s.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=r(e.value);return 1!==t.readInt(1)||i(this.fileComment)!==t.readInt(4)?null:s.utf8decode(t.readData(e.length-5))}return null}},t.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,n){"use strict";function r(e,t,n){this.name=e,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=t,this._dataBinary=n.binary,this.options={compression:n.compression,compressionOptions:n.compressionOptions}}var o=e("./stream/StreamHelper"),a=e("./stream/DataWorker"),i=e("./utf8"),s=e("./compressedObject"),l=e("./stream/GenericWorker");r.prototype={internalStream:function(e){var t=null,n="string";try{if(!e)throw new Error("No output type specified.");var r="string"===(n=e.toLowerCase())||"text"===n;"binarystring"!==n&&"text"!==n||(n="string"),t=this._decompressWorker();var a=!this._dataBinary;a&&!r&&(t=t.pipe(new i.Utf8EncodeWorker)),!a&&r&&(t=t.pipe(new i.Utf8DecodeWorker))}catch(e){(t=new l("error")).error(e)}return new o(t,n,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof s&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var n=this._decompressWorker();return this._dataBinary||(n=n.pipe(new i.Utf8EncodeWorker)),s.createWorkerFrom(n,e,t)},_decompressWorker:function(){return this._data instanceof s?this._data.getContentWorker():this._data instanceof l?this._data:new a(this._data)}};for(var c=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],d=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},u=0;u<c.length;u++)r.prototype[c[u]]=d;t.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,t,r){(function(e){"use strict";var n,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(d),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),n=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){d(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(d,0)};else{var l=new e.MessageChannel;l.port1.onmessage=d,n=function(){l.port2.postMessage(0)}}var c=[];function d(){var e,t;r=!0;for(var n=c.length;n;){for(t=c,c=[],e=-1;++e<n;)t[e]();n=c.length}r=!1}t.exports=function(e){1!==c.push(e)||r||n()}}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,n){"use strict";var r=e("immediate");function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],l=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==o&&p(this,e)}function d(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function u(e,t,n){r((function(){var r;try{r=t(n)}catch(r){return a.reject(e,r)}r===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,r)}))}function h(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,a.reject(e,t))}function o(t){n||(n=!0,a.resolve(e,t))}var i=m((function(){t(o,r)}));"error"===i.status&&r(i.value)}function m(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}(t.exports=c).prototype.finally=function(e){if("function"!=typeof e)return this;var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){throw n}))}))},c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var n=new this.constructor(o);return this.state!==l?u(n,this.state===s?e:t,this.outcome):this.queue.push(new d(n,e,t)),n},d.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},d.prototype.otherCallFulfilled=function(e){u(this.promise,this.onFulfilled,e)},d.prototype.callRejected=function(e){a.reject(this.promise,e)},d.prototype.otherCallRejected=function(e){u(this.promise,this.onRejected,e)},a.resolve=function(e,t){var n=m(h,t);if("error"===n.status)return a.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},c.reject=function(e){var t=new this(o);return a.reject(t,e)},c.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var i=new Array(n),s=0,l=-1,c=new this(o);++l<n;)d(e[l],l);return c;function d(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==n||r||(r=!0,a.resolve(c,i))}),(function(e){r||(r=!0,a.reject(c,e))}))}},c.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,n=!1;if(!t)return this.resolve([]);for(var r,i=-1,s=new this(o);++i<t;)r=e[i],this.resolve(r).then((function(e){n||(n=!0,a.resolve(s,e))}),(function(e){n||(n=!0,a.reject(s,e))}));return s}},{immediate:36}],38:[function(e,t,n){"use strict";var r={};(0,e("./lib/utils/common").assign)(r,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,n){"use strict";var r=e("./zlib/deflate"),o=e("./utils/common"),a=e("./utils/strings"),i=e("./zlib/messages"),s=e("./zlib/zstream"),l=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=o.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==n)throw new Error(i[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var d;if(d="string"==typeof t.dictionary?a.string2buf(t.dictionary):"[object ArrayBuffer]"===l.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(n=r.deflateSetDictionary(this.strm,d)))throw new Error(i[n]);this._dict_set=!0}}function d(e,t){var n=new c(t);if(n.push(e,!0),n.err)throw n.msg||i[n.err];return n.result}c.prototype.push=function(e,t){var n,i,s=this.strm,c=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,"string"==typeof e?s.input=a.string2buf(e):"[object ArrayBuffer]"===l.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new o.Buf8(c),s.next_out=0,s.avail_out=c),1!==(n=r.deflate(s,i))&&0!==n)return this.onEnd(n),!(this.ended=!0);0!==s.avail_out&&(0!==s.avail_in||4!==i&&2!==i)||("string"===this.options.to?this.onData(a.buf2binstring(o.shrinkBuf(s.output,s.next_out))):this.onData(o.shrinkBuf(s.output,s.next_out)))}while((0<s.avail_in||0===s.avail_out)&&1!==n);return 4===i?(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n):2!==i||(this.onEnd(0),!(s.avail_out=0))},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=c,n.deflate=d,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,d(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,d(e,t)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,n){"use strict";var r=e("./zlib/inflate"),o=e("./utils/common"),a=e("./utils/strings"),i=e("./zlib/constants"),s=e("./zlib/messages"),l=e("./zlib/zstream"),c=e("./zlib/gzheader"),d=Object.prototype.toString;function u(e){if(!(this instanceof u))return new u(e);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&!(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(s[n]);this.header=new c,r.inflateGetHeader(this.strm,this.header)}function h(e,t){var n=new u(t);if(n.push(e,!0),n.err)throw n.msg||s[n.err];return n.result}u.prototype.push=function(e,t){var n,s,l,c,u,h,p=this.strm,m=this.options.chunkSize,f=this.options.dictionary,g=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,"string"==typeof e?p.input=a.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?p.input=new Uint8Array(e):p.input=e,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new o.Buf8(m),p.next_out=0,p.avail_out=m),(n=r.inflate(p,i.Z_NO_FLUSH))===i.Z_NEED_DICT&&f&&(h="string"==typeof f?a.string2buf(f):"[object ArrayBuffer]"===d.call(f)?new Uint8Array(f):f,n=r.inflateSetDictionary(this.strm,h)),n===i.Z_BUF_ERROR&&!0===g&&(n=i.Z_OK,g=!1),n!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),!(this.ended=!0);p.next_out&&(0!==p.avail_out&&n!==i.Z_STREAM_END&&(0!==p.avail_in||s!==i.Z_FINISH&&s!==i.Z_SYNC_FLUSH)||("string"===this.options.to?(l=a.utf8border(p.output,p.next_out),c=p.next_out-l,u=a.buf2string(p.output,l),p.next_out=c,p.avail_out=m-c,c&&o.arraySet(p.output,p.output,l,c,0),this.onData(u)):this.onData(o.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(g=!0)}while((0<p.avail_in||0===p.avail_out)&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(s=i.Z_FINISH),s===i.Z_FINISH?(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK):s!==i.Z_SYNC_FLUSH||(this.onEnd(i.Z_OK),!(p.avail_out=0))},u.prototype.onData=function(e){this.chunks.push(e)},u.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=u,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,n,r,o){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),o);else for(var a=0;a<r;a++)e[o+a]=t[n+a]},flattenChunks:function(e){var t,n,r,o,a,i;for(t=r=0,n=e.length;t<n;t++)r+=e[t].length;for(i=new Uint8Array(r),t=o=0,n=e.length;t<n;t++)a=e[t],i.set(a,o),o+=a.length;return i}},a={arraySet:function(e,t,n,r,o){for(var a=0;a<r;a++)e[o+a]=t[n+a]},flattenChunks:function(e){return[].concat.apply([],e)}};n.setTyped=function(e){e?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,o)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,a))},n.setTyped(r)},{}],42:[function(e,t,n){"use strict";var r=e("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(e){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){a=!1}for(var i=new r.Buf8(256),s=0;s<256;s++)i[s]=252<=s?6:248<=s?5:240<=s?4:224<=s?3:192<=s?2:1;function l(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&o))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n}i[254]=i[254]=1,n.string2buf=function(e){var t,n,o,a,i,s=e.length,l=0;for(a=0;a<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(o=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(o-56320),a++),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new r.Buf8(l),a=i=0;i<l;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(o=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(o-56320),a++),n<128?t[i++]=n:(n<2048?t[i++]=192|n>>>6:(n<65536?t[i++]=224|n>>>12:(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63),t[i++]=128|n>>>6&63),t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,o=t.length;n<o;n++)t[n]=e.charCodeAt(n);return t},n.buf2string=function(e,t){var n,r,o,a,s=t||e.length,c=new Array(2*s);for(n=r=0;n<s;)if((o=e[n++])<128)c[r++]=o;else if(4<(a=i[o]))c[r++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;1<a&&n<s;)o=o<<6|63&e[n++],a--;1<a?c[r++]=65533:o<65536?c[r++]=o:(o-=65536,c[r++]=55296|o>>10&1023,c[r++]=56320|1023&o)}return l(c,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var o=65535&e,a=e>>>16&65535,i=0;0!==n;){for(n-=i=2e3<n?2e3:n;a=a+(o=o+t[r++]|0)|0,--i;);o%=65521,a%=65521}return o|a<<16}},{}],44:[function(e,t,n){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,o){var a=r,i=o+n;e^=-1;for(var s=o;s<i;s++)e=e>>>8^a[255&(e^t[s])];return~e}},{}],46:[function(e,t,n){"use strict";var r,o=e("../utils/common"),a=e("./trees"),i=e("./adler32"),s=e("./crc32"),l=e("./messages"),c=-2,d=258,u=262,h=113;function p(e,t){return e.msg=l[t],t}function m(e){return(e<<1)-(4<e?9:0)}function f(e){for(var t=e.length;0<=--t;)e[t]=0}function g(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(o.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function A(e,t){a._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,g(e.strm)}function b(e,t){e.pending_buf[e.pending++]=t}function C(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function v(e,t){var n,r,o=e.max_chain_length,a=e.strstart,i=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-u?e.strstart-(e.w_size-u):0,c=e.window,h=e.w_mask,p=e.prev,m=e.strstart+d,f=c[a+i-1],g=c[a+i];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+i]===g&&c[n+i-1]===f&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&a<m);if(r=d-(m-a),a=m-d,i<r){if(e.match_start=t,s<=(i=r))break;f=c[a+i-1],g=c[a+i]}}}while((t=p[t&h])>l&&0!=--o);return i<=e.lookahead?i:e.lookahead}function y(e){var t,n,r,a,l,c,d,h,p,m,f=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-u)){for(o.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=n=e.hash_size;r=e.head[--t],e.head[t]=f<=r?r-f:0,--n;);for(t=n=f;r=e.prev[--t],e.prev[t]=f<=r?r-f:0,--n;);a+=f}if(0===e.strm.avail_in)break;if(c=e.strm,d=e.window,h=e.strstart+e.lookahead,m=void 0,(p=a)<(m=c.avail_in)&&(m=p),n=0===m?0:(c.avail_in-=m,o.arraySet(d,c.input,c.next_in,m,h),1===c.state.wrap?c.adler=i(c.adler,d,m,h):2===c.state.wrap&&(c.adler=s(c.adler,d,m,h)),c.next_in+=m,c.total_in+=m,m),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+3-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<u&&0!==e.strm.avail_in)}function w(e,t){for(var n,r;;){if(e.lookahead<u){if(y(e),e.lookahead<u&&0===t)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-u&&(e.match_length=v(e,n)),e.match_length>=3)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function E(e,t){for(var n,r,o;;){if(e.lookahead<u){if(y(e),e.lookahead<u&&0===t)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-u&&(e.match_length=v(e,n),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096<e.strstart-e.match_start)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){for(o=e.strstart+e.lookahead-3,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=o&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(A(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((r=a._tr_tally(e,0,e.window[e.strstart-1]))&&A(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=a._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function k(e,t,n,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=o}function x(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(1146),this.dyn_dtree=new o.Buf16(122),this.bl_tree=new o.Buf16(78),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(16),this.heap=new o.Buf16(573),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(573),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function T(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:h,e.adler=2===t.wrap?0:1,t.last_flush=0,a._tr_init(t),0):p(e,c)}function S(e){var t=T(e);return 0===t&&function(e){e.window_size=2*e.w_size,f(e.head),e.max_lazy_match=r[e.level].max_lazy,e.good_match=r[e.level].good_length,e.nice_match=r[e.level].nice_length,e.max_chain_length=r[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0}(e.state),t}function B(e,t,n,r,a,i){if(!e)return c;var s=1;if(-1===t&&(t=6),r<0?(s=0,r=-r):15<r&&(s=2,r-=16),a<1||9<a||8!==n||r<8||15<r||t<0||9<t||i<0||4<i)return p(e,c);8===r&&(r=9);var l=new x;return(e.state=l).strm=e,l.wrap=s,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=a+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+3-1)/3),l.window=new o.Buf8(2*l.w_size),l.head=new o.Buf16(l.hash_size),l.prev=new o.Buf16(l.w_size),l.lit_bufsize=1<<a+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new o.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=i,l.method=n,S(e)}r=[new k(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(y(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,A(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-u&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(A(e,!1),e.strm.avail_out),1)})),new k(4,4,8,4,w),new k(4,5,16,8,w),new k(4,6,32,32,w),new k(4,4,16,16,E),new k(8,16,32,32,E),new k(8,16,128,128,E),new k(8,32,128,256,E),new k(32,128,258,1024,E),new k(32,258,258,4096,E)],n.deflateInit=function(e,t){return B(e,t,8,15,8,0)},n.deflateInit2=B,n.deflateReset=S,n.deflateResetKeep=T,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?c:(e.state.gzhead=t,0):c},n.deflate=function(e,t){var n,o,i,l;if(!e||!e.state||5<t||t<0)return e?p(e,c):c;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||666===o.status&&4!==t)return p(e,0===e.avail_out?-5:c);if(o.strm=e,n=o.last_flush,o.last_flush=t,42===o.status)if(2===o.wrap)e.adler=0,b(o,31),b(o,139),b(o,8),o.gzhead?(b(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),b(o,255&o.gzhead.time),b(o,o.gzhead.time>>8&255),b(o,o.gzhead.time>>16&255),b(o,o.gzhead.time>>24&255),b(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),b(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(b(o,255&o.gzhead.extra.length),b(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=s(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69):(b(o,0),b(o,0),b(o,0),b(o,0),b(o,0),b(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),b(o,3),o.status=h);else{var u=8+(o.w_bits-8<<4)<<8;u|=(2<=o.strategy||o.level<2?0:o.level<6?1:6===o.level?2:3)<<6,0!==o.strstart&&(u|=32),u+=31-u%31,o.status=h,C(o,u),0!==o.strstart&&(C(o,e.adler>>>16),C(o,65535&e.adler)),e.adler=1}if(69===o.status)if(o.gzhead.extra){for(i=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),g(e),i=o.pending,o.pending!==o.pending_buf_size));)b(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=73)}else o.status=73;if(73===o.status)if(o.gzhead.name){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),g(e),i=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindex<o.gzhead.name.length?255&o.gzhead.name.charCodeAt(o.gzindex++):0,b(o,l)}while(0!==l);o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),0===l&&(o.gzindex=0,o.status=91)}else o.status=91;if(91===o.status)if(o.gzhead.comment){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),g(e),i=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindex<o.gzhead.comment.length?255&o.gzhead.comment.charCodeAt(o.gzindex++):0,b(o,l)}while(0!==l);o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),0===l&&(o.status=103)}else o.status=103;if(103===o.status&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&g(e),o.pending+2<=o.pending_buf_size&&(b(o,255&e.adler),b(o,e.adler>>8&255),e.adler=0,o.status=h)):o.status=h),0!==o.pending){if(g(e),0===e.avail_out)return o.last_flush=-1,0}else if(0===e.avail_in&&m(t)<=m(n)&&4!==t)return p(e,-5);if(666===o.status&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==o.lookahead||0!==t&&666!==o.status){var v=2===o.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(y(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(o,t):3===o.strategy?function(e,t){for(var n,r,o,i,s=e.window;;){if(e.lookahead<=d){if(y(e),e.lookahead<=d&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0<e.strstart&&(r=s[o=e.strstart-1])===s[++o]&&r===s[++o]&&r===s[++o]){i=e.strstart+d;do{}while(r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&o<i);e.match_length=d-(i-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(o,t):r[o.level].func(o,t);if(3!==v&&4!==v||(o.status=666),1===v||3===v)return 0===e.avail_out&&(o.last_flush=-1),0;if(2===v&&(1===t?a._tr_align(o):5!==t&&(a._tr_stored_block(o,0,0,!1),3===t&&(f(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),g(e),0===e.avail_out))return o.last_flush=-1,0}return 4!==t?0:o.wrap<=0?1:(2===o.wrap?(b(o,255&e.adler),b(o,e.adler>>8&255),b(o,e.adler>>16&255),b(o,e.adler>>24&255),b(o,255&e.total_in),b(o,e.total_in>>8&255),b(o,e.total_in>>16&255),b(o,e.total_in>>24&255)):(C(o,e.adler>>>16),C(o,65535&e.adler)),g(e),0<o.wrap&&(o.wrap=-o.wrap),0!==o.pending?0:1)},n.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&103!==t&&t!==h&&666!==t?p(e,c):(e.state=null,t===h?p(e,-3):0):c},n.deflateSetDictionary=function(e,t){var n,r,a,s,l,d,u,h,p=t.length;if(!e||!e.state)return c;if(2===(s=(n=e.state).wrap)||1===s&&42!==n.status||n.lookahead)return c;for(1===s&&(e.adler=i(e.adler,t,p,0)),n.wrap=0,p>=n.w_size&&(0===s&&(f(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new o.Buf8(n.w_size),o.arraySet(h,t,p-n.w_size,n.w_size,0),t=h,p=n.w_size),l=e.avail_in,d=e.next_in,u=e.input,e.avail_in=p,e.next_in=0,e.input=t,y(n);n.lookahead>=3;){for(r=n.strstart,a=n.lookahead-2;n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+3-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,--a;);n.strstart=r,n.lookahead=2,y(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=d,e.input=u,e.avail_in=l,n.wrap=s,0},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,o,a,i,s,l,c,d,u,h,p,m,f,g,A,b,C,v,y,w,E,k,x,T;n=e.state,r=e.next_in,x=e.input,o=r+(e.avail_in-5),a=e.next_out,T=e.output,i=a-(t-e.avail_out),s=a+(e.avail_out-257),l=n.dmax,c=n.wsize,d=n.whave,u=n.wnext,h=n.window,p=n.hold,m=n.bits,f=n.lencode,g=n.distcode,A=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;e:do{m<15&&(p+=x[r++]<<m,m+=8,p+=x[r++]<<m,m+=8),C=f[p&A];t:for(;;){if(p>>>=v=C>>>24,m-=v,0==(v=C>>>16&255))T[a++]=65535&C;else{if(!(16&v)){if(!(64&v)){C=f[(65535&C)+(p&(1<<v)-1)];continue t}if(32&v){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}y=65535&C,(v&=15)&&(m<v&&(p+=x[r++]<<m,m+=8),y+=p&(1<<v)-1,p>>>=v,m-=v),m<15&&(p+=x[r++]<<m,m+=8,p+=x[r++]<<m,m+=8),C=g[p&b];n:for(;;){if(p>>>=v=C>>>24,m-=v,!(16&(v=C>>>16&255))){if(!(64&v)){C=g[(65535&C)+(p&(1<<v)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(w=65535&C,m<(v&=15)&&(p+=x[r++]<<m,(m+=8)<v&&(p+=x[r++]<<m,m+=8)),l<(w+=p&(1<<v)-1)){e.msg="invalid distance too far back",n.mode=30;break e}if(p>>>=v,m-=v,(v=a-i)<w){if(d<(v=w-v)&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(k=h,(E=0)===u){if(E+=c-v,v<y){for(y-=v;T[a++]=h[E++],--v;);E=a-w,k=T}}else if(u<v){if(E+=c+u-v,(v-=u)<y){for(y-=v;T[a++]=h[E++],--v;);if(E=0,u<y){for(y-=v=u;T[a++]=h[E++],--v;);E=a-w,k=T}}}else if(E+=u-v,v<y){for(y-=v;T[a++]=h[E++],--v;);E=a-w,k=T}for(;2<y;)T[a++]=k[E++],T[a++]=k[E++],T[a++]=k[E++],y-=3;y&&(T[a++]=k[E++],1<y&&(T[a++]=k[E++]))}else{for(E=a-w;T[a++]=T[E++],T[a++]=T[E++],T[a++]=T[E++],2<(y-=3););y&&(T[a++]=T[E++],1<y&&(T[a++]=T[E++]))}break}}break}}while(r<o&&a<s);r-=y=m>>3,p&=(1<<(m-=y<<3))-1,e.next_in=r,e.next_out=a,e.avail_in=r<o?o-r+5:5-(r-o),e.avail_out=a<s?s-a+257:257-(a-s),n.hold=p,n.bits=m}},{}],49:[function(e,t,n){"use strict";var r=e("../utils/common"),o=e("./adler32"),a=e("./crc32"),i=e("./inffast"),s=e("./inftrees"),l=-2;function c(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function d(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function u(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function h(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,u(e)):l}function p(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?l:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,h(e))):l}function m(e,t){var n,r;return e?(r=new d,(e.state=r).window=null,0!==(n=p(e,t))&&(e.state=null),n):l}var f,g,A=!0;function b(e){if(A){var t;for(f=new r.Buf32(512),g=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(s(1,e.lens,0,288,f,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;s(2,e.lens,0,32,g,0,e.work,{bits:5}),A=!1}e.lencode=f,e.lenbits=9,e.distcode=g,e.distbits=5}function C(e,t,n,o){var a,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new r.Buf8(i.wsize)),o>=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(o<(a=i.wsize-i.wnext)&&(a=o),r.arraySet(i.window,t,n-o,a,i.wnext),(o-=a)?(r.arraySet(i.window,t,n-o,o,0),i.wnext=o,i.whave=i.wsize):(i.wnext+=a,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=a))),0}n.inflateReset=h,n.inflateReset2=p,n.inflateResetKeep=u,n.inflateInit=function(e){return m(e,15)},n.inflateInit2=m,n.inflate=function(e,t){var n,d,u,h,p,m,f,g,A,v,y,w,E,k,x,T,S,B,I,_,N,P,M,F,R=0,D=new r.Buf8(4),L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;12===(n=e.state).mode&&(n.mode=13),p=e.next_out,u=e.output,f=e.avail_out,h=e.next_in,d=e.input,m=e.avail_in,g=n.hold,A=n.bits,v=m,y=f,P=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;A<16;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(2&n.wrap&&35615===g){D[n.check=0]=255&g,D[1]=g>>>8&255,n.check=a(n.check,D,2,0),A=g=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&g)){e.msg="unknown compression method",n.mode=30;break}if(A-=4,N=8+(15&(g>>>=4)),0===n.wbits)n.wbits=N;else if(N>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<<N,e.adler=n.check=1,n.mode=512&g?10:12,A=g=0;break;case 2:for(;A<16;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(n.flags=g,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=30;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=30;break}n.head&&(n.head.text=g>>8&1),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,n.check=a(n.check,D,2,0)),A=g=0,n.mode=3;case 3:for(;A<32;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.head&&(n.head.time=g),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,n.check=a(n.check,D,4,0)),A=g=0,n.mode=4;case 4:for(;A<16;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.head&&(n.head.xflags=255&g,n.head.os=g>>8),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,n.check=a(n.check,D,2,0)),A=g=0,n.mode=5;case 5:if(1024&n.flags){for(;A<16;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.length=g,n.head&&(n.head.extra_len=g),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,n.check=a(n.check,D,2,0)),A=g=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(m<(w=n.length)&&(w=m),w&&(n.head&&(N=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,d,h,w,N)),512&n.flags&&(n.check=a(n.check,d,w,h)),m-=w,h+=w,n.length-=w),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===m)break e;for(w=0;N=d[h+w++],n.head&&N&&n.length<65536&&(n.head.name+=String.fromCharCode(N)),N&&w<m;);if(512&n.flags&&(n.check=a(n.check,d,w,h)),m-=w,h+=w,N)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===m)break e;for(w=0;N=d[h+w++],n.head&&N&&n.length<65536&&(n.head.comment+=String.fromCharCode(N)),N&&w<m;);if(512&n.flags&&(n.check=a(n.check,d,w,h)),m-=w,h+=w,N)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;A<16;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(g!==(65535&n.check)){e.msg="header crc mismatch",n.mode=30;break}A=g=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;A<32;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}e.adler=n.check=c(g),A=g=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=p,e.avail_out=f,e.next_in=h,e.avail_in=m,n.hold=g,n.bits=A,2;e.adler=n.check=1,n.mode=12;case 12:if(5===t||6===t)break e;case 13:if(n.last){g>>>=7&A,A-=7&A,n.mode=27;break}for(;A<3;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}switch(n.last=1&g,A-=1,3&(g>>>=1)){case 0:n.mode=14;break;case 1:if(b(n),n.mode=20,6!==t)break;g>>>=2,A-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}g>>>=2,A-=2;break;case 14:for(g>>>=7&A,A-=7&A;A<32;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if((65535&g)!=(g>>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&g,A=g=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(w=n.length){if(m<w&&(w=m),f<w&&(w=f),0===w)break e;r.arraySet(u,d,h,w,p),m-=w,h+=w,f-=w,p+=w,n.length-=w;break}n.mode=12;break;case 17:for(;A<14;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(n.nlen=257+(31&g),g>>>=5,A-=5,n.ndist=1+(31&g),g>>>=5,A-=5,n.ncode=4+(15&g),g>>>=4,A-=4,286<n.nlen||30<n.ndist){e.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;A<3;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.lens[L[n.have++]]=7&g,g>>>=3,A-=3}for(;n.have<19;)n.lens[L[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,M={bits:n.lenbits},P=s(0,n.lens,0,19,n.lencode,0,n.work,M),n.lenbits=M.bits,P){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;T=(R=n.lencode[g&(1<<n.lenbits)-1])>>>16&255,S=65535&R,!((x=R>>>24)<=A);){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(S<16)g>>>=x,A-=x,n.lens[n.have++]=S;else{if(16===S){for(F=x+2;A<F;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(g>>>=x,A-=x,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}N=n.lens[n.have-1],w=3+(3&g),g>>>=2,A-=2}else if(17===S){for(F=x+3;A<F;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}A-=x,N=0,w=3+(7&(g>>>=x)),g>>>=3,A-=3}else{for(F=x+7;A<F;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}A-=x,N=0,w=11+(127&(g>>>=x)),g>>>=7,A-=7}if(n.have+w>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;w--;)n.lens[n.have++]=N}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,M={bits:n.lenbits},P=s(1,n.lens,0,n.nlen,n.lencode,0,n.work,M),n.lenbits=M.bits,P){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,M={bits:n.distbits},P=s(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,M),n.distbits=M.bits,P){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=m&&258<=f){e.next_out=p,e.avail_out=f,e.next_in=h,e.avail_in=m,n.hold=g,n.bits=A,i(e,y),p=e.next_out,u=e.output,f=e.avail_out,h=e.next_in,d=e.input,m=e.avail_in,g=n.hold,A=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;T=(R=n.lencode[g&(1<<n.lenbits)-1])>>>16&255,S=65535&R,!((x=R>>>24)<=A);){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(T&&!(240&T)){for(B=x,I=T,_=S;T=(R=n.lencode[_+((g&(1<<B+I)-1)>>B)])>>>16&255,S=65535&R,!(B+(x=R>>>24)<=A);){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}g>>>=B,A-=B,n.back+=B}if(g>>>=x,A-=x,n.back+=x,n.length=S,0===T){n.mode=26;break}if(32&T){n.back=-1,n.mode=12;break}if(64&T){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&T,n.mode=22;case 22:if(n.extra){for(F=n.extra;A<F;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.length+=g&(1<<n.extra)-1,g>>>=n.extra,A-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;T=(R=n.distcode[g&(1<<n.distbits)-1])>>>16&255,S=65535&R,!((x=R>>>24)<=A);){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(!(240&T)){for(B=x,I=T,_=S;T=(R=n.distcode[_+((g&(1<<B+I)-1)>>B)])>>>16&255,S=65535&R,!(B+(x=R>>>24)<=A);){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}g>>>=B,A-=B,n.back+=B}if(g>>>=x,A-=x,n.back+=x,64&T){e.msg="invalid distance code",n.mode=30;break}n.offset=S,n.extra=15&T,n.mode=24;case 24:if(n.extra){for(F=n.extra;A<F;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}n.offset+=g&(1<<n.extra)-1,g>>>=n.extra,A-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===f)break e;if(w=y-f,n.offset>w){if((w=n.offset-w)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}E=w>n.wnext?(w-=n.wnext,n.wsize-w):n.wnext-w,w>n.length&&(w=n.length),k=n.window}else k=u,E=p-n.offset,w=n.length;for(f<w&&(w=f),f-=w,n.length-=w;u[p++]=k[E++],--w;);0===n.length&&(n.mode=21);break;case 26:if(0===f)break e;u[p++]=n.length,f--,n.mode=21;break;case 27:if(n.wrap){for(;A<32;){if(0===m)break e;m--,g|=d[h++]<<A,A+=8}if(y-=f,e.total_out+=y,n.total+=y,y&&(e.adler=n.check=n.flags?a(n.check,u,y,p-y):o(n.check,u,y,p-y)),y=f,(n.flags?g:c(g))!==n.check){e.msg="incorrect data check",n.mode=30;break}A=g=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;A<32;){if(0===m)break e;m--,g+=d[h++]<<A,A+=8}if(g!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=30;break}A=g=0}n.mode=29;case 29:P=1;break e;case 30:P=-3;break e;case 31:return-4;default:return l}return e.next_out=p,e.avail_out=f,e.next_in=h,e.avail_in=m,n.hold=g,n.bits=A,(n.wsize||y!==e.avail_out&&n.mode<30&&(n.mode<27||4!==t))&&C(e,e.output,e.next_out,y-e.avail_out)?(n.mode=31,-4):(v-=e.avail_in,y-=e.avail_out,e.total_in+=v,e.total_out+=y,n.total+=y,n.wrap&&y&&(e.adler=n.check=n.flags?a(n.check,u,y,e.next_out-y):o(n.check,u,y,e.next_out-y)),e.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==v&&0===y||4===t)&&0===P&&(P=-5),P)},n.inflateEnd=function(e){if(!e||!e.state)return l;var t=e.state;return t.window&&(t.window=null),e.state=null,0},n.inflateGetHeader=function(e,t){var n;return e&&e.state&&2&(n=e.state).wrap?((n.head=t).done=!1,0):l},n.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?l:11===n.mode&&o(1,t,r,0)!==n.check?-3:C(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,0):l},n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,n){"use strict";var r=e("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],i=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],s=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,n,l,c,d,u,h){var p,m,f,g,A,b,C,v,y,w=h.bits,E=0,k=0,x=0,T=0,S=0,B=0,I=0,_=0,N=0,P=0,M=null,F=0,R=new r.Buf16(16),D=new r.Buf16(16),L=null,O=0;for(E=0;E<=15;E++)R[E]=0;for(k=0;k<l;k++)R[t[n+k]]++;for(S=w,T=15;1<=T&&0===R[T];T--);if(T<S&&(S=T),0===T)return c[d++]=20971520,c[d++]=20971520,h.bits=1,0;for(x=1;x<T&&0===R[x];x++);for(S<x&&(S=x),E=_=1;E<=15;E++)if(_<<=1,(_-=R[E])<0)return-1;if(0<_&&(0===e||1!==T))return-1;for(D[1]=0,E=1;E<15;E++)D[E+1]=D[E]+R[E];for(k=0;k<l;k++)0!==t[n+k]&&(u[D[t[n+k]]++]=k);if(b=0===e?(M=L=u,19):1===e?(M=o,F-=257,L=a,O-=257,256):(M=i,L=s,-1),E=x,A=d,I=k=P=0,f=-1,g=(N=1<<(B=S))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(C=E-I,y=u[k]<b?(v=0,u[k]):u[k]>b?(v=L[O+u[k]],M[F+u[k]]):(v=96,0),p=1<<E-I,x=m=1<<B;c[A+(P>>I)+(m-=p)]=C<<24|v<<16|y,0!==m;);for(p=1<<E-1;P&p;)p>>=1;if(0!==p?(P&=p-1,P+=p):P=0,k++,0==--R[E]){if(E===T)break;E=t[n+u[k]]}if(S<E&&(P&g)!==f){for(0===I&&(I=S),A+=x,_=1<<(B=E-I);B+I<T&&!((_-=R[B+I])<=0);)B++,_<<=1;if(N+=1<<B,1===e&&852<N||2===e&&592<N)return 1;c[f=P&g]=S<<24|B<<16|A-d}}return 0!==P&&(c[A+P]=E-I<<24|64<<16),h.bits=S,0}},{"../utils/common":41}],51:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,t,n){"use strict";var r=e("../utils/common");function o(e){for(var t=e.length;0<=--t;)e[t]=0}var a=256,i=286,s=30,l=15,c=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],d=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],h=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],p=new Array(576);o(p);var m=new Array(60);o(m);var f=new Array(512);o(f);var g=new Array(256);o(g);var A=new Array(29);o(A);var b,C,v,y=new Array(s);function w(e,t,n,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}function E(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function k(e){return e<256?f[e]:f[256+(e>>>7)]}function x(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function T(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,x(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function S(e,t,n){T(e,n[2*t],n[2*t+1])}function B(e,t){for(var n=0;n|=1&e,e>>>=1,n<<=1,0<--t;);return n>>>1}function I(e,t,n){var r,o,a=new Array(16),i=0;for(r=1;r<=l;r++)a[r]=i=i+n[r-1]<<1;for(o=0;o<=t;o++){var s=e[2*o+1];0!==s&&(e[2*o]=B(a[s]++,s))}}function _(e){var t;for(t=0;t<i;t++)e.dyn_ltree[2*t]=0;for(t=0;t<s;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){8<e.bi_valid?x(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function P(e,t,n,r){var o=2*t,a=2*n;return e[o]<e[a]||e[o]===e[a]&&r[t]<=r[n]}function M(e,t,n){for(var r=e.heap[n],o=n<<1;o<=e.heap_len&&(o<e.heap_len&&P(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!P(t,r,e.heap[o],e.depth));)e.heap[n]=e.heap[o],n=o,o<<=1;e.heap[n]=r}function F(e,t,n){var r,o,i,s,l=0;if(0!==e.last_lit)for(;r=e.pending_buf[e.d_buf+2*l]<<8|e.pending_buf[e.d_buf+2*l+1],o=e.pending_buf[e.l_buf+l],l++,0===r?S(e,o,t):(S(e,(i=g[o])+a+1,t),0!==(s=c[i])&&T(e,o-=A[i],s),S(e,i=k(--r),n),0!==(s=d[i])&&T(e,r-=y[i],s)),l<e.last_lit;);S(e,256,t)}function R(e,t){var n,r,o,a=t.dyn_tree,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,c=t.stat_desc.elems,d=-1;for(e.heap_len=0,e.heap_max=573,n=0;n<c;n++)0!==a[2*n]?(e.heap[++e.heap_len]=d=n,e.depth[n]=0):a[2*n+1]=0;for(;e.heap_len<2;)a[2*(o=e.heap[++e.heap_len]=d<2?++d:0)]=1,e.depth[o]=0,e.opt_len--,s&&(e.static_len-=i[2*o+1]);for(t.max_code=d,n=e.heap_len>>1;1<=n;n--)M(e,a,n);for(o=c;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],M(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*o]=a[2*n]+a[2*r],e.depth[o]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=o,e.heap[1]=o++,M(e,a,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,o,a,i,s,c=t.dyn_tree,d=t.max_code,u=t.stat_desc.static_tree,h=t.stat_desc.has_stree,p=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,f=t.stat_desc.max_length,g=0;for(a=0;a<=l;a++)e.bl_count[a]=0;for(c[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)f<(a=c[2*c[2*(r=e.heap[n])+1]+1]+1)&&(a=f,g++),c[2*r+1]=a,d<r||(e.bl_count[a]++,i=0,m<=r&&(i=p[r-m]),s=c[2*r],e.opt_len+=s*(a+i),h&&(e.static_len+=s*(u[2*r+1]+i)));if(0!==g){do{for(a=f-1;0===e.bl_count[a];)a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[f]--,g-=2}while(0<g);for(a=f;0!==a;a--)for(r=e.bl_count[a];0!==r;)d<(o=e.heap[--n])||(c[2*o+1]!==a&&(e.opt_len+=(a-c[2*o+1])*c[2*o],c[2*o+1]=a),r--)}}(e,t),I(a,d,e.bl_count)}function D(e,t,n){var r,o,a=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)o=i,i=t[2*(r+1)+1],++s<l&&o===i||(s<c?e.bl_tree[2*o]+=s:0!==o?(o!==a&&e.bl_tree[2*o]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=o,c=(s=0)===i?(l=138,3):o===i?(l=6,3):(l=7,4))}function L(e,t,n){var r,o,a=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),r=0;r<=n;r++)if(o=i,i=t[2*(r+1)+1],!(++s<l&&o===i)){if(s<c)for(;S(e,o,e.bl_tree),0!=--s;);else 0!==o?(o!==a&&(S(e,o,e.bl_tree),s--),S(e,16,e.bl_tree),T(e,s-3,2)):s<=10?(S(e,17,e.bl_tree),T(e,s-3,3)):(S(e,18,e.bl_tree),T(e,s-11,7));a=o,c=(s=0)===i?(l=138,3):o===i?(l=6,3):(l=7,4)}}o(y);var O=!1;function U(e,t,n,o){T(e,0+(o?1:0),3),function(e,t,n){N(e),x(e,n),x(e,~n),r.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}n._tr_init=function(e){O||(function(){var e,t,n,r,o,a=new Array(16);for(r=n=0;r<28;r++)for(A[r]=n,e=0;e<1<<c[r];e++)g[n++]=r;for(g[n-1]=r,r=o=0;r<16;r++)for(y[r]=o,e=0;e<1<<d[r];e++)f[o++]=r;for(o>>=7;r<s;r++)for(y[r]=o<<7,e=0;e<1<<d[r]-7;e++)f[256+o++]=r;for(t=0;t<=l;t++)a[t]=0;for(e=0;e<=143;)p[2*e+1]=8,e++,a[8]++;for(;e<=255;)p[2*e+1]=9,e++,a[9]++;for(;e<=279;)p[2*e+1]=7,e++,a[7]++;for(;e<=287;)p[2*e+1]=8,e++,a[8]++;for(I(p,287,a),e=0;e<s;e++)m[2*e+1]=5,m[2*e]=B(e,5);b=new w(p,c,257,i,l),C=new w(m,d,0,s,l),v=new w(new Array(0),u,0,19,7)}(),O=!0),e.l_desc=new E(e.dyn_ltree,b),e.d_desc=new E(e.dyn_dtree,C),e.bl_desc=new E(e.bl_tree,v),e.bi_buf=0,e.bi_valid=0,_(e)},n._tr_stored_block=U,n._tr_flush_block=function(e,t,n,r){var o,i,s=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<a;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),R(e,e.l_desc),R(e,e.d_desc),s=function(e){var t;for(D(e,e.dyn_ltree,e.l_desc.max_code),D(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*h[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=o&&(o=i)):o=i=n+5,n+4<=o&&-1!==t?U(e,t,n,r):4===e.strategy||i===o?(T(e,2+(r?1:0),3),F(e,p,m)):(T(e,4+(r?1:0),3),function(e,t,n,r){var o;for(T(e,t-257,5),T(e,n-1,5),T(e,r-4,4),o=0;o<r;o++)T(e,e.bl_tree[2*h[o]+1],3);L(e,e.dyn_ltree,t-1),L(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),F(e,e.dyn_ltree,e.dyn_dtree)),_(e),r&&N(e)},n._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(g[n]+a+1)]++,e.dyn_dtree[2*k(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){T(e,2,3),S(e,256,p),function(e){16===e.bi_valid?(x(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e){"use strict";if(!e.setImmediate){var t,n,r,o,a=1,i={},s=!1,l=e.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(e);c=c&&c.setTimeout?c:e,t="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick((function(){u(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(o="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",h,!1):e.attachEvent("onmessage",h),function(t){e.postMessage(o+t,"*")}):e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){u(e.data)},function(e){r.port2.postMessage(e)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){u(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):function(e){setTimeout(u,0,e)},c.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var n=new Array(arguments.length-1),r=0;r<n.length;r++)n[r]=arguments[r+1];var o={callback:e,args:n};return i[a]=o,t(a),a++},c.clearImmediate=d}function d(e){delete i[e]}function u(e){if(s)setTimeout(u,0,e);else{var t=i[e];if(t){s=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(undefined,n)}}(t)}finally{d(e),s=!1}}}}function h(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&u(+t.data.slice(o.length))}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10)},1716:(e,t,n)=>{"use strict";e.exports=n.p+"18e7fdd45099134897d2.svg"},1758:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".symbolicationStatusOverlay{background:var(--grey-20);border-radius:0 0 5px 5px;box-shadow:0 0 0 .5px #0000001a,0 2px 4px #0000001a;height:20px;left:30%;line-height:20px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:8px;position:fixed;right:30%;text-align:center;text-overflow:ellipsis;top:-8px;transition:transform .2s ease-in-out,opacity .2s ease-in-out;white-space:nowrap;will-change:opacity,transform}.symbolicationStatusOverlay.hidden{opacity:0;transform:translateY(-30px)}","",{version:3,sources:["webpack://./src/components/app/SymbolicationStatusOverlay.css"],names:[],mappings:"AAIA,4BAWE,yBAA0B,CAD1B,yBAA0B,CAE1B,mDAE4B,CAR5B,WAAY,CAFZ,QAAS,CAWT,gBAAiB,CAVjB,eAAgB,CAIhB,iBAAkB,CADlB,kBAAmB,CADnB,eAAgB,CANhB,cAAe,CAEf,SAAU,CAaV,iBAAkB,CAClB,sBAAuB,CAfvB,QAAS,CAgBT,4DAE0B,CAC1B,kBAAmB,CACnB,6BACF,CAEA,mCACE,SAAU,CACV,2BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.symbolicationStatusOverlay {\n position: fixed;\n top: -8px;\n right: 30%;\n left: 30%;\n overflow: hidden;\n height: 20px;\n padding-top: 8px;\n padding-right: 10px;\n padding-left: 10px;\n border-radius: 0 0 5px 5px;\n background: var(--grey-20);\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 2px 4px rgb(0 0 0 / 0.1);\n line-height: 20px;\n text-align: center;\n text-overflow: ellipsis;\n transition:\n transform 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n white-space: nowrap;\n will-change: opacity, transform;\n}\n\n.symbolicationStatusOverlay.hidden {\n opacity: 0;\n transform: translateY(-30px);\n}\n"],sourceRoot:""}]);const s=i},1791:(e,t,n)=>{"use strict";e.exports=n.p+"029b9e4fd0218d7b09c6.svg"},1808:(e,t,n)=>{"use strict";e.exports=n.p+"ca2af827049e9039ef9c.svg"},1824:(e,t,n)=>{"use strict";e.exports=n.p+"11c5dca6d97c9e10e5b7.svg"},1863:(e,t,n)=>{"use strict";e.exports=n.p+"c3432220f657733ed05f.svg"},1961:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(7298),l=i()(o());l.i(s.A),l.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const c=l},1986:(e,t,n)=>{"use strict";e.exports=n.p+"4536fd0738f36c3463bc.svg"},2020:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=2020,e.exports=t},2154:(e,t,n)=>{"use strict";e.exports=n.p+"86e81402ef76d28ff55f.svg"},2225:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3115),n.b),d=new URL(n(9814),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.photon-radio{appearance:none;background:none;background-color:var(--grey-90-a10);border:1px solid var(--grey-90-a30);border-radius:8px}.photon-radio-default{height:16px;margin:0 4px;width:16px}.photon-radio-micro{height:13px;margin:0 3px;width:13px}.photon-radio:hover{background-color:var(--grey-90-a20)}.photon-radio:checked{background-color:var(--blue-60);border:none}.photon-radio:hover:active{background-color:var(--grey-90-a30)}.photon-radio-default:checked{background-image:url(${h})}.photon-radio-micro:checked{background-image:url(${p})}.photon-radio:checked:hover{background-color:var(--blue-70)}.photon-radio:checked:hover:active{background-color:var(--blue-80)}`,"",{version:3,sources:["webpack://./res/css/photon/radio-button.css"],names:[],mappings:"AAIA,cAGE,eAAgB,CAChB,eAAgB,CAChB,mCAAoC,CAJpC,mCAAoC,CACpC,iBAIF,CAGA,sBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAGA,oBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAEA,oBACE,mCACF,CAEA,sBAEE,+BAAgC,CADhC,WAEF,CAEA,2BACE,mCACF,CAEA,8BACE,wDACF,CAEA,4BACE,wDACF,CAEA,4BACE,+BACF,CAEA,mCACE,+BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-radio {\n border: 1px solid var(--grey-90-a30);\n border-radius: 8px;\n appearance: none;\n background: none;\n background-color: var(--grey-90-a10);\n}\n\n/* Use this class with the photon-radio for the canonical photon styling. */\n.photon-radio-default {\n width: 16px;\n height: 16px;\n margin: 0 4px;\n}\n\n/* Use this class with the photon-radio for the custom micro variant styling. */\n.photon-radio-micro {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n}\n\n.photon-radio:hover {\n background-color: var(--grey-90-a20);\n}\n\n.photon-radio:checked {\n border: none;\n background-color: var(--blue-60);\n}\n\n.photon-radio:hover:active {\n background-color: var(--grey-90-a30);\n}\n\n.photon-radio-default:checked {\n background-image: url(../../img/svg/radiobutton-marker-16.svg);\n}\n\n.photon-radio-micro:checked {\n background-image: url(../../img/svg/radiobutton-marker-13.svg);\n}\n\n.photon-radio:checked:hover {\n background-color: var(--blue-70);\n}\n\n.photon-radio:checked:hover:active {\n background-color: var(--blue-80);\n}\n"],sourceRoot:""}]);const m=u},2263:(e,t,n)=>{"use strict";n.d(t,{M:()=>o});const r=new WeakMap;class o{constructor(e){this._array=void 0,this._stringToIndex=void 0,this._array=e,this._stringToIndex=new Map;for(let t=0;t<e.length;t++)this._stringToIndex.set(e[t],t)}static withBackingArray(e){let t=r.get(e);return void 0===t&&(t=new o(e),r.set(e,t)),t}getString(e,t){if(!this.hasIndex(e)){if(t)return console.warn(`index ${e} not in StringTable`),t;throw new Error(`index ${e} not in StringTable`)}return this._array[e]}hasIndex(e){return e in this._array}hasString(e){return this._stringToIndex.has(e)}indexForString(e){let t=this._stringToIndex.get(e);return void 0===t&&(t=this._array.length,this._stringToIndex.set(e,t),this._array.push(e)),t}getBackingArray(){return this._array}}},2277:(e,t,n)=>{"use strict";e.exports=n.p+"31fe933f3a12be1aa7f3.svg"},2285:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".photon-label{align-items:center;color:var(--grey-90);display:inline-flex;padding:3px 0}.photon-label-default{font-size:13px}.photon-label-micro{font-size:11px}.photon-label-horiz-padding{padding:0 3px}","",{version:3,sources:["webpack://./res/css/photon/label.css"],names:[],mappings:"AAIA,cAEE,kBAAmB,CAEnB,oBAAqB,CAHrB,mBAAoB,CAEpB,aAEF,CAGA,sBACE,cACF,CAGA,oBACE,cACF,CAEA,4BACE,aACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-label {\n display: inline-flex;\n align-items: center;\n padding: 3px 0;\n color: var(--grey-90);\n}\n\n/* Use this class with the photon-label for the canonical photon styling. */\n.photon-label-default {\n font-size: 13px;\n}\n\n/* Use this class with the photon-label for the custom micro variant styling. */\n.photon-label-micro {\n font-size: 11px;\n}\n\n.photon-label-horiz-padding {\n padding: 0 3px;\n}\n"],sourceRoot:""}]);const s=i},2305:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.tabBarTabButton{background:none;border:none;font:inherit;height:100%;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;width:100%}.tabBarTabWrapper{display:flex;flex-flow:row nowrap;list-style:none;margin:0 -.5px;min-width:0;padding:0}.tabBarTab{background-clip:padding-box;border:solid #0000;border-width:0 1px;cursor:default;font-size:12px;margin:0 -.5px;min-width:8em;padding:6px 4px;position:relative;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap}.tabBarTab,.tabBarTab:before{transition:background-color .2s,border-color .2s;transition-timing-function:var(--animation-timing)}.tabBarTab:before{background-color:initial;content:"";height:2px;left:-1px;position:absolute;right:-1px;top:0}.tabBarTab.selected:before{background-color:var(--blue-50);transition:none}.tabBarTab:not(.selected):hover{background-color:var(--grey-20);border-color:var(--grey-20)}.tabBarTab:not(.selected):hover:before{background-color:var(--grey-40)}.tabBarTab.selected{background:#fff;border-color:var(--grey-30);color:var(--blue-60);margin-bottom:-1px;transition:none;z-index:1}@media (forced-colors:active){.tabBarTab{transition:none}.tabBarTab:before{display:none}.tabBarTab.selected{background:SelectedItem}.tabBarTab.selected button{color:SelectedItemText}.tabBarTab:not(.selected):hover{background-color:SelectedItemText;border-color:SelectedItem}.tabBarTab:not(.selected):hover button{color:SelectedItem}}',"",{version:3,sources:["webpack://./src/components/app/TabBar.css"],names:[],mappings:"AAKA,iBAOE,eAAgB,CAFhB,WAAY,CAGZ,YAAa,CALb,WAAY,CAGZ,QAAS,CALT,eAAgB,CAGhB,SAAU,CAKV,sBAAuB,CAPvB,UAQF,CAEA,kBACE,YAAa,CAEb,oBAAqB,CAGrB,eAAgB,CADhB,cAAgB,CAHhB,WAAY,CAEZ,SAGF,CAEA,WAOE,2BAA4B,CAF5B,kBAAmB,CAAnB,kBAAmB,CAGnB,cAAe,CACf,cAAe,CAHf,cAAgB,CAJhB,aAAc,CACd,eAAgB,CAFhB,iBAAkB,CASlB,iBAAkB,CAKlB,wBAAiB,CAAjB,gBAAiB,CACjB,kBACF,CAGA,6BATE,gDAEoB,CACpB,kDAkBF,CAZA,kBAME,wBAA6B,CAC7B,UAAW,CAFX,UAAW,CADX,SAAU,CAHV,iBAAkB,CAElB,UAAW,CADX,KAUF,CAEA,2BACE,+BAAgC,CAChC,eACF,CAEA,gCAEE,+BAAgC,CADhC,2BAEF,CAEA,uCACE,+BACF,CAEA,oBAIE,eAAgB,CAFhB,2BAA4B,CAG5B,oBAAqB,CAFrB,kBAAmB,CAGnB,eAAgB,CALhB,SAMF,CAEA,8BACE,WACE,eACF,CAIA,kBACE,YACF,CAEA,oBACE,uBACF,CAEA,2BACE,sBACF,CAEA,gCAEE,iCAAkC,CADlC,yBAEF,CAEA,uCACE,kBACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Removing styling from the button */\n.tabBarTabButton {\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding: 0;\n border: none;\n margin: 0;\n background: none;\n font: inherit;\n text-overflow: ellipsis;\n}\n\n.tabBarTabWrapper {\n display: flex;\n min-width: 0; /* This makes the tab container actually shrinkable below min-content */\n flex-flow: row nowrap;\n padding: 0;\n margin: 0 -0.5px; /* This combines with the -0.5px horizontal margin of .tabBarTab to clip off the first tab's 1px starting border */\n list-style: none;\n}\n\n.tabBarTab {\n position: relative;\n min-width: 8em;\n padding: 6px 4px;\n border: solid transparent;\n border-width: 0 1px;\n margin: 0 -0.5px; /* This makes the 1px border between adjacent tabs overlap */\n background-clip: padding-box;\n cursor: default;\n font-size: 12px;\n text-align: center;\n transition:\n background-color 200ms,\n border-color 200ms;\n transition-timing-function: var(--animation-timing);\n user-select: none;\n white-space: nowrap;\n}\n\n/* Place the top tab bar in a separate element to avoid tapered corners. */\n.tabBarTab::before {\n position: absolute;\n top: 0;\n right: -1px;\n left: -1px;\n height: 2px;\n background-color: transparent;\n content: '';\n transition:\n background-color 200ms,\n border-color 200ms;\n transition-timing-function: var(--animation-timing);\n}\n\n.tabBarTab.selected::before {\n background-color: var(--blue-50);\n transition: none; /* Switch the background color instantly when a tab is selected */\n}\n\n.tabBarTab:not(.selected):hover {\n border-color: var(--grey-20);\n background-color: var(--grey-20);\n}\n\n.tabBarTab:not(.selected):hover::before {\n background-color: var(--grey-40);\n}\n\n.tabBarTab.selected {\n z-index: 1;\n border-color: var(--grey-30);\n margin-bottom: -1px; /* Expand 1px towards the bottom to cover the tab bar bottom border. */\n background: #fff;\n color: var(--blue-60);\n transition: none; /* Switch the background color instantly when a tab is selected */\n}\n\n@media (forced-colors: active) {\n .tabBarTab {\n transition: none; /* Transition of background color doesn't look nice with backplating, so disable it */\n }\n\n /* In High Contrast Mode, we have distinct background/foreground color, so we don't need the thin\n line at the top to indicate which tab is selected */\n .tabBarTab::before {\n display: none;\n }\n\n .tabBarTab.selected {\n background: SelectedItem;\n }\n\n .tabBarTab.selected button {\n color: SelectedItemText;\n }\n\n .tabBarTab:not(.selected):hover {\n border-color: SelectedItem;\n background-color: SelectedItemText;\n }\n\n .tabBarTab:not(.selected):hover button {\n color: SelectedItem;\n }\n}\n"],sourceRoot:""}]);const s=i},2351:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(e){e&&"limit"in e&&(this._limit=e.limit),this.clear()}r.prototype={toString:function(){return"[object NamedTupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=Object.keys(e),r=t.length,o=[],a=0;a<r;a++){var i=e[t[a]],s=void 0===i?"undefined":n(i);if(null===i||"object"!==s&&"function"!==s)o.push("string"===s?'"'+i+'"':""+i);else if(this._idMap.has(i))o.push(this._idMap.get(i));else{var l="#"+this._id++;this._idMap.set(i,l),o.push(l)}}return o.push('{"'+t.join('","')+'"}'),this._lastTuple=e,this._lastHash=o.join("/<[MI_SEP]>/"),this._lastHash},has:function(e){var t=this._hash(e);return this._cache.has(t)},set:function(e,t){var n=this._hash(e);return void 0!==this._limit&&this._cache.delete(n),this._cache.set(n,t),void 0!==this._limit&&this._cache.size>this._limit&&this._cache.delete(this._cache.keys().next().value),this},get:function(e){var t=this._hash(e);if(void 0!==this._limit&&this._cache.has(t)){var n=this._cache.get(t);return this._cache.delete(t),this._cache.set(t,n),n}return this._cache.get(t)},clear:function(){this._cache=new Map,this._idMap=new WeakMap,this._id=0,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},2390:(e,t,n)=>{"use strict";e.exports=n.p+"2ea5b50b7361e6de561c.svg"},2441:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".appFooterLinks{background-color:var(--grey-20);border-left:1px solid var(--grey-40);border-top:1px solid var(--grey-40);bottom:0;padding:0 3px;position:fixed;right:0}.appFooterLinksClose,.appFooterLinksLink{color:var(--blue-60);display:inline-block;margin:2px 4px;text-decoration:none}.appFooterLinksClose{background:none;border:none;cursor:pointer;font:inherit;margin:0}.appFooterLinksClose:hover,.appFooterLinksLink:hover{text-decoration:underline}.appFooterLinksLanguageSwitcher{color:inherit;font:inherit;margin:2px 5px}@media (max-width:767px){.appFooterLinks{text-align:center;width:100%}}","",{version:3,sources:["webpack://./src/components/app/FooterLinks.css"],names:[],mappings:"AAAA,gBAYE,+BAAgC,CADhC,oCAAqC,CADrC,mCAAoC,CANpC,QAAS,CAGT,aAAc,CALd,cAAe,CACf,OAUF,CAEA,yCAIE,oBAAqB,CAFrB,oBAAqB,CACrB,cAAe,CAEf,oBACF,CAEA,qBAGE,eAAgB,CAFhB,WAAY,CAGZ,cAAe,CACf,YAAa,CAHb,QAIF,CAEA,qDAEE,yBACF,CAEA,gCAEE,aAAc,CACd,YAAa,CAFb,cAGF,CAEA,yBACE,gBAEE,iBAAkB,CADlB,UAEF,CACF",sourcesContent:[".appFooterLinks {\n /* Position */\n position: fixed;\n right: 0;\n bottom: 0;\n\n /* Box */\n padding: 0 3px;\n\n /* Other */\n border-top: 1px solid var(--grey-40);\n border-left: 1px solid var(--grey-40);\n background-color: var(--grey-20);\n}\n\n.appFooterLinksLink,\n.appFooterLinksClose {\n display: inline-block;\n margin: 2px 4px;\n color: var(--blue-60);\n text-decoration: none;\n}\n\n.appFooterLinksClose {\n border: none;\n margin: 0;\n background: none;\n cursor: pointer;\n font: inherit;\n}\n\n.appFooterLinksLink:hover,\n.appFooterLinksClose:hover {\n text-decoration: underline;\n}\n\n.appFooterLinksLanguageSwitcher {\n margin: 2px 5px;\n color: inherit;\n font: inherit;\n}\n\n@media (max-width: 767px) {\n .appFooterLinks {\n width: 100%;\n text-align: center;\n }\n}\n"],sourceRoot:""}]);const s=i},2487:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".stackChartCanvas{left:0;position:absolute;top:0}.stackChartCanvasTooltip{padding:5px}","",{version:3,sources:["webpack://./src/components/stack-chart/Canvas.css"],names:[],mappings:"AAIA,kBAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAMA,yBACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackChartCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n/**\n * This tooltip is multi-line and more intense, so add additional whitespace to make it\n * more readable.\n */\n.stackChartCanvasTooltip {\n padding: 5px;\n}\n"],sourceRoot:""}]);const s=i},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),u=Object.prototype.hasOwnProperty,h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function f(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new f(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new f(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new f(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new f(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new f(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new f(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new f(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new f(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new f(e,5,!1,e.toLowerCase(),null,!1,!1)}));var A=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function C(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!u.call(m,e)||!u.call(p,e)&&(h.test(e)?m[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new f(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new f("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new f(e,1,!1,e.toLowerCase(),null,!0,!0)}));var v=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,y=Symbol.for("react.element"),w=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),S=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var M=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var F=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=F&&e[F]||e["@@iterator"])?e:null}var D,L=Object.assign;function O(e){if(void 0===D)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var U=!1;function z(e,t){if(!e||U)return"";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var o=t.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?O(e):""}function G(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return z(e.type,!1);case 11:return z(e.type.render,!1);case 1:return z(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case w:return"Portal";case x:return"Profiler";case k:return"StrictMode";case I:return"Suspense";case _:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case S:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case B:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:W(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return W(e(t))}catch(e){}}return null}function H(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return W(t);case 8:return t===k?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function $(e){e._valueTracker||(e._valueTracker=function(e){var t=j(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function K(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Y(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function q(e,t){var n=t.checked;return L({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Z(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function X(e,t){null!=(t=t.checked)&&C(e,"checked",t,!1)}function J(e,t){X(e,t);var n=V(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Q(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Y(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+V(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return L({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:V(n)}}function ae(e,t){var n=V(t.value),r=V(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,de,ue=(de=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return de(e,t)}))}:de);function he(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function fe(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=fe(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(pe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var Ae=L({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(Ae[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function Ce(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ve=null;function ye(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var we=null,Ee=null,ke=null;function xe(e){if(e=vo(e)){if("function"!=typeof we)throw Error(a(280));var t=e.stateNode;t&&(t=wo(t),we(e.stateNode,e.type,t))}}function Te(e){Ee?ke?ke.push(e):ke=[e]:Ee=e}function Se(){if(Ee){var e=Ee,t=ke;if(ke=Ee=null,xe(e),t)for(e=0;e<t.length;e++)xe(t[e])}}function Be(e,t){return e(t)}function Ie(){}var _e=!1;function Ne(e,t,n){if(_e)return e(t,n);_e=!0;try{return Be(e,t,n)}finally{_e=!1,(null!==Ee||null!==ke)&&(Ie(),Se())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=wo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Me=!1;if(d)try{var Fe={};Object.defineProperty(Fe,"passive",{get:function(){Me=!0}}),window.addEventListener("test",Fe,Fe),window.removeEventListener("test",Fe,Fe)}catch(de){Me=!1}function Re(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}var De=!1,Le=null,Oe=!1,Ue=null,ze={onError:function(e){De=!0,Le=e}};function Ge(e,t,n,r,o,a,i,s,l){De=!1,Le=null,Re.apply(ze,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function He(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ve(e){if(We(e)!==e)throw Error(a(188))}function je(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return Ve(o),e;if(i===r)return Ve(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?$e(e):null}function $e(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=$e(e);if(null!==t)return t;e=e.sibling}return null}var Ke=o.unstable_scheduleCallback,Ye=o.unstable_cancelCallback,qe=o.unstable_shouldYield,Ze=o.unstable_requestPaint,Xe=o.unstable_now,Je=o.unstable_getCurrentPriorityLevel,Qe=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null,it=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2,ct=64,dt=4194304;function ut(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ht(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=ut(s):0!=(a&=i)&&(r=ut(a))}else 0!=(i=n&~o)?r=ut(i):0!==a&&(r=ut(a));if(0===r)return 0;if(0!==t&&t!==r&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ft(){var e=ct;return!(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function At(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var Ct=0;function vt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var yt,wt,Et,kt,xt,Tt=!1,St=[],Bt=null,It=null,_t=null,Nt=new Map,Pt=new Map,Mt=[],Ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Rt(e,t){switch(e){case"focusin":case"focusout":Bt=null;break;case"dragenter":case"dragleave":It=null;break;case"mouseover":case"mouseout":_t=null;break;case"pointerover":case"pointerout":Nt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function Dt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&null!==(t=vo(t))&&wt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Lt(e){var t=Co(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=He(n)))return e.blockedOn=t,void xt(e.priority,(function(){Et(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ot(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=vo(n))&&wt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);ve=r,n.target.dispatchEvent(r),ve=null,t.shift()}return!0}function Ut(e,t,n){Ot(e)&&n.delete(t)}function zt(){Tt=!1,null!==Bt&&Ot(Bt)&&(Bt=null),null!==It&&Ot(It)&&(It=null),null!==_t&&Ot(_t)&&(_t=null),Nt.forEach(Ut),Pt.forEach(Ut)}function Gt(e,t){e.blockedOn===t&&(e.blockedOn=null,Tt||(Tt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function Wt(e){function t(t){return Gt(t,e)}if(0<St.length){Gt(St[0],e);for(var n=1;n<St.length;n++){var r=St[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Bt&&Gt(Bt,e),null!==It&&Gt(It,e),null!==_t&&Gt(_t,e),Nt.forEach(t),Pt.forEach(t),n=0;n<Mt.length;n++)(r=Mt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Mt.length&&null===(n=Mt[0]).blockedOn;)Lt(n),null===n.blockedOn&&Mt.shift()}var Ht=v.ReactCurrentBatchConfig,Vt=!0;function jt(e,t,n,r){var o=Ct,a=Ht.transition;Ht.transition=null;try{Ct=1,Kt(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function $t(e,t,n,r){var o=Ct,a=Ht.transition;Ht.transition=null;try{Ct=4,Kt(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function Kt(e,t,n,r){if(Vt){var o=qt(e,t,n,r);if(null===o)Vr(e,t,r,Yt,n),Rt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Bt=Dt(Bt,e,t,n,r,o),!0;case"dragenter":return It=Dt(It,e,t,n,r,o),!0;case"mouseover":return _t=Dt(_t,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Nt.set(a,Dt(Nt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Pt.set(a,Dt(Pt.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<Ft.indexOf(e)){for(;null!==o;){var a=vo(o);if(null!==a&&yt(a),null===(a=qt(e,t,n,r))&&Vr(e,t,r,Yt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Yt=null;function qt(e,t,n,r){if(Yt=null,null!==(e=Co(e=ye(r))))if(null===(t=We(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=He(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yt=e,null}function Zt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Je()){case Qe:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Xt=null,Jt=null,Qt=null;function en(){if(Qt)return Qt;var e,t,n=Jt,r=n.length,o="value"in Xt?Xt.value:Xt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Qt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return L(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=on(cn),un=L({},cn,{view:0,detail:0}),hn=on(un),pn=L({},un,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:xn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=on(pn),fn=on(L({},pn,{dataTransfer:0})),gn=on(L({},un,{relatedTarget:0})),An=on(L({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=L({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Cn=on(bn),vn=on(L({},cn,{data:0})),yn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},wn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},En={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=En[e])&&!!t[e]}function xn(){return kn}var Tn=L({},un,{key:function(e){if(e.key){var t=yn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?wn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:xn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Sn=on(Tn),Bn=on(L({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),In=on(L({},un,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:xn})),_n=on(L({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=L({},pn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=on(Nn),Mn=[9,13,27,32],Fn=d&&"CompositionEvent"in window,Rn=null;d&&"documentMode"in document&&(Rn=document.documentMode);var Dn=d&&"TextEvent"in window&&!Rn,Ln=d&&(!Fn||Rn&&8<Rn&&11>=Rn),On=String.fromCharCode(32),Un=!1;function zn(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Wn=!1,Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function jn(e,t,n,r){Te(r),0<(t=$r(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var $n=null,Kn=null;function Yn(e){Or(e,0)}function qn(e){if(K(yo(e)))return e}function Zn(e,t){if("change"===e)return t}var Xn=!1;if(d){var Jn;if(d){var Qn="oninput"in document;if(!Qn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Qn="function"==typeof er.oninput}Jn=Qn}else Jn=!1;Xn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){$n&&($n.detachEvent("onpropertychange",nr),Kn=$n=null)}function nr(e){if("value"===e.propertyName&&qn(Kn)){var t=[];jn(t,Kn,e,ye(e)),Ne(Yn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Kn=n,($n=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return qn(Kn)}function ar(e,t){if("click"===e)return qn(t)}function ir(e,t){if("input"===e||"change"===e)return qn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!u.call(t,o)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function dr(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function ur(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?ur(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Y();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Y((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=hr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ur(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=dr(n,a);var i=dr(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var fr=d&&"documentMode"in document&&11>=document.documentMode,gr=null,Ar=null,br=null,Cr=!1;function vr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Cr||null==gr||gr!==Y(r)||(r="selectionStart"in(r=gr)&&pr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&lr(br,r)||(br=r,0<(r=$r(Ar,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function yr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var wr={animationend:yr("Animation","AnimationEnd"),animationiteration:yr("Animation","AnimationIteration"),animationstart:yr("Animation","AnimationStart"),transitionend:yr("Transition","TransitionEnd")},Er={},kr={};function xr(e){if(Er[e])return Er[e];if(!wr[e])return e;var t,n=wr[e];for(t in n)if(n.hasOwnProperty(t)&&t in kr)return Er[e]=n[t];return e}d&&(kr=document.createElement("div").style,"AnimationEvent"in window||(delete wr.animationend.animation,delete wr.animationiteration.animation,delete wr.animationstart.animation),"TransitionEvent"in window||delete wr.transitionend.transition);var Tr=xr("animationend"),Sr=xr("animationiteration"),Br=xr("animationstart"),Ir=xr("transitionend"),_r=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){_r.set(e,t),l(t,[e])}for(var Mr=0;Mr<Nr.length;Mr++){var Fr=Nr[Mr];Pr(Fr.toLowerCase(),"on"+(Fr[0].toUpperCase()+Fr.slice(1)))}Pr(Tr,"onAnimationEnd"),Pr(Sr,"onAnimationIteration"),Pr(Br,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(Ir,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Lr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if(Ge.apply(this,arguments),De){if(!De)throw Error(a(198));var d=Le;De=!1,Le=null,Oe||(Oe=!0,Ue=d)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Lr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Lr(o,s,c),a=l}}}if(Oe)throw e=Ue,Oe=!1,Ue=null,e}function Ur(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||(Hr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),Hr(n,e,r,t)}var Gr="_reactListening"+Math.random().toString(36).slice(2);function Wr(e){if(!e[Gr]){e[Gr]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Gr]||(t[Gr]=!0,zr("selectionchange",!1,t))}}function Hr(e,t,n,r){switch(Zt(t)){case 1:var o=jt;break;case 4:o=$t;break;default:o=Kt}n=o.bind(null,t,n,e),o=void 0,!Me||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Vr(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=Co(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Ne((function(){var r=a,o=ye(n),i=[];e:{var s=_r.get(e);if(void 0!==s){var l=dn,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Sn;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=fn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=In;break;case Tr:case Sr:case Br:l=An;break;case Ir:l=_n;break;case"scroll":l=hn;break;case"wheel":l=Pn;break;case"copy":case"cut":case"paste":l=Cn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Bn}var d=!!(4&t),u=!d&&"scroll"===e,h=d?null!==s?s+"Capture":null:s;d=[];for(var p,m=r;null!==m;){var f=(p=m).stateNode;if(5===p.tag&&null!==f&&(p=f,null!==h&&null!=(f=Pe(m,h))&&d.push(jr(m,f,p))),u)break;m=m.return}0<d.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:d}))}}if(!(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===ve||!(c=n.relatedTarget||n.fromElement)||!Co(c)&&!c[fo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?Co(c):null)&&(c!==(u=We(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(d=mn,f="onMouseLeave",h="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(d=Bn,f="onPointerLeave",h="onPointerEnter",m="pointer"),u=null==l?s:yo(l),p=null==c?s:yo(c),(s=new d(f,m+"leave",l,n,o)).target=u,s.relatedTarget=p,f=null,Co(o)===r&&((d=new d(h,m+"enter",c,n,o)).target=p,d.relatedTarget=u,f=d),u=f,l&&c)e:{for(h=c,m=0,p=d=l;p;p=Kr(p))m++;for(p=0,f=h;f;f=Kr(f))p++;for(;0<m-p;)d=Kr(d),m--;for(;0<p-m;)h=Kr(h),p--;for(;m--;){if(d===h||null!==h&&d===h.alternate)break e;d=Kr(d),h=Kr(h)}d=null}else d=null;null!==l&&Yr(i,s,l,d,!1),null!==c&&null!==u&&Yr(i,u,c,d,!0)}if("select"===(l=(s=r?yo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Zn;else if(Vn(s))if(Xn)g=ir;else{g=or;var A=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ar);switch(g&&(g=g(e,r))?jn(i,g,n,o):(A&&A(e,s,r),"focusout"===e&&(A=s._wrapperState)&&A.controlled&&"number"===s.type&&ee(s,"number",s.value)),A=r?yo(r):window,e){case"focusin":(Vn(A)||"true"===A.contentEditable)&&(gr=A,Ar=r,br=null);break;case"focusout":br=Ar=gr=null;break;case"mousedown":Cr=!0;break;case"contextmenu":case"mouseup":case"dragend":Cr=!1,vr(i,n,o);break;case"selectionchange":if(fr)break;case"keydown":case"keyup":vr(i,n,o)}var b;if(Fn)e:{switch(e){case"compositionstart":var C="onCompositionStart";break e;case"compositionend":C="onCompositionEnd";break e;case"compositionupdate":C="onCompositionUpdate";break e}C=void 0}else Wn?zn(e,n)&&(C="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(C="onCompositionStart");C&&(Ln&&"ko"!==n.locale&&(Wn||"onCompositionStart"!==C?"onCompositionEnd"===C&&Wn&&(b=en()):(Jt="value"in(Xt=o)?Xt.value:Xt.textContent,Wn=!0)),0<(A=$r(r,C)).length&&(C=new vn(C,e,null,n,o),i.push({event:C,listeners:A}),(b||null!==(b=Gn(n)))&&(C.data=b))),(b=Dn?function(e,t){switch(e){case"compositionend":return Gn(t);case"keypress":return 32!==t.which?null:(Un=!0,On);case"textInput":return(e=t.data)===On&&Un?null:e;default:return null}}(e,n):function(e,t){if(Wn)return"compositionend"===e||!Fn&&zn(e,t)?(e=en(),Qt=Jt=Xt=null,Wn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ln&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=$r(r,"onBeforeInput")).length&&(o=new vn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b)}Or(i,t)}))}function jr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function $r(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Pe(e,n))&&r.unshift(jr(e,a,o)),null!=(a=Pe(e,t))&&r.push(jr(e,a,o))),e=e.return}return r}function Kr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Yr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Pe(n,a))&&i.unshift(jr(n,l,s)):o||null!=(l=Pe(n,a))&&i.push(jr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var qr=/\r\n?/g,Zr=/\u0000|\uFFFD/g;function Xr(e){return("string"==typeof e?e:""+e).replace(qr,"\n").replace(Zr,"")}function Jr(e,t,n){if(t=Xr(t),Xr(e)!==t&&n)throw Error(a(425))}function Qr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Wt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Wt(t)}function co(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var ho=Math.random().toString(36).slice(2),po="__reactFiber$"+ho,mo="__reactProps$"+ho,fo="__reactContainer$"+ho,go="__reactEvents$"+ho,Ao="__reactListeners$"+ho,bo="__reactHandles$"+ho;function Co(e){var t=e[po];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fo]||n[po]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[po])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function vo(e){return!(e=e[po]||e[fo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function yo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function wo(e){return e[mo]||null}var Eo=[],ko=-1;function xo(e){return{current:e}}function To(e){0>ko||(e.current=Eo[ko],Eo[ko]=null,ko--)}function So(e,t){ko++,Eo[ko]=e.current,e.current=t}var Bo={},Io=xo(Bo),_o=xo(!1),No=Bo;function Po(e,t){var n=e.type.contextTypes;if(!n)return Bo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Mo(e){return null!=e.childContextTypes}function Fo(){To(_o),To(Io)}function Ro(e,t,n){if(Io.current!==Bo)throw Error(a(168));So(Io,t),So(_o,n)}function Do(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,H(e)||"Unknown",o));return L({},n,r)}function Lo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bo,No=Io.current,So(Io,e),So(_o,_o.current),!0}function Oo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Do(e,t,No),r.__reactInternalMemoizedMergedChildContext=e,To(_o),To(Io),So(Io,e)):To(_o),So(_o,n)}var Uo=null,zo=!1,Go=!1;function Wo(e){null===Uo?Uo=[e]:Uo.push(e)}function Ho(){if(!Go&&null!==Uo){Go=!0;var e=0,t=Ct;try{var n=Uo;for(Ct=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Uo=null,zo=!1}catch(t){throw null!==Uo&&(Uo=Uo.slice(e+1)),Ke(Qe,Ho),t}finally{Ct=t,Go=!1}}return null}var Vo=[],jo=0,$o=null,Ko=0,Yo=[],qo=0,Zo=null,Xo=1,Jo="";function Qo(e,t){Vo[jo++]=Ko,Vo[jo++]=$o,$o=e,Ko=t}function ea(e,t,n){Yo[qo++]=Xo,Yo[qo++]=Jo,Yo[qo++]=Zo,Zo=e;var r=Xo;e=Jo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Xo=1<<32-it(t)+o|n<<o|r,Jo=a+e}else Xo=1<<a|n<<o|r,Jo=e}function ta(e){null!==e.return&&(Qo(e,1),ea(e,1,0))}function na(e){for(;e===$o;)$o=Vo[--jo],Vo[jo]=null,Ko=Vo[--jo],Vo[jo]=null;for(;e===Zo;)Zo=Yo[--qo],Yo[qo]=null,Jo=Yo[--qo],Yo[qo]=null,Xo=Yo[--qo],Yo[qo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Nc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function la(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=co(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Zo?{id:Xo,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return!(!(1&e.mode)||128&e.flags)}function da(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function ua(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function ha(e){if(e!==ra)return!1;if(!aa)return ua(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(ca(e))throw pa(),Error(a(418));for(;t;)sa(e,t),t=co(t.nextSibling)}if(ua(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function pa(){for(var e=oa;e;)e=co(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function fa(e){null===ia?ia=[e]:ia.push(e)}var ga=v.ReactCurrentBatchConfig;function Aa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function ba(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ca(e){return(0,e._init)(e._payload)}function va(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Mc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Lc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var a=n.type;return a===E?u(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===P&&Ca(a)===t.type)?((r=o(t,n.props)).ref=Aa(e,t,n),r.return=e,r):((r=Fc(n.type,n.key,n.props,null,e.mode,r)).ref=Aa(e,t,n),r.return=e,r)}function d(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Oc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function u(e,t,n,r,a){return null===t||7!==t.tag?((t=Rc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function h(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Lc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case y:return(n=Fc(t.type,t.key,t.props,null,e.mode,n)).ref=Aa(e,null,t),n.return=e,n;case w:return(t=Oc(t,e.mode,n)).return=e,t;case P:return h(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Rc(t,e.mode,n,null)).return=e,t;ba(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case y:return n.key===o?c(e,t,n,r):null;case w:return n.key===o?d(e,t,n,r):null;case P:return p(e,t,(o=n._init)(n._payload),r)}if(te(n)||R(n))return null!==o?null:u(e,t,n,r,null);ba(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case y:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case w:return d(t,e=e.get(null===r.key?n:r.key)||null,r,o);case P:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||R(r))return u(t,e=e.get(n)||null,r,o,null);ba(t,r)}return null}function f(o,a,s,l){for(var c=null,d=null,u=a,f=a=0,g=null;null!==u&&f<s.length;f++){u.index>f?(g=u,u=null):g=u.sibling;var A=p(o,u,s[f],l);if(null===A){null===u&&(u=g);break}e&&u&&null===A.alternate&&t(o,u),a=i(A,a,f),null===d?c=A:d.sibling=A,d=A,u=g}if(f===s.length)return n(o,u),aa&&Qo(o,f),c;if(null===u){for(;f<s.length;f++)null!==(u=h(o,s[f],l))&&(a=i(u,a,f),null===d?c=u:d.sibling=u,d=u);return aa&&Qo(o,f),c}for(u=r(o,u);f<s.length;f++)null!==(g=m(u,o,f,s[f],l))&&(e&&null!==g.alternate&&u.delete(null===g.key?f:g.key),a=i(g,a,f),null===d?c=g:d.sibling=g,d=g);return e&&u.forEach((function(e){return t(o,e)})),aa&&Qo(o,f),c}function g(o,s,l,c){var d=R(l);if("function"!=typeof d)throw Error(a(150));if(null==(l=d.call(l)))throw Error(a(151));for(var u=d=null,f=s,g=s=0,A=null,b=l.next();null!==f&&!b.done;g++,b=l.next()){f.index>g?(A=f,f=null):A=f.sibling;var C=p(o,f,b.value,c);if(null===C){null===f&&(f=A);break}e&&f&&null===C.alternate&&t(o,f),s=i(C,s,g),null===u?d=C:u.sibling=C,u=C,f=A}if(b.done)return n(o,f),aa&&Qo(o,g),d;if(null===f){for(;!b.done;g++,b=l.next())null!==(b=h(o,b.value,c))&&(s=i(b,s,g),null===u?d=b:u.sibling=b,u=b);return aa&&Qo(o,g),d}for(f=r(o,f);!b.done;g++,b=l.next())null!==(b=m(f,o,g,b.value,c))&&(e&&null!==b.alternate&&f.delete(null===b.key?g:b.key),s=i(b,s,g),null===u?d=b:u.sibling=b,u=b);return e&&f.forEach((function(e){return t(o,e)})),aa&&Qo(o,g),d}return function e(r,a,i,l){if("object"==typeof i&&null!==i&&i.type===E&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case y:e:{for(var c=i.key,d=a;null!==d;){if(d.key===c){if((c=i.type)===E){if(7===d.tag){n(r,d.sibling),(a=o(d,i.props.children)).return=r,r=a;break e}}else if(d.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===P&&Ca(c)===d.type){n(r,d.sibling),(a=o(d,i.props)).ref=Aa(r,d,i),a.return=r,r=a;break e}n(r,d);break}t(r,d),d=d.sibling}i.type===E?((a=Rc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Fc(i.type,i.key,i.props,null,r.mode,l)).ref=Aa(r,a,i),l.return=r,r=l)}return s(r);case w:e:{for(d=i.key;null!==a;){if(a.key===d){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Oc(i,r.mode,l)).return=r,r=a}return s(r);case P:return e(r,a,(d=i._init)(i._payload),l)}if(te(i))return f(r,a,i,l);if(R(i))return g(r,a,i,l);ba(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Lc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var ya=va(!0),wa=va(!1),Ea=xo(null),ka=null,xa=null,Ta=null;function Sa(){Ta=xa=ka=null}function Ba(e){var t=Ea.current;To(Ea),e._currentValue=t}function Ia(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _a(e,t){ka=e,Ta=xa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(Cs=!0),e.firstContext=null)}function Na(e){var t=e._currentValue;if(Ta!==e)if(e={context:e,memoizedValue:t,next:null},null===xa){if(null===ka)throw Error(a(308));xa=e,ka.dependencies={lanes:0,firstContext:e}}else xa=xa.next=e;return t}var Pa=null;function Ma(e){null===Pa?Pa=[e]:Pa.push(e)}function Fa(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ma(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ra(e,r)}function Ra(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Da=!1;function La(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Bl){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ra(e,n)}return null===(o=r.interleaved)?(t.next=t,Ma(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ra(e,n)}function Ga(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function Wa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ha(e,t,n,r){var o=e.updateQueue;Da=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var d=e.alternate;null!==d&&(s=(d=d.updateQueue).lastBaseUpdate)!==i&&(null===s?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l)}if(null!==a){var u=o.baseState;for(i=0,d=c=l=null,s=a;;){var h=s.lane,p=s.eventTime;if((r&h)===h){null!==d&&(d=d.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,f=s;switch(h=t,p=n,f.tag){case 1:if("function"==typeof(m=f.payload)){u=m.call(p,u,h);break e}u=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(h="function"==typeof(m=f.payload)?m.call(p,u,h):m))break e;u=L({},u,h);break e;case 2:Da=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=o.effects)?o.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===d?(c=d=p,l=u):d=d.next=p,i|=h;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(h=s).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}if(null===d&&(l=u),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Dl|=i,e.lanes=i,e.memoizedState=u}}function Va(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var ja={},$a=xo(ja),Ka=xo(ja),Ya=xo(ja);function qa(e){if(e===ja)throw Error(a(174));return e}function Za(e,t){switch(So(Ya,t),So(Ka,e),So($a,ja),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}To($a),So($a,t)}function Xa(){To($a),To(Ka),To(Ya)}function Ja(e){qa(Ya.current);var t=qa($a.current),n=le(t,e.type);t!==n&&(So(Ka,e),So($a,n))}function Qa(e){Ka.current===e&&(To($a),To(Ka))}var ei=xo(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var oi=v.ReactCurrentDispatcher,ai=v.ReactCurrentBatchConfig,ii=0,si=null,li=null,ci=null,di=!1,ui=!1,hi=0,pi=0;function mi(){throw Error(a(321))}function fi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function gi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Qi:es,e=n(r,o),ui){i=0;do{if(ui=!1,hi=0,25<=i)throw Error(a(301));i+=1,ci=li=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(ui)}if(oi.current=Ji,t=null!==li&&null!==li.next,ii=0,ci=li=si=null,di=!1,t)throw Error(a(300));return e}function Ai(){var e=0!==hi;return hi=0,e}function bi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ci?si.memoizedState=ci=e:ci=ci.next=e,ci}function Ci(){if(null===li){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=li.next;var t=null===ci?si.memoizedState:ci.next;if(null!==t)ci=t,li=e;else{if(null===e)throw Error(a(310));e={memoizedState:(li=e).memoizedState,baseState:li.baseState,baseQueue:li.baseQueue,queue:li.queue,next:null},null===ci?si.memoizedState=ci=e:ci=ci.next=e}return ci}function vi(e,t){return"function"==typeof t?t(e):t}function yi(e){var t=Ci(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=li,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,d=i;do{var u=d.lane;if((ii&u)===u)null!==c&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var h={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};null===c?(l=c=h,s=r):c=c.next=h,si.lanes|=u,Dl|=u}d=d.next}while(null!==d&&d!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(Cs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Dl|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function wi(e){var t=Ci(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(Cs=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ei(){}function ki(e,t){var n=si,r=Ci(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,Cs=!0),r=r.queue,Di(Si.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ci&&1&ci.memoizedState.tag){if(n.flags|=2048,Ni(9,Ti.bind(null,n,r,o,t),void 0,null),null===Il)throw Error(a(349));30&ii||xi(n,t,o)}return o}function xi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ti(e,t,n,r){t.value=n,t.getSnapshot=r,Bi(t)&&Ii(e)}function Si(e,t,n){return n((function(){Bi(t)&&Ii(e)}))}function Bi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(e){return!0}}function Ii(e){var t=Ra(e,1);null!==t&&nc(t,e,1,-1)}function _i(e){var t=bi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:vi,lastRenderedState:e},t.queue=e,e=e.dispatch=Yi.bind(null,si,e),[t.memoizedState,e]}function Ni(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Pi(){return Ci().memoizedState}function Mi(e,t,n,r){var o=bi();si.flags|=e,o.memoizedState=Ni(1|t,n,void 0,void 0===r?null:r)}function Fi(e,t,n,r){var o=Ci();r=void 0===r?null:r;var a=void 0;if(null!==li){var i=li.memoizedState;if(a=i.destroy,null!==r&&fi(r,i.deps))return void(o.memoizedState=Ni(t,n,a,r))}si.flags|=e,o.memoizedState=Ni(1|t,n,a,r)}function Ri(e,t){return Mi(8390656,8,e,t)}function Di(e,t){return Fi(2048,8,e,t)}function Li(e,t){return Fi(4,2,e,t)}function Oi(e,t){return Fi(4,4,e,t)}function Ui(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function zi(e,t,n){return n=null!=n?n.concat([e]):null,Fi(4,4,Ui.bind(null,t,e),n)}function Gi(){}function Wi(e,t){var n=Ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Hi(e,t){var n=Ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Vi(e,t,n){return 21&ii?(sr(n,t)||(n=ft(),si.lanes|=n,Dl|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Cs=!0),e.memoizedState=n)}function ji(e,t){var n=Ct;Ct=0!==n&&4>n?n:4,e(!0);var r=ai.transition;ai.transition={};try{e(!1),t()}finally{Ct=n,ai.transition=r}}function $i(){return Ci().memoizedState}function Ki(e,t,n){var r=tc(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},qi(e)?Zi(t,n):null!==(n=Fa(e,t,n,r))&&(nc(n,e,r,ec()),Xi(n,t,r))}function Yi(e,t,n){var r=tc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(qi(e))Zi(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Ma(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(e){}null!==(n=Fa(e,t,o,r))&&(nc(n,e,r,o=ec()),Xi(n,t,r))}}function qi(e){var t=e.alternate;return e===si||null!==t&&t===si}function Zi(e,t){ui=di=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var Ji={readContext:Na,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Qi={readContext:Na,useCallback:function(e,t){return bi().memoizedState=[e,void 0===t?null:t],e},useContext:Na,useEffect:Ri,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Mi(4194308,4,Ui.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Mi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Mi(4,2,e,t)},useMemo:function(e,t){var n=bi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=bi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Ki.bind(null,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},bi().memoizedState=e},useState:_i,useDebugValue:Gi,useDeferredValue:function(e){return bi().memoizedState=e},useTransition:function(){var e=_i(!1),t=e[0];return e=ji.bind(null,e[1]),bi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=bi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Il)throw Error(a(349));30&ii||xi(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ri(Si.bind(null,r,i,e),[e]),r.flags|=2048,Ni(9,Ti.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=bi(),t=Il.identifierPrefix;if(aa){var n=Jo;t=":"+t+"R"+(n=(Xo&~(1<<32-it(Xo)-1)).toString(32)+n),0<(n=hi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=pi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},es={readContext:Na,useCallback:Wi,useContext:Na,useEffect:Di,useImperativeHandle:zi,useInsertionEffect:Li,useLayoutEffect:Oi,useMemo:Hi,useReducer:yi,useRef:Pi,useState:function(){return yi(vi)},useDebugValue:Gi,useDeferredValue:function(e){return Vi(Ci(),li.memoizedState,e)},useTransition:function(){return[yi(vi)[0],Ci().memoizedState]},useMutableSource:Ei,useSyncExternalStore:ki,useId:$i,unstable_isNewReconciler:!1},ts={readContext:Na,useCallback:Wi,useContext:Na,useEffect:Di,useImperativeHandle:zi,useInsertionEffect:Li,useLayoutEffect:Oi,useMemo:Hi,useReducer:wi,useRef:Pi,useState:function(){return wi(vi)},useDebugValue:Gi,useDeferredValue:function(e){var t=Ci();return null===li?t.memoizedState=e:Vi(t,li.memoizedState,e)},useTransition:function(){return[wi(vi)[0],Ci().memoizedState]},useMutableSource:Ei,useSyncExternalStore:ki,useId:$i,unstable_isNewReconciler:!1};function ns(e,t){if(e&&e.defaultProps){for(var n in t=L({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rs(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:L({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var os={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ua(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ga(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ga(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=Ua(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=za(e,o,r))&&(nc(t,e,r,n),Ga(t,e,r))}};function as(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!(t.prototype&&t.prototype.isPureReactComponent&&lr(n,r)&&lr(o,a))}function is(e,t,n){var r=!1,o=Bo,a=t.contextType;return"object"==typeof a&&null!==a?a=Na(a):(o=Mo(t)?No:Io.current,a=(r=null!=(r=t.contextTypes))?Po(e,o):Bo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&os.enqueueReplaceState(t,t.state,null)}function ls(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},La(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Na(a):(a=Mo(t)?No:Io.current,o.context=Po(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&os.enqueueReplaceState(o,o.state,null),Ha(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function cs(e,t){try{var n="",r=t;do{n+=G(r),r=r.return}while(r);var o=n}catch(e){o="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:o,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function us(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var hs="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=Ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,jl=r),us(0,t)},n}function ms(e,t,n){(n=Ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){us(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){us(0,t),"function"!=typeof r&&(null===$l?$l=new Set([this]):$l.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function fs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new hs;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=xc.bind(null,e,t,n),t.then(e,e))}function gs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function As(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ua(-1,1)).tag=2,za(n,t,1))),n.lanes|=1),e)}var bs=v.ReactCurrentOwner,Cs=!1;function vs(e,t,n,r){t.child=null===e?wa(t,null,n,r):ya(t,e.child,n,r)}function ys(e,t,n,r,o){n=n.render;var a=t.ref;return _a(t,o),r=gi(e,t,n,r,a,o),n=Ai(),null===e||Cs?(aa&&n&&ta(t),t.flags|=1,vs(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function ws(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Pc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Fc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Es(e,t,a,r,o))}if(a=e.child,!(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Vs(e,t,o)}return t.flags|=1,(e=Mc(a,r)).ref=t.ref,e.return=t,t.child=e}function Es(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(Cs=!1,t.pendingProps=r=a,!(e.lanes&o))return t.lanes=e.lanes,Vs(e,t,o);131072&e.flags&&(Cs=!0)}}return Ts(e,t,n,r,o)}function ks(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,So(Ml,Pl),Pl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,So(Ml,Pl),Pl|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},So(Ml,Pl),Pl|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,So(Ml,Pl),Pl|=r;return vs(e,t,o,n),t.child}function xs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,o){var a=Mo(n)?No:Io.current;return a=Po(t,a),_a(t,o),n=gi(e,t,n,r,a,o),r=Ai(),null===e||Cs?(aa&&r&&ta(t),t.flags|=1,vs(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function Ss(e,t,n,r,o){if(Mo(n)){var a=!0;Lo(t)}else a=!1;if(_a(t,o),null===t.stateNode)Hs(e,t),is(t,n,r),ls(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;c="object"==typeof c&&null!==c?Na(c):Po(t,c=Mo(n)?No:Io.current);var d=n.getDerivedStateFromProps,u="function"==typeof d||"function"==typeof i.getSnapshotBeforeUpdate;u||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ss(t,i,r,c),Da=!1;var h=t.memoizedState;i.state=h,Ha(t,r,i,o),l=t.memoizedState,s!==r||h!==l||_o.current||Da?("function"==typeof d&&(rs(t,n,d,r),l=t.memoizedState),(s=Da||as(t,n,s,r,h,l,c))?(u||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Oa(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ns(t.type,s),i.props=c,u=t.pendingProps,h=i.context,l="object"==typeof(l=n.contextType)&&null!==l?Na(l):Po(t,l=Mo(n)?No:Io.current);var p=n.getDerivedStateFromProps;(d="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==u||h!==l)&&ss(t,i,r,l),Da=!1,h=t.memoizedState,i.state=h,Ha(t,r,i,o);var m=t.memoizedState;s!==u||h!==m||_o.current||Da?("function"==typeof p&&(rs(t,n,p,r),m=t.memoizedState),(c=Da||as(t,n,c,r,h,m,l)||!1)?(d||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return Bs(e,t,n,r,a,o)}function Bs(e,t,n,r,o,a){xs(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Oo(t,n,!1),Vs(e,t,a);r=t.stateNode,bs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ya(t,e.child,null,a),t.child=ya(t,null,s,a)):vs(e,t,s,a),t.memoizedState=r.state,o&&Oo(t,n,!0),t.child}function Is(e){var t=e.stateNode;t.pendingContext?Ro(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ro(0,t.context,!1),Za(e,t.containerInfo)}function _s(e,t,n,r,o){return ma(),fa(o),t.flags|=256,vs(e,t,n,r),t.child}var Ns,Ps,Ms,Fs,Rs={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ls(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,l=!!(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),So(ei,1&i),null===e)return da(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},1&o||null===s?s=Dc(l,o,0,null):(s.childLanes=0,s.pendingProps=l),e=Rc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(n),t.memoizedState=Rs,e):Os(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,Us(e,t,s,r=ds(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Dc({mode:"visible",children:r.children},o,0,null),(i=Rc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ya(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=Rs,i);if(!(1&t.mode))return Us(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,Us(e,t,s,r=ds(i=Error(a(419)),r,void 0))}if(l=!!(s&e.childLanes),Cs||l){if(null!==(r=Il)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(r.suspendedLanes|s)?0:o)&&o!==i.retryLane&&(i.retryLane=o,Ra(e,o),nc(r,e,o,-1))}return fc(),Us(e,t,s,r=ds(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Sc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Yo[qo++]=Xo,Yo[qo++]=Jo,Yo[qo++]=Zo,Xo=e.id,Jo=e.overflow,Zo=t),(t=Os(t,r.children)).flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 1&l||t.child===i?(o=Mc(i,c)).subtreeFlags=14680064&i.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null),null!==r?s=Mc(r,s):(s=Rc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Ds(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Rs,o}return e=(s=e.child).sibling,o=Mc(s,{mode:"visible",children:o.children}),!(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Os(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Us(e,t,n,r){return null!==r&&fa(r),ya(t,e.child,null,n),(e=Os(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function zs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ia(e.return,t,n)}function Gs(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Ws(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(vs(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&zs(e,n,t);else if(19===e.tag)zs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(So(ei,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Gs(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ti(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Gs(t,!0,n,null,a);break;case"together":Gs(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function Hs(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Mc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Mc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function js(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function $s(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ks(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $s(t),null;case 1:case 17:return Mo(t.type)&&Fo(),$s(t),null;case 3:return r=t.stateNode,Xa(),To(_o),To(Io),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(ha(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==ia&&(ic(ia),ia=null))),Ps(e,t),$s(t),null;case 5:Qa(t);var o=qa(Ya.current);if(n=t.type,null!==e&&null!=t.stateNode)Ms(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return $s(t),null}if(e=qa($a.current),ha(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[po]=t,r[mo]=i,e=!!(1&t.mode),n){case"dialog":Ur("cancel",r),Ur("close",r);break;case"iframe":case"object":case"embed":Ur("load",r);break;case"video":case"audio":for(o=0;o<Rr.length;o++)Ur(Rr[o],r);break;case"source":Ur("error",r);break;case"img":case"image":case"link":Ur("error",r),Ur("load",r);break;case"details":Ur("toggle",r);break;case"input":Z(r,i),Ur("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Ur("invalid",r);break;case"textarea":oe(r,i),Ur("invalid",r)}for(var l in be(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Ur("scroll",r)}switch(n){case"input":$(r),Q(r,i,!0);break;case"textarea":$(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Qr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[po]=t,e[mo]=r,Ns(e,t,!1,!1),t.stateNode=e;e:{switch(l=Ce(n,r),n){case"dialog":Ur("cancel",e),Ur("close",e),o=r;break;case"iframe":case"object":case"embed":Ur("load",e),o=r;break;case"video":case"audio":for(o=0;o<Rr.length;o++)Ur(Rr[o],e);o=r;break;case"source":Ur("error",e),o=r;break;case"img":case"image":case"link":Ur("error",e),Ur("load",e),o=r;break;case"details":Ur("toggle",e),o=r;break;case"input":Z(e,r),o=q(e,r),Ur("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=L({},r,{value:void 0}),Ur("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Ur("invalid",e)}for(i in be(n,o),c=o)if(c.hasOwnProperty(i)){var d=c[i];"style"===i?ge(e,d):"dangerouslySetInnerHTML"===i?null!=(d=d?d.__html:void 0)&&ue(e,d):"children"===i?"string"==typeof d?("textarea"!==n||""!==d)&&he(e,d):"number"==typeof d&&he(e,""+d):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=d&&"onScroll"===i&&Ur("scroll",e):null!=d&&C(e,i,d,l))}switch(n){case"input":$(e),Q(e,r,!1);break;case"textarea":$(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+V(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Qr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return $s(t),null;case 6:if(e&&null!=t.stateNode)Fs(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=qa(Ya.current),qa($a.current),ha(t)){if(r=t.stateNode,n=t.memoizedProps,r[po]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Jr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[po]=t,t.stateNode=r}return $s(t),null;case 13:if(To(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&1&t.mode&&!(128&t.flags))pa(),ma(),t.flags|=98560,i=!1;else if(i=ha(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[po]=t}else ma(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;$s(t),i=!1}else null!==ia&&(ic(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!=(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Fl&&(Fl=3):fc())),null!==t.updateQueue&&(t.flags|=4),$s(t),null);case 4:return Xa(),Ps(e,t),null===e&&Wr(t.stateNode.containerInfo),$s(t),null;case 10:return Ba(t.type._context),$s(t),null;case 19:if(To(ei),null===(i=t.memoizedState))return $s(t),null;if(r=!!(128&t.flags),null===(l=i.rendering))if(r)js(i,!1);else{if(0!==Fl||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(l=ti(e))){for(t.flags|=128,js(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return So(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Xe()>Wl&&(t.flags|=128,r=!0,js(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),js(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return $s(t),null}else 2*Xe()-i.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=128,r=!0,js(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Xe(),t.sibling=null,n=ei.current,So(ei,r?1&n|2:1&n),t):($s(t),null);case 22:case 23:return uc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Pl)&&($s(t),6&t.subtreeFlags&&(t.flags|=8192)):$s(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ys(e,t){switch(na(t),t.tag){case 1:return Mo(t.type)&&Fo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Xa(),To(_o),To(Io),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Qa(t),null;case 13:if(To(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return To(ei),null;case 4:return Xa(),null;case 10:return Ba(t.type._context),null;case 22:case 23:return uc(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(){},Ms=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,qa($a.current);var a,i=null;switch(n){case"input":o=q(e,o),r=q(e,r),i=[];break;case"select":o=L({},o,{value:void 0}),r=L({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Qr)}for(d in be(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var l=o[d];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in r){var c=r[d];if(l=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Ur("scroll",e),i||l===c||(i=[])):(i=i||[]).push(d,c))}n&&(i=i||[]).push("style",n);var d=i;(t.updateQueue=d)&&(t.flags|=4)}},Fs=function(e,t,n,r){n!==r&&(t.flags|=4)};var qs=!1,Zs=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function Qs(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){kc(e,t,n)}else n.current=null}function el(e,t,n){try{n()}catch(n){kc(e,t,n)}}var tl=!1;function nl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&el(t,n,a)}o=o.next}while(o!==r)}}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&(delete t[po],delete t[mo],delete t[go],delete t[Ao],delete t[bo]),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function il(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||il(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Qr));else if(4!==r&&null!==(e=e.child))for(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var dl=null,ul=!1;function hl(e,t,n){for(n=n.child;null!==n;)pl(e,t,n),n=n.sibling}function pl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(e){}switch(n.tag){case 5:Zs||Qs(n,t);case 6:var r=dl,o=ul;dl=null,hl(e,t,n),ul=o,null!==(dl=r)&&(ul?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(ul?(e=dl,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Wt(e)):lo(dl,n.stateNode));break;case 4:r=dl,o=ul,dl=n.stateNode.containerInfo,ul=!0,hl(e,t,n),dl=r,ul=o;break;case 0:case 11:case 14:case 15:if(!Zs&&null!==(r=n.updateQueue)&&null!==(r=r.lastEffect)){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(2&a||4&a)&&el(n,t,i),o=o.next}while(o!==r)}hl(e,t,n);break;case 1:if(!Zs&&(Qs(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){kc(n,t,e)}hl(e,t,n);break;case 21:hl(e,t,n);break;case 22:1&n.mode?(Zs=(r=Zs)||null!==n.memoizedState,hl(e,t,n),Zs=r):hl(e,t,n);break;default:hl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Bc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function fl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,ul=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,ul=!0;break e}l=l.return}if(null===dl)throw Error(a(160));pl(i,s,o),dl=null,ul=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(e){kc(o,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gl(t,e),t=t.sibling}function gl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(fl(t,e),Al(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(t){kc(e,e.return,t)}try{nl(5,e,e.return)}catch(t){kc(e,e.return,t)}}break;case 1:fl(t,e),Al(e),512&r&&null!==n&&Qs(n,n.return);break;case 5:if(fl(t,e),Al(e),512&r&&null!==n&&Qs(n,n.return),32&e.flags){var o=e.stateNode;try{he(o,"")}catch(t){kc(e,e.return,t)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&X(o,i),Ce(l,s);var d=Ce(l,i);for(s=0;s<c.length;s+=2){var u=c[s],h=c[s+1];"style"===u?ge(o,h):"dangerouslySetInnerHTML"===u?ue(o,h):"children"===u?he(o,h):C(o,u,h,d)}switch(l){case"input":J(o,i);break;case"textarea":ae(o,i);break;case"select":var p=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):p!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(t){kc(e,e.return,t)}}break;case 6:if(fl(t,e),Al(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(t){kc(e,e.return,t)}}break;case 3:if(fl(t,e),Al(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Wt(t.containerInfo)}catch(t){kc(e,e.return,t)}break;case 4:default:fl(t,e),Al(e);break;case 13:fl(t,e),Al(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Gl=Xe())),4&r&&ml(e);break;case 22:if(u=null!==n&&null!==n.memoizedState,1&e.mode?(Zs=(d=Zs)||u,fl(t,e),Zs=d):fl(t,e),Al(e),8192&r){if(d=null!==e.memoizedState,(e.stateNode.isHidden=d)&&!u&&1&e.mode)for(Js=e,u=e.child;null!==u;){for(h=Js=u;null!==Js;){switch(m=(p=Js).child,p.tag){case 0:case 11:case 14:case 15:nl(4,p,p.return);break;case 1:Qs(p,p.return);var f=p.stateNode;if("function"==typeof f.componentWillUnmount){r=p,n=p.return;try{t=r,f.props=t.memoizedProps,f.state=t.memoizedState,f.componentWillUnmount()}catch(e){kc(r,n,e)}}break;case 5:Qs(p,p.return);break;case 22:if(null!==p.memoizedState){yl(h);continue}}null!==m?(m.return=p,Js=m):yl(h)}u=u.sibling}e:for(u=null,h=e;;){if(5===h.tag){if(null===u){u=h;try{o=h.stateNode,d?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=h.stateNode,s=null!=(c=h.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=fe("display",s))}catch(t){kc(e,e.return,t)}}}else if(6===h.tag){if(null===u)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(t){kc(e,e.return,t)}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;u===h&&(u=null),h=h.return}u===h&&(u=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:fl(t,e),Al(e),4&r&&ml(e);case 21:}}function Al(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(il(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(he(o,""),r.flags&=-33),cl(e,sl(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ll(e,sl(e),i);break;default:throw Error(a(161))}}catch(t){kc(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bl(e,t,n){Js=e,Cl(e,t,n)}function Cl(e,t,n){for(var r=!!(1&e.mode);null!==Js;){var o=Js,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||qs;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Zs;s=qs;var c=Zs;if(qs=i,(Zs=l)&&!c)for(Js=o;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?wl(o):null!==l?(l.return=i,Js=l):wl(o);for(;null!==a;)Js=a,Cl(a,t,n),a=a.sibling;Js=o,qs=s,Zs=c}vl(e)}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Js=a):vl(e)}}function vl(e){for(;null!==Js;){var t=Js;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Zs||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Zs)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Va(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Va(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var d=t.alternate;if(null!==d){var u=d.memoizedState;if(null!==u){var h=u.dehydrated;null!==h&&Wt(h)}}}break;default:throw Error(a(163))}Zs||512&t.flags&&ol(t)}catch(e){kc(t,t.return,e)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function yl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function wl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(e){kc(t,n,e)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(e){kc(t,o,e)}}var a=t.return;try{ol(t)}catch(e){kc(t,a,e)}break;case 5:var i=t.return;try{ol(t)}catch(e){kc(t,i,e)}}}catch(e){kc(t,t.return,e)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var El,kl=Math.ceil,xl=v.ReactCurrentDispatcher,Tl=v.ReactCurrentOwner,Sl=v.ReactCurrentBatchConfig,Bl=0,Il=null,_l=null,Nl=0,Pl=0,Ml=xo(0),Fl=0,Rl=null,Dl=0,Ll=0,Ol=0,Ul=null,zl=null,Gl=0,Wl=1/0,Hl=null,Vl=!1,jl=null,$l=null,Kl=!1,Yl=null,ql=0,Zl=0,Xl=null,Jl=-1,Ql=0;function ec(){return 6&Bl?Xe():-1!==Jl?Jl:Jl=Xe()}function tc(e){return 1&e.mode?2&Bl&&0!==Nl?Nl&-Nl:null!==ga.transition?(0===Ql&&(Ql=ft()),Ql):0!==(e=Ct)?e:e=void 0===(e=window.event)?16:Zt(e.type):1}function nc(e,t,n,r){if(50<Zl)throw Zl=0,Xl=null,Error(a(185));At(e,n,r),2&Bl&&e===Il||(e===Il&&(!(2&Bl)&&(Ll|=n),4===Fl&&sc(e,Nl)),rc(e,r),1===n&&0===Bl&&!(1&t.mode)&&(Wl=Xe()+500,zo&&Ho()))}function rc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),s=1<<i,l=o[i];-1===l?s&n&&!(s&r)||(o[i]=pt(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=ht(e,e===Il?Nl:0);if(0===r)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){zo=!0,Wo(e)}(lc.bind(null,e)):Wo(lc.bind(null,e)),io((function(){!(6&Bl)&&Ho()})),n=null;else{switch(vt(r)){case 1:n=Qe;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ic(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,Ql=0,6&Bl)throw Error(a(327));var n=e.callbackNode;if(wc()&&e.callbackNode!==n)return null;var r=ht(e,e===Il?Nl:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gc(e,r);else{t=r;var o=Bl;Bl|=2;var i=mc();for(Il===e&&Nl===t||(Hl=null,Wl=Xe()+500,hc(e,t));;)try{bc();break}catch(t){pc(e,t)}Sa(),xl.current=i,Bl=o,null!==_l?t=0:(Il=null,Nl=0,t=Fl)}if(0!==t){if(2===t&&0!==(o=mt(e))&&(r=o,t=ac(e,o)),1===t)throw n=Rl,hc(e,0),sc(e,r),rc(e,Xe()),n;if(6===t)sc(e,r);else{if(o=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!sr(a(),o))return!1}catch(e){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)||(t=gc(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ac(e,i))),1!==t)))throw n=Rl,hc(e,0),sc(e,r),rc(e,Xe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:yc(e,zl,Hl);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=Gl+500-Xe())){if(0!==ht(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(yc.bind(null,e,zl,Hl),t);break}yc(e,zl,Hl);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Xe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kl(r/1960))-r)){e.timeoutHandle=ro(yc.bind(null,e,zl,Hl),r);break}yc(e,zl,Hl);break;default:throw Error(a(329))}}}return rc(e,Xe()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=Ul;return e.current.memoizedState.isDehydrated&&(hc(e,t).flags|=256),2!==(e=gc(e,t))&&(t=zl,zl=n,null!==t&&ic(t)),e}function ic(e){null===zl?zl=e:zl.push.apply(zl,e)}function sc(e,t){for(t&=~Ol,t&=~Ll,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function lc(e){if(6&Bl)throw Error(a(327));wc();var t=ht(e,0);if(!(1&t))return rc(e,Xe()),null;var n=gc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Rl,hc(e,0),sc(e,t),rc(e,Xe()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,yc(e,zl,Hl),rc(e,Xe()),null}function cc(e,t){var n=Bl;Bl|=1;try{return e(t)}finally{0===(Bl=n)&&(Wl=Xe()+500,zo&&Ho())}}function dc(e){null!==Yl&&0===Yl.tag&&!(6&Bl)&&wc();var t=Bl;Bl|=1;var n=Sl.transition,r=Ct;try{if(Sl.transition=null,Ct=1,e)return e()}finally{Ct=r,Sl.transition=n,!(6&(Bl=t))&&Ho()}}function uc(){Pl=Ml.current,To(Ml)}function hc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==_l)for(n=_l.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Fo();break;case 3:Xa(),To(_o),To(Io),ri();break;case 5:Qa(r);break;case 4:Xa();break;case 13:case 19:To(ei);break;case 10:Ba(r.type._context);break;case 22:case 23:uc()}n=n.return}if(Il=e,_l=e=Mc(e.current,null),Nl=Pl=t,Fl=0,Rl=null,Ol=Ll=Dl=0,zl=Ul=null,null!==Pa){for(t=0;t<Pa.length;t++)if(null!==(r=(n=Pa[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Pa=null}return e}function pc(e,t){for(;;){var n=_l;try{if(Sa(),oi.current=Ji,di){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}di=!1}if(ii=0,ci=li=si=null,ui=!1,hi=0,Tl.current=null,null===n||null===n.return){Fl=1,Rl=t,_l=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Nl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var d=c,u=l,h=u.tag;if(!(1&u.mode||0!==h&&11!==h&&15!==h)){var p=u.alternate;p?(u.updateQueue=p.updateQueue,u.memoizedState=p.memoizedState,u.lanes=p.lanes):(u.updateQueue=null,u.memoizedState=null)}var m=gs(s);if(null!==m){m.flags&=-257,As(m,s,l,0,t),1&m.mode&&fs(i,d,t),c=d;var f=(t=m).updateQueue;if(null===f){var g=new Set;g.add(c),t.updateQueue=g}else f.add(c);break e}if(!(1&t)){fs(i,d,t),fc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var A=gs(s);if(null!==A){!(65536&A.flags)&&(A.flags|=256),As(A,s,l,0,t),fa(cs(c,l));break e}}i=c=cs(c,l),4!==Fl&&(Fl=2),null===Ul?Ul=[i]:Ul.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Wa(i,ps(0,c,t));break e;case 1:l=c;var b=i.type,C=i.stateNode;if(!(128&i.flags||"function"!=typeof b.getDerivedStateFromError&&(null===C||"function"!=typeof C.componentDidCatch||null!==$l&&$l.has(C)))){i.flags|=65536,t&=-t,i.lanes|=t,Wa(i,ms(i,l,t));break e}}i=i.return}while(null!==i)}vc(n)}catch(e){t=e,_l===n&&null!==n&&(_l=n=n.return);continue}break}}function mc(){var e=xl.current;return xl.current=Ji,null===e?Ji:e}function fc(){0!==Fl&&3!==Fl&&2!==Fl||(Fl=4),null===Il||!(268435455&Dl)&&!(268435455&Ll)||sc(Il,Nl)}function gc(e,t){var n=Bl;Bl|=2;var r=mc();for(Il===e&&Nl===t||(Hl=null,hc(e,t));;)try{Ac();break}catch(t){pc(e,t)}if(Sa(),Bl=n,xl.current=r,null!==_l)throw Error(a(261));return Il=null,Nl=0,Fl}function Ac(){for(;null!==_l;)Cc(_l)}function bc(){for(;null!==_l&&!qe();)Cc(_l)}function Cc(e){var t=El(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?vc(e):_l=t,Tl.current=null}function vc(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ys(n,t)))return n.flags&=32767,void(_l=n);if(null===e)return Fl=6,void(_l=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Ks(n,t,Pl)))return void(_l=n);if(null!==(t=t.sibling))return void(_l=t);_l=t=e}while(null!==t);0===Fl&&(Fl=5)}function yc(e,t,n){var r=Ct,o=Sl.transition;try{Sl.transition=null,Ct=1,function(e,t,n,r){do{wc()}while(null!==Yl);if(6&Bl)throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===Il&&(_l=Il=null,Nl=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Kl||(Kl=!0,Ic(tt,(function(){return wc(),null}))),i=!!(15990&n.flags),15990&n.subtreeFlags||i){i=Sl.transition,Sl.transition=null;var s=Ct;Ct=1;var l=Bl;Bl|=4,Tl.current=null,function(e,t){if(eo=Vt,pr(e=hr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var s=0,l=-1,c=-1,d=0,u=0,h=e,p=null;t:for(;;){for(var m;h!==n||0!==o&&3!==h.nodeType||(l=s+o),h!==i||0!==r&&3!==h.nodeType||(c=s+r),3===h.nodeType&&(s+=h.nodeValue.length),null!==(m=h.firstChild);)p=h,h=m;for(;;){if(h===e)break t;if(p===n&&++d===o&&(l=s),p===i&&++u===r&&(c=s),null!==(m=h.nextSibling))break;p=(h=p).parentNode}h=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Vt=!1,Js=t;null!==Js;)if(e=(t=Js).child,1028&t.subtreeFlags&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var f=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==f){var g=f.memoizedProps,A=f.memoizedState,b=t.stateNode,C=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:ns(t.type,g),A);b.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var v=t.stateNode.containerInfo;1===v.nodeType?v.textContent="":9===v.nodeType&&v.documentElement&&v.removeChild(v.documentElement);break;default:throw Error(a(163))}}catch(e){kc(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}f=tl,tl=!1}(e,n),gl(n,e),mr(to),Vt=!!eo,to=eo=null,e.current=n,bl(n,e,o),Ze(),Bl=l,Ct=s,Sl.transition=i}else e.current=n;if(Kl&&(Kl=!1,Yl=e,ql=o),0===(i=e.pendingLanes)&&($l=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,!(128&~e.current.flags))}catch(e){}}(n.stateNode),rc(e,Xe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((o=t[n]).value,{componentStack:o.stack,digest:o.digest});if(Vl)throw Vl=!1,e=jl,jl=null,e;!!(1&ql)&&0!==e.tag&&wc(),1&(i=e.pendingLanes)?e===Xl?Zl++:(Zl=0,Xl=e):Zl=0,Ho()}(e,t,n,r)}finally{Sl.transition=o,Ct=r}return null}function wc(){if(null!==Yl){var e=vt(ql),t=Sl.transition,n=Ct;try{if(Sl.transition=null,Ct=16>e?16:e,null===Yl)var r=!1;else{if(e=Yl,Yl=null,ql=0,6&Bl)throw Error(a(331));var o=Bl;for(Bl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(16&Js.flags){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var d=l[c];for(Js=d;null!==Js;){var u=Js;switch(u.tag){case 0:case 11:case 15:nl(8,u,i)}var h=u.child;if(null!==h)h.return=u,Js=h;else for(;null!==Js;){var p=(u=Js).sibling,m=u.return;if(al(u),u===d){Js=null;break}if(null!==p){p.return=m,Js=p;break}Js=m}}}var f=i.alternate;if(null!==f){var g=f.child;if(null!==g){f.child=null;do{var A=g.sibling;g.sibling=null,g=A}while(null!==g)}}Js=i}}if(2064&i.subtreeFlags&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(2048&(i=Js).flags)switch(i.tag){case 0:case 11:case 15:nl(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Js=b;break e}Js=i.return}}var C=e.current;for(Js=C;null!==Js;){var v=(s=Js).child;if(2064&s.subtreeFlags&&null!==v)v.return=s,Js=v;else e:for(s=C;null!==Js;){if(2048&(l=Js).flags)try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(e){kc(l,l.return,e)}if(l===s){Js=null;break e}var y=l.sibling;if(null!==y){y.return=l.return,Js=y;break e}Js=l.return}}if(Bl=o,Ho(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(e){}r=!0}return r}finally{Ct=n,Sl.transition=t}}return!1}function Ec(e,t,n){e=za(e,t=ps(0,t=cs(n,t),1),1),t=ec(),null!==e&&(At(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)Ec(e,e,n);else for(;null!==t;){if(3===t.tag){Ec(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===$l||!$l.has(r))){t=za(t,e=ms(t,e=cs(n,e),1),1),e=ec(),null!==t&&(At(t,1,e),rc(t,e));break}}t=t.return}}function xc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Il===e&&(Nl&n)===n&&(4===Fl||3===Fl&&(130023424&Nl)===Nl&&500>Xe()-Gl?hc(e,0):Ol|=n),rc(e,t)}function Tc(e,t){0===t&&(1&e.mode?(t=dt,!(130023424&(dt<<=1))&&(dt=4194304)):t=1);var n=ec();null!==(e=Ra(e,t))&&(At(e,t,n),rc(e,n))}function Sc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Bc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Tc(e,n)}function Ic(e,t){return Ke(e,t)}function _c(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nc(e,t,n,r){return new _c(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Mc(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Fc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Pc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case E:return Rc(n.children,o,i,t);case k:s=8,o|=8;break;case x:return(e=Nc(12,n,t,2|o)).elementType=x,e.lanes=i,e;case I:return(e=Nc(13,n,t,o)).elementType=I,e.lanes=i,e;case _:return(e=Nc(19,n,t,o)).elementType=_,e.lanes=i,e;case M:return Dc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case S:s=9;break e;case B:s=11;break e;case N:s=14;break e;case P:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Nc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Rc(e,t,n,r){return(e=Nc(7,e,r,t)).lanes=n,e}function Dc(e,t,n,r){return(e=Nc(22,e,r,t)).elementType=M,e.lanes=n,e.stateNode={isHidden:!1},e}function Lc(e,t,n){return(e=Nc(6,e,null,t)).lanes=n,e}function Oc(e,t,n){return(t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Uc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function zc(e,t,n,r,o,a,i,s,l){return e=new Uc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},La(a),e}function Gc(e){if(!e)return Bo;e:{if(We(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Mo(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Mo(n))return Do(e,n,t)}return t}function Wc(e,t,n,r,o,a,i,s,l){return(e=zc(n,r,!0,e,0,a,0,s,l)).context=Gc(null),n=e.current,(a=Ua(r=ec(),o=tc(n))).callback=null!=t?t:null,za(n,a,o),e.current.lanes=o,At(e,o,r),rc(e,r),e}function Hc(e,t,n,r){var o=t.current,a=ec(),i=tc(o);return n=Gc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ua(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=za(o,t,i))&&(nc(e,o,i,a),Ga(e,o,i)),i}function Vc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function jc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function $c(e,t){jc(e,t),(e=e.alternate)&&jc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||_o.current)Cs=!0;else{if(!(e.lanes&n||128&t.flags))return Cs=!1,function(e,t,n){switch(t.tag){case 3:Is(t),ma();break;case 5:Ja(t);break;case 1:Mo(t.type)&&Lo(t);break;case 4:Za(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;So(Ea,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(So(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ls(e,t,n):(So(ei,1&ei.current),null!==(e=Vs(e,t,n))?e.sibling:null);So(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ws(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),So(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,ks(e,t,n)}return Vs(e,t,n)}(e,t,n);Cs=!!(131072&e.flags)}else Cs=!1,aa&&1048576&t.flags&&ea(t,Ko,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var o=Po(t,Io.current);_a(t,n),o=gi(null,t,r,e,o,n);var i=Ai();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Mo(r)?(i=!0,Lo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,La(t),o.updater=os,t.stateNode=o,o._reactInternals=t,ls(t,r,e,n),t=Bs(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),vs(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===B)return 11;if(e===N)return 14}return 2}(r),e=ns(r,e),o){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=Ss(null,t,r,e,n);break e;case 11:t=ys(null,t,r,e,n);break e;case 14:t=ws(null,t,r,ns(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Ts(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,Ss(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(Is(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Oa(e,t),Ha(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=_s(e,t,r,n,o=cs(Error(a(423)),t));break e}if(r!==o){t=_s(e,t,r,n,o=cs(Error(a(424)),t));break e}for(oa=co(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=wa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Vs(e,t,n);break e}vs(e,t,r,n)}t=t.child}return t;case 5:return Ja(t),null===e&&da(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),xs(e,t),vs(e,t,s,n),t.child;case 6:return null===e&&da(t),null;case 13:return Ls(e,t,n);case 4:return Za(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ya(t,null,r,n):vs(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ys(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return vs(e,t,t.pendingProps,n),t.child;case 8:case 12:return vs(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,So(Ea,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!_o.current){t=Vs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Ua(-1,n&-n)).tag=2;var d=i.updateQueue;if(null!==d){var u=(d=d.shared).pending;null===u?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Ia(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ia(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}vs(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,_a(t,n),r=r(o=Na(o)),t.flags|=1,vs(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),ws(e,t,r,o=ns(r.type,o),n);case 15:return Es(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ns(r,o),Hs(e,t),t.tag=1,Mo(r)?(e=!0,Lo(t)):e=!1,_a(t,n),is(t,r,o),ls(t,r,o,n),Bs(null,t,r,!0,e,n);case 19:return Ws(e,t,n);case 22:return ks(e,t,n)}throw Error(a(156,t.tag))};var Kc="function"==typeof reportError?reportError:function(e){console.error(e)};function Yc(e){this._internalRoot=e}function qc(e){this._internalRoot=e}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function Qc(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Vc(i);s.call(e)}}Hc(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Vc(i);a.call(e)}}var i=Wc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[fo]=i.current,Wr(8===e.nodeType?e.parentNode:e),dc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Vc(l);s.call(e)}}var l=zc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[fo]=l.current,Wr(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,o,r);return Vc(i)}qc.prototype.render=Yc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Hc(e,t,null,null)},qc.prototype.unmount=Yc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[fo]=null}},qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Mt.length&&0!==t&&t<Mt[n].priority;n++);Mt.splice(n,0,e),0===n&&Lt(e)}},yt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ut(t.pendingLanes);0!==n&&(bt(t,1|n),rc(t,Xe()),!(6&Bl)&&(Wl=Xe()+500,Ho()))}break;case 13:dc((function(){var t=Ra(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),$c(e,1)}},wt=function(e){if(13===e.tag){var t=Ra(e,134217728);null!==t&&nc(t,e,134217728,ec()),$c(e,134217728)}},Et=function(e){if(13===e.tag){var t=tc(e),n=Ra(e,t);null!==n&&nc(n,e,t,ec()),$c(e,t)}},kt=function(){return Ct},xt=function(e,t){var n=Ct;try{return Ct=e,t()}finally{Ct=n}},we=function(e,t,n){switch(t){case"input":if(J(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=wo(r);if(!o)throw Error(a(90));K(r),J(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Be=cc,Ie=dc;var ed={usingClientEntryPoint:!1,Events:[vo,yo,wo,Te,Se,cc]},td={findFiberByHostInstance:Co,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nd={bundleType:td.bundleType,version:td.version,rendererPackageName:td.rendererPackageName,rendererConfig:td.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:v.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:td.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rd.isDisabled&&rd.supportsFiber)try{ot=rd.inject(nd),at=rd}catch(de){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ed,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:w,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Zc(e))throw Error(a(299));var n=!1,r="",o=Kc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=zc(e,1,!1,null,0,n,0,r,o),e[fo]=t.current,Wr(8===e.nodeType?e.parentNode:e),new Yc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return null===(e=je(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(a(200));return Qc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Kc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Wc(t,null,e,1,null!=n?n:null,o,0,i,s),e[fo]=t.current,Wr(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new qc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(a(200));return Qc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(a(40));return!!e._reactRootContainer&&(dc((function(){Qc(null,null,e,!1,(function(){e._reactRootContainer=null,e[fo]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Qc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},2589:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".EmptyReasons{align-items:center;background-color:var(--grey-20);box-shadow:inset 0 0 15px #0000001a;display:flex;flex:1;flex-direction:column;font-size:120%;justify-content:center;padding:10px}","",{version:3,sources:["webpack://./src/components/shared/EmptyReasons.css"],names:[],mappings:"AAAA,cAIE,kBAAmB,CAGnB,+BAAgC,CAChC,mCAA2C,CAP3C,YAAa,CACb,MAAO,CACP,qBAAsB,CAMtB,cAAe,CAJf,sBAAuB,CACvB,YAIF",sourcesContent:[".EmptyReasons {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n box-shadow: inset 0 0 15px rgb(0 0 0 / 0.1);\n font-size: 120%;\n}\n"],sourceRoot:""}]);const s=i},2591:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".flameGraph{display:flex;flex:1;flex-flow:column;overflow:hidden}.flameGraphContent{border-top:1px solid var(--grey-30);display:flex;flex:1;flex-direction:row}","",{version:3,sources:["webpack://./src/components/flame-graph/FlameGraph.css"],names:[],mappings:"AAIA,YACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,eAGF,CAEA,mBAIE,mCAAoC,CAHpC,YAAa,CACb,MAAO,CACP,kBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.flameGraph {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-flow: column;\n}\n\n.flameGraphContent {\n display: flex;\n flex: 1;\n flex-direction: row;\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},2613:(e,t,n)=>{"use strict";e.exports=n.p+"9a7bd6ec36312a2baa7e.svg"},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2707:(e,t,n)=>{"use strict";e.exports=n.p+"0d5cf282780cd1a5ec64.svg"},2720:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(877),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.home{align-items:center;align-self:flex-start;display:flex;justify-content:center;line-height:1.5;min-height:100vh;width:100%}.homeSpecialMessage{background-color:#798fc8;border:1px solid #000;border-radius:3px;color:#fff;margin:17px 0;padding:8px 16px}.homeSection{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:130%;max-width:1200px;overflow:hidden;padding:4em 8em;position:relative;width:75%}.homeSection kbd{background-color:#f6f6f6;border:1px solid #ccc;border-radius:.2em;box-shadow:.1em .1em 0 #bbb;display:inline-block;margin:0 .2em;padding:0 .5em}.homeSectionItems{margin:1em 0}.homeSectionScreenshot{border:1px solid #d1d1d1;border-radius:.4em;box-shadow:0 2px 4px #ddd;height:auto;max-width:100%;place-self:center;width:390px}.homeAdditionalContentTitle{grid-column:1/-1;margin-bottom:10px;margin-top:0}.homeActions>p:first-child,.homeRecentUploadedRecordingsTitle{margin-top:0}.homeSectionButton{background-color:#fff;border:2px solid;box-sizing:border-box;color:var(--grey-50);display:block;font-size:16px;font-weight:700;line-height:1.5;margin:15px 0;padding:.5em;text-align:center;text-decoration:none;transition:background-color .25s var(--animation-curve),color .25s var(--animation-curve);width:100%}.homeSectionButton:not(:disabled){color:var(--blue-60);cursor:pointer}.homeSectionLoadProfile{position:relative}.homeSectionActionButtons{display:flex}.homeSectionActionButtons .homeSectionButton{flex:1;margin:5px 0}.homeSectionActionButtons button:not(:first-of-type){border-left:none}.homeSectionLoadFromUrl{display:flex;justify-content:space-between;position:absolute;width:100%}.homeSectionActionButtons .homeSectionButton,.homeSectionLoadFromUrl .homeSectionButton{font-size:13px;padding:.3em 1em}.homeSectionButton:not(:disabled):hover,.homeSectionButton:not(:disabled)[aria-expanded=true]{background-color:var(--blue-60);color:#fff}.homeSectionPlus{font-size:26px;line-height:0;padding-left:5px;padding-right:12px;position:relative;top:2px}.homeSectionDocsIcon{background:url(${u});background-size:100% 100%;display:inline-block;height:20px;margin:0 10px -4px 3px;position:relative;width:20px}.homeSectionButton:hover .homeSectionDocsIcon{filter:grayscale(1) brightness(3)}.homeAdditionalContent,.homeInstructions{column-gap:30px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:30px}.homeInstructionsTransitionGroup{position:relative}@media (prefers-reduced-motion:no-preference){.homeTransition-enter{opacity:.1;transform:translateX(100px)}.homeTransition-enter.homeTransition-enter-active{opacity:1;transform:translateX(0);transition:opacity .3s ease-out,transform .3s ease-out}}.homeSectionUploadFromFileInput{display:none}.homeSectionLoadFromUrlInput{flex:auto;margin:0 10px 0 0}.homeSectionLoadFromUrlSubmitButton{margin:0}@media (max-width:1300px){.homeSection{padding:5em}}@media (max-width:1100px){.homeSection{max-width:80%;padding:3em}.homeAdditionalContent,.homeInstructions{grid-template-columns:minmax(0,1fr)}}@media (max-width:767px){.homeSection{max-width:90%;padding-left:2em;padding-right:2em;width:90%}}@media (max-width:499px){.homeSection{max-width:95%;padding-left:1em;padding-right:1em;width:95%}}`,"",{version:3,sources:["webpack://./src/components/app/Home.css"],names:[],mappings:"AAIA,MAIE,kBAAmB,CACnB,qBAAsB,CAJtB,YAAa,CAKb,sBAAuB,CACvB,eAAgB,CAJhB,gBAAiB,CADjB,UAMF,CAEA,oBAKE,wBAAyB,CAHzB,qBAAsB,CACtB,iBAAkB,CAGlB,UAAW,CAFX,aAAc,CAHd,gBAMF,CAEA,aASE,qBAAsB,CAFtB,qBAAsB,CACtB,iBAAkB,CAElB,6BAA8B,CAL9B,qBAAsB,CAMtB,cAAe,CAPf,gBAAiB,CAFjB,eAAgB,CAIhB,eAAgB,CALhB,iBAAkB,CAElB,SASF,CAEA,iBAME,wBAAyB,CAHzB,qBAAsB,CACtB,kBAAoB,CAGpB,2BAA8B,CAN9B,oBAAqB,CAIrB,aAAe,CAHf,cAMF,CAEA,kBACE,YACF,CAEA,uBAIE,wBAAyB,CACzB,kBAAoB,CACpB,yBAA0B,CAH1B,WAAY,CADZ,cAAe,CAKf,iBAAkB,CANlB,WAOF,CAEA,4BAGE,gBAAmB,CADnB,kBAAmB,CADnB,YAGF,CAEA,8DAEE,YACF,CAEA,mBAOE,qBAAsB,CAFtB,gBAA8B,CAF9B,qBAAsB,CAKtB,oBAAqB,CAPrB,aAAc,CAQd,cAAe,CACf,eAAiB,CACjB,eAAgB,CALhB,aAAc,CAFd,YAAc,CAQd,iBAAkB,CAClB,oBAAqB,CACrB,yFAEoC,CAdpC,UAeF,CAEA,kCACE,oBAAqB,CACrB,cACF,CAEA,wBACE,iBACF,CAEA,0BACE,YACF,CAEA,6CACE,MAAO,CACP,YACF,CAEA,qDACE,gBACF,CAEA,wBAEE,YAAa,CAEb,6BAA8B,CAH9B,iBAAkB,CAElB,UAEF,CAEA,wFAGE,cAAe,CADf,gBAEF,CAEA,8FAEE,+BAAgC,CAChC,UACF,CAEA,iBAKE,cAAe,CACf,aAAc,CAFd,gBAAiB,CADjB,kBAAmB,CAFnB,iBAAkB,CAClB,OAKF,CAEA,qBAME,kDAAmD,CACnD,yBAA0B,CAL1B,oBAAqB,CAErB,WAAY,CACZ,sBAAuB,CAJvB,iBAAkB,CAElB,UAKF,CAEA,8CAEE,iCACF,CAEA,yCAIE,eAAgB,CAFhB,YAAa,CAOb,iDAAoD,CANpD,eAOF,CAEA,iCACE,iBACF,CAGA,8CACE,sBACE,UAAY,CACZ,2BACF,CAEA,kDACE,SAAU,CACV,uBAAwB,CACxB,sDAGF,CACF,CAEA,gCACE,YACF,CAEA,6BACE,SAAU,CACV,iBACF,CAEA,oCACE,QACF,CAEA,0BACE,aACE,WACF,CACF,CAEA,0BACE,aACE,aAAc,CACd,WACF,CAEA,yCAIE,mCACF,CACF,CAEA,yBACE,aAEE,aAAc,CAEd,gBAAiB,CADjB,iBAAkB,CAFlB,SAIF,CACF,CAEA,yBACE,aAEE,aAAc,CAEd,gBAAiB,CADjB,iBAAkB,CAFlB,SAIF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.home {\n display: flex;\n width: 100%;\n min-height: 100vh;\n align-items: center;\n align-self: flex-start;\n justify-content: center;\n line-height: 1.5;\n}\n\n.homeSpecialMessage {\n padding: 8px 16px;\n border: 1px solid #000;\n border-radius: 3px;\n margin: 17px 0;\n background-color: #798fc8;\n color: #fff;\n}\n\n.homeSection {\n position: relative;\n overflow: hidden;\n width: 75%;\n max-width: 1200px;\n box-sizing: border-box;\n padding: 4em 8em;\n border: 1px solid #ccc;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.homeSection kbd {\n display: inline-block;\n padding: 0 0.5em;\n border: 1px solid #ccc;\n border-radius: 0.2em;\n margin: 0 0.2em;\n background-color: #f6f6f6;\n box-shadow: 0.1em 0.1em 0 #bbb;\n}\n\n.homeSectionItems {\n margin: 1em 0;\n}\n\n.homeSectionScreenshot {\n width: 390px;\n max-width: 100%;\n height: auto;\n border: 1px solid #d1d1d1;\n border-radius: 0.4em;\n box-shadow: 0 2px 4px #ddd;\n place-self: center;\n}\n\n.homeAdditionalContentTitle {\n margin-top: 0;\n margin-bottom: 10px;\n grid-column: 1 / -1; /* from start to end */\n}\n\n.homeActions > p:first-child,\n.homeRecentUploadedRecordingsTitle {\n margin-top: 0;\n}\n\n.homeSectionButton {\n display: block;\n width: 100%;\n box-sizing: border-box;\n padding: 0.5em;\n border: 2px solid currentcolor;\n margin: 15px 0;\n background-color: #fff;\n color: var(--grey-50);\n font-size: 16px;\n font-weight: bold;\n line-height: 1.5;\n text-align: center;\n text-decoration: none;\n transition:\n background-color 250ms var(--animation-curve),\n color 250ms var(--animation-curve);\n}\n\n.homeSectionButton:not(:disabled) {\n color: var(--blue-60);\n cursor: pointer;\n}\n\n.homeSectionLoadProfile {\n position: relative;\n}\n\n.homeSectionActionButtons {\n display: flex;\n}\n\n.homeSectionActionButtons .homeSectionButton {\n flex: 1;\n margin: 5px 0;\n}\n\n.homeSectionActionButtons button:not(:first-of-type) {\n border-left: none;\n}\n\n.homeSectionLoadFromUrl {\n position: absolute;\n display: flex;\n width: 100%;\n justify-content: space-between;\n}\n\n.homeSectionActionButtons .homeSectionButton,\n.homeSectionLoadFromUrl .homeSectionButton {\n padding: 0.3em 1em;\n font-size: 13px;\n}\n\n.homeSectionButton:not(:disabled):hover,\n.homeSectionButton:not(:disabled)[aria-expanded='true'] {\n background-color: var(--blue-60);\n color: #fff;\n}\n\n.homeSectionPlus {\n position: relative;\n top: 2px;\n padding-right: 12px;\n padding-left: 5px;\n font-size: 26px;\n line-height: 0;\n}\n\n.homeSectionDocsIcon {\n position: relative;\n display: inline-block;\n width: 20px;\n height: 20px;\n margin: 0 10px -4px 3px;\n background: url(../../../res/img/svg/help-blue.svg);\n background-size: 100% 100%;\n}\n\n.homeSectionButton:hover .homeSectionDocsIcon {\n /* Make the icon white */\n filter: grayscale(1) brightness(3);\n}\n\n.homeInstructions,\n.homeAdditionalContent {\n display: grid;\n margin-top: 30px;\n column-gap: 30px;\n\n /* minmax makes the grid ignore the element's intrinsic size.\n * If we use 1fr directly, the min is \"auto\", which depends on the content. If\n * the content is too large then this can break the layout. */\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n}\n\n.homeInstructionsTransitionGroup {\n position: relative;\n}\n\n/* Only show the home transition when reduced motion is not preferred */\n@media (prefers-reduced-motion: no-preference) {\n .homeTransition-enter {\n opacity: 0.1;\n transform: translateX(100px);\n }\n\n .homeTransition-enter.homeTransition-enter-active {\n opacity: 1;\n transform: translateX(0);\n transition:\n opacity 300ms ease-out,\n transform 300ms ease-out;\n }\n}\n\n.homeSectionUploadFromFileInput {\n display: none;\n}\n\n.homeSectionLoadFromUrlInput {\n flex: auto;\n margin: 0 10px 0 0;\n}\n\n.homeSectionLoadFromUrlSubmitButton {\n margin: 0;\n}\n\n@media (max-width: 1300px) {\n .homeSection {\n padding: 5em;\n }\n}\n\n@media (max-width: 1100px) {\n .homeSection {\n max-width: 80%;\n padding: 3em;\n }\n\n .homeAdditionalContent,\n .homeInstructions {\n /* we switch to use just one column instead of 2.\n * Note tha/ minmax makes the grid ignore the element's intrinsic size. */\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n@media (max-width: 767px) {\n .homeSection {\n width: 90%;\n max-width: 90%;\n padding-right: 2em;\n padding-left: 2em;\n }\n}\n\n@media (max-width: 499px) {\n .homeSection {\n width: 95%;\n max-width: 95%;\n padding-right: 1em;\n padding-left: 1em;\n }\n}\n"],sourceRoot:""}]);const h=d},2787:(e,t,n)=>{"use strict";n.d(t,{A:()=>w});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4273),n.b),d=new URL(n(6767),n.b),u=new URL(n(1986),n.b),h=new URL(n(2613),n.b),p=new URL(n(8232),n.b),m=new URL(n(4051),n.b),f=i()(o()),g=l()(c),A=l()(d),b=l()(u),C=l()(h),v=l()(p),y=l()(m);f.push([e.id,`.profileMetaInfoSummary{align-items:stretch;display:flex;min-width:0;overflow:hidden}.profileMetaInfoSummaryPlatform,.profileMetaInfoSummaryProductAndVersion{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profileMetaInfoSummaryProductAndVersion{background:url(${g}) 0/1em no-repeat;padding-left:1.4em}.profileMetaInfoSummaryProductAndVersion[data-product=Fennec],.profileMetaInfoSummaryProductAndVersion[data-product^=Firefox]{background-image:url(${A})}.profileMetaInfoSummaryPlatform{background:url(${g}) 0/1em no-repeat;margin-left:1em;padding-left:1.4em}.profileMetaInfoSummaryPlatform[data-toolkit^=macOS]{background-image:url(${b})}.profileMetaInfoSummaryPlatform[data-toolkit^=Windows]{background-image:url(${C})}.profileMetaInfoSummaryPlatform[data-toolkit^=Linux]{background-image:url(${v})}.profileMetaInfoSummaryPlatform[data-toolkit^=Android]{background-image:url(${y})}`,"",{version:3,sources:["webpack://./src/components/shared/ProfileMetaInfoSummary.css"],names:[],mappings:"AAMA,wBAIE,mBAAoB,CAHpB,YAAa,CAEb,WAAY,CADZ,eAGF,CAEA,yEAEE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,yCAEE,kEAA0E,CAD1E,kBAEF,CAEA,8HAEE,wDACF,CAEA,gCAGE,kEAA0E,CAD1E,eAAgB,CADhB,kBAGF,CAEA,qDACE,wDACF,CAEA,uDACE,wDACF,CAEA,qDACE,wDACF,CAEA,uDACE,wDACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* We use em in this CSS file so that it will adjust with the inherited font-size. */\n\n.profileMetaInfoSummary {\n display: flex;\n overflow: hidden;\n min-width: 0;\n align-items: stretch;\n}\n\n.profileMetaInfoSummaryProductAndVersion,\n.profileMetaInfoSummaryPlatform {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.profileMetaInfoSummaryProductAndVersion {\n padding-left: 1.4em; /* 1 (for the background image) + 0.4 */\n background: url(../../../res/img/svg/info.svg) left center / 1em no-repeat;\n}\n\n.profileMetaInfoSummaryProductAndVersion[data-product^='Firefox'],\n.profileMetaInfoSummaryProductAndVersion[data-product='Fennec'] {\n background-image: url(../../../res/img/svg/brands/firefoxbrowser.svg);\n}\n\n.profileMetaInfoSummaryPlatform {\n padding-left: 1.4em; /* 1 (for the background image) + 0.4 */\n margin-left: 1em;\n background: url(../../../res/img/svg/info.svg) left center / 1em no-repeat;\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='macOS'] {\n background-image: url(../../../res/img/svg/brands/apple.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Windows'] {\n background-image: url(../../../res/img/svg/brands/windows.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Linux'] {\n background-image: url(../../../res/img/svg/brands/linux.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Android'] {\n background-image: url(../../../res/img/svg/brands/android.svg);\n}\n"],sourceRoot:""}]);const w=f},2834:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},2971:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3717),n.b),d=new URL(n(3725),n.b),u=new URL(n(1791),n.b),h=i()(o()),p=l()(c),m=l()(d),f=l()(u);h.push([e.id,`.filterNavigatorBar{--internal-background-color:#0000;--internal-hover-background-color:#0000001a;--internal-hover-color:inherit;--internal-active-background-color:#0003;--internal-selected-background-color:#0000;--internal-selected-color:var(--selected-color,var(--blue-60));--internal-separator-img:url(${p});cursor:default;flex-shrink:0;margin:0;padding:0;-webkit-user-select:none;user-select:none}.filterNavigatorBar,.filterNavigatorBarItem{display:flex;flex-flow:row nowrap;height:24px}.filterNavigatorBarItem{background-clip:padding-box;background-color:var(--internal-background-color);border:solid #0000;border-right-color:#0000!important;border-width:0 8px 0 6px;forced-color-adjust:none;line-height:24px;min-width:0;padding:0 6px 0 8px;position:relative;transition:opacity .25s var(--animation-curve),transform .25s var(--animation-curve)}.filterNavigatorBarRootItem{flex-shrink:0;margin-left:-8px;max-width:100%}.filterNavigatorBarItemContent{background:none;border:none;color:inherit;display:flex;font:inherit;line-height:normal;margin:auto;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.filterNavigatorBarItemContent>.nodeIcon{margin-inline-end:5px}.filterNavigatorBarItem:after,.filterNavigatorBarItem:before{border:12px solid #0000;border-right-width:2px;bottom:0;content:"";display:block;pointer-events:none;position:absolute;top:0;width:0}.filterNavigatorBarItem:before{border-left-color:#0000!important;left:-14px}.filterNavigatorBarItem:after{border-bottom-color:#0000!important;border-right-color:#0000!important;border-top-color:#0000!important;right:-14px}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):after{animation:fadeIn .25s var(--animation-curve);background-image:var(--internal-separator-img);background-position:-18px -12px;background-repeat:no-repeat;background-size:24px 24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):after,.filterNavigatorBarItem:not(.filterNavigatorBarRootItem,.filterNavigatorBarLeafItem):before{border-color:var(--internal-background-color)}.filterNavigatorBarItem.filterNavigatorBarSelectedItem{background-color:var(--internal-selected-background-color);color:var(--internal-selected-color)}.filterNavigatorBarSelectedItem:not(.filterNavigatorBarRootItem):before,.filterNavigatorBarSelectedItem:not(:first-of-type:last-of-type):after{border-color:var(--internal-selected-background-color)}.filterNavigatorBarItem:has(button.profileFilterNavigator--tab-selector):hover,.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover{background-color:var(--internal-hover-background-color);color:var(--internal-hover-color)}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover:after,.filterNavigatorBarItem:not(.filterNavigatorBarRootItem,.filterNavigatorBarLeafItem):hover:before{border-color:var(--internal-hover-background-color)}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover{background-color:var(--internal-hover-background-color)}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover:after,.filterNavigatorBarItem:not(.filterNavigatorBarRootItem,.filterNavigatorBarLeafItem):active:hover:before{border-color:var(--internal-hover-background-color)}.filterNavigatorBarUncommittedItem{opacity:.65}.filterNavigatorBarUncommittedTransition-exit{display:none}.filterNavigatorBarTransition-enter{color:inherit;opacity:.65}.filterNavigatorBarTransition-enter.filterNavigatorBarTransition-enter-active{color:var(--internal-selected-color);opacity:1}.filterNavigatorBarTransition-exit{opacity:1}.filterNavigatorBarTransition-exit.filterNavigatorBarTransition-exit-active{opacity:0;transform:translateX(50%)}@media (prefers-reduced-motion){.filterNavigatorBarItem{animation:none;transition:none}}@media (forced-colors:active){.filterNavigatorBar{--internal-background-color:ButtonFace;--internal-hover-background-color:SelectedItemText;--internal-hover-color:SelectedItem;--internal-active-background-color:SelectedItemText;--internal-selected-background-color:SelectedItem;--internal-selected-color:SelectedItemText;--internal-separator-img:url(${m})}.filterNavigatorBarItem{color:ButtonText}.filterNavigatorBarSelectedItem:has(button.profileFilterNavigator--tab-selector){background-color:ButtonFace;color:ButtonText}.filterNavigatorBarUncommittedItem{color:GrayText;opacity:1}@media (prefers-color-scheme:dark){.filterNavigatorBar{--internal-separator-img:url(${f})}}}`,"",{version:3,sources:["webpack://./src/components/shared/FilterNavigatorBar.css"],names:[],mappings:"AAIA,oBACE,iCAAwC,CACxC,2CAAmD,CACnD,8BAA+B,CAC/B,wCAAoD,CACpD,0CAAiD,CACjD,8DAAgE,CAChE,gEAAmF,CAQnF,cAAe,CAHf,aAAc,CAEd,QAAS,CADT,SAAU,CAGV,wBAAiB,CAAjB,gBAGF,CAEA,4CAZE,YAAa,CAEb,oBAAqB,CADrB,WA+BF,CApBA,wBAUE,2BAA4B,CAC5B,iDAAkD,CAHlD,kBAAyB,CACzB,kCAA0C,CAD1C,wBAAyB,CAOzB,wBAAyB,CACzB,gBAAiB,CAbjB,WAAY,CAGZ,mBAAoB,CALpB,iBAAkB,CAgBlB,oFAGF,CAEA,4BAEE,aAAc,CACd,gBAAiB,CAFjB,cAGF,CAEA,+BASE,eAAgB,CAFhB,WAAY,CAGZ,aAAc,CATd,YAAa,CAUb,YAAa,CACb,kBAAmB,CAJnB,WAAY,CANZ,eAAgB,CAIhB,SAAU,CAOV,sBAAuB,CACvB,kBACF,CAEA,yCACE,qBACF,CAEA,6DAQE,uBAAuB,CAAvB,sBAAuB,CAJvB,QAAS,CAKT,UAAW,CAJX,aAAc,CAKd,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAGN,OAKF,CAEA,+BAEE,iCAAyC,CADzC,UAEF,CAEA,8BAIE,mCAA2C,CAD3C,kCAA0C,CAD1C,gCAAwC,CADxC,WAIF,CAEA,+DACE,4CAA8C,CAC9C,8CAA+C,CAC/C,+BAAgC,CAChC,2BAA4B,CAC5B,yBACF,CAEA,kBACE,GACE,SACF,CAEA,GACE,SACF,CACF,CAEA,2JAKE,6CACF,CAEA,uDACE,0DAA2D,CAC3D,oCACF,CAEA,+IAEE,sDACF,CAEA,8IAEE,uDAAwD,CACxD,iCACF,CAEA,uKAKE,mDACF,CAEA,sEACE,uDACF,CAEA,qLAKE,mDACF,CAEA,mCACE,WACF,CAIA,8CAIE,YACF,CAEA,oCACE,aAAc,CAKd,WACF,CAEA,8EACE,oCAAqC,CACrC,SACF,CAEA,mCACE,SACF,CAEA,4EACE,SAAU,CACV,yBACF,CAGA,gCACE,wBACE,cAAe,CACf,eACF,CACF,CAEA,8BACE,oBACE,sCAAuC,CACvC,kDAAmD,CACnD,mCAAoC,CACpC,mDAAoD,CACpD,iDAAkD,CAClD,0CAA2C,CAC3C,gEACF,CAEA,wBACE,gBACF,CAGA,iFAGE,2BAA4B,CAC5B,gBACF,CAIA,mCACE,cAAe,CACf,SACF,CAEA,mCACE,oBACE,gEACF,CACF,CACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.filterNavigatorBar {\n --internal-background-color: transparent;\n --internal-hover-background-color: rgb(0 0 0 / 0.1);\n --internal-hover-color: inherit;\n --internal-active-background-color: rgb(0 0 0 / 0.2);\n --internal-selected-background-color: transparent;\n --internal-selected-color: var(--selected-color, var(--blue-60));\n --internal-separator-img: url(firefox-profiler-res/img/svg/scope-bar-separator.svg);\n\n display: flex;\n height: 24px;\n flex-flow: row nowrap;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n cursor: default;\n user-select: none;\n\n /* Note: no overflow: hidden so that we can see the exit animation for ranges */\n}\n\n.filterNavigatorBarItem {\n position: relative;\n display: flex;\n min-width: 0;\n height: 24px;\n flex-flow: row nowrap;\n padding: 0 6px 0 8px;\n border: solid transparent;\n border-width: 0 8px 0 6px;\n border-right-color: transparent !important;\n background-clip: padding-box;\n background-color: var(--internal-background-color);\n\n /* Make sure the design also works in High Contrast Mode. The colors are overriden\n in the forced colors media query. */\n forced-color-adjust: none;\n line-height: 24px;\n transition:\n opacity 250ms var(--animation-curve),\n transform 250ms var(--animation-curve);\n}\n\n.filterNavigatorBarRootItem {\n max-width: 100%;\n flex-shrink: 0;\n margin-left: -8px;\n}\n\n.filterNavigatorBarItemContent {\n display: flex;\n overflow: hidden;\n\n /* These lines are mostly to override the default browser styles for `<button>`.\n * The 8px are used by the box-shadow when the button receives focus */\n padding: 0;\n border: none;\n margin: auto;\n background: none;\n color: inherit;\n font: inherit;\n line-height: normal;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.filterNavigatorBarItemContent > .nodeIcon {\n margin-inline-end: 5px;\n}\n\n.filterNavigatorBarItem::before,\n.filterNavigatorBarItem::after {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n width: 0;\n border: 12px solid transparent;\n border-right-width: 2px;\n content: \'\';\n pointer-events: none;\n}\n\n.filterNavigatorBarItem::before {\n left: -14px;\n border-left-color: transparent !important;\n}\n\n.filterNavigatorBarItem::after {\n right: -14px;\n border-top-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem)::after {\n animation: fadeIn 250ms var(--animation-curve);\n background-image: var(--internal-separator-img);\n background-position: -18px -12px;\n background-repeat: no-repeat;\n background-size: 24px 24px;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.filterNavigatorBarItem:not(\n .filterNavigatorBarRootItem,\n .filterNavigatorBarLeafItem\n )::before,\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem)::after {\n border-color: var(--internal-background-color);\n}\n\n.filterNavigatorBarItem.filterNavigatorBarSelectedItem {\n background-color: var(--internal-selected-background-color);\n color: var(--internal-selected-color);\n}\n\n.filterNavigatorBarSelectedItem:not(.filterNavigatorBarRootItem)::before,\n.filterNavigatorBarSelectedItem:not(:first-of-type:last-of-type)::after {\n border-color: var(--internal-selected-background-color);\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover,\n.filterNavigatorBarItem:has(button.profileFilterNavigator--tab-selector):hover {\n background-color: var(--internal-hover-background-color);\n color: var(--internal-hover-color);\n}\n\n.filterNavigatorBarItem:not(\n .filterNavigatorBarRootItem,\n .filterNavigatorBarLeafItem\n ):hover::before,\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover::after {\n border-color: var(--internal-hover-background-color);\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover {\n background-color: var(--internal-hover-background-color);\n}\n\n.filterNavigatorBarItem:not(\n .filterNavigatorBarRootItem,\n .filterNavigatorBarLeafItem\n ):active:hover::before,\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover::after {\n border-color: var(--internal-hover-background-color);\n}\n\n.filterNavigatorBarUncommittedItem {\n opacity: 0.65;\n}\n\n/* Animation */\n\n.filterNavigatorBarUncommittedTransition-exit {\n /* Because of the underlying transition library, this element is still here\n * while the new "committed" element is created, which pushes it further\n * right. By using display: none here, we prevent this bad effect. */\n display: none;\n}\n\n.filterNavigatorBarTransition-enter {\n color: inherit;\n\n /* We use the same value as the uncommitted item.\n * Note that the "uncommitted item" won\'t have this "enter" class when\n * committing, because of how we insert it (it\'s not part of the same loop). */\n opacity: 0.65;\n}\n\n.filterNavigatorBarTransition-enter.filterNavigatorBarTransition-enter-active {\n color: var(--internal-selected-color);\n opacity: 1;\n}\n\n.filterNavigatorBarTransition-exit {\n opacity: 1;\n}\n\n.filterNavigatorBarTransition-exit.filterNavigatorBarTransition-exit-active {\n opacity: 0;\n transform: translateX(50%);\n}\n\n/* Do not animate the filter navigator bar items when user prefers reduced motion */\n@media (prefers-reduced-motion) {\n .filterNavigatorBarItem {\n animation: none;\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .filterNavigatorBar {\n --internal-background-color: ButtonFace;\n --internal-hover-background-color: SelectedItemText;\n --internal-hover-color: SelectedItem;\n --internal-active-background-color: SelectedItemText;\n --internal-selected-background-color: SelectedItem;\n --internal-selected-color: SelectedItemText;\n --internal-separator-img: url(firefox-profiler-res/img/svg/scope-bar-separator-hcm-light.svg);\n }\n\n .filterNavigatorBarItem {\n color: ButtonText;\n }\n\n /* When the tab selector is active, we want the item to look like a button */\n .filterNavigatorBarSelectedItem:has(\n button.profileFilterNavigator--tab-selector\n ) {\n background-color: ButtonFace;\n color: ButtonText;\n }\n\n /* In regular mode, the opacity is tweaked, which isn\'t suited for High Contrast Mode.\n Here we want the full opacity and a gray text */\n .filterNavigatorBarUncommittedItem {\n color: GrayText;\n opacity: 1;\n }\n\n @media (prefers-color-scheme: dark) {\n .filterNavigatorBar {\n --internal-separator-img: url(firefox-profiler-res/img/svg/scope-bar-separator-hcm-dark.svg);\n }\n }\n}\n'],sourceRoot:""}]);const g=h},3038:(e,t,n)=>{"use strict";n.d(t,{I:()=>a,z:()=>i});var r=n(919),o=n(7658);function a(e){const t=e.meta.sampleUnits;if(!t)return 1;const n=t.threadCPUDelta;switch(n){case"µs":return 1e3;case"ns":return 1e6;case"variable CPU cycles":return function(e){let t=0;for(let n=0;n<e.length;n++){const{samples:a}=e[n],{threadCPUDelta:i}=a;if(!i)continue;const s=void 0!==a.time?(0,o.v)(a.time):(0,r.Nn)(a.timeDeltas);for(let e=1;e<a.length;e++){const n=s[e];if(0!==n){const r=(i[e]||0)/n;t=Math.max(t,r)}}}return t}(e.threads);default:throw(0,r.lC)(n,"Unhandled threadCPUDelta unit in computeReferenceCPUDeltaPerMs.")}}function i(e,t,n,r){const{threadCPUDelta:o}=e;if(!o)return;const a=new Float64Array(o.length);a[0]=0;for(let e=1;e<o.length;e++){const t=r*n[e],i=o[e];a[e]=null!==i&&0!==t&&i<=t?i/t:1}return a}},3062:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".buttonWithPanel{align-items:stretch;display:flex;flex-flow:column nowrap;position:relative}","",{version:3,sources:["webpack://./src/components/shared/ButtonWithPanel/ButtonWithPanel.css"],names:[],mappings:"AAIA,iBAIE,mBAAoB,CAFpB,YAAa,CACb,uBAAwB,CAFxB,iBAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.buttonWithPanel {\n position: relative;\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n}\n"],sourceRoot:""}]);const s=i},3115:(e,t,n)=>{"use strict";e.exports=n.p+"8dab2a6ba757bcc6e9a5.svg"},3183:(e,t,n)=>{"use strict";e.exports=n.p+"3c3fda7c08bcc9544c64.svg"},3276:e=>{e.exports=function(e,t,n){return t<n?e<t?t:e>n?n:e:e<n?n:e>t?t:e}},3453:(e,t,n)=>{"use strict";n.d(t,{A:()=>w});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(9653),n.b),d=new URL(n(9180),n.b),u=new URL(n(8981),n.b),h=new URL(n(4273),n.b),p=new URL(n(2390),n.b),m=new URL(n(129),n.b),f=i()(o()),g=l()(c),A=l()(d),b=l()(u),C=l()(h),v=l()(p),y=l()(m);f.push([e.id,`.menuButtonsShareButtonButton:before{background-image:url(${g})}.menuButtonsShareButtonButton-uploading:before{background-image:url(${A})}.menuButtonsShareButtonError{background-color:var(--red-60);color:#fff}.menuButtonsShareButtonError:hover{background-color:var(--red-70)}.buttonWithPanel.open>.menuButtonsShareButtonError,.menuButtonsShareButtonError:hover:active{background-color:var(--red-80)}.menuButtonsShareButtonError:before{background-image:url(${b})}.menuButtonsPublishPanel{--width:510px}.menuButtonsPublishContent{padding-left:70px;position:relative}.menuButtonsPublishTitle{background:url(${C}) 0 no-repeat;line-height:44px;margin:0 0 0 -60px;padding-left:60px}.menuButtonsPublishInfoDescription{flex:1;line-height:1.5;margin-bottom:1em}.menuButtonsPublishDataChoices{margin-left:10px}.menuButtonsPublishDataChoicesLabel{display:flex;margin:4px 0}.menuButtonsPublishDataChoicesIndicator{margin-left:8px}.menuButtonsPublishButtons{display:flex;justify-content:right;margin-top:20px}.menuButtonsPublishButton{align-items:center;box-sizing:initial;cursor:default;display:inline-flex;justify-content:center;margin:0 8px;min-width:132px;text-align:center;text-decoration:none}.menuButtonsPublishButtonDisabled{opacity:.6}.menuButtonsPublishButtonDisabled:active:hover,.menuButtonsPublishButtonDisabled:hover{background-color:var(--grey-90-a10)}.menuButtonsPublishButtonsSvg{display:inline-block;margin-right:5px;margin-top:-6px;position:relative;top:4px}.menuButtonsPublishButtonsSvgUpload{background:url(${v}) 50% no-repeat;height:20px;width:20px}.menuButtonsPublishButtonsSvgDownload{background:url(${y}) 50% no-repeat;height:20px;width:20px}.menuButtonsDownloadSize{display:inline-block;font-size:11px;margin:0 4px}.menuButtonsPublishUpload{padding:10px 0;position:relative}.menuButtonsPublishUploadTop{margin:10px}.menuButtonsPublishUploadPercentage{color:var(--blue-60);margin:10px 0}.menuButtonsPublishUploadBar{background-color:var(--grey-40);border-radius:2px;height:5px;overflow:hidden}.menuButtonsPublishUploadBarInner{animation:animate-stripes 1s linear infinite;background-color:var(--blue-50);background-image:linear-gradient(135deg,#0000 20%,#fff6 0,#fff6 40%,#0000 0,#0000 60%,#fff6 0,#fff6 80%,#0000 0);background-size:21px 20px,100% 100%,100% 100%;border-radius:0 2px 2px 0;height:3px;position:absolute;top:0}@keyframes animate-stripes{to{background-position:-21px 0}}.menuButtonsPublishError{margin:10px 0}@media (prefers-reduced-motion){.menuButtonsPublishUploadBarInner{animation:none}}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/Publish.css"],names:[],mappings:"AAMA,qCACE,wDACF,CAEA,+CACE,wDACF,CAEA,6BACE,8BAA+B,CAC/B,UACF,CAEA,mCACE,8BACF,CAEA,6FAEE,8BACF,CAEA,oCACE,wDACF,CAEA,yBACE,aACF,CAEA,2BAIE,iBAAkB,CAHlB,iBAIF,CAEA,yBAKE,8DAA4E,CAC5E,gBAAiB,CAFjB,kBAAmB,CADnB,iBAIF,CAEA,mCACE,MAAO,CAEP,eAAgB,CADhB,iBAEF,CAEA,+BACE,gBACF,CAEA,oCACE,YAAa,CACb,YACF,CAEA,wCACE,eACF,CAEA,2BACE,YAAa,CACb,qBAAsB,CACtB,eACF,CAEA,0BAIE,kBAAmB,CADnB,kBAAuB,CAIvB,cAAe,CANf,mBAAoB,CAIpB,sBAAuB,CACvB,YAAa,CAJb,eAAgB,CAMhB,iBAAkB,CAClB,oBACF,CAEA,kCACE,UACF,CAEA,uFAEE,mCACF,CAEA,8BAGE,oBAAqB,CAErB,gBAAiB,CADjB,eAAgB,CAHhB,iBAAkB,CAClB,OAIF,CAEA,oCAGE,gEACW,CAFX,WAAY,CADZ,UAIF,CAEA,sCAGE,gEACW,CAFX,WAAY,CADZ,UAIF,CAEA,yBACE,oBAAqB,CAErB,cAAe,CADf,YAEF,CAEA,0BAEE,cAAe,CADf,iBAEF,CAEA,6BACE,WACF,CAEA,oCAEE,oBAAqB,CADrB,aAEF,CAEA,6BAIE,+BAAgC,CADhC,iBAAkB,CADlB,UAAW,CADX,eAIF,CAEA,kCAKE,4CAA6C,CAC7C,+BAAgC,CAChC,gHAUC,CACD,6CAGW,CAjBX,yBAA0B,CAD1B,UAAW,CAFX,iBAAkB,CAClB,KAoBF,CAEA,2BACE,GACE,2BACF,CACF,CAEA,yBACE,aACF,CAGA,gCACE,kCACE,cACF,CACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* These two background images build on the generic styles defined in\n * MenuButtons/index.css when using an icon. */\n.menuButtonsShareButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/share-dark-12.svg);\n}\n\n.menuButtonsShareButtonButton-uploading::before {\n background-image: url(firefox-profiler-res/img/svg/sharing-animated-dark-12.svg);\n}\n\n.menuButtonsShareButtonError {\n background-color: var(--red-60);\n color: white;\n}\n\n.menuButtonsShareButtonError:hover {\n background-color: var(--red-70);\n}\n\n.buttonWithPanel.open > .menuButtonsShareButtonError,\n.menuButtonsShareButtonError:hover:active {\n background-color: var(--red-80);\n}\n\n.menuButtonsShareButtonError::before {\n background-image: url(firefox-profiler-res/img/svg/error.svg);\n}\n\n.menuButtonsPublishPanel {\n --width: 510px;\n}\n\n.menuButtonsPublishContent {\n position: relative;\n\n /* This aligns all content, except the big icon. */\n padding-left: 70px;\n}\n\n.menuButtonsPublishTitle {\n /* "60px" This is the value to put the background image at the right location.\n * This background image is 44x44, so this puts it 16px left of the text. */\n padding-left: 60px;\n margin: 0 0 0 -60px;\n background: url(firefox-profiler-res/img/svg/info.svg) left center no-repeat;\n line-height: 44px; /* This is the height of the background image */\n}\n\n.menuButtonsPublishInfoDescription {\n flex: 1;\n margin-bottom: 1em;\n line-height: 1.5;\n}\n\n.menuButtonsPublishDataChoices {\n margin-left: 10px;\n}\n\n.menuButtonsPublishDataChoicesLabel {\n display: flex;\n margin: 4px 0;\n}\n\n.menuButtonsPublishDataChoicesIndicator {\n margin-left: 8px;\n}\n\n.menuButtonsPublishButtons {\n display: flex;\n justify-content: right;\n margin-top: 20px;\n}\n\n.menuButtonsPublishButton {\n display: inline-flex;\n min-width: 132px;\n box-sizing: content-box;\n align-items: center;\n justify-content: center;\n margin: 0 8px;\n cursor: default;\n text-align: center;\n text-decoration: none;\n}\n\n.menuButtonsPublishButtonDisabled {\n opacity: 0.6;\n}\n\n.menuButtonsPublishButtonDisabled:hover,\n.menuButtonsPublishButtonDisabled:active:hover {\n background-color: var(--grey-90-a10);\n}\n\n.menuButtonsPublishButtonsSvg {\n position: relative;\n top: 4px;\n display: inline-block;\n margin-top: -6px;\n margin-right: 5px;\n}\n\n.menuButtonsPublishButtonsSvgUpload {\n width: 20px;\n height: 20px;\n background: url(firefox-profiler-res/img/svg/upload.svg) center center\n no-repeat;\n}\n\n.menuButtonsPublishButtonsSvgDownload {\n width: 20px;\n height: 20px;\n background: url(firefox-profiler-res/img/svg/download.svg) center center\n no-repeat;\n}\n\n.menuButtonsDownloadSize {\n display: inline-block;\n margin: 0 4px;\n font-size: 11px;\n}\n\n.menuButtonsPublishUpload {\n position: relative;\n padding: 10px 0;\n}\n\n.menuButtonsPublishUploadTop {\n margin: 10px;\n}\n\n.menuButtonsPublishUploadPercentage {\n margin: 10px 0;\n color: var(--blue-60);\n}\n\n.menuButtonsPublishUploadBar {\n overflow: hidden;\n height: 5px;\n border-radius: 2px;\n background-color: var(--grey-40);\n}\n\n.menuButtonsPublishUploadBarInner {\n position: absolute;\n top: 0;\n height: 3px;\n border-radius: 0 2px 2px 0;\n animation: animate-stripes 1s linear infinite;\n background-color: var(--blue-50);\n background-image: linear-gradient(\n 135deg,\n transparent 20%,\n rgb(255 255 255 / 0.4) 20%,\n rgb(255 255 255 / 0.4) 40%,\n transparent 40%,\n transparent 60%,\n rgb(255 255 255 / 0.4) 60%,\n rgb(255 255 255 / 0.4) 80%,\n transparent 80%\n );\n background-size:\n 21px 20px,\n 100% 100%,\n 100% 100%;\n}\n\n@keyframes animate-stripes {\n 100% {\n background-position: -21px 0;\n }\n}\n\n.menuButtonsPublishError {\n margin: 10px 0;\n}\n\n/* Do not animate the publish animation for stripes at the top loading bar. */\n@media (prefers-reduced-motion) {\n .menuButtonsPublishUploadBarInner {\n animation: none;\n }\n}\n'],sourceRoot:""}]);const w=f},3486:(e,t,n)=>{"use strict";e.exports=n.p+"e4ed50222911c5af9a32.svg"},3631:(e,t)=>{t.qy="#ff1ad9",t.xp="#ed00b5",t.y2="#ad3bff",t.$7="#9400ff",t.Eo="#8000d7",t.Hk="#6200a4",t.Gr="#45a1ff",t.Jn="#0a84ff",t.Qr="#0060df",t.Tn="#003eaa",t.AW="#002275",t.FC="#00feff",t.u9="#00c8d7",t.eq="#30e60b",t.l3="#12bc00",t.$m="#ffe900",t.S4="#d7b600",t.w1="#ff0039",t.f="#d70022",t.Qy="#a4000f",t.LD="#ff9400",t.Oz="#d76e00",t.rS="#a44900",t.LT="#ededf0",t.wZ="#d7d7db",t.bw="#b1b1b3",t.MU="#737373",t.jP="#4a4a4f",t.t2="#595E91",t.IG="#464B76"},3642:(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(2277),n.b),d=new URL(n(1196),n.b),u=new URL(n(8981),n.b),h=new URL(n(1563),n.b),p=new URL(n(5572),n.b),m=i()(o()),f=l()(c),g=l()(d),A=l()(u),b=l()(h),C=l()(p);m.push([e.id,`.photon-message-bar{background:url(${f}) no-repeat 8px 8px/16px 16px var(--grey-20);border-radius:4px;box-sizing:border-box;color:var(--grey-90);display:flex;flex-wrap:nowrap;font-size:13px;font-weight:400;line-height:1.4;min-height:32px;padding:4px 4px 4px 32px}.photon-message-bar-action-button{flex:none}.photon-message-bar-close-button{background:url(${g}) no-repeat 50%/16px 16px;flex:none;height:24px;margin-left:auto;width:24px}.photon-message-bar-inner-content{display:flex;flex-wrap:wrap;gap:8px;padding-right:8px}.photon-message-bar-inner-text{padding:2.9px 0}.photon-message-bar-error{background-color:var(--red-60);background-image:url(${A});color:#fff}.photon-message-bar-warning{background-color:var(--yellow-50);background-image:url(${b});color:var(--yellow-90)}.photon-message-bar-error .photon-message-bar-close-button{background-image:url(${C})}.photon-message-bar-close-button:hover{background-color:var(--grey-90-a10)}.photon-message-bar-error .photon-message-bar-action-button,.photon-message-bar-error .photon-message-bar-close-button:hover{background-color:var(--red-70);color:#fff}.photon-message-bar-warning .photon-message-bar-action-button,.photon-message-bar-warning .photon-message-bar-close-button:hover{background-color:var(--yellow-60)}.photon-message-bar-close-button:hover:active{background-color:var(--grey-90-a20)}.photon-message-bar-error .photon-message-bar-action-button:hover,.photon-message-bar-error .photon-message-bar-close-button:hover:active{background-color:var(--red-80)}.photon-message-bar-warning .photon-message-bar-action-button:hover,.photon-message-bar-warning .photon-message-bar-close-button:hover:active{background-color:var(--yellow-70);color:#fff}.photon-message-bar-error .photon-message-bar-action-button:hover:active{background-color:var(--red-90)}.photon-message-bar-warning .photon-message-bar-action-button:hover:active{background-color:var(--yellow-80)}`,"",{version:3,sources:["webpack://./res/css/photon/message-bar.css"],names:[],mappings:"AAKA,oBAeE,6FACgB,CANhB,iBAAkB,CAPlB,qBAAsB,CActB,oBAAqB,CAhBrB,YAAa,CAGb,gBAAiB,CAcjB,cAAe,CACf,eAAgB,CAChB,eAAgB,CAlBhB,eAAgB,CAOhB,wBAYF,CAEA,kCACE,SACF,CAEA,iCAKE,0EAA0E,CAF1E,SAAU,CADV,WAAY,CAEZ,gBAAiB,CAHjB,UAKF,CAEA,kCACE,YAAa,CACb,cAAe,CAEf,OAAQ,CADR,iBAEF,CAEA,+BAUE,eACF,CAEA,0BACE,8BAA+B,CAC/B,wDAA8C,CAC9C,UACF,CAEA,4BACE,iCAAkC,CAClC,wDAAgD,CAChD,sBACF,CAEA,2DACE,wDACF,CAIA,uCACE,mCACF,CAEA,6HAEE,8BAA+B,CAC/B,UACF,CAEA,iIAEE,iCACF,CAEA,8CACE,mCACF,CAEA,0IAEE,8BACF,CAEA,8IAEE,iCAAkC,CAClC,UACF,CAEA,yEACE,8BACF,CAEA,2EACE,iCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/message-bars.html */\n.photon-message-bar {\n display: flex;\n min-height: 32px;\n box-sizing: border-box;\n flex-wrap: nowrap;\n\n /* Note: 32px is: 4px (left padding for the message bar) + 4px (left padding\n * for the icon) + 16px (icon width) + 4px (right padding for the icon) + 4px\n * (space between icon and text) */\n padding: 4px 4px 4px 32px;\n border-radius: 4px;\n\n /* Note: 8px is: 4px (left padding for the message bar) + 4px (left padding\n * for the icon). And same for the top positioning, because we want the icon\n * to stick at the top when the text is multiline */\n background: url(../../img/svg/info-icon.svg) no-repeat 8px 8px / 16px 16px\n var(--grey-20);\n color: var(--grey-90);\n font-size: 13px;\n font-weight: 400;\n line-height: 1.4;\n}\n\n.photon-message-bar-action-button {\n flex: none;\n}\n\n.photon-message-bar-close-button {\n width: 24px;\n height: 24px;\n flex: none;\n margin-left: auto;\n background: url(../../img/svg/close-dark.svg) no-repeat center / 16px 16px;\n}\n\n.photon-message-bar-inner-content {\n display: flex;\n flex-wrap: wrap;\n padding-right: 8px;\n gap: 8px;\n}\n\n.photon-message-bar-inner-text {\n /* This padding is carefully computed so that multi-line message bars have the\n * same top padding than single-line message bars. Having this property\n * shouldn't change anything for single-line message bars.\n * It's computed like this:\n * height of single-line message bars is 32px\n * padding of the message-bar div is 4px\n * height of the inner text is line-height * font-size = 1.4 * 13px = 18.2px\n * => (32 - 4 - 18.2) / 2 = 2.9px\n */\n padding: 2.9px 0;\n}\n\n.photon-message-bar-error {\n background-color: var(--red-60);\n background-image: url(../../img/svg/error.svg);\n color: #fff;\n}\n\n.photon-message-bar-warning {\n background-color: var(--yellow-50);\n background-image: url(../../img/svg/warning.svg);\n color: var(--yellow-90);\n}\n\n.photon-message-bar-error .photon-message-bar-close-button {\n background-image: url(../../img/svg/close-light.svg);\n}\n\n/* The default styles for this button are copied from the ghost button, mostly\n * for ease of usage. */\n.photon-message-bar-close-button:hover {\n background-color: var(--grey-90-a10);\n}\n\n.photon-message-bar-error .photon-message-bar-action-button,\n.photon-message-bar-error .photon-message-bar-close-button:hover {\n background-color: var(--red-70);\n color: #fff;\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button,\n.photon-message-bar-warning .photon-message-bar-close-button:hover {\n background-color: var(--yellow-60);\n}\n\n.photon-message-bar-close-button:hover:active {\n background-color: var(--grey-90-a20);\n}\n\n.photon-message-bar-error .photon-message-bar-action-button:hover,\n.photon-message-bar-error .photon-message-bar-close-button:hover:active {\n background-color: var(--red-80);\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button:hover,\n.photon-message-bar-warning .photon-message-bar-close-button:hover:active {\n background-color: var(--yellow-70);\n color: #fff;\n}\n\n.photon-message-bar-error .photon-message-bar-action-button:hover:active {\n background-color: var(--red-90);\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button:hover:active {\n background-color: var(--yellow-80);\n}\n"],sourceRoot:""}]);const v=m},3659:(e,t,n)=>{"use strict";e.exports=n.p+"731673c749e57bf6f544.svg"},3672:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".zipFileViewer{align-items:center;display:flex;justify-content:center;line-height:1.5;min-height:100vh;width:100%}.zipFileViewerHeader{font-size:130%;padding:0 20px}.zipFileViewerSection{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;display:flex;flex-direction:column;height:75vh;max-width:1200px;overflow:hidden;position:relative;width:75vw}.zipFileViewerSection>.treeView{font-size:14px}.zipFileViewerSection .treeRowToggleButton{margin:0 5px}.zipFileViewerMessage{align-items:center;background-color:#f5f5f5;border-top:1px solid var(--grey-30);display:flex;flex:1;flex-direction:column;font-size:14px;justify-content:center}.zipFileViewerMessage>*{margin:10px 30px}.zipFileViewerUntrustedFilePath{background-color:var(--grey-30);border-radius:3px;display:inline-block;font-family:monospace;max-width:70%;overflow:hidden;padding:0 5px;text-overflow:ellipsis}","",{version:3,sources:["webpack://./src/components/app/ZipFileViewer.css"],names:[],mappings:"AAIA,eAIE,kBAAmB,CAHnB,YAAa,CAIb,sBAAuB,CACvB,eAAgB,CAHhB,gBAAiB,CADjB,UAKF,CAEA,qBAEE,cAAe,CADf,cAEF,CAEA,sBAgBE,qBAAsB,CAJtB,qBAAsB,CACtB,iBAAkB,CAIlB,6BAA8B,CAP9B,qBAAsB,CAPtB,YAAa,CAQb,qBAAsB,CAJtB,WAAY,CADZ,gBAAiB,CAFjB,eAAgB,CAFhB,iBAAkB,CAGlB,UAaF,CAEA,gCACE,cACF,CAEA,2CACE,YACF,CAEA,sBAKE,kBAAmB,CAKnB,wBAAyB,CAHzB,mCAAoC,CALpC,YAAa,CACb,MAAO,CACP,qBAAsB,CAOtB,cAAe,CALf,sBAMF,CAEA,wBACE,gBACF,CAEA,gCAWE,+BAAgC,CADhC,iBAAkB,CATlB,oBAAqB,CAWrB,qBAAsB,CAJtB,aAAc,CANd,eAAgB,CAOhB,aAAc,CAId,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.zipFileViewer {\n display: flex;\n width: 100%;\n min-height: 100vh;\n align-items: center;\n justify-content: center;\n line-height: 1.5;\n}\n\n.zipFileViewerHeader {\n padding: 0 20px;\n font-size: 130%;\n}\n\n.zipFileViewerSection {\n /* Position */\n position: relative;\n display: flex;\n overflow: hidden;\n width: 75vw;\n max-width: 1200px;\n height: 75vh;\n\n /* Box */\n box-sizing: border-box;\n flex-direction: column;\n border: 1px solid #ccc;\n border-radius: 3px;\n\n /* Other */\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n}\n\n.zipFileViewerSection > .treeView {\n font-size: 14px;\n}\n\n.zipFileViewerSection .treeRowToggleButton {\n margin: 0 5px;\n}\n\n.zipFileViewerMessage {\n /* Box */\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-top: 1px solid var(--grey-30);\n\n /* Other */\n background-color: #f5f5f5;\n font-size: 14px;\n}\n\n.zipFileViewerMessage > * {\n margin: 10px 30px;\n}\n\n.zipFileViewerUntrustedFilePath {\n display: inline-block;\n overflow: hidden;\n\n /**\n * Make the max width 50% so that some random user can't spam a bunch of misleading\n * content into an error message on profiler.firefox.com.\n */\n max-width: 70%;\n padding: 0 5px;\n border-radius: 3px;\n background-color: var(--grey-30);\n font-family: monospace;\n text-overflow: ellipsis;\n}\n"],sourceRoot:""}]);const s=i},3717:(e,t,n)=>{"use strict";e.exports=n.p+"2d4b477bc424d35a0245.svg"},3725:(e,t,n)=>{"use strict";e.exports=n.p+"234ed61ab185caff67e3.svg"},3769:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".markerTable{cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}.treeViewFixedColumn.duration,.treeViewFixedColumn.start{text-align:right;width:80px}.treeViewFixedColumn.name{text-align:right;width:100px}.markerTable .treeRowToggleButton{display:none}","",{version:3,sources:["webpack://./src/components/marker-table/index.css"],names:[],mappings:"AAIA,aAIE,cAAe,CAHf,YAAa,CACb,MAAO,CACP,uBAAwB,CAExB,wBAAiB,CAAjB,gBACF,CAOA,yDAEE,gBAAiB,CADjB,UAEF,CAEA,0BAEE,gBAAiB,CADjB,WAEF,CAEA,kCACE,YACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerTable {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n cursor: default;\n user-select: none;\n}\n\n.treeViewFixedColumn.start {\n width: 80px;\n text-align: right;\n}\n\n.treeViewFixedColumn.duration {\n width: 80px;\n text-align: right;\n}\n\n.treeViewFixedColumn.name {\n width: 100px;\n text-align: right;\n}\n\n.markerTable .treeRowToggleButton {\n display: none;\n}\n"],sourceRoot:""}]);const s=i},3786:(e,t,n)=>{"use strict";e.exports=n.p+"f8e25c2ebeb0a0725a9e.svg"},3803:(e,t,n)=>{"use strict";e.exports=n.p+"fcb532a05dd4b09c2d08.svg"},3829:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".colored-square{border:.5px solid #0000001a;box-sizing:border-box;display:inline-block;height:9px;width:9px}.colored-border,.colored-square{forced-color-adjust:none;margin-right:3px}.colored-border{border:2px solid #0000001a}.colored-border.ellipsis{opacity:0}","",{version:3,sources:["webpack://./res/css/global.css"],names:[],mappings:"AAQA,gBAKE,2BAAoC,CADpC,qBAAsB,CAHtB,oBAAqB,CAErB,UAAW,CADX,SAQF,CAEA,gCAHE,wBAAyB,CAHzB,gBAYF,CANA,gBACE,0BAKF,CAEA,yBACE,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This class should be used to create a small colored square. It's used\n * especially for categories and network mime types.\n */\n.colored-square {\n display: inline-block;\n width: 9px;\n height: 9px;\n box-sizing: border-box;\n border: 0.5px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n\n /* Opt-out of forced colors so the color is applied */\n forced-color-adjust: none;\n}\n\n.colored-border {\n border: 2px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n\n /* Opt-out of forced colors so the color is applied */\n forced-color-adjust: none;\n}\n\n.colored-border.ellipsis {\n opacity: 0;\n}\n"],sourceRoot:""}]);const s=i},3951:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(7216),n.b),d=new URL(n(3183),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.profileDeleteButtonSuccess{background:url(${h}) no-repeat 0/16px 16px;margin:0;padding-left:20px;white-space:nowrap}.profileDeleteButtonError{background:url(${p}) no-repeat 0 4px/16px 16px;color:var(--red-60);overflow-wrap:break-word;padding-left:24px}.profileDeletePanel{max-width:80vw;width:500px}`,"",{version:3,sources:["webpack://./src/components/app/ProfileDeleteButton.css"],names:[],mappings:"AAIA,4BAIE,wEACM,CAFN,QAAS,CADT,iBAAkB,CAIlB,kBACF,CAEA,0BAKE,4EACM,CACN,mBAAoB,CACpB,wBAAyB,CANzB,iBAOF,CAEA,oBAEE,cAAe,CADf,WAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.profileDeleteButtonSuccess {\n /* Note: 20px is: 16px (icon width) + 4px (distance from the text) */\n padding-left: 20px;\n margin: 0;\n background: url(../../../res/img/svg/check-dark.svg) no-repeat left / 16px\n 16px;\n white-space: nowrap;\n}\n\n.profileDeleteButtonError {\n /* Note: 24px is: 16px (icon width) + 4px (icon padding) + 4px (distance from the text) */\n padding-left: 24px;\n\n /* The icon is 4px below the top */\n background: url(../../../res/img/svg/error-red.svg) no-repeat 0 4px / 16px\n 16px;\n color: var(--red-60);\n overflow-wrap: break-word;\n}\n\n.profileDeletePanel {\n width: 500px;\n max-width: 80vw;\n}\n"],sourceRoot:""}]);const m=u},3989:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackEventDelayGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackEventDelayCanvas{height:100%;position:absolute;width:100%}.timelineTrackEventDelayGraphDot{background-color:var(--orange-60);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackEventDelayTooltipLine{white-space:nowrap}.timelineTrackEventDelayTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackEventDelay.css"],names:[],mappings:"AAIA,8BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,+BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,iCAOE,iCAAkC,CAHlC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,oCACE,kBACF,CAEA,sCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackEventDelayGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackEventDelayCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackEventDelayGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--orange-60);\n pointer-events: none;\n}\n\n.timelineTrackEventDelayTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackEventDelayTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},4004:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".tooltip{background-color:var(--grey-10);border:1px solid #ccc;box-shadow:0 1px 3px #0000004d;display:inline-block;line-height:1.4;max-width:600px;overflow:hidden;padding:8px;pointer-events:none;position:fixed;text-align:left;text-overflow:ellipsis;transition:opacity .25s}.tooltip.clickable{pointer-events:auto}.tooltipTiming{color:#666;font-weight:700;padding-right:.5em}.tooltipOneLine{display:flex;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.tooltipTitle{flex:1;overflow:hidden;text-overflow:ellipsis}.tooltipSwatch{border:1px solid #888;height:10px;width:10px}.tooltipIcon,.tooltipSwatch{display:inline-block;margin-right:3px}.tooltipIcon{align-self:flex-end}.tooltipIcon>.nodeIcon{margin-left:auto;padding-right:.5em;width:14px}.tooltipHeader{border-bottom:1px solid var(--grey-40);font-size:12px;padding-bottom:8px}.tooltipDetails{display:grid;grid-gap:2px 5px;grid-template-columns:min-content minmax(0,1fr)}.tooltipHeader+.tooltipDetails{padding-top:5px}.tooltipDetailSeparator{border-top:1px solid var(--grey-40);grid-column:1/3;margin:4px 0}.tooltipDetailsUrl{word-break:break-all}.tooltipDetailsDim,.tooltipLabel{color:var(--grey-50)}.tooltipLabel{text-align:right;white-space:nowrap}.tooltipBackTraceTitle{color:var(--grey-50);font-size:100%;font-weight:400;margin:0}.tooltipDetails+.tooltipDetailsBackTrace{border-top:1px solid var(--grey-40);margin-top:5px;padding-top:5px}.tooltipLib{align-self:flex-end;color:var(--grey-50);white-space:nowrap}.tooltipScreenshotImg{border:.5px solid #0003;border-radius:5px;box-shadow:0 2px 4px #0003;padding:.5px}.sidebar .tooltipDetails{overflow:hidden;grid-gap:2px 0;grid-template-columns:minmax(0,1fr)}.sidebar .tooltipLabel{color:var(--grey-60);font-weight:700;margin-top:8px;text-align:left}.sidebar .tooltipDetailSeparator{display:none}","",{version:3,sources:["webpack://./src/components/tooltip/Tooltip.css"],names:[],mappings:"AAAA,SAOE,+BAAgC,CADhC,qBAAsB,CAEtB,8BAAsC,CANtC,oBAAqB,CAOrB,eAAgB,CALhB,eAAgB,CADhB,eAAgB,CAEhB,WAAY,CAKZ,mBAAoB,CATpB,cAAe,CAUf,eAAgB,CAChB,sBAAuB,CACvB,uBACF,CAEA,mBAEE,mBACF,CAEA,eAEE,UAAW,CACX,eAAiB,CAFjB,kBAGF,CAEA,gBACE,YAAa,CACb,cAAe,CACf,sBAAuB,CACvB,kBACF,CAEA,cAEE,MAAO,CADP,eAAgB,CAEhB,sBACF,CAEA,eAIE,qBAAsB,CADtB,WAAY,CADZ,UAIF,CAEA,4BAPE,oBAAqB,CAIrB,gBAOF,CAJA,aAEE,mBAEF,CAEA,uBAGE,gBAAiB,CADjB,kBAAoB,CADpB,UAGF,CAEA,eAEE,sCAAuC,CACvC,cAAe,CAFf,kBAGF,CAEA,gBACE,YAAa,CACb,gBAAiB,CAIjB,+CACF,CAEA,+BACE,eACF,CAEA,wBACE,mCAAoC,CAEpC,eAAkB,CADlB,YAEF,CAEA,mBACE,oBACF,CAMA,iCAHE,oBAOF,CAJA,cAEE,gBAAiB,CACjB,kBACF,CAEA,uBAEE,oBAAqB,CACrB,cAAe,CACf,eAAmB,CAHnB,QAIF,CAEA,yCAEE,mCAAoC,CACpC,cAAe,CAFf,eAGF,CAEA,YACE,mBAAoB,CACpB,oBAAqB,CACrB,kBACF,CAEA,sBAEE,uBAAoC,CACpC,iBAAkB,CAClB,0BAAsC,CAHtC,YAIF,CAKA,yBAEE,eAAgB,CAChB,cAAe,CAGf,mCACF,CAEA,uBAEE,oBAAqB,CACrB,eAAiB,CAFjB,cAAe,CAGf,eACF,CAEA,iCACE,YACF",sourcesContent:[".tooltip {\n position: fixed;\n display: inline-block;\n overflow: hidden;\n max-width: 600px;\n padding: 8px;\n border: 1px solid #ccc;\n background-color: var(--grey-10);\n box-shadow: 0 1px 3px rgb(0 0 0 / 0.3);\n line-height: 1.4;\n pointer-events: none;\n text-align: left;\n text-overflow: ellipsis;\n transition: opacity 250ms;\n}\n\n.tooltip.clickable {\n /* Make sure that the pointer events are properly triggered if it's clickable */\n pointer-events: auto;\n}\n\n.tooltipTiming {\n padding-right: 0.5em;\n color: #666;\n font-weight: bold;\n}\n\n.tooltipOneLine {\n display: flex;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tooltipTitle {\n overflow: hidden;\n flex: 1;\n text-overflow: ellipsis;\n}\n\n.tooltipSwatch {\n display: inline-block;\n width: 10px;\n height: 10px;\n border: 1px solid #888;\n margin-right: 3px;\n}\n\n.tooltipIcon {\n display: inline-block;\n align-self: flex-end;\n margin-right: 3px;\n}\n\n.tooltipIcon > .nodeIcon {\n width: 14px;\n padding-right: 0.5em;\n margin-left: auto;\n}\n\n.tooltipHeader {\n padding-bottom: 8px;\n border-bottom: 1px solid var(--grey-40);\n font-size: 12px;\n}\n\n.tooltipDetails {\n display: grid;\n grid-gap: 2px 5px;\n\n /* Make the right column \"definitely\" sized (ignore its intrinsic size) by setting a min-width of 0.\n * This stops long contents from overflowing the tooltip. */\n grid-template-columns: min-content minmax(0, 1fr);\n}\n\n.tooltipHeader + .tooltipDetails {\n padding-top: 5px;\n}\n\n.tooltipDetailSeparator {\n border-top: 1px solid var(--grey-40);\n margin: 4px 0;\n grid-column: 1 / 3;\n}\n\n.tooltipDetailsUrl {\n word-break: break-all;\n}\n\n.tooltipDetailsDim {\n color: var(--grey-50);\n}\n\n.tooltipLabel {\n color: var(--grey-50);\n text-align: right;\n white-space: nowrap;\n}\n\n.tooltipBackTraceTitle {\n margin: 0;\n color: var(--grey-50);\n font-size: 100%;\n font-weight: normal;\n}\n\n.tooltipDetails + .tooltipDetailsBackTrace {\n padding-top: 5px;\n border-top: 1px solid var(--grey-40);\n margin-top: 5px;\n}\n\n.tooltipLib {\n align-self: flex-end;\n color: var(--grey-50);\n white-space: nowrap;\n}\n\n.tooltipScreenshotImg {\n padding: 0.5px;\n border: 0.5px solid rgb(0 0 0 / 0.2);\n border-radius: 5px;\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.2);\n}\n\n/**\n * Overwrite styles for the sidebar.\n */\n.sidebar .tooltipDetails {\n /* Force the details to the max-width, even if they have long pieces of text. */\n overflow: hidden;\n grid-gap: 2px 0;\n\n /* Don't let the width overflow for long pieces of text */\n grid-template-columns: minmax(0, 1fr);\n}\n\n.sidebar .tooltipLabel {\n margin-top: 8px;\n color: var(--grey-60);\n font-weight: bold;\n text-align: left;\n}\n\n.sidebar .tooltipDetailSeparator {\n display: none;\n}\n"],sourceRoot:""}]);const s=i},4006:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(e){e&&"limit"in e&&(this._limit=e.limit),this.clear()}r.prototype={toString:function(){return"[object TupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=e.length,r=[],o=0;o<t;o++){var a=e[o],i=void 0===a?"undefined":n(a);if(null===a||"object"!==i&&"function"!==i)r.push("string"===i?'"'+a+'"':""+a);else if(this._idMap.has(a))r.push(this._idMap.get(a));else{var s="#"+this._id++;this._idMap.set(a,s),r.push(s)}}return this._lastTuple=e,this._lastHash=r.join("/<[MI_SEP]>/"),this._lastHash},has:function(e){var t=this._hash(e);return this._cache.has(t)},set:function(e,t){var n=this._hash(e);return void 0!==this._limit&&this._cache.delete(n),this._cache.set(n,t),void 0!==this._limit&&this._cache.size>this._limit&&this._cache.delete(this._cache.keys().next().value),this},get:function(e){var t=this._hash(e);if(void 0!==this._limit&&this._cache.has(t)){var n=this._cache.get(t);return this._cache.delete(t),this._cache.set(t,n),n}return this._cache.get(t)},clear:function(){this._cache=new Map,this._idMap=new WeakMap,this._id=0,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},4051:(e,t,n)=>{"use strict";e.exports=n.p+"da1f21c60c7217745dd8.svg"},4161:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".overflowEdgeIndicator{display:flex;flex:1;flex-direction:column;position:relative;width:calc(100% + var(--vertical-scrollbar-reserved-width))}.overflowEdgeIndicatorEdge{opacity:0;pointer-events:none;position:absolute;transition:.15s ease-in-out;transition-property:opacity,visibility;visibility:hidden;z-index:3}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.topEdge{left:0}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicatorEdge.topEdge{right:0}.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicatorEdge.topEdge{top:0}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge{bottom:0}.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge{width:15px}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.topEdge{height:15px}.overflowEdgeIndicatorEdge.topEdge{background:radial-gradient(ellipse at center top,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.rightEdge{background:radial-gradient(ellipse at right center,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.bottomEdge{background:radial-gradient(ellipse at center bottom,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.leftEdge{background:radial-gradient(ellipse at left center,#0006,#0000 60%)}.overflowEdgeIndicator.overflowsOnBottom>.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicator.overflowsOnLeft>.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicator.overflowsOnRight>.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicator.overflowsOnTop>.overflowEdgeIndicatorEdge.topEdge{opacity:1;visibility:visible}","",{version:3,sources:["webpack://./src/components/timeline/OverflowEdgeIndicator.css"],names:[],mappings:"AAIA,uBAEE,YAAa,CAEb,MAAO,CACP,qBAAsB,CAJtB,iBAAkB,CAElB,2DAGF,CAEA,2BAGE,SAAU,CACV,mBAAoB,CAHpB,iBAAkB,CAIlB,2BAA6B,CAC7B,sCAAwC,CACxC,iBAAkB,CALlB,SAMF,CAEA,6GAGE,MACF,CAEA,8GAGE,OACF,CAEA,4GAGE,KACF,CAEA,+GAGE,QACF,CAEA,yEAEE,UACF,CAEA,yEAEE,WACF,CAEA,mCACE,iEAKF,CAEA,qCACE,mEAKF,CAEA,sCACE,oEAKF,CAEA,oCACE,kEAKF,CAEA,gTAKE,SAAU,CACV,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.overflowEdgeIndicator {\n position: relative;\n display: flex;\n width: calc(100% + var(--vertical-scrollbar-reserved-width));\n flex: 1;\n flex-direction: column;\n}\n\n.overflowEdgeIndicatorEdge {\n position: absolute;\n z-index: 3;\n opacity: 0;\n pointer-events: none;\n transition: 150ms ease-in-out;\n transition-property: opacity, visibility;\n visibility: hidden;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n left: 0;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n right: 0;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge {\n top: 0;\n}\n\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n bottom: 0;\n}\n\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge {\n width: 15px;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n height: 15px;\n}\n\n.overflowEdgeIndicatorEdge.topEdge {\n background: radial-gradient(\n ellipse at center top,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.rightEdge {\n background: radial-gradient(\n ellipse at right center,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.bottomEdge {\n background: radial-gradient(\n ellipse at center bottom,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.leftEdge {\n background: radial-gradient(\n ellipse at left center,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicator.overflowsOnTop > .overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicator.overflowsOnRight > .overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicator.overflowsOnBottom\n > .overflowEdgeIndicatorEdge.bottomEdge,\n.overflowEdgeIndicator.overflowsOnLeft > .overflowEdgeIndicatorEdge.leftEdge {\n opacity: 1;\n visibility: visible;\n}\n"],sourceRoot:""}]);const s=i},4165:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackMemoryGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackMemoryCanvas{height:100%;position:absolute;width:100%}.timelineTrackMemoryGraphDot{border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackMemoryTooltipLine{white-space:nowrap}.timelineTrackMemoryTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}.timelineMarkersMemory{height:var(--markers-height,15px);opacity:1}","",{version:3,sources:["webpack://./src/components/timeline/TrackMemory.css"],names:[],mappings:"AAIA,0BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,2BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,6BAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF,CAEA,gCACE,kBACF,CAEA,kCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF,CAEA,uBACE,iCAAmC,CACnC,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackMemoryGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackMemoryCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackMemoryGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n pointer-events: none;\n}\n\n.timelineTrackMemoryTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackMemoryTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n\n.timelineMarkersMemory {\n height: var(--markers-height, 15px);\n opacity: 1;\n}\n"],sourceRoot:""}]);const s=i},4194:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.chartViewport{flex:1;margin-top:0;overflow:hidden;position:relative}.chartViewport.expanded{border-bottom:1px solid var(--grey-30);border-top:1px solid var(--grey-30);cursor:grab;margin-bottom:5px}.chartViewport.expanded:after{box-shadow:inset 0 0 20px #40738c33;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.chartViewport.dragging{cursor:grabbing}.chartViewportScroll{background:#00000012;border-radius:0 5px 0 0;bottom:0;box-shadow:0 0 0 .5px #0000001a,0 2px 4px #0000001a;left:0;line-height:20px;opacity:1;overflow:hidden;padding:3px 10px;pointer-events:none;position:absolute;text-overflow:ellipsis;transition:transform .2s ease-in-out,opacity .2s ease-in-out;white-space:nowrap;will-change:opacity,transform}.chartViewportScroll.hidden{opacity:0;transform:translateY(30px)}.chartViewportScrollKbd{background-color:#f6f6f6;border:1px solid #ccc;border-radius:.2em;box-shadow:-.1em .1em 0 #bbb;color:#000;display:inline-block;margin:0 .2em;padding:0 .5em;position:relative;top:-1px}',"",{version:3,sources:["webpack://./src/components/shared/chart/Viewport.css"],names:[],mappings:"AAIA,eAGE,MAAO,CACP,YAAa,CAFb,eAAgB,CADhB,iBAIF,CAEA,wBAEE,sCAAuC,CADvC,mCAAoC,CAGpC,WAAY,CADZ,iBAEF,CAEA,8BASE,mCAAgD,CAChD,UAAW,CAJX,WAAY,CAFZ,MAAO,CAOP,mBAAoB,CAVpB,iBAAkB,CAElB,KAAM,CAEN,UAAW,CAHX,SAUF,CAEA,wBACE,eACF,CAEA,qBAOE,oBAA6B,CAD7B,uBAAwB,CAJxB,QAAS,CAMT,mDAE4B,CAP5B,MAAO,CAQP,gBAAiB,CACjB,SAAU,CARV,eAAgB,CAChB,gBAAiB,CAQjB,mBAAoB,CAZpB,iBAAkB,CAalB,sBAAuB,CACvB,4DAE0B,CAC1B,kBAAmB,CACnB,6BACF,CAEA,4BACE,SAAU,CACV,0BACF,CAEA,wBAQE,wBAAyB,CAHzB,qBAAsB,CACtB,kBAAoB,CAGpB,4BAA+B,CAC/B,UAAW,CAPX,oBAAqB,CAIrB,aAAe,CAHf,cAAgB,CAHhB,iBAAkB,CAClB,QASF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.chartViewport {\n position: relative;\n overflow: hidden;\n flex: 1;\n margin-top: 0;\n}\n\n.chartViewport.expanded {\n border-top: 1px solid var(--grey-30);\n border-bottom: 1px solid var(--grey-30);\n margin-bottom: 5px;\n cursor: grab;\n}\n\n.chartViewport.expanded::after {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /* Slight blue shadow. */\n box-shadow: inset 0 0 20px rgb(64 115 140 / 0.2);\n content: '';\n pointer-events: none;\n}\n\n.chartViewport.dragging {\n cursor: grabbing;\n}\n\n.chartViewportScroll {\n position: absolute;\n bottom: 0;\n left: 0;\n overflow: hidden;\n padding: 3px 10px;\n border-radius: 0 5px 0 0;\n background: rgb(0 0 0 / 0.07);\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 2px 4px rgb(0 0 0 / 0.1);\n line-height: 20px;\n opacity: 1;\n pointer-events: none;\n text-overflow: ellipsis;\n transition:\n transform 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n white-space: nowrap;\n will-change: opacity, transform;\n}\n\n.chartViewportScroll.hidden {\n opacity: 0;\n transform: translateY(30px);\n}\n\n.chartViewportScrollKbd {\n position: relative;\n top: -1px;\n display: inline-block;\n padding: 0 0.5em;\n border: 1px solid #ccc;\n border-radius: 0.2em;\n margin: 0 0.2em;\n background-color: #f6f6f6;\n box-shadow: -0.1em 0.1em 0 #bbb;\n color: #000;\n}\n"],sourceRoot:""}]);const s=i},4199:(e,t,n)=>{"use strict";function r(e){const t=self.ga;t&&t("send",e)}function o(e){const t=self.ga;t&&t("send","exception",e)}n.d(t,{H:()=>r,N:()=>o})},4273:(e,t,n)=>{"use strict";e.exports=n.p+"e70722c0fe0ac3d4227b.svg"},4287:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".photon-input{border:1px solid var(--grey-90-a20);border-radius:2px;box-shadow:none;height:32px;padding:0 8px}.photon-input:hover{border-color:var(--grey-90-a30)}.photon-input:focus-visible,.photon-input:focus-visible:invalid{border:1px solid var(--blue-50);box-shadow:0 0 0 1px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}.photon-input:invalid:not(:placeholder-shown){border:1px solid var(--red-60);box-shadow:0 0 0 1px var(--red-60),0 0 0 4px var(--red-60-a30)}","",{version:3,sources:["webpack://./res/css/photon/input.css"],names:[],mappings:"AAKA,cAGE,mCAAoC,CACpC,iBAAkB,CAClB,eAAgB,CAJhB,WAAY,CACZ,aAIF,CAEA,oBACE,+BACF,CAIA,gEAEE,+BAAgC,CAChC,gEAE8B,CAC9B,SACF,CAEA,8CACE,8BAA+B,CAC/B,8DAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/input-fields.html for the spec */\n.photon-input {\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--grey-90-a20);\n border-radius: 2px;\n box-shadow: none; /* remove the default Firefox style */\n}\n\n.photon-input:hover {\n border-color: var(--grey-90-a30);\n}\n\n/* The second selector is only here to have a specificity higher than the one in\n * `.photon-input:invalid:not(:placeholder-shown)`. */\n.photon-input:focus-visible,\n.photon-input:focus-visible:invalid {\n border: 1px solid var(--blue-50);\n box-shadow:\n 0 0 0 1px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n\n.photon-input:invalid:not(:placeholder-shown) {\n border: 1px solid var(--red-60);\n box-shadow:\n 0 0 0 1px var(--red-60),\n 0 0 0 4px var(--red-60-a30);\n}\n"],sourceRoot:""}]);const s=i},4391:(e,t,n)=>{"use strict";e.exports=n.p+"7853c71223701f30d495.svg"},4417:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},4557:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.timelineTrackScreenshot{background:var(--grey-20);overflow:hidden;position:relative}.timelineTrackScreenshotImgContainer{display:flex;justify-content:center;overflow:hidden;position:absolute}.timelineTrackScreenshotImgContainer:after{background:var(--grey-30);content:"";height:100%;position:absolute;right:0;top:0;width:1px}.timelineTrackScreenshotHover{pointer-events:none;position:absolute;z-index:4}.timelineTrackScreenshotHoverImg{border:.5px solid #0003;border-radius:5px;box-shadow:0 2px 4px #0003;padding:.5px}',"",{version:3,sources:["webpack://./src/components/timeline/TrackScreenshots.css"],names:[],mappings:"AAIA,yBAGE,yBAA0B,CAD1B,eAAgB,CADhB,iBAGF,CAEA,qCAGE,YAAa,CAEb,sBAAuB,CADvB,eAAgB,CAFhB,iBAIF,CAEA,2CAME,yBAA0B,CAG1B,UAAW,CAJX,WAAY,CAJZ,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,SAMF,CAEA,8BAIE,mBAAoB,CAFpB,iBAAkB,CAClB,SAEF,CAEA,iCAEE,uBAAoC,CACpC,iBAAkB,CAClB,0BAAsC,CAHtC,YAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackScreenshot {\n position: relative;\n overflow: hidden;\n background: var(--grey-20);\n}\n\n.timelineTrackScreenshotImgContainer {\n /* This positioning is defined through JavaScript */\n position: absolute;\n display: flex;\n overflow: hidden;\n justify-content: center;\n}\n\n.timelineTrackScreenshotImgContainer::after {\n position: absolute;\n top: 0;\n right: 0;\n width: 1px;\n height: 100%;\n background: var(--grey-30);\n\n /* Create a border on the right of the container */\n content: '';\n}\n\n.timelineTrackScreenshotHover {\n /* This positioning is defined through JavaScript */\n position: absolute;\n z-index: 4; /* Ensure this is higher than any other timeline element. */\n pointer-events: none;\n}\n\n.timelineTrackScreenshotHoverImg {\n padding: 0.5px;\n border: 0.5px solid rgb(0 0 0 / 0.2);\n border-radius: 5px;\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.2);\n}\n"],sourceRoot:""}]);const s=i},4564:(e,t,n)=>{"use strict";e.exports=n.p+"524e896f487119a0b832.svg"},4620:(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(2154),n.b),d=new URL(n(2707),n.b),u=new URL(n(9336),n.b),h=new URL(n(1716),n.b),p=new URL(n(3659),n.b),m=i()(o()),f=l()(c),g=l()(d),A=l()(u),b=l()(h),C=l()(p);m.push([e.id,`.menuButtonsButton{align-items:center;background:none;border:0;color:inherit;cursor:default;display:flex;font-size:inherit;height:100%;margin:0;padding:0 12px;position:relative;text-decoration:none;white-space:nowrap}.menuButtonsButton:hover{background-color:#0000001a}.buttonWithPanel.open>.menuButtonsButton,.menuButtonsButton:hover:active{background-color:#0003}.menuButtonsButton-hasIcon:before{background:no-repeat 0/12px;content:"";height:12px;padding-right:4px;width:12px}.menuButtonsButton-hasLeftBorder,.menuButtonsButton-hasRightBorder{position:relative}.menuButtonsButton-hasLeftBorder:after,.menuButtonsButton-hasRightBorder:after{background:var(--grey-30);content:"";height:calc(100% - 8px);position:absolute;top:4px;width:1px}.menuButtonsButton-hasLeftBorder:after{left:0}.menuButtonsButton-hasRightBorder:after{right:0}.open-in-new{background:url(${f}) no-repeat 100%/12px;height:12px;padding-left:4px;width:12px}.menuButtonsMetaInfoButtonButton:before{background-image:url(${g})}.menuButtonsRevertButton:before{background-image:url(${A})}.menuButtonsRevertToFullView:before{background-image:url(${b})}.profileInfoUploadedActions{border-bottom:1px solid #0000000d;font-size:13px;padding:8px 0 8px 40px}.profileInfoUploadedLabel{color:var(--grey-50);padding-right:8px}.profileInfoUploadedDate{align-items:center;display:flex;margin:8px 0;position:relative}.profileInfoUploadedDate:before{background:url(${C}) no-repeat 0/32px;content:"";display:block;height:32px;left:-40px;opacity:.5;position:absolute;width:32px}.profileInfoUploadedActionsButtons{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/index.css"],names:[],mappings:"AAOA,mBAIE,kBAAmB,CAInB,eAAgB,CAFhB,QAAS,CAOT,aAAc,CAId,cAAe,CAff,YAAa,CAYb,iBAAkB,CAXlB,WAAY,CAIZ,QAAS,CAFT,cAAe,CAJf,iBAAkB,CAiBlB,oBAAqB,CATrB,kBAUF,CAGA,yBACE,0BACF,CAEA,yEAEE,sBACF,CAGA,kCAWE,2BAA+B,CAC/B,UAAW,CAHX,WAAY,CACZ,iBAAkB,CAFlB,UAKF,CAIA,mEAEE,iBACF,CAMA,+EAME,yBAA0B,CAC1B,UAAW,CAFX,uBAAwB,CAHxB,iBAAkB,CAClB,OAAQ,CACR,SAIF,CAEA,uCACE,MACF,CAEA,wCACE,OACF,CAIA,aASE,sEACc,CAHd,WAAY,CACZ,gBAAiB,CAFjB,UAKF,CAIA,wCACE,wDACF,CAGA,gCACE,wDACF,CAEA,oCACE,wDACF,CAEA,4BAEE,iCAA0C,CAC1C,cAAe,CAFf,sBAGF,CAEA,0BAEE,oBAAqB,CADrB,iBAEF,CAEA,yBAGE,kBAAmB,CADnB,YAAa,CAEb,YAAa,CAHb,iBAIF,CAEA,gCAME,mEACa,CACb,UAAW,CALX,aAAc,CAEd,WAAY,CAHZ,UAAW,CAOX,UAAY,CARZ,iBAAkB,CAGlB,UAMF,CAEA,mCACE,YAAa,CAGb,OAAQ,CAFR,wBAAyB,CACzB,cAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Use this class to implement a button in the top menu bar.\n * This overrides most browser styles, for both links and buttons. */\n/* stylelint-disable order/properties-order */\n.menuButtonsButton {\n position: relative; /* This allows to absolutely position its children */\n display: flex;\n height: 100%;\n align-items: center;\n padding: 0 12px;\n border: 0;\n margin: 0;\n background: none;\n white-space: nowrap;\n\n /* Inherit some properties values from the environment, rather than using the\n * browser default for buttons or links. */\n color: inherit;\n font-size: inherit;\n\n /* These 2 styles are specific for links. */\n cursor: default;\n text-decoration: none;\n}\n/* stylelint-enable order/properties-order */\n\n.menuButtonsButton:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.buttonWithPanel.open > .menuButtonsButton,\n.menuButtonsButton:hover:active {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n/* Use this class if a button has an icon */\n.menuButtonsButton-hasIcon::before {\n /* The icon size and width and height are defined as 12px so that we control\n * better their size.\n * Then it has 4px padding on the right side (because it's at the left of the\n * content), and the image is at the left of this space.\n * So here is the layout for this element:\n * <-left padding-> <-ICON (12px)-> <-4px-> CONTENT\n */\n width: 12px;\n height: 12px;\n padding-right: 4px;\n background: no-repeat left/12px;\n content: '';\n}\n\n/* position: relative so that we can use position: absolute for the generated\n * element below. */\n.menuButtonsButton-hasRightBorder,\n.menuButtonsButton-hasLeftBorder {\n position: relative;\n}\n\n/* These classes define respectively a right or a left border. We use ::after for\n * both of them, so one element won't be able to have both a right and a left\n * borders with this technique.\n * We're using ::after for borders because ::before is used for icons. */\n.menuButtonsButton-hasRightBorder::after,\n.menuButtonsButton-hasLeftBorder::after {\n position: absolute;\n top: 4px;\n width: 1px;\n height: calc(100% - 8px);\n background: var(--grey-30);\n content: '';\n}\n\n.menuButtonsButton-hasLeftBorder::after {\n left: 0;\n}\n\n.menuButtonsButton-hasRightBorder::after {\n right: 0;\n}\n\n/* This icon is defined as a separate element, so that it can possibly be reused\n * in other places. */\n.open-in-new {\n /* The icon size and width and height are defined as 12px so that we control\n * better their size.\n * Then it has 4px padding on the left side (because it's at the right of the\n * content), and the image is at the right of this space.\n */\n width: 12px;\n height: 12px;\n padding-left: 4px;\n background: url(firefox-profiler-res/img/svg/open-in-new-12.svg) no-repeat\n right / 12px;\n}\n\n/* These classes define respective states for the metainfo button. They change\n * the icon whose generic styles are defined above. */\n.menuButtonsMetaInfoButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/info-12.svg);\n}\n\n/* This is the revert button, appearing after publishing a profile. */\n.menuButtonsRevertButton::before {\n background-image: url(firefox-profiler-res/img/svg/undo-dark-12.svg);\n}\n\n.menuButtonsRevertToFullView::before {\n background-image: url(firefox-profiler-res/img/svg/maximize-dark-12.svg);\n}\n\n.profileInfoUploadedActions {\n padding: 8px 0 8px 40px; /* The 40px padding leaves the room for the cloud image */\n border-bottom: 1px solid rgb(0 0 0 / 0.05);\n font-size: 13px;\n}\n\n.profileInfoUploadedLabel {\n padding-right: 8px;\n color: var(--grey-50);\n}\n\n.profileInfoUploadedDate {\n position: relative;\n display: flex;\n align-items: center;\n margin: 8px 0;\n}\n\n.profileInfoUploadedDate::before {\n position: absolute;\n left: -40px;\n display: block;\n width: 32px;\n height: 32px;\n background: url(firefox-profiler-res/img/svg/cloud-dark-12.svg) no-repeat\n left / 32px;\n content: '';\n opacity: 0.5;\n}\n\n.profileInfoUploadedActionsButtons {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n gap: 8px;\n}\n"],sourceRoot:""}]);const v=m},4717:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,"body,html{display:flex;flex:1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Noto Sans,Liberation Sans,Cantarell,Helvetica Neue,sans-serif;font-size:11px;font-variant-numeric:tabular-nums;height:100%;margin:0;min-width:0;overscroll-behavior:none;padding:0}:root{--animation-curve:cubic-bezier(0.07,0.95,0,1);color:var(--grey-90)}@media (forced-colors:active){:root{--button-icon-color:ButtonText;--button-icon-hover-color:SelectedItem;--button-icon-active-color:SelectedItem}}.profileFilterNavigator{flex-shrink:1;height:24px}.treeAndSidebarWrapper{display:flex;flex:1;flex-flow:column nowrap}#svg-filters{height:0;inset-inline-start:-1000vw;overflow:hidden;position:absolute;width:0}","",{version:3,sources:["webpack://./res/css/style.css"],names:[],mappings:"AAIA,UAEE,YAAa,CAGb,MAAO,CAUP,6IAEyE,CACzE,cAAe,CAGf,iCAAkC,CAjBlC,WAAY,CAGZ,QAAS,CAJT,WAAY,CAsBZ,wBAAyB,CAnBzB,SAsBF,CAEA,MAEE,6CAAiD,CAEjD,oBACF,CAEA,8BACE,MAME,8BAA+B,CAC/B,sCAAuC,CACvC,uCACF,CACF,CAEA,wBAEE,aAAc,CADd,WAEF,CAEA,uBACE,YAAa,CACb,MAAO,CACP,uBACF,CAEA,aAIE,QAAS,CACT,0BAA2B,CAH3B,eAAgB,CADhB,iBAAkB,CAElB,OAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\nhtml,\nbody {\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n height: 100%;\n flex: 1;\n padding: 0;\n margin: 0;\n\n /* This line has been stolen from\n * https://css-tricks.com/os-specific-fonts-css/\n * Just Noto Sans and Liberation Sans have been inserted before \"Cantarell\"\n * (used on Linux Gnome), because it lacks a glyph for the symbol µ.\n * Please keep it synced with res/photon/style.css.\n */\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu,\n 'Noto Sans', 'Liberation Sans', Cantarell, 'Helvetica Neue', sans-serif;\n font-size: 11px;\n\n /* equal size all numbers, so that longer numbers are larger */\n font-variant-numeric: tabular-nums;\n\n /* Disable the \"rubberband\" overscrolling effect in Chrome. This happens when\n * using the charts and the scroll wheel. */\n overscroll-behavior: none;\n\n /* background-color is defined in the HTML file to prevent flashing a white screen. */\n}\n\n:root {\n /* Photon animation curve */\n --animation-curve: cubic-bezier(0.07, 0.95, 0, 1);\n\n color: var(--grey-90);\n}\n\n@media (forced-colors: active) {\n :root {\n /* The following properties are retrieved in index.js to create SVG filters that\n * we can apply on icons to control their color.\n * These variable can be declared in any rule, as long as their value is still\n * a valid color (which means we can use `light-dark()` or any other color functions).\n * The colors can be applied on SVG icons with `filter: url(#--var-name)` */\n --button-icon-color: ButtonText;\n --button-icon-hover-color: SelectedItem;\n --button-icon-active-color: SelectedItem;\n }\n}\n\n.profileFilterNavigator {\n height: 24px;\n flex-shrink: 1;\n}\n\n.treeAndSidebarWrapper {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n#svg-filters {\n position: absolute;\n overflow: hidden;\n width: 0;\n height: 0;\n inset-inline-start: -1000vw;\n}\n"],sourceRoot:""}]);const s=i},4753:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".markerChart{display:flex;flex:1;flex-flow:column nowrap}.markerChartCanvas{border-top:1px solid var(--grey-30)}","",{version:3,sources:["webpack://./src/components/marker-chart/index.css"],names:[],mappings:"AAIA,aACE,YAAa,CACb,MAAO,CACP,uBACF,CAEA,mBACE,mCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerChart {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.markerChartCanvas {\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},4821:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.profileFilterNavigator--tab-selector{align-items:center;column-gap:5px;display:flex;padding-inline:20px 5px}.profileFilterNavigator--tab-selector:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--internal-selected-color);content:"";forced-color-adjust:none;inset-block-start:4px;inset-inline-start:4px;margin:5px 5px 0;position:absolute}span.profileFilterNavigator--tab-selector:before{color:var(--grey-30)}@media (forced-colors:active){.profileFilterNavigator--tab-selector:before{color:currentcolor}span.profileFilterNavigator--tab-selector:before{color:GrayText}}',"",{version:3,sources:["webpack://./src/components/app/ProfileFilterNavigator.css"],names:[],mappings:"AAIA,sCAEE,kBAAmB,CACnB,cAAe,CAFf,YAAa,CAKb,uBACF,CAGA,6CAKE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAElC,oCAAqC,CACrC,UAAW,CAGX,wBAAyB,CACzB,qBAAsB,CACtB,sBAAuB,CAPvB,gBAAiB,CALjB,iBAaF,CAEA,iDAEE,oBACF,CAEA,8BACE,6CACE,kBACF,CAEA,iDACE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.profileFilterNavigator--tab-selector {\n display: flex;\n align-items: center;\n column-gap: 5px;\n\n /* Padding for the arrow on the left side and a bit on the other for hover. */\n padding-inline: 20px 5px;\n}\n\n/* This is the dropdown arrow on the left of the button. */\n.profileFilterNavigator--tab-selector::before {\n position: absolute;\n border-top: 6px solid;\n border-right: 4px solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 4px solid transparent;\n margin: 5px 5px 0;\n color: var(--internal-selected-color);\n content: '';\n\n /* opt-out of forced color so the arrow is visible */\n forced-color-adjust: none;\n inset-block-start: 4px;\n inset-inline-start: 4px;\n}\n\nspan.profileFilterNavigator--tab-selector::before {\n /* Disabled tab selector indicates this with a grayed out arrow. */\n color: var(--grey-30);\n}\n\n@media (forced-colors: active) {\n .profileFilterNavigator--tab-selector::before {\n color: currentcolor;\n }\n\n span.profileFilterNavigator--tab-selector::before {\n color: GrayText;\n }\n}\n"],sourceRoot:""}]);const s=i},4898:(e,t,n)=>{"use strict";e.exports=n.p+"8aae7b979b04407f71a4.svg"},4909:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".jsTracer{display:flex;flex:1;flex-flow:column nowrap}.jsTracerLoader{align-items:center;background-color:var(--grey-10);border-top:1px solid var(--grey-20);display:flex;flex:1;flex-flow:column;font-size:12px;justify-content:center;vertical-align:middle}.jsTracerCanvasFadeIn{background-color:#fff;opacity:0}.jsTracerCanvasFadeIn.jsTracerCanvasDrawn{opacity:1;transition:opacity .2s}","",{version:3,sources:["webpack://./src/components/js-tracer/index.css"],names:[],mappings:"AAIA,UACE,YAAa,CACb,MAAO,CACP,uBACF,CAEA,gBAIE,kBAAmB,CAGnB,+BAAgC,CADhC,mCAAoC,CALpC,YAAa,CACb,MAAO,CACP,gBAAiB,CAKjB,cAAe,CAHf,sBAAuB,CAIvB,qBACF,CAEA,sBACE,qBAAsB,CACtB,SACF,CAEA,0CACE,SAAU,CACV,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.jsTracer {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.jsTracerLoader {\n display: flex;\n flex: 1;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n border-top: solid 1px var(--grey-20);\n background-color: var(--grey-10);\n font-size: 12px;\n vertical-align: middle;\n}\n\n.jsTracerCanvasFadeIn {\n background-color: #fff;\n opacity: 0;\n}\n\n.jsTracerCanvasFadeIn.jsTracerCanvasDrawn {\n opacity: 1;\n transition: opacity 200ms;\n}\n"],sourceRoot:""}]);const s=i},5056:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},5072:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},i=[],s=0;s<e.length;s++){var l=e[s],c=r.base?l[0]+r.base:l[0],d=a[c]||0,u="".concat(c," ").concat(d);a[c]=d+1;var h=n(u),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var m=o(p,r);r.byIndex=s,t.splice(s,0,{identifier:u,updater:m,references:1})}i.push(u)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var s=n(a[i]);t[s].references--}for(var l=r(e,o),c=0;c<a.length;c++){var d=n(a[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}a=l}}},5119:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=(r=n(4006))&&r.__esModule?r:{default:r};if("undefined"==typeof WeakMap||"undefined"==typeof Map)throw new Error("This lib requires an implementation of WeakMap and Map");t.default=function(e,t){var n=t&&t.cache||new o.default(t),r=void 0;return r=/^\[object (Weak|LRU|NamedTuple)?Map\]$/.test(n.toString())?function(t){if(!n.has(t)){var r=e.call(this,t);return n.set(t,r),r}return n.get(t)}:function(){if(!n.has(arguments)){var t=e.apply(this,arguments);return n.set(arguments,t),t}return n.get(arguments)},e.name&&(r.displayName=e.name+"Memoized"),r},e.exports=t.default},5133:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".flameGraphDisabledMessage{align-items:center;background-color:var(--grey-20);box-shadow:inset 0 0 150px #0000001a;display:flex;flex:1;flex-direction:column;font-size:120%;justify-content:center;padding:10px}","",{version:3,sources:["webpack://./src/components/flame-graph/MaybeFlameGraph.css"],names:[],mappings:"AAAA,2BAIE,kBAAmB,CAGnB,+BAAgC,CAChC,oCAA4C,CAP5C,YAAa,CACb,MAAO,CACP,qBAAsB,CAMtB,cAAe,CAJf,sBAAuB,CACvB,YAIF",sourcesContent:[".flameGraphDisabledMessage {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n box-shadow: inset 0 0 150px rgb(0 0 0 / 0.1);\n font-size: 120%;\n}\n"],sourceRoot:""}]);const s=i},5160:(e,t,n)=>{"use strict";var r=n(6540);"function"==typeof Object.is&&Object.is,r.useSyncExternalStore,r.useRef,r.useEffect,r.useMemo,r.useDebugValue},5199:(e,t,n)=>{"use strict";e.exports=n.p+"6c8063be3afa1d95c902.svg"},5228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var a,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var c in a=Object(arguments[l]))n.call(a,c)&&(s[c]=a[c]);if(t){i=t(a);for(var d=0;d<i.length;d++)r.call(a,i[d])&&(s[i[d]]=a[i[d]])}}return s}},5287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.iterator,m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},f=Object.assign,g={};function A(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function b(){}function C(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}A.prototype.isReactComponent={},A.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},A.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=A.prototype;var v=C.prototype=new b;v.constructor=C,f(v,A.prototype),v.isPureReactComponent=!0;var y=Array.isArray,w=Object.prototype.hasOwnProperty,E={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function x(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,o)&&!k.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:E.current}}function T(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var S=/\/+/g;function B(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function I(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+B(l,0):a,y(i)?(o="",null!=e&&(o=e.replace(S,"$&/")+"/"),I(i,t,o,"",(function(e){return e}))):null!=i&&(T(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",y(e))for(var c=0;c<e.length;c++){var d=a+B(s=e[c],c);l+=I(s,t,o,d,i)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof d)for(e=d.call(e),c=0;!(s=e.next()).done;)l+=I(s=s.value,t,o,d=a+B(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function _(e,t,n){if(null==e)return e;var r=[],o=0;return I(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function N(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},M={transition:null},F={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:M,ReactCurrentOwner:E};function R(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:_,forEach:function(e,t,n){_(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return _(e,(function(){t++})),t},toArray:function(e){return _(e,(function(e){return e}))||[]},only:function(e){if(!T(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=A,t.Fragment=o,t.Profiler=i,t.PureComponent=C,t.StrictMode=a,t.Suspense=d,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=F,t.act=R,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=f({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=E.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)w.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=x,t.createFactory=function(e){var t=x.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=T,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:N}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=M.transition;M.transition={};try{e()}finally{M.transition=t}},t.unstable_act=R,t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.3.1"},5338:(e,t,n)=>{"use strict";var r=n(961);t.H=r.createRoot,r.hydrateRoot},5418:(e,t,n)=>{"use strict";e.exports=n.p+"81762b0b1aacd3686a6b.svg"},5458:(e,t,n)=>{"use strict";n.d(t,{eG:()=>Z,Jn:()=>ee,m4:()=>X,mf:()=>te,Ar:()=>Ne,eD:()=>_e,px:()=>z,dQ:()=>Q,nW:()=>ne,y9:()=>P,Pr:()=>Ie,ej:()=>we,Nf:()=>Y,gv:()=>K,u2:()=>R,hk:()=>U,Ce:()=>$,KQ:()=>L,$v:()=>be,bs:()=>ve,WM:()=>Ce,rf:()=>ye,$7:()=>Se,ae:()=>Be,xR:()=>w,LU:()=>Ae,XU:()=>de,RM:()=>me,Z9:()=>V,wk:()=>E,tp:()=>S,Us:()=>se,Nv:()=>k,SU:()=>Ee,Bu:()=>he,UI:()=>ce,cL:()=>le,XG:()=>W,WD:()=>x,st:()=>T,g:()=>ue,X:()=>ke,GP:()=>_,WT:()=>N,rs:()=>I,_X:()=>B,H7:()=>fe,dr:()=>xe,aM:()=>G,oQ:()=>Te,pR:()=>q,qN:()=>J,Vj:()=>pe,V8:()=>ge,pZ:()=>F,Cn:()=>M,Fb:()=>ae,DR:()=>oe,hw:()=>re});var r=n(5119),o=n.n(r),a=n(1617),i=n.n(a),s=n(9472),l=n(5737),c=n(9004),d=n(919),u=n(7837);class h{constructor(e,t){this._callNodeTable=void 0,this._stackIndexToNonInvertedCallNodeIndex=void 0,this._cache=new Map,this._callNodeTable=e,this._stackIndexToNonInvertedCallNodeIndex=t}isInverted(){return!1}asInverted(){return null}getNonInvertedCallNodeTable(){return this._callNodeTable}getStackIndexToNonInvertedCallNodeIndex(){return this._stackIndexToNonInvertedCallNodeIndex}getCallNodePathFromIndex(e){if(null===e||-1===e)return[];const t=[];let n=e;for(;-1!==n;)t.push(this._callNodeTable.func[n]),n=this._callNodeTable.prefix[n];return t.reverse(),t}getCallNodeIndexFromPath(e){const t=this._cache,n=(0,c.Gv)(e),r=t.get(n);if(void 0!==r)return r;const o=[n];let a,i=e.length;for(;--i>0;){const n=e.slice(0,i),r=(0,c.Gv)(n);if(a=t.get(r),void 0!==a)break;o.push(r)}for(void 0===a&&(a=-1);i<e.length;){const n=e[i],r=this.getCallNodeIndexFromParentAndFunc(a,n);if(null===r)return null;const s=o.pop();t.set(s,r),a=r,i++}return a<0?null:a}getCallNodeIndexFromParentAndFunc(e,t){const n=this._callNodeTable;if(-1===e){if(0===n.length)return null}else if(n.subtreeRangeEnd[e]===e+1)return null;for(let r=e+1;-1!==r;r=n.nextSibling[r])if(n.func[r]===t)return r;return null}prefixForNode(e){return this._callNodeTable.prefix[e]}funcForNode(e){return this._callNodeTable.func[e]}categoryForNode(e){return this._callNodeTable.category[e]}subcategoryForNode(e){return this._callNodeTable.subcategory[e]}innerWindowIDForNode(e){return this._callNodeTable.innerWindowID[e]}depthForNode(e){return this._callNodeTable.depth[e]}sourceFramesInlinedIntoSymbolForNode(e){return this._callNodeTable.sourceFramesInlinedIntoSymbol[e]}}class p{constructor(e,t,n,r){this._callNodeTable=void 0,this._invertedRootCallNodeTable=void 0,this._invertedNonRootCallNodeTable=void 0,this._stackIndexToNonInvertedCallNodeIndex=void 0,this._rootCount=void 0,this._suffixOrderedCallNodes=void 0,this._suffixOrderIndexes=void 0,this._defaultCategory=void 0,this._cache=new Map,this._children=new Map,this._callNodeTable=e,this._stackIndexToNonInvertedCallNodeIndex=t;const{suffixOrderedCallNodes:o,suffixOrderIndexes:a,rootSuffixOrderIndexRangeEndCol:i}=function(e,t){const n=new Uint32Array(t),r=e.length,o=e.func;for(let e=0;e<r;e++)n[o[e]]++;const a=n;let i=0;for(let e=0;e<a.length;e++){const t=n[e];a[e]=i,i+=t}const s=a,l=new Uint32Array(r),c=new Uint32Array(r);for(let e=0;e<r;e++){const t=s[o[e]]++;l[t]=e,c[e]=t}return{suffixOrderedCallNodes:l,suffixOrderIndexes:c,rootSuffixOrderIndexRangeEndCol:a}}(e,r);this._suffixOrderedCallNodes=o,this._suffixOrderIndexes=a,this._defaultCategory=n,this._rootCount=r;const s=function(e,t,n,r){const o=t.length,a=new Int32Array(o),i=new Int32Array(o),s=new Float64Array(o),l=new Int32Array(o);let c=0;for(let d=0;d<o;d++){const o=c,u=t[d];if(c=u,o===u){l[d]=-2;continue}const h=n[o];let p=e.category[h],m=e.subcategory[h];const f=e.innerWindowID[h];let g=e.sourceFramesInlinedIntoSymbol[h];for(let t=o+1;t<u;t++){const o=n[t];p!==e.category[o]?(p=r,m=0):m!==e.subcategory[o]&&(m=0),g!==e.sourceFramesInlinedIntoSymbol[o]&&(g=-1)}a[d]=p,i[d]=m,s[d]=f,l[d]=g}return{category:a,subcategory:i,innerWindowID:s,sourceFramesInlinedIntoSymbol:l,suffixOrderIndexRangeEnd:t,length:o}}(e,i,o,n);this._invertedRootCallNodeTable=s,this._invertedNonRootCallNodeTable={prefix:[],func:[],pathHash:[],category:[],subcategory:[],innerWindowID:[],sourceFramesInlinedIntoSymbol:[],suffixOrderIndexRangeStart:[],suffixOrderIndexRangeEnd:[],deepNodes:[],depth:[],length:0}}isInverted(){return!0}asInverted(){return this}getNonInvertedCallNodeTable(){return this._callNodeTable}getStackIndexToNonInvertedCallNodeIndex(){return this._stackIndexToNonInvertedCallNodeIndex}getSuffixOrderedCallNodes(){return this._suffixOrderedCallNodes}getSuffixOrderIndexes(){return this._suffixOrderIndexes}getFuncCount(){return this._rootCount}isRoot(e){return e<this._rootCount}getSuffixOrderIndexRangeForCallNode(e){if(e<this._rootCount){const t=e;return[0===t?0:this._invertedRootCallNodeTable.suffixOrderIndexRangeEnd[t-1],this._invertedRootCallNodeTable.suffixOrderIndexRangeEnd[t]]}const t=e-this._rootCount;return[this._invertedNonRootCallNodeTable.suffixOrderIndexRangeStart[t],this._invertedNonRootCallNodeTable.suffixOrderIndexRangeEnd[t]]}_createChildren(e){const t=this._takeDeepNodesForInvertedNode(e),n=this._computeChildrenInfo(e,t);return null===n?[]:(this._applyRefinedSuffixOrderForNode(e,n.selfNodesWhichEndAtParent,n.childrenSelfNodes),this._createChildrenForInfo(n,e))}_computeChildrenInfo(e,t){const n=t.length,[r,o]=this.getSuffixOrderIndexRangeForCallNode(e),a=this._suffixOrderedCallNodes.subarray(r,o);if(a.length!==t.length)throw new Error("indexes out of sync");const i=[],s=[],l=[],c=[],u=new Map,h=this._callNodeTable;for(let e=0;e<n;e++){const n=a[e],r=t[e],o=h.prefix[r];if(-1!==o){const e=h.func[o],t=u.get(e);void 0===t?u.set(e,1):u.set(e,t+1),i.push(n),s.push(o),l.push(e)}else c.push(n)}const p=c.length,m=s.length;if(p+m!==n)throw new Error("indexes out of sync");if(p===n)return null;const f=new Uint32Array(u.keys());f.sort();const g=f.length,A=new Uint32Array(g),b=new Uint32Array(g),C=new Map;let v=0;for(let e=0;e<g;e++){const t=f[e];C.set(t,e);const n=(0,d.Nn)(u.get(t));b[e]=n,A[e]=v,v+=n}const y=A,w=new Uint32Array(m),E=new Uint32Array(m);for(let e=0;e<m;e++){const t=l[e],n=(0,d.Nn)(C.get(t)),r=i[e],o=s[e],a=y[n]++;w[a]=o,E[a]=r}return{funcPerChild:f,deepNodeCountPerChild:b,childrenSuffixOrderIndexRangeStart:r+p,selfNodesWhichEndAtParent:c,childrenSelfNodes:E,childrenDeepNodes:w}}_applyRefinedSuffixOrderForNode(e,t,n){const[r,o]=this.getSuffixOrderIndexRangeForCallNode(e),a=this._suffixOrderIndexes,i=this._suffixOrderedCallNodes;let s=r;for(let e=0;e<t.length;e++){const n=t[e],r=s++;a[n]=r,i[r]=n}for(let e=0;e<n.length;e++){const t=n[e],r=s++;a[t]=r,i[r]=t}if(s!==o)throw new Error("Indexes out of sync")}_createChildrenForInfo(e,t){const n=this._pathHashForNode(t),r=this.depthForNode(t)+1,{funcPerChild:o,deepNodeCountPerChild:a,childrenSuffixOrderIndexRangeStart:i,childrenDeepNodes:s}=e,l=o.length,c=[];let d=0,u=i;for(let e=0;e<l;e++){const i=o[e],l=a[e],h=u,p=s.subarray(d,d+l);u+=l,d+=l;const m=this._createNonRootNode(i,p,h,r,t,n);c.push(m)}return c}_createNonRootNode(e,t,n,r,o,a){const i=t.length,s=this._callNodeTable,l=t[0];let d=s.category[l],u=s.subcategory[l];const h=s.innerWindowID[l];let p=s.sourceFramesInlinedIntoSymbol[l];const m=this._invertedNonRootCallNodeTable;for(let e=1;e<i;e++){const n=t[e];d!==s.category[n]?(d=this._defaultCategory,u=0):u!==s.subcategory[n]&&(u=0),p!==s.sourceFramesInlinedIntoSymbol[n]&&(p=-1)}const f=m.length++,g=this._rootCount+f,A=(0,c.fr)(a,e);return m.prefix[f]=o,m.func[f]=e,m.pathHash[f]=A,m.category[f]=d,m.subcategory[f]=u,m.innerWindowID[f]=h,m.sourceFramesInlinedIntoSymbol[f]=p,m.deepNodes[f]=t,m.suffixOrderIndexRangeStart[f]=n,m.suffixOrderIndexRangeEnd[f]=n+i,m.depth[f]=r,this._cache.set(A,g),g}getChildren(e){let t=this._children.get(e);return void 0===t&&(t=this._createChildren(e),this._children.set(e,t)),t}_takeDeepNodesForInvertedNode(e){if(e<this._rootCount){const[t,n]=this.getSuffixOrderIndexRangeForCallNode(e);return this._suffixOrderedCallNodes.subarray(t,n)}const t=e-this._rootCount,n=(0,d.Nn)(this._invertedNonRootCallNodeTable.deepNodes[t],"_takeDeepNodesForInvertedNode should only be called once for each node, and only after its parent created its children.");return this._invertedNonRootCallNodeTable.deepNodes[t]=null,n}getCallNodePathFromIndex(e){if(null===e||-1===e)return[];const t=this._rootCount,n=[];let r=e;for(;r>=t;){const e=r-t;n.push(this._invertedNonRootCallNodeTable.func[e]),r=this._invertedNonRootCallNodeTable.prefix[e]}const o=r;return n.push(o),n.reverse(),n}getCallNodeIndexFromPath(e){if(0===e.length)return null;if(1===e.length)return e[0];const t=e.length-1;let n=this._findDeepestExistingInvertedAncestorNode(e),r=this.depthForNode(n);for(;r<t;){const t=e[r+1],o=this.getChildren(n),a=this._getChildWithFunc(o,t);if(null===a)return null;n=a,r++}return n}_findDeepestExistingInvertedAncestorNode(e){const t=this._cache.get((0,c.Gv)(e));if(void 0!==t)return t;let n=e[0],r=1,o=e.length-1;for(;r<o;){const t=r+o>>1,a=e.slice(0,t+1),i=this._cache.get((0,c.Gv)(a));void 0!==i?(n=i,r=t+1):o=t}return n}_getChildWithFunc(e,t){const n=(0,u.xE)(e,t,(e=>this.funcForNode(e)));if(0===n)return null;const r=e[n-1];return this.funcForNode(r)!==t?null:r}getCallNodeIndexFromParentAndFunc(e,t){if(-1===e)return t;const n=this.getChildren(e);return this._getChildWithFunc(n,t)}_pathHashForNode(e){if(e<this._rootCount)return(0,c.Ev)(e);const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.pathHash[t]}prefixForNode(e){if(e<this._rootCount)return-1;const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.prefix[t]}funcForNode(e){if(e<this._rootCount)return e;const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.func[t]}categoryForNode(e){if(e<this._rootCount){const t=e;return this._invertedRootCallNodeTable.category[t]}const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.category[t]}subcategoryForNode(e){if(e<this._rootCount){const t=e;return this._invertedRootCallNodeTable.subcategory[t]}const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.subcategory[t]}innerWindowIDForNode(e){if(e<this._rootCount){const t=e;return this._invertedRootCallNodeTable.innerWindowID[t]}const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.innerWindowID[t]}depthForNode(e){if(e<this._rootCount)return 0;const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.depth[t]}sourceFramesInlinedIntoSymbolForNode(e){if(e<this._rootCount){const t=e;return this._invertedRootCallNodeTable.sourceFramesInlinedIntoSymbol[t]}const t=e-this._rootCount;return this._invertedNonRootCallNodeTable.sourceFramesInlinedIntoSymbol[t]}}var m=n(3038),f=n(9839),g=n(946),A=n(561),b=n(2263),C=n(7658);const v=n.p+"1ddbc3ce40af8c7a648b.svg",y=n.p+"d6df0017c0241dfe86ff.svg";function w(e,t,n){const{callNodeTable:r,stackIndexToCallNodeIndex:o}=function(e,t,n){if(0===e.length)return{callNodeTable:(0,l.U1)(),stackIndexToCallNodeIndex:new Int32Array(0)};const r=function(e,t){const n=new Int32Array(e.length),r=[],o=[],a=[],i=[];let s=0;const l=[];let c=-1;for(let d=0;d<e.length;d++){const u=e.prefix[d],h=null===u?-1:n[u],p=e.frame[d],m=t.func[p];let f=-1;if(0!==d)for(let e=-1===h?0:o[h];-1!==e;e=a[e])if(i[e]===m){f=e;break}if(-1===f)if(f=s++,n[d]=f,r[f]=h,i[f]=m,o[f]=-1,a[f]=-1,l[f]=-1,-1===h)-1!==c&&(a[c]=f),c=f;else{const e=l[h];-1===e?o[h]=f:a[e]=f,l[h]=f}else n[d]=f}return{prefix:r,firstChild:o,nextSibling:a,length:s,stackIndexToCallNodeIndex:n}}(e,t),o=function(e){const{prefix:t,firstChild:n,nextSibling:r,length:o,stackIndexToCallNodeIndex:a}=e,i=new Int32Array(o),s=new Int32Array(o),l=new Uint32Array(o),c=new Int32Array(o);let d=0;if(0===o)return{prefixSorted:i,subtreeRangeEndSorted:l,nextSiblingSorted:s,depthSorted:c,maxDepth:d,length:o,stackIndexToCallNodeIndex:a};const u=new Uint32Array(o);let h=0,p=0,m=0,f=-1,g=-1;for(;-1!==h;){const e=h,o=p;u[e]=o,p++,i[o]=g,c[o]=m;const a=n[e];if(-1===a)for(l[o]=p,h=r[e],s[o]=-1===h?-1:p;-1===h&&-1!==f;){l[g]=p;const e=r[f];s[g]=-1===e?-1:p,h=e,f=t[f],g=i[g],m--}else f=e,g=o,h=a,m++,m>d&&(d=m)}for(let e=0;e<a.length;e++)a[e]=u[a[e]];return{prefixSorted:i,subtreeRangeEndSorted:l,nextSiblingSorted:s,depthSorted:c,maxDepth:d,length:o,stackIndexToCallNodeIndex:a}}(r),{stackIndexToCallNodeIndex:a}=o,i=function(e){const t=e.length,n=e.inlineDepth,r=e.nativeSymbol,o=new Int32Array(t);for(let e=0;e<t;e++){let t=-2;if(n[e]>0){const n=r[e];null!==n&&(t=n)}o[e]=t}return o}(t),s=function(e,t,n,r,o,a){const i=e.length,s=e.category,l=e.frame,c=e.subcategory,d=t.innerWindowID,u=t.func,h=new Int32Array(o),p=new Int32Array(o),m=new Int32Array(o),f=new Float64Array(o),g=new Int32Array(o),A=new Uint8Array(o);for(let e=0;e<i;e++){const t=s[e],o=c[e],i=l[e],b=r[i],C=n[e];if(0===A[C]){h[C]=u[i],p[C]=t,m[C]=o,g[C]=b;const e=d[i];null!==e&&0!==e&&(f[C]=e),A[C]=1}else p[C]!==t?(p[C]=a,m[C]=0):m[C]!==o&&(m[C]=0),g[C]!==b&&(g[C]=-1)}return{funcCol:h,categoryCol:p,subcategoryCol:m,innerWindowIDCol:f,inlinedIntoCol:g}}(e,t,a,i,r.length,n);return{callNodeTable:{prefix:o.prefixSorted,nextSibling:o.nextSiblingSorted,subtreeRangeEnd:o.subtreeRangeEndSorted,func:s.funcCol,category:s.categoryCol,subcategory:s.subcategoryCol,innerWindowID:s.innerWindowIDCol,sourceFramesInlinedIntoSymbol:s.inlinedIntoCol,depth:o.depthSorted,maxDepth:o.maxDepth,length:r.length},stackIndexToCallNodeIndex:a}}(e,t,n);return new h(r,o)}function E(e,t,n,r){return new p(e,t,n,r)}function k(e,t,n,r,o,a,i){const s=r[a[e]];return s>=t&&s<n?function(e,t,n){let r=e;for(let e=0;e<t&&null!==r;e++)r=n[r];return r}(e,o,i):null}function x(e,t){return e.map((e=>null===e?null:t[e]))}function T(e,t,n,r){if(null===r||-1===r)return function(e,t){const n=new Array(e.length);for(let r=0;r<e.length;r++){let o="SELECTED";null===e[r]&&(o=null===t[r]?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM"),n[r]=o}return n}(t,n);const o=e.asInverted();return null!==o?function(e,t,n,r){const o=r.getSuffixOrderIndexes(),[a,i]=r.getSuffixOrderIndexRangeForCallNode(n),s=e.length,l=new Array(s);for(let n=0;n<s;n++){let r="SELECTED";const s=e[n];if(null!==s){const e=o[s];e<a?r="UNSELECTED_ORDERED_BEFORE_SELECTED":e>=i&&(r="UNSELECTED_ORDERED_AFTER_SELECTED")}else r=null===t[n]?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM";l[n]=r}return l}(t,n,r,o):function(e,t,n,r){const o=r.getNonInvertedCallNodeTable().subtreeRangeEnd[n],a=e.length,i=new Array(a);for(let r=0;r<a;r++){let a="SELECTED";const s=e[r];a=null!==s?s<n?"UNSELECTED_ORDERED_BEFORE_SELECTED":s<o?"SELECTED":"UNSELECTED_ORDERED_AFTER_SELECTED":null===t[r]?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM",i[r]=a}return i}(t,n,r,e)}function S(e){if(0===e.length)throw new Error("getLeafFuncIndex assumes that the path isn't empty.");return e[e.length-1]}function B(e,t,n,r,o,a,i,s){return I(t.getCallNodeIndexFromPath(e),t,0,r,o,a,i,s)}function I(e,t,n,r,o,a,i,s){const{stackTable:l}=r,c={selfTime:{value:0,breakdownByCategory:null},totalTime:{value:0,breakdownByCategory:null}};let d=0;function u(e,t,n){e.value+=n;const r=s.stack[t+o];if(null!==r){const t=l.category[r],o=l.subcategory[r];null===e.breakdownByCategory&&(e.breakdownByCategory=a.map((e=>({entireCategoryValue:0,subcategoryBreakdown:Array(e.subcategories.length).fill(0)})))),e.breakdownByCategory[t].entireCategoryValue+=n,e.breakdownByCategory[t].subcategoryBreakdown[o]+=n}}if(null===e)return{forPath:c,rootTime:d};const h=t.getNonInvertedCallNodeTable(),p=t.getStackIndexToNonInvertedCallNodeIndex(),m=t.asInverted();if(null!==m){const t=m.isRoot(e),n=m.getSuffixOrderIndexes(),[r,o]=m.getSuffixOrderIndexRangeForCallNode(e);for(let e=0;e<i.length;e++){const a=i.stack[e];if(null===a)continue;const s=n[p[a]],l=i.weight?i.weight[e]:1;d+=Math.abs(l),s>=r&&s<o&&(u(c.totalTime,e,l),t&&(c.selfTime.value+=l))}}else{const t=h.subtreeRangeEnd[e];for(let n=0;n<i.length;n++){const r=i.stack[n];if(null===r)continue;const o=p[r],a=i.weight?i.weight[n]:1;d+=Math.abs(a),o===e&&u(c.selfTime,n,a),o>=e&&o<t&&u(c.totalTime,n,a)}}return{forPath:c,rootTime:d}}const _=o()((function({samples:e,markers:t,jsAllocations:n,nativeAllocations:r},o){const a={start:1/0,end:-1/0};if(e.length){const{time:t,timeDeltas:n}=e;if(void 0!==t){const n=e.length-1;a.start=t[0],a.end=t[n]+o}else{const t=(0,d.Nn)(n);a.start=t[0];let r=0;for(let n=0;n<e.length;n++)r+=t[n];a.end=r+o}}else if(t.length)for(let e=0;e<t.length;e++){const n=t.startTime[e],r=t.endTime[e];switch(t.phase[e]){case f.mN:case f.nO:{const e=(0,d.Nn)(n);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case f.a1:{const e=(0,d.Nn)(r);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case f.KU:{const e=(0,d.Nn)(n),t=(0,d.Nn)(r);a.start=Math.min(a.start,e,t),a.end=Math.max(a.end,e+o,t+o);break}default:throw new Error("Unhandled marker phase type.")}}if(n){const e=n.length-1;a.start=Math.min(a.start,n.time[0]),a.end=Math.max(a.end,n.time[e]+o)}if(r){const e=r.length-1;a.start=Math.min(a.start,r.time[0]),a.end=Math.max(a.end,r.time[e]+o)}return a}),{cache:new(i())});function N(e){const t={start:1/0,end:-1/0};return void 0!==e.meta.profilingStartTime&&e.meta.profilingEndTime?{start:e.meta.profilingStartTime,end:e.meta.profilingEndTime}:(e.threads.forEach((n=>{const r=_(n,e.meta.interval);t.start=Math.min(t.start,r.start),t.end=Math.max(t.end,r.end)})),t)}function P(e){const t=e.map(((e,t)=>t));return t.sort(((t,n)=>{const r=e[t].name,o=e[n].name;return r===o?t-n:"Compositor"===r?1:"Compositor"===o?-1:"Renderer"===r?1:"Renderer"===o?-1:t-n})),t}function M(e){switch(e){case"cpp":case"js":return e;default:return"combined"}}function F(e){switch(e){case"timing":case"js-allocations":case"native-retained-allocations":case"native-allocations":case"native-deallocations-sites":case"native-deallocations-memory":return e;default:return"timing"}}function R(e,t){const{funcTable:n,stringTable:r}=e;switch(t){case"cpp":return D(e,(e=>{if(n.isJS[e])return!1;const t=r.getString(n.name[e]);return!(-1===n.resource[e]&&t.startsWith("0x"))}));case"js":return D(e,(e=>n.isJS[e]||n.relevantForJS[e]));default:return e}}function D(e,t){return(0,g.l)("_filterThreadByFunc",(()=>{const{stackTable:n,frameTable:r}=e,o={length:0,frame:[],prefix:[],category:[],subcategory:[]},a=new Int32Array(n.length);for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null===i?-1:a[i];if(t(l)){const t=o.length++;o.frame[t]=s,o.prefix[t]=-1!==c?c:null,o.category[t]=n.category[e],o.subcategory[t]=n.subcategory[e],a[e]=t}else a[e]=c}return oe(e,o,(e=>{if(null===e)return null;const t=a[e];return-1!==t?t:null}))}))}function L(e,t){return(0,g.l)("filterThreadToSearchStrings",(()=>t&&t.length?t.reduce(O,e):e))}function O(e,t){if(!t)return e;const n=t.toLowerCase(),{funcTable:r,frameTable:o,stackTable:a,stringTable:i,resourceTable:s}=e,l=new Map;const c=new Map;function d(e){if(null===e)return!1;let t=c.get(e);if(void 0===t){if(d(a.prefix[e]))t=!0;else{const c=a.frame[e];t=function(e){let t=l.get(e);return void 0===t&&(t=function(e){const t=r.name[e];if(i.getString(t).toLowerCase().includes(n))return!0;const o=r.fileName[e];if(null!==o&&i.getString(o).toLowerCase().includes(n))return!0;const a=r.resource[e];if(-1!==a){const e=s.name[a];if(i.getString(e).toLowerCase().includes(n))return!0}return!1}(e),l.set(e,t)),t}(o.func[c])}c.set(e,t)}return t}return oe(e,a,(e=>d(e)?e:null))}function U(e,t){return(0,g.l)("filterThreadByTab",(()=>{if(0===t.size)return e;const{frameTable:n,stackTable:r}=e,o=new Map,a=new Map;function i(e){if(null===e)return!1;const s=a.get(e);if(void 0!==s)return s;if(i(r.prefix[e]))return a.set(e,!0),!0;const l=function(e){const r=o.get(e);if(void 0!==r)return r;const a=n.innerWindowID[e],i=!!(a&&a>0)&&t.has(a);return o.set(e,i),i}(r.frame[e]);return a.set(e,l),l}return oe(e,r,(e=>i(e)?e:null))}))}function z(e){const{time:t,timeDeltas:n}=e;return t??(0,C.Q)((0,d.Nn)(n))}function G(e,t){const{stackTable:n,frameTable:r,funcTable:o,stringArray:a}=t;if(void 0===e||0===e.length||0===n.length)return!1;const i=e.find((e=>null!==e));if(null==i)return!1;if(null===n.prefix[i]){const t=n.frame[i],s=r.func[t];if("(root)"===a[o.name[s]])return e.some((e=>null!==e&&e!==i))}return!0}function W(e,t,n){return H(e.time,t,n)}function H(e,t,n){const r=(0,u.AM)(e,t);return[r,(0,u.AM)(e,n,r)]}function V(e,t,n){return j(e.time,t,n)}function j(e,t,n){let[r,o]=H(e,t,n);return r>0&&r--,o<e.length&&o++,[r,o]}function $(e,t,n){const{samples:r,jsAllocations:o,nativeAllocations:a}=e,[i,s]=W(r,t,n),l={length:s-i,time:r.time.slice(i,s),weight:r.weight?r.weight.slice(i,s):null,weightType:r.weightType,stack:r.stack.slice(i,s)};r.eventDelay?l.eventDelay=r.eventDelay.slice(i,s):r.responsiveness&&(l.responsiveness=r.responsiveness.slice(i,s)),r.threadCPURatio&&(l.threadCPURatio=r.threadCPURatio.slice(i,s)),r.threadId&&(l.threadId=r.threadId.slice(i,s));const c={...e,samples:l};if(o){const[e,r]=W(o,t,n);c.jsAllocations={time:o.time.slice(e,r),className:o.className.slice(e,r),typeName:o.typeName.slice(e,r),coarseType:o.coarseType.slice(e,r),weight:o.weight.slice(e,r),weightType:o.weightType,inNursery:o.inNursery.slice(e,r),stack:o.stack.slice(e,r),length:r-e}}if(a){const[e,r]=W(a,t,n),o=a.time.slice(e,r),i=a.weight.slice(e,r),s=a.stack.slice(e,r),l=r-e;a.memoryAddress?c.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,memoryAddress:a.memoryAddress.slice(e,r),threadId:a.threadId.slice(e,r),length:l}:c.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,length:l}}return c}function K(e,t,n){const{samples:r,jsAllocations:o,nativeAllocations:a}=e,i=z(r),[s,l]=H(i,t,n),c={length:l-s,time:i.slice(s,l),weight:r.weight?r.weight.slice(s,l):null,weightType:r.weightType,stack:r.stack.slice(s,l)};r.eventDelay?c.eventDelay=r.eventDelay.slice(s,l):r.responsiveness&&(c.responsiveness=r.responsiveness.slice(s,l)),r.threadCPUDelta&&(c.threadCPUDelta=r.threadCPUDelta.slice(s,l)),r.threadId&&(c.threadId=r.threadId.slice(s,l));const d={...e,samples:c};if(o){const[e,r]=W(o,t,n);d.jsAllocations={time:o.time.slice(e,r),className:o.className.slice(e,r),typeName:o.typeName.slice(e,r),coarseType:o.coarseType.slice(e,r),weight:o.weight.slice(e,r),weightType:o.weightType,inNursery:o.inNursery.slice(e,r),stack:o.stack.slice(e,r),length:r-e}}if(a){const[e,r]=W(a,t,n),o=a.time.slice(e,r),i=a.weight.slice(e,r),s=a.stack.slice(e,r),l=r-e;a.memoryAddress?d.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,memoryAddress:a.memoryAddress.slice(e,r),threadId:a.threadId.slice(e,r),length:l}:d.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,length:l}}return d}function Y(e,t,n){const r={...e},{samples:o}=r,a=z(o),[i,s]=j(a,t,n);return r.samples={length:s-i,time:a.slice(i,s),count:o.count.slice(i,s),number:o.number?o.number.slice(i,s):void 0},r}function q(e){const{samples:t}=e,n=t.count.slice(),r=void 0!==t.number?t.number.slice():void 0;n[0]=0,void 0!==r&&(r[0]=0);const o={time:z(t),number:r,count:n,length:t.length};return{name:e.name,category:e.category,description:e.description,color:e.color,pid:e.pid,mainThreadIndex:e.mainThreadIndex,samples:o}}function Z(e,t){let n=0,r=0,o=0;const a=Array(e.length).fill(0),i=t?t[0]:0,s=t?t[1]:e.length;for(let t=i;t<s;t++)o+=e.count[t],n=Math.min(o,n),r=Math.max(o,r),a[t]=o;return{minCount:n,maxCount:r,countRange:r-n,accumulatedCounts:a}}function X(e,t,n){let r=0;const o=n?n[0]:0,a=n?n[1]:e.length;for(let n=o;n<a;n++){const o=e.count[n]/(0===n?t:e.time[n]-e.time[n-1]);r=Math.max(o,r)}return r}function J(e,t){if(!e.eventDelay)throw new Error("processEventDelays step should not be called for older profiles");const n=new Float32Array(e.length),r=(0,d.Nn)(e.eventDelay,"eventDelays field is not present in this profile");let o=e.time[0],a=0;for(let i=1;i<e.length;i++){const s=r[i],l=r[i+1]||0,c=e.time[i];if(null==s)continue;if(s<l)continue;const d=c-s,u=i-Math.trunc(s/t);if(u<0){o=c,a=i;continue}if(a===u){o=d,a=u;continue}let h=c-o;for(let t=a+1;t<=u;t++)n[t]+=h,h-=e.time[t+1]-e.time[t];o=d,a=u}let i=Number.MAX_SAFE_INTEGER,s=0;for(const e of n)e&&(i=Math.min(e,i),s=Math.max(e,s));return{eventDelays:n,minDelay:i,maxDelay:s,delayRange:s-i}}function Q(e,t){const{stackTable:n,frameTable:r}=e,o=[];for(let e=t;null!==e;e=n.prefix[e]){const t=n.frame[e];o.push({category:n.category[e],func:r.func[t]})}return o.reverse()}function ee(e,t){let n=-1;const r=t.getNonInvertedCallNodeTable(),o=t.getStackIndexToNonInvertedCallNodeIndex();for(let t=0;t<e.length;t++){const a=e.stack[t];if(null===a)continue;const i=o[a],s=r.depth[i];s>n&&(n=s)}return n+1}function te(e,t,n){const{responsiveness:r,eventDelay:o,stack:a,weight:i,weightType:s,threadId:l,length:c}=e,u=void 0!==e.time?(0,C.v)(e.time):(0,d.Nn)(e.timeDeltas),h=void 0!==t?(0,m.z)(e,t,u,n):void 0;return{responsiveness:r,eventDelay:o,stack:a,weight:i,weightType:s,threadId:l,length:c,time:z(e),threadCPURatio:h}}function ne(e,t,n,r){const{processType:o,processStartupTime:a,processShutdownTime:i,registerTime:s,unregisterTime:l,pausedRanges:c,showMarkersInTimeline:d,name:u,isMainThread:h,"eTLD+1":p,processName:m,isJsTracer:f,pid:g,tid:A,jsAllocations:b,nativeAllocations:C,markers:v,frameTable:y,funcTable:w,resourceTable:E,nativeSymbols:k,jsTracer:x,isPrivateBrowsing:T,userContextId:S}=e;return{processType:o,processStartupTime:a,processShutdownTime:i,registerTime:s,unregisterTime:l,pausedRanges:c,showMarkersInTimeline:d,name:u,isMainThread:h,"eTLD+1":p,processName:m,isJsTracer:f,pid:g,tid:A,jsAllocations:b,nativeAllocations:C,markers:v,frameTable:y,funcTable:w,resourceTable:E,nativeSymbols:k,jsTracer:x,isPrivateBrowsing:T,userContextId:S,samples:t,stackTable:n,stringTable:r}}function re(e,t,n,r,o){const{jsAllocations:a,nativeAllocations:i,samples:s,markers:l}=e,c={...s,stack:n(s.stack,s.time)},d={...l,data:o(l.data)},u={...e,samples:c,markers:d,stackTable:t};return a&&(u.jsAllocations={...a,stack:r(a.stack,a.time)}),i&&(u.nativeAllocations={...i,stack:r(i.stack,i.time)}),u}function oe(e,t,n){function r(e){return e&&"cause"in e&&e.cause?{...e,cause:{...e.cause,stack:n(e.cause.stack)}}:e}return re(e,t,((e,t)=>e.map((e=>n(e)))),((e,t)=>e.map((e=>n(e)))),(e=>e.map(r)))}function ae(e,t,n){return ie(e,t,n,n)}function ie(e,t,n,r){const{jsAllocations:o,nativeAllocations:a,samples:i,markers:s}=e,l={...i,stack:i.stack.map(n)},c={...s,data:s.data.map((function(e){return e&&"cause"in e&&e.cause?{...e,cause:{...e.cause,stack:r(e.cause.stack)}}:e}))},d={...e,samples:l,markers:c,stackTable:t};return o&&(d.jsAllocations={...o,stack:o.stack.map(r)}),a&&(d.nativeAllocations={...a,stack:a.stack.map(r)}),d}function se(e){return t=>{if(null===t)return null;const n=e.get(t);if(void 0===n)throw new Error("Could not find a stack when converting from an old stack to new stack.");return n}}function le(e,t,n){const r=(0,u.lV)(e.time,t);if(0===r)return 0;if(r===e.length)return e.length-1;const o=r-1;let a=n,i=n;if(e.weight){const t=e.weight;a=Math.abs(t[r]),i=Math.abs(t[o])}return e.time[r]+a/2-t<t-(e.time[o]+i/2)?r:r-1}function ce(e,t,n){const r=t=>e.weight?e.time[t]+Math.abs(e.weight[t])/2:e.time[t],o=(0,u.lV)(e.time,t);if(0===o)return n>=Math.abs(r(0)-t)?0:null;if(o===e.time.length){const o=e.time.length-1;return n>=Math.abs(r(o)-t)?o:null}const a=Math.abs(r(o)-t),i=Math.abs(r(o-1)-t);return a<=i?a<=n?o:null:i<=n?o-1:null}function de(e,t){let n,r;if("GeckoMain"===t.name)if(t["eTLD+1"])n=t["eTLD+1"],r=e.filter((e=>"GeckoMain"===e.name&&e["eTLD+1"]===n));else if(t.processName)n=t.processName,r=e.filter((e=>"GeckoMain"===e.name&&e.processName===n));else switch(t.processType){case"default":n="Parent Process";break;case"gpu":n="GPU Process";break;case"rdd":n="Remote Data Decoder";break;case"tab":n="Content Process",r=e.filter((e=>"GeckoMain"===e.name&&"tab"===e.processType));break;case"plugin":n="Plugin Process";break;case"socket":n="Socket Process"}if(n||(n=t.name),r&&r.length>1){const e=1+r.indexOf(t);n+=` (${e}/${r.length})`}return n}function ue(e,t){let n=`${t}\n`;return n+=`Thread: "${e.name}"`,void 0!==e.tid&&(n+=` (${e.tid})`),e.processType&&(n+=`\nProcess: "${e.processType}"`,void 0!==e.pid&&(n+=` (${e.pid})`)),e.isPrivateBrowsing&&(n+="\nPrivate Browsing: Yes"),e.userContextId&&(n+=`\nContainer Id: ${e.userContextId}`),n}function he(e,t,n,r,o=null,a=null){let i=null,s=null;const c=t.resource[e];if(-1!==c){i=n.type[c];const e=n.name[c];s=r.getString(e)}const d=t.fileName[e];let u;if(null!==d)if(u=r.getString(d),u=(0,A.o)(u).path,null!==o)u+=":"+o,null!==a&&(u+=":"+a);else{const n=t.lineNumber[e];if(null!==n){u+=":"+n;const r=t.columnNumber[e];null!==r&&(u+=":"+r)}}return u?s&&function(e,t,n){return!e.startsWith(t)&&n!==l.AU.library}(u,s,i)?`${s}: ${u}`:u:s||""}function pe(e){const t=(0,l.ES)(e.funcTable),n=new Map,r=[l.AU.addon,l.AU.url,l.AU.webhost,l.AU.otherhost],{resourceTable:o}=e;for(let e=0;e<o.length;e++){const a=o.type[e],i=o.name[e],s=r.includes(a),c=a===l.AU.url?i:null,d=t.length;t.isJS.push(s),t.relevantForJS.push(s),t.name.push(i),t.resource.push(e),t.fileName.push(c),t.lineNumber.push(null),t.columnNumber.push(null),t.length++,n.set(e,d)}return{thread:{...e,funcTable:t},reservedFunctionsForResources:n}}function me(e,t){const{funcTable:n,stringTable:r,resourceTable:o}=t;return e.map((e=>{const{category:t,func:a}=e;return{funcName:r.getString(n.name[a]),category:t,isFrameLabel:-1===n.resource[a],origin:he(a,n,o,r)}}))}function fe(e,t){const n=t.asInverted();return null!==n?function(e,t){const n=t.getNonInvertedCallNodeTable();return function(t,r){const o=e[t],a=e[r];return o===a?0:null===o?1:null===a?-1:function(e,t,n){for(;;){const r=n.func[e],o=n.func[t];if(r!==o)return r-o;if((e=n.prefix[e])===(t=n.prefix[t]))break;if(-1===e)return-1;if(-1===t)return 1}return 0}(o,a,n)}}(e,n):(r=e,function(e,t){const n=r[e],o=r[t];return null===n?null===o?0:1:null===o?-1:n-o});var r}function ge(e){return e.subcategories.length>1}function Ae(e,t,n){const r=e[t];return 0!==n?`${r.name}: ${r.subcategories[n]}`:`${r.name}`}function be(e){const t=e.stack.slice();for(let n=0;n<e.length;n++)e.weight[n]<=0&&(t[n]=null);return{...e,stack:t}}function Ce(e){const t=e.stack.slice();for(let n=0;n<e.length;n++)e.weight[n]>=0&&(t[n]=null);return{...e,stack:t}}function ve(e){const t=[],n=e.stack.slice();for(let r=0;r<e.length;r++){const o=e.weight[r],a=e.memoryAddress[r];if(o>=0)a in t&&console.error(s.TN`
|
3
|
+
The address ${a} was already present when we wanted to add it.
|
4
|
+
This probably means the deallocation wasn't collected, which may sometimes
|
5
|
+
happen. We will overwrite the previous entry.
|
6
|
+
`),t[a]=e.stack[r],n[r]=null;else{const e=t[a];void 0===e?n[r]=null:(n[r]=e,delete t[a])}}return{...e,stack:n}}function ye(e){const t=new Map,n=e.stack.slice();for(let r=0;r<e.length;r++){const o=e.weight[r],a=e.memoryAddress[r];if(o>=0)t.set(a,r);else{n[r]=null;const e=t.get(a);void 0!==e&&(n[e]=null,t.delete(a))}}return{...e,stack:n}}function we(e,t){if(null===e)return new Map;const n=new Map;for(const[r,o]of e){let e=o.filter((e=>0===e.embedderInnerWindowID));if(e.length>1&&(e=e.filter((e=>!e.url.startsWith("about:")))),0===e.length){console.error(`Expected at least one topmost page for tabID ${r} but couldn't find it.`);continue}const a=e[e.length-1],i=a.url;if(i.startsWith("about:")){n.set(r,{origin:i,hostname:i,favicon:y});continue}const s=i.startsWith("moz-extension://"),l=s?v:y,c={origin:i,hostname:i,favicon:a.favicon??l};try{const e=new URL(i);c.hostname=t&&s?t.get("moz-extension://"+(e.hostname?e.hostname:i.split("/")[2])+"/")??"":e.hostname,c.origin=e.origin}catch(e){}n.set(r,c)}return n}function Ee(e,t,n,r){let o,a;try{const t=new URL(e);if("http:"!==t.protocol&&"https:"!==t.protocol&&"moz-extension:"!==t.protocol)throw new Error("not a webhost or extension protocol");o=t.origin,a=t.host}catch(t){o=e,a=null}let i=r.get(o);return void 0!==i||(i=t.length++,r.set(o,i),a?(t.lib[i]=null,t.name[i]=n.indexForString(o),t.host[i]=n.indexForString(a),t.type[i]=l.AU.webhost):(t.lib[i]=null,t.name[i]=n.indexForString(e),t.host[i]=null,t.type[i]=l.AU.url)),i}function ke(e){return 1===e.size?(0,d.Nn)((0,d.cF)(e)):[...e].sort(((e,t)=>t-e)).join(",")}function xe(e,t){const n=(""+t).split(",").map((e=>+e));for(const t of n)if(!e.has(t))return!1;return!0}function Te(e){const{samplingSelfStacks:t,syncBacktraceSelfStacks:n}=function(e){const t=new Set,n=new Set,{samples:r,markers:o,jsAllocations:a,nativeAllocations:i}=e;for(let e=0;e<r.length;e++){const n=r.stack[e];null!==n&&t.add(n)}for(let e=0;e<o.length;e++){const t=o.data[e];if(t&&t.cause){const e=t.cause.stack;null!==e&&n.add(e)}}if(void 0!==a)for(let e=0;e<a.length;e++){const t=a.stack[e];null!==t&&n.add(t)}if(void 0!==i)for(let e=0;e<i.length;e++){const t=i.stack[e];null!==t&&n.add(t)}return{samplingSelfStacks:t,syncBacktraceSelfStacks:n}}(e),{stackTable:r,frameTable:o}=e,a=new Uint32Array(o.length),i=new Set;for(const e of t){const t=r.frame[e];a[t]=t,-1!==o.address[t]&&i.add(t)}const s=new Map,c=new Set;for(const e of n){const t=r.frame[e],n=o.address[t];-1!==n&&s.set(t,n)}for(let e=0;e<r.length;e++){const t=r.prefix[e];if(null===t||c.has(t))continue;c.add(t);const n=r.frame[t],a=o.address[n];-1!==a&&s.set(n,a)}if(0===i.size&&0===s.size)return e;const d=(0,l.LK)(o);for(const[e,t]of s){if(i.has(e)){const n=d.length;d.address.push(t),d.inlineDepth.push(o.inlineDepth[e]),d.category.push(o.category[e]),d.subcategory.push(o.subcategory[e]),d.func.push(o.func[e]),d.nativeSymbol.push(o.nativeSymbol[e]),d.innerWindowID.push(o.innerWindowID[e]),d.line.push(o.line[e]),d.column.push(o.column[e]),d.length++,a[e]=n}d.address[e]=t-1}const u=(0,l.Gh)(),h=new Map,p=new Map,m=new Uint32Array(r.length);for(let e=0;e<r.length;e++){const o=r.frame[e],i=r.prefix[e],s=null===i?null:m[i];if(c.has(e)||n.has(e)){const t=u.length;u.frame.push(o),u.prefix.push(s),u.length++,m[e]=t,p.set(e,t)}if(t.has(e)){const t=a[o],n=u.length;u.frame.push(t),u.prefix.push(s),u.length++,h.set(e,n)}}return ie({...e,frameTable:d},u,se(h),se(p))}function Se(e,t){const{libs:n}=e;for(const r of e.threads){const{frameTable:e,funcTable:o,resourceTable:a,stringArray:i}=r,s=b.M.withBackingArray(i).indexForString(t),c=o.fileName.indexOf(s);if(-1===c)continue;const d=e.func.indexOf(c);if(-1===d)continue;const u=e.address[d];if(null===u)continue;const h=o.resource[c];if(a.type[h]!==l.AU.library)continue;const p=a.lib[h];if(null===p)continue;const m=n[p],{debugName:f,breakpadId:g}=m;return{debugName:f,breakpadId:g,address:u}}return null}function Be(e,t,n){const{stackTable:r,frameTable:o,funcTable:a,stringTable:i,resourceTable:s,nativeSymbols:c}=n,d=t.funcForNode(e),u=a.fileName[d],h=null!==u?i.getString(u):null,p=a.resource[d],m=-1!==p&&s.type[p]===l.AU.library?s.lib[p]:null,f=function(e,t,n,r){const o=t.asInverted();return null!==o?function(e,t,n,r){const o=t.depthForNode(e),[a,i]=t.getSuffixOrderIndexRangeForCallNode(e),s=n.prefix,l=t.getStackIndexToNonInvertedCallNodeIndex(),c=t.getSuffixOrderIndexes(),d=new Set;for(let e=0;e<n.length;e++){const t=k(e,a,i,c,o,l,s);if(null!==t){const e=n.frame[t],o=r.nativeSymbol[e];null!==o&&d.add(o)}}return[...d]}(e,o,n,r):function(e,t,n,r){const o=t.getStackIndexToNonInvertedCallNodeIndex(),a=new Set;for(let t=0;t<n.length;t++)if(o[t]===e){const e=n.frame[t],o=r.nativeSymbol[e];null!==o&&a.add(o)}return[...a]}(e,t,n,r)}(e,t,r,o).map((e=>function(e,t,n,r){const o=t.functionSize[e],a=o??function(e,t,n){let r=t;for(let t=0;t<e.length;t++)if(e.nativeSymbol[t]===n){const n=e.address[t];n>r&&(r=n)}return r+1-t}(n,t.address[e],e);return{libIndex:t.libIndex[e],address:t.address[e],name:r.getString(t.name[e]),functionSize:a,functionSizeIsKnown:null!==o}}(e,c,o,i)));return{libIndex:m,sourceFile:h,nativeSymbols:f}}function Ie(e){return e.meta.categories?e.meta.sampleUnits&&e.threads.some((e=>e.samples.threadCPUDelta))?"cpu-category":"category":"stack"}function _e(e,t){const n=new Map;if(!t)return n;for(let r=0;r<e.length;r++){const o=e[r];for(let e=0;e<o.frameTable.length;e++){const a=o.frameTable.innerWindowID[e];if(null===a||0===a)continue;const i=t.get(a);if(void 0===i)continue;let s=n.get(i);s||(s=new Set,n.set(i,s)),s.add(r)}for(let e=0;e<o.markers.length;e++){const a=o.markers.data[e];if(a&&null!==a.innerWindowID&&void 0!==a.innerWindowID&&0!==a.innerWindowID){const e=a.innerWindowID,o=t.get(e);if(void 0===o)continue;let i=n.get(o);i||(i=new Set,n.set(o,i)),i.add(r)}}}return n}function Ne(e,t,n){const r=new Array(e.length),o=new Array(e.length);for(let a=0;a<e.length;a++){const i=e.frame[a],s=t.category[i],l=t.subcategory[i];let c,d;if(null!==s)c=s,d=l||0;else{const t=e.prefix[a];null!==t?(c=r[t],d=o[t]):(c=n,d=0)}r[a]=c,o[a]=d}return{frame:e.frame,category:r,subcategory:o,prefix:e.prefix,length:e.length}}},5510:(e,t,n)=>{"use strict";e.exports=n.p+"3a829bf1fcf02598aa4b.svg"},5556:(e,t,n)=>{e.exports=n(2694)()},5572:(e,t,n)=>{"use strict";e.exports=n.p+"aa867391c311267af5a9.svg"},5592:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.sidebar{background:var(--grey-10);border-top:1px solid var(--grey-30);font-size:11px;overflow:auto;--sidebar-indent:16px}.sidebar-contents-wrapper{line-height:1.5;margin:16px;margin-inline-start:11px;position:relative}.sidebar-calltree .sidebar-contents-wrapper{align-content:start;align-items:center;display:grid;grid-gap:2px 5px;grid-template-columns:1fr min-content min-content}.sidebar-title2,.sidebar-title3,.sidebar-titlegroup{grid-column-start:span 3;min-width:0}.sidebar-label,.sidebar-title-label>:nth-child(2),.sidebar-title2,.sidebar-title3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-title-label{display:grid;grid-gap:5px;grid-template-columns:min-content 1fr}.sidebar-title-label>:nth-child(2){color:var(--grey-50);text-align:end}.sidebar-titlegroup{line-height:unset;margin:0 0 1em}.sidebar-subtitle,.sidebar-title{font-weight:400;margin:0;padding:0}.can-select-content-input{all:unset;text-overflow:ellipsis;width:100%}.can-select-content-input:focus-visible{text-overflow:unset}.sidebar-title{font-size:1.2em;font-weight:500;margin-bottom:.3em}.sidebar-subtitle{color:var(--grey-50);font-size:inherit}.sidebar-title2,.sidebar-title3{font-weight:400}.sidebar-title2{margin:.9em 0 .4em}.sidebar-title3{margin:.7em 0 .3em}.sidebar-label{color:var(--grey-50);grid-column-start:1;margin-inline-start:var(--sidebar-indent);white-space:nowrap}.sidebar-label-indent{margin-inline-start:calc(var(--sidebar-indent)*2)}.sidebar-percentage,.sidebar-value{text-align:end;white-space:nowrap}.sidebar-histogram-bar{background-color:var(--grey-30);grid-column-start:span 3;margin-inline-start:var(--sidebar-indent)}.sidebar-histogram-bar-color{height:5px}.sidebar-histogram-bar-color.category-color-grey,.sidebar-histogram-bar-color.category-color-transparent{background-color:var(--grey-50)}.sidebar-toggle{background:0;border:0;color:var(--grey-50);font-size:inherit;padding:0}.sidebar-toggle:focus-visible{border:0;border-radius:2px;box-shadow:none;color:var(--blue-60);text-decoration:underline}.sidebar-toggle:before{background:none;border-block-width:5px;border-color:#0000;border-inline-end-width:4px;border-inline-start-color:initial;border-inline-start-width:8px;border-style:solid;content:"";forced-color-adjust:none;height:0;margin-top:1px;margin-inline-start:-11px;position:absolute;width:0}.sidebar-toggle:active:hover{color:var(--grey-60)}.sidebar-toggle.expanded:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:8px 5px 4px;margin-top:3px;margin-inline-start:-12px}@media (forced-colors:active){.sidebar-toggle,.sidebar-toggle:before{color:ButtonText}.sidebar-label:hover .sidebar-toggle,.sidebar-label:hover .sidebar-toggle:before{color:SelectedItem}}',"",{version:3,sources:["webpack://./src/components/sidebar/sidebar.css"],names:[],mappings:"AAAA,SAGE,yBAA0B,CAD1B,mCAAoC,CAEpC,cAAe,CAHf,aAAc,CAKd,qBACF,CAEA,0BAIE,eAAgB,CADhB,WAAY,CAIZ,wBAAqC,CALrC,iBAMF,CAEA,4CAEE,mBAAoB,CACpB,kBAAmB,CAFnB,YAAa,CAGb,gBAAiB,CACjB,iDAOF,CAEA,oDAIE,wBAAyB,CADzB,WAEF,CAGA,kFAKE,WAAY,CADZ,eAAgB,CAEhB,sBAAuB,CACvB,kBACF,CAEA,qBACE,YAAa,CACb,YAAa,CACb,qCACF,CAEA,mCACE,oBAAqB,CACrB,cACF,CAEA,oBAEE,iBAAkB,CADlB,cAEF,CAEA,iCAIE,eAAmB,CADnB,QAAS,CADT,SAGF,CAGA,0BACE,SAAU,CAEV,sBAAuB,CADvB,UAEF,CAEA,wCACE,mBACF,CAEA,eAEE,eAAgB,CAChB,eAAgB,CAFhB,kBAGF,CAEA,kBACE,oBAAqB,CACrB,iBACF,CAEA,gCAEE,eACF,CAEA,gBACE,kBACF,CAEA,gBACE,kBACF,CAEA,eACE,oBAAqB,CACrB,mBAAoB,CACpB,yCAA0C,CAC1C,kBACF,CAEA,sBACE,iDACF,CAEA,mCAEE,cAAe,CACf,kBACF,CAEA,uBACE,+BAAgC,CAChC,wBAAyB,CACzB,yCACF,CAEA,6BACE,UACF,CAOA,yGAEE,+BACF,CAEA,gBAGE,YAAa,CADb,QAAS,CAET,oBAAqB,CACrB,iBAAkB,CAJlB,SAKF,CAIA,8BACE,QAAS,CACT,iBAAkB,CAClB,eAAgB,CAChB,oBAAqB,CACrB,yBACF,CAGA,uBAOE,eAAgB,CAChB,sBAAuB,CAHvB,kBAAyB,CAIzB,2BAA4B,CAC5B,iCAAuC,CACvC,6BAA8B,CAP9B,kBAAmB,CAQnB,UAAW,CAGX,wBAAyB,CAZzB,QAAS,CAGT,cAAe,CAUf,yBAA0B,CAf1B,iBAAkB,CAClB,OAeF,CAEA,6BACE,oBACF,CAEA,gCAGE,qCAAkD,CAAlD,kBAAkD,CAAlD,wBAAkD,CAClD,cAAe,CACf,yBACF,CAEA,8BACE,uCAEE,gBACF,CAEA,iFAEE,kBACF,CACF",sourcesContent:[".sidebar {\n overflow: auto;\n border-top: 1px solid var(--grey-30);\n background: var(--grey-10);\n font-size: 11px;\n\n --sidebar-indent: 16px;\n}\n\n.sidebar-contents-wrapper {\n /* Allow absolute positioning that is dependent of the scrolling. */\n position: relative;\n margin: 16px;\n line-height: 1.5;\n\n /* Subtract the splitter size. */\n margin-inline-start: calc(16px - 5px);\n}\n\n.sidebar-calltree .sidebar-contents-wrapper {\n display: grid;\n align-content: start; /* the grid isn't vertically stretched */\n align-items: center;\n grid-gap: 2px 5px;\n grid-template-columns:\n /* Label */\n 1fr\n /* Value */\n min-content\n /* Percentage */\n min-content;\n}\n\n.sidebar-titlegroup,\n.sidebar-title2,\n.sidebar-title3 {\n min-width: 0; /* With this, the cell's minimum size is 0 instead of min-content */\n grid-column-start: span 3;\n}\n\n/* Truncate the text with an ellipse */\n.sidebar-label,\n.sidebar-title2,\n.sidebar-title3,\n.sidebar-title-label > :nth-child(2) {\n overflow: hidden;\n min-width: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sidebar-title-label {\n display: grid;\n grid-gap: 5px;\n grid-template-columns: min-content 1fr;\n}\n\n.sidebar-title-label > :nth-child(2) {\n color: var(--grey-50);\n text-align: end;\n}\n\n.sidebar-titlegroup {\n margin: 0 0 1em;\n line-height: unset;\n}\n\n.sidebar-title,\n.sidebar-subtitle {\n padding: 0;\n margin: 0;\n font-weight: normal;\n}\n\n/* This will be used on both the title and the subtitle */\n.can-select-content-input {\n all: unset;\n width: 100%;\n text-overflow: ellipsis;\n}\n\n.can-select-content-input:focus-visible {\n text-overflow: unset;\n}\n\n.sidebar-title {\n margin-bottom: 0.3em;\n font-size: 1.2em;\n font-weight: 500;\n}\n\n.sidebar-subtitle {\n color: var(--grey-50);\n font-size: inherit; /* reset browser styles */\n}\n\n.sidebar-title2,\n.sidebar-title3 {\n font-weight: normal;\n}\n\n.sidebar-title2 {\n margin: 0.9em 0 0.4em;\n}\n\n.sidebar-title3 {\n margin: 0.7em 0 0.3em;\n}\n\n.sidebar-label {\n color: var(--grey-50);\n grid-column-start: 1;\n margin-inline-start: var(--sidebar-indent);\n white-space: nowrap;\n}\n\n.sidebar-label-indent {\n margin-inline-start: calc(var(--sidebar-indent) * 2);\n}\n\n.sidebar-value,\n.sidebar-percentage {\n text-align: end;\n white-space: nowrap;\n}\n\n.sidebar-histogram-bar {\n background-color: var(--grey-30);\n grid-column-start: span 3;\n margin-inline-start: var(--sidebar-indent);\n}\n\n.sidebar-histogram-bar-color {\n height: 5px;\n}\n\n.sidebar-histogram-bar-color.category-color-transparent {\n /* A white bar does not show up well here */\n background-color: var(--grey-50);\n}\n\n.sidebar-histogram-bar-color.category-color-grey {\n /* The grey category color is the same our background color, choose a darker grey instead. */\n background-color: var(--grey-50);\n}\n\n.sidebar-toggle {\n padding: 0;\n border: 0;\n background: 0;\n color: var(--grey-50);\n font-size: inherit;\n}\n\n/* Opt out of the default photon styling, as it doesn't look very nice with the\n overflow: hidden of the container */\n.sidebar-toggle:focus-visible {\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n color: var(--blue-60);\n text-decoration: underline;\n}\n\n/* This is the twisty arrow */\n.sidebar-toggle::before {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n margin-top: 1px;\n background: none;\n border-block-width: 5px;\n border-inline-end-width: 4px;\n border-inline-start-color: currentcolor;\n border-inline-start-width: 8px;\n content: '';\n\n /* Make sure the arrow is visible in High Contrast Mode */\n forced-color-adjust: none;\n margin-inline-start: -11px;\n}\n\n.sidebar-toggle:active:hover {\n color: var(--grey-60);\n}\n\n.sidebar-toggle.expanded::before {\n border-width: 8px 5px 4px;\n border-style: solid;\n border-color: currentcolor transparent transparent;\n margin-top: 3px;\n margin-inline-start: -12px;\n}\n\n@media (forced-colors: active) {\n .sidebar-toggle,\n .sidebar-toggle::before {\n color: ButtonText;\n }\n\n .sidebar-label:hover .sidebar-toggle,\n .sidebar-label:hover .sidebar-toggle::before {\n color: SelectedItem;\n }\n}\n"],sourceRoot:""}]);const s=i},5605:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".threadHeightGraph{height:25px}.threadHeightGraphCanvas{display:block;height:25px;width:100%}.threadCPUGraph{margin-top:5px}","",{version:3,sources:["webpack://./src/components/shared/thread/HeightGraph.css"],names:[],mappings:"AAIA,mBACE,WACF,CAEA,yBACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,gBACE,cACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadHeightGraph {\n height: 25px;\n}\n\n.threadHeightGraphCanvas {\n display: block;\n width: 100%;\n height: 25px;\n}\n\n.threadCPUGraph {\n margin-top: 5px;\n}\n"],sourceRoot:""}]);const s=i},5609:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4391),n.b),d=new URL(n(8122),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.idleSearchField{align-items:center;display:inline-flex;flex-flow:row nowrap;position:relative}.photon-input.idleSearchFieldInput{border:.5px solid #aaa;height:19px;padding:0 18px 0 17px}.idleSearchFieldInput{background:url(${h}) 3px no-repeat #fff;background-size:11px 11px;flex:1;margin:0;position:relative}.idleSearchFieldButton{background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:5px;width:11px;-moz-user-focus:ignore;vertical-align:middle}.idleSearchFieldInput:invalid+.idleSearchFieldButton{visibility:hidden}`,"",{version:3,sources:["webpack://./src/components/shared/IdleSearchField.css"],names:[],mappings:"AAIA,iBAIE,kBAAmB,CAFnB,mBAAoB,CACpB,oBAAqB,CAFrB,iBAIF,CAEA,mCAKE,sBAAwB,CAFxB,WAAY,CACZ,qBAEF,CAEA,sBAIE,qEACiB,CACjB,yBAA0B,CAJ1B,MAAO,CACP,QAAS,CAFT,iBAMF,CAEA,uBAQE,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CALV,iBAAkB,CAClB,SAAU,CAEV,UAAW,CAQX,sBAAuB,CACvB,qBACF,CAEA,qDACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.idleSearchField {\n position: relative; /* to properly position the button */\n display: inline-flex;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.photon-input.idleSearchFieldInput {\n /* the chain class selectors are used here \n to override the styling for the photon-input class */\n height: 19px;\n padding: 0 18px 0 17px; /* right padding for the reset button, left padding for the search icon */\n border: 0.5px solid #aaa;\n}\n\n.idleSearchFieldInput {\n position: relative;\n flex: 1;\n margin: 0;\n background: url(../../../res/img/svg/searchfield-icon.svg) 3px center\n no-repeat white;\n background-size: 11px 11px;\n}\n\n.idleSearchFieldButton {\n position: absolute;\n right: 5px;\n overflow: hidden;\n width: 11px;\n height: 11px;\n padding: 0;\n border: 0;\n background: url(../../../res/img/svg/searchfield-cancel.svg) top left\n no-repeat;\n background-size: contain;\n color: transparent;\n -moz-user-focus: ignore;\n vertical-align: middle;\n}\n\n.idleSearchFieldInput:invalid + .idleSearchFieldButton {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const m=u},5617:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.metaInfoPanel{font-size:12px;line-height:20px;width:350px}.metaInfoPanel,.metaInfoPanel .arrowPanelArrow:before{background-color:#fff}.metaInfoSection{margin-bottom:12px;margin-top:7px}.metaInfoLabel,.metaInfoWideLabel{color:var(--grey-50);display:inline-block;width:120px}.metaInfoLargeContent{max-height:100px;overflow:scroll;overflow-wrap:anywhere}.metaInfoWideLabel{width:140px}.visualMetricsLabel{color:var(--grey-50);display:inline-block;width:145px}.metaInfoList{list-style:circle inside;margin:-19px 0 0 122px;padding:0}.metaInfoListRow+.metaInfoListRow{margin-top:7px}.metaInfoSubTitle{border-bottom:1px solid #0000000d;font-size:1.2em;font-weight:700;margin:0;padding-bottom:4px;padding-top:4px}.moreInfoSummary{align-items:center;display:flex;justify-content:center;margin-top:24px;-webkit-user-select:none;user-select:none}.moreInfoSummary::marker{content:""}.moreInfoPart{margin-top:15px}.moreInfoValue{overflow-x:scroll}',"",{version:3,sources:["webpack://./src/components/app/MenuButtons/MetaInfo.css"],names:[],mappings:"AAIA,eAEE,cAAe,CACf,gBAAiB,CAFjB,WAGF,CAEA,sDAEE,qBACF,CAEA,iBAEE,kBAAmB,CADnB,cAEF,CAEA,kCAIE,oBAAqB,CAFrB,oBAAqB,CACrB,WAEF,CAEA,sBAEE,gBAAiB,CADjB,eAAgB,CAEhB,sBACF,CAEA,mBACE,WACF,CAEA,oBAGE,oBAAqB,CAFrB,oBAAqB,CACrB,WAEF,CAEA,cAWE,wBAAyB,CADzB,sBAAuB,CATvB,SAWF,CAEA,kCACE,cACF,CAEA,kBAGE,iCAA0C,CAE1C,eAAgB,CAChB,eAAgB,CAFhB,QAAS,CAFT,kBAAmB,CADnB,eAMF,CAEA,iBAEE,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CACvB,eAAgB,CAChB,wBAAiB,CAAjB,gBACF,CAEA,yBACE,UACF,CAEA,cACE,eACF,CAEA,eACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.metaInfoPanel {\n width: 350px;\n font-size: 12px;\n line-height: 20px;\n}\n\n.metaInfoPanel,\n.metaInfoPanel .arrowPanelArrow::before {\n background-color: white;\n}\n\n.metaInfoSection {\n margin-top: 7px;\n margin-bottom: 12px;\n}\n\n.metaInfoLabel,\n.metaInfoWideLabel {\n display: inline-block;\n width: 120px;\n color: var(--grey-50);\n}\n\n.metaInfoLargeContent {\n overflow: scroll;\n max-height: 100px;\n overflow-wrap: anywhere;\n}\n\n.metaInfoWideLabel {\n width: 140px;\n}\n\n.visualMetricsLabel {\n display: inline-block;\n width: 145px;\n color: var(--grey-50);\n}\n\n.metaInfoList {\n padding: 0;\n\n /* Explanations about this margin line:\n * - we need to reset it anyway, because we need to remove the default style\n * for <ul> tags.\n * - -19px moves the list up, next to the label.\n * - 122px is 120px (the width of the label) + a few pixels so that this looks\n * better.\n */\n margin: -19px 0 0 122px;\n list-style: circle inside;\n}\n\n.metaInfoListRow + .metaInfoListRow {\n margin-top: 7px;\n}\n\n.metaInfoSubTitle {\n padding-top: 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid rgb(0 0 0 / 0.05);\n margin: 0;\n font-size: 1.2em;\n font-weight: 700;\n}\n\n.moreInfoSummary {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 24px;\n user-select: none;\n}\n\n.moreInfoSummary::marker {\n content: '';\n}\n\n.moreInfoPart {\n margin-top: 15px;\n}\n\n.moreInfoValue {\n overflow-x: scroll;\n}\n"],sourceRoot:""}]);const s=i},5682:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".jsTracerSettings{border-bottom:1px solid var(--grey-30);color:var(--ink-70);display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.jsTracerSettingsList{align-items:flex-start;display:flex;flex:1;list-style:none;margin:0;padding:0}.jsTracerSettingsListItem{margin:0 5px;padding:0}.jsTracerSettingsLabel{align-items:center;display:inline-flex;flex-flow:row nowrap;height:25px;-webkit-user-select:none;user-select:none}.jsTracerSettingsCheckbox{margin:0 5px}.jsTracerSettingsFilter{border-right:1px solid var(--grey-20);padding-right:10px;white-space:nowrap}.jsTracerSettingsFilterLabel{align-items:center;display:inline-flex;padding-right:5px}.jsTracerSettingsFilterInput{margin:0 4px}","",{version:3,sources:["webpack://./src/components/js-tracer/Settings.css"],names:[],mappings:"AAIA,kBAKE,sCAAuC,CACvC,mBAAoB,CALpB,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAKZ,gBAAiB,CAHjB,SAIF,CAEA,sBAGE,sBAAuB,CAFvB,YAAa,CACb,MAAO,CAIP,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,0BAEE,YAAa,CADb,SAEF,CAEA,uBAIE,kBAAmB,CAHnB,mBAAoB,CAEpB,oBAAqB,CADrB,WAAY,CAGZ,wBAAiB,CAAjB,gBACF,CAEA,0BACE,YACF,CAEA,wBAEE,qCAAsC,CADtC,kBAAmB,CAEnB,kBACF,CAEA,6BAEE,kBAAmB,CADnB,mBAAoB,CAEpB,iBACF,CAEA,6BACE,YACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.jsTracerSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n border-bottom: 1px solid var(--grey-30);\n color: var(--ink-70);\n line-height: 25px;\n}\n\n.jsTracerSettingsList {\n display: flex;\n flex: 1;\n align-items: flex-start;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.jsTracerSettingsListItem {\n padding: 0;\n margin: 0 5px;\n}\n\n.jsTracerSettingsLabel {\n display: inline-flex;\n height: 25px;\n flex-flow: row nowrap;\n align-items: center;\n user-select: none;\n}\n\n.jsTracerSettingsCheckbox {\n margin: 0 5px;\n}\n\n.jsTracerSettingsFilter {\n padding-right: 10px;\n border-right: 1px solid var(--grey-20);\n white-space: nowrap;\n}\n\n.jsTracerSettingsFilterLabel {\n display: inline-flex;\n align-items: center;\n padding-right: 5px;\n}\n\n.jsTracerSettingsFilterInput {\n margin: 0 4px;\n}\n"],sourceRoot:""}]);const s=i},5705:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackVisualProgressGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackVisualProgressCanvas{height:100%;position:absolute;width:100%}.timelineTrackVisualProgressGraphDot{background-color:var(--dot-color);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackVisualProgressTooltipLine{white-space:nowrap}.timelineTrackVisualProgressTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackVisualProgress.css"],names:[],mappings:"AAIA,kCAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,mCAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,qCAOE,iCAAkC,CAHlC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,wCACE,kBACF,CAEA,0CAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackVisualProgressGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackVisualProgressCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackVisualProgressGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--dot-color);\n pointer-events: none;\n}\n\n.timelineTrackVisualProgressTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackVisualProgressTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},5737:(e,t,n)=>{"use strict";n.d(t,{AU:()=>C,ES:()=>u,Gh:()=>i,Ie:()=>v,LK:()=>c,Qh:()=>w,Ry:()=>m,SQ:()=>b,U1:()=>k,WG:()=>o,WU:()=>p,Z:()=>E,cy:()=>s,dY:()=>h,oP:()=>y,qc:()=>f,uv:()=>d,uz:()=>g,vA:()=>l,x2:()=>A,zl:()=>a});var r=n(9839);function o(){return{frame:[],prefix:[],category:[],subcategory:[],length:0}}function a(){return{weightType:"samples",weight:null,stack:[],time:[],length:0}}function i(){return{frame:[],prefix:[],length:0}}function s(){return{weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0}}function l(){return{address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],line:[],column:[],length:0}}function c(e){return{address:e.address.slice(),inlineDepth:e.inlineDepth.slice(),category:e.category.slice(),subcategory:e.subcategory.slice(),func:e.func.slice(),nativeSymbol:e.nativeSymbol.slice(),innerWindowID:e.innerWindowID.slice(),line:e.line.slice(),column:e.column.slice(),length:e.length}}function d(){return{isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0}}function u(e){return{isJS:e.isJS.slice(),relevantForJS:e.relevantForJS.slice(),name:e.name.slice(),resource:e.resource.slice(),fileName:e.fileName.slice(),lineNumber:e.lineNumber.slice(),columnNumber:e.columnNumber.slice(),length:e.length}}function h(e){return{libIndex:e.libIndex.slice(),address:e.address.slice(),name:e.name.slice(),functionSize:e.functionSize.slice(),length:e.length}}function p(){return{lib:[],name:[],host:[],type:[],length:0}}function m(){return{libIndex:[],address:[],name:[],functionSize:[],length:0}}function f(){return{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0}}function g(){return{time:[],className:[],typeName:[],coarseType:[],weight:[],weightType:"bytes",inNursery:[],stack:[],length:0}}function A(){return{time:[],weight:[],weightType:"bytes",stack:[],length:0}}function b(e){return{data:e.data.slice(),name:e.name.slice(),startTime:e.startTime.slice(),endTime:e.endTime.slice(),phase:e.phase.slice(),category:e.category.slice(),length:e.length}}const C={unknown:0,library:1,addon:2,webhost:3,otherhost:4,url:5};function v(){return{id:[],name:[],baseURL:[],length:0}}function y(){return[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}]}function w(e){return{processType:"default",processStartupTime:0,processShutdownTime:null,registerTime:0,unregisterTime:null,pausedRanges:[],name:"Empty",isMainThread:!1,pid:"0",tid:0,samples:{weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0},markers:{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},stackTable:{frame:[],prefix:[],length:0},frameTable:{address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],line:[],column:[],length:0},stringArray:[],funcTable:{isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0},resourceTable:{lib:[],name:[],host:[],type:[],length:0},nativeSymbols:{libIndex:[],address:[],name:[],functionSize:[],length:0},...e}}function E(){return{meta:{interval:1,startTime:0,abi:"",misc:"",oscpu:"",platform:"",processType:0,extensions:{id:[],name:[],baseURL:[],length:0},categories:[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}],product:"Firefox",stackwalk:0,toolkit:"",version:r.xC,preprocessedProfileVersion:r.Ie,appBuildID:"",sourceURL:"",physicalCPUs:0,logicalCPUs:0,CPUName:"",symbolicated:!0,markerSchema:[]},libs:[],pages:[],threads:[]}}function k(){return{prefix:new Int32Array(0),subtreeRangeEnd:new Uint32Array(0),nextSibling:new Int32Array(0),func:new Int32Array(0),category:new Int32Array(0),subcategory:new Int32Array(0),innerWindowID:new Float64Array(0),sourceFramesInlinedIntoSymbol:new Int32Array(0),depth:new Int32Array(0),maxDepth:-1,length:0}}},5799:(e,t,n)=>{"use strict";e.exports=n.p+"fd040fb5f4e7a515bb3c.svg"},5800:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".calltreeTransformNavigator{background:var(--grey-10);border-top:1px solid var(--grey-30);color:var(--ink-70)}","",{version:3,sources:["webpack://./src/components/shared/TransformNavigator.css"],names:[],mappings:"AAIA,4BAEE,yBAA0B,CAD1B,mCAAoC,CAEpC,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.calltreeTransformNavigator {\n border-top: 1px solid var(--grey-30);\n background: var(--grey-10);\n color: var(--ink-70);\n}\n"],sourceRoot:""}]);const s=i},5812:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".photon-display-20{font-size:36px;font-weight:200}.photon-title-40{font-size:28px;font-weight:300}.photon-title-30{font-size:22px;font-weight:300}.photon-title-20{font-size:17px;font-weight:700}.photon-title-10{font-size:13px;font-weight:700}.photon-body-30{font-size:17px;font-weight:400}.photon-body-20,.photon-caption-30{font-size:15px;font-weight:400}.photon-body-10,.photon-caption-20{font-size:13px;font-weight:400}.photon-caption-10{font-size:11px;font-weight:400}","",{version:3,sources:["webpack://./res/css/photon/typography.css"],names:[],mappings:"AAkBA,mBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CAGf,eACF,CAEA,iBACE,cAAe,CAGf,eACF,CAEA,gBACE,cAAe,CACf,eACF,CAEA,mCAEE,cAAe,CACf,eACF,CAEA,mCAEE,cAAe,CACf,eACF,CAEA,mBACE,cAAe,CACf,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Specification at https://design.firefox.com/photon/visuals/typography.html */\n\n/* The idea is to use the same numbers for the same context (eg title 20 with\n * body 20 and caption 20), and of course use the hierarchy of titles when\n * needed.\n *\n * When using these styles one has to take care to colors and margins as well.\n * Margins are well described in\n * https://design.firefox.com/photon/visuals/grid.html.\n *\n * In the future we may want to make this more generic by applying these styles\n * by default to h1, h2, h3, etc.\n */\n\n.photon-display-20 {\n font-size: 36px;\n font-weight: 200;\n}\n\n.photon-title-40 {\n font-size: 28px;\n font-weight: 300;\n}\n\n.photon-title-30 {\n font-size: 22px;\n font-weight: 300;\n}\n\n.photon-title-20 {\n font-size: 17px;\n\n /* This should be 500 instead of bold, but 500 isn't available on all fonts */\n font-weight: bold;\n}\n\n.photon-title-10 {\n font-size: 13px;\n\n /* This should be 500 instead of bold, but 500 isn't available on all fonts */\n font-weight: bold;\n}\n\n.photon-body-30 {\n font-size: 17px;\n font-weight: 400;\n}\n\n.photon-body-20,\n.photon-caption-30 {\n font-size: 15px;\n font-weight: 400;\n}\n\n.photon-body-10,\n.photon-caption-20 {\n font-size: 13px;\n font-weight: 400;\n}\n\n.photon-caption-10 {\n font-size: 11px;\n font-weight: 400;\n}\n"],sourceRoot:""}]);const s=i},5887:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".marker-list-value{margin:0;padding-inline-start:25px}.marker-table-value{border-collapse:collapse;margin-block-start:-1px}.marker-table-value th{text-align:start}","",{version:3,sources:["webpack://./src/components/tooltip/Marker.css"],names:[],mappings:"AAIA,mBACE,QAAS,CACT,yBACF,CAGA,oBACE,wBAAyB,CACzB,uBACF,CAEA,uBACE,gBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.marker-list-value {\n margin: 0;\n padding-inline-start: 25px;\n}\n\n/* These styles are useful to make the table well-aligned with its labels in tooltips. */\n.marker-table-value {\n border-collapse: collapse;\n margin-block-start: -1px;\n}\n\n.marker-table-value th {\n text-align: start;\n}\n"],sourceRoot:""}]);const s=i},5944:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(8122),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.appKeyboardShortcuts{animation:appKeyboardShortcutsFadeIn .2s;background:#000a;box-sizing:border-box;display:none;height:100vh;left:0;padding:20px;position:absolute;top:0;width:100vw}.appKeyboardShortcuts.open{align-items:center;display:flex}.appKeyboardShortcutsBox{animation:arrowPanelAppear .2s cubic-bezier(.07,.95,0,1);background:#fff;border-radius:5px;filter:drop-shadow(0 0 .5px rgb(0 0 0/.4)) drop-shadow(0 4px 5px rgb(0 0 0/.4));margin:0 auto;max-height:calc(100% - 40px);max-width:800px;overflow:hidden}.appKeyboardShortcutsScroll{overflow-y:scroll}.appKeyboardShortcutsRow{display:flex;margin:7px 0;max-width:400px}.appKeyboardShortcutsLabel{flex:1;font-size:13px;padding-inline-end:25px}.appKeyboardShortcutsShortcut{align-items:center;background:#dedee3c9;border-radius:3px;box-shadow:1px 1px #00000045;color:#000;display:inline-flex;margin-inline-start:6px;padding:0 5px}.appKeyboardShortcutsContent{display:grid;margin:40px;grid-gap:80px;grid-template-columns:1fr 1fr}.appKeyboardShortcutsContent h2{margin:40px 0 10px}.appKeyboardShortcutsContent h2:first-child{margin-top:0}.appKeyboardShortcutsHeader{background:var(--grey-20);border-bottom:1px solid var(--grey-30);display:flex;font-size:13px}.appKeyboardShortcutsHeaderTitle{flex:1;margin:10px}.appKeyboardShortcutsHeaderClose{background:url(${u}) 10px no-repeat;border:0;border-radius:3px;cursor:pointer;font-size:inherit;margin:4px;padding:6px 6px 6px 30px}.appKeyboardShortcutsHeaderClose:hover{background-color:var(--grey-30)}.appKeyboardShortcutsNoInteract{pointer-events:none}@keyframes appKeyboardShortcutsFadeIn{0%{background:#0000}to{background:#000a}}@media (prefers-reduced-motion){.appKeyboardShortcuts,.appKeyboardShortcutsBox{animation:none}}@media (forced-colors:active){.appKeyboardShortcutsBox{border:1px solid CanvasText}.appKeyboardShortcutsHeaderClose{background-color:ButtonFace;border:1px solid ButtonText;color:ButtonText}.appKeyboardShortcutsHeaderClose:hover{background-color:SelectedItemText;border-color:SelectedItem;color:SelectedItem}.appKeyboardShortcutsShortcut{background:SelectedItemText;color:SelectedItem;outline:1px solid CanvasText}}`,"",{version:3,sources:["webpack://./src/components/app/KeyboardShortcut.css"],names:[],mappings:"AAIA,sBASE,wCAA0C,CAC1C,gBAAiB,CAHjB,qBAAsB,CAHtB,YAAa,CAEb,YAAa,CAHb,MAAO,CAKP,YAAa,CAPb,iBAAkB,CAClB,KAAM,CAGN,WAMF,CAEA,2BAEE,kBAAmB,CADnB,YAEF,CAEA,yBAQE,wDAA+D,CAC/D,eAAgB,CAHhB,iBAAkB,CAIlB,+EACyC,CAJzC,aAAc,CAFd,4BAA6B,CAH7B,eAAgB,CADhB,eAWF,CAEA,4BACE,iBACF,CAEA,yBACE,YAAa,CAEb,YAAe,CADf,eAEF,CAEA,2BACE,MAAO,CACP,cAAe,CACf,uBACF,CAEA,8BAEE,kBAAmB,CAGnB,oBAAmC,CADnC,iBAAkB,CAElB,4BAAqC,CACrC,UAAW,CANX,mBAAoB,CAOpB,uBAAwB,CALxB,aAMF,CAEA,6BACE,YAAa,CACb,WAAY,CACZ,aAAc,CACd,6BACF,CAEA,gCACE,kBACF,CAEA,4CACE,YACF,CAEA,4BAGE,yBAA0B,CAD1B,sCAAuC,CADvC,YAAa,CAGb,cACF,CAEA,iCACE,MAAO,CACP,WACF,CAEA,iCAOE,iEACW,CANX,QAAS,CACT,iBAAkB,CAMlB,cAAe,CACf,iBAAkB,CAJlB,UAAW,CALX,wBAUF,CAEA,uCACE,+BACF,CAEA,gCACE,mBACF,CAEA,sCACE,GACE,gBACF,CAEA,GACE,gBACF,CACF,CAGA,gCACE,+CAEE,cACF,CACF,CAEA,8BACE,yBACE,2BACF,CAEA,iCAEE,2BAA4B,CAD5B,2BAA4B,CAE5B,gBACF,CAEA,uCAEE,iCAAkC,CADlC,yBAA0B,CAE1B,kBACF,CAEA,8BACE,2BAA4B,CAC5B,kBAAmB,CACnB,4BACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.appKeyboardShortcuts {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n width: 100vw;\n height: 100vh;\n box-sizing: border-box;\n padding: 20px;\n animation: appKeyboardShortcutsFadeIn 0.2s;\n background: #000a;\n}\n\n.appKeyboardShortcuts.open {\n display: flex;\n align-items: center;\n}\n\n.appKeyboardShortcutsBox {\n overflow: hidden;\n max-width: 800px;\n\n /* appKeyboardShortcuts margin top + bottom = 40px */\n max-height: calc(100% - 40px);\n border-radius: 5px;\n margin: 0 auto;\n animation: arrowPanelAppear 0.2s cubic-bezier(0.07, 0.95, 0, 1);\n background: #fff;\n filter: drop-shadow(0 0 0.5px rgb(0 0 0 / 0.4))\n drop-shadow(0 4px 5px rgb(0 0 0 / 0.4));\n}\n\n.appKeyboardShortcutsScroll {\n overflow-y: scroll;\n}\n\n.appKeyboardShortcutsRow {\n display: flex;\n max-width: 400px;\n margin: 7px 0px;\n}\n\n.appKeyboardShortcutsLabel {\n flex: 1;\n font-size: 13px;\n padding-inline-end: 25px;\n}\n\n.appKeyboardShortcutsShortcut {\n display: inline-flex;\n align-items: center;\n padding: 0 5px;\n border-radius: 3px;\n background: rgb(222 222 227 / 0.79);\n box-shadow: 1px 1px rgb(0 0 0 / 0.27);\n color: #000;\n margin-inline-start: 6px;\n}\n\n.appKeyboardShortcutsContent {\n display: grid;\n margin: 40px;\n grid-gap: 80px;\n grid-template-columns: 1fr 1fr;\n}\n\n.appKeyboardShortcutsContent h2 {\n margin: 40px 0 10px;\n}\n\n.appKeyboardShortcutsContent h2:first-child {\n margin-top: 0;\n}\n\n.appKeyboardShortcutsHeader {\n display: flex;\n border-bottom: 1px solid var(--grey-30);\n background: var(--grey-20);\n font-size: 13px;\n}\n\n.appKeyboardShortcutsHeaderTitle {\n flex: 1;\n margin: 10px;\n}\n\n.appKeyboardShortcutsHeaderClose {\n padding: 6px 6px 6px 30px;\n border: 0;\n border-radius: 3px;\n\n /* Allow for the photon focus ring to fit in the space by using a 4px margin. */\n margin: 4px;\n background: url(../../../res/img/svg/searchfield-cancel.svg) 10px center\n no-repeat;\n cursor: pointer;\n font-size: inherit;\n}\n\n.appKeyboardShortcutsHeaderClose:hover {\n background-color: var(--grey-30);\n}\n\n.appKeyboardShortcutsNoInteract {\n pointer-events: none;\n}\n\n@keyframes appKeyboardShortcutsFadeIn {\n from {\n background: #0000;\n }\n\n to {\n background: #000a;\n }\n}\n\n/* Do not animate the panel or the background if user prefers reduced motion */\n@media (prefers-reduced-motion) {\n .appKeyboardShortcuts,\n .appKeyboardShortcutsBox {\n animation: none;\n }\n}\n\n@media (forced-colors: active) {\n .appKeyboardShortcutsBox {\n border: 1px solid CanvasText;\n }\n\n .appKeyboardShortcutsHeaderClose {\n border: 1px solid ButtonText;\n background-color: ButtonFace;\n color: ButtonText;\n }\n\n .appKeyboardShortcutsHeaderClose:hover {\n border-color: SelectedItem;\n background-color: SelectedItemText;\n color: SelectedItem;\n }\n\n .appKeyboardShortcutsShortcut {\n background: SelectedItemText;\n color: SelectedItem;\n outline: 1px solid CanvasText;\n }\n}\n"],sourceRoot:""}]);const h=d},5947:(e,t,n)=>{"use strict";e.exports=n.p+"8846b19a497771fe0e9d.svg"},5995:(e,t,n)=>{"use strict";e.exports=n.p+"7c7ac3c7df370340cfd2.svg"},5997:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".compareHome{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;font-size:130%;margin:auto;padding:8em;width:75%}.compareHomeForm{align-items:center;display:grid;grid-gap:1em;grid-template-columns:auto 1fr}.compareHomeSubmitButton{font-size:inherit;grid-column-start:span 2}.compareHomeFormLabel{white-space:nowrap}@media (max-width:450px){.compareHome{padding:1em;width:auto}}","",{version:3,sources:["webpack://./src/components/app/CompareHome.css"],names:[],mappings:"AAAA,aAWE,eAAgB,CALhB,qBAAsB,CACtB,iBAAkB,CAKlB,6BAA8B,CAC9B,cAAe,CALf,WAAY,CAHZ,WAAY,CAHZ,SAYF,CAEA,iBAEE,kBAAmB,CADnB,YAAa,CAEb,YAAa,CACb,8BACF,CAEA,yBACE,iBAAkB,CAClB,wBACF,CAEA,sBACE,kBACF,CAEA,yBACE,aAEE,WAAY,CADZ,UAEF,CACF",sourcesContent:[".compareHome {\n /* Position */\n width: 75%;\n\n /* Box */\n padding: 8em;\n border: 1px solid #ccc;\n border-radius: 3px;\n margin: auto;\n\n /* Other */\n background: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.compareHomeForm {\n display: grid;\n align-items: center;\n grid-gap: 1em;\n grid-template-columns: auto 1fr;\n}\n\n.compareHomeSubmitButton {\n font-size: inherit; /* override the photon style to make it nicer with the rest of the form. */\n grid-column-start: span 2;\n}\n\n.compareHomeFormLabel {\n white-space: nowrap;\n}\n\n@media (max-width: 450px) {\n .compareHome {\n width: auto;\n padding: 1em;\n }\n}\n"],sourceRoot:""}]);const s=i},6009:(e,t,n)=>{var r,o;window,e.exports=(r=n(5556),o=n(6540),function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t){e.exports=r},function(e,t){e.exports=o},function(e,t,n){e.exports=n(3)},function(e,t,n){"use strict";n.r(t);var r=n(1),o=n.n(r),a=n(0),i=n.n(a);function s(e){var t=e.size||0,n=e.percentage?"%":"px",r="layout-pane",a={};return e.primary?r+=" layout-pane-primary":e.vertical?a.height="".concat(t).concat(n):a.width="".concat(t).concat(n),o.a.createElement("div",{className:r,style:a},e.children)}s.propTypes={vertical:i.a.bool,primary:i.a.bool,size:i.a.number,percentage:i.a.bool,children:i.a.oneOfType([i.a.arrayOf(i.a.node),i.a.node])},s.defaultProps={vertical:!1,primary:!1,size:0,percentage:!1,children:[]};var l=s;function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if(document.body.createTextRange){var e=document.body.createTextRange();e.collapse(),e.select()}else window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}var f=function(){function e(t){var n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(n=!(r=u(e).call(this,t))||"object"!==c(r)&&"function"!=typeof r?p(this):r).handleResize=n.handleResize.bind(p(p(n))),n.handleMouseMove=n.handleMouseMove.bind(p(p(n))),n.handleMouseUp=n.handleMouseUp.bind(p(p(n))),n.handleTouchMove=n.handleTouchMove.bind(p(p(n))),n.handleSplitterMouseDown=n.handleSplitterMouseDown.bind(p(p(n))),n.state={secondaryPaneSize:0,resizing:!1},n}var t,n;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(e,o.a.Component),t=e,(n=[{key:"componentDidMount",value:function(){var e;if(window.addEventListener("resize",this.handleResize),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchend",this.handleMouseUp),document.addEventListener("touchmove",this.handleTouchMove),void 0!==this.props.secondaryInitialSize)e=this.props.secondaryInitialSize;else{var t,n=this.container.getBoundingClientRect();t=this.splitter?this.splitter.getBoundingClientRect():{width:4,height:4},e=this.getSecondaryPaneSize(n,t,{left:n.left+(n.width-t.width)/2,top:n.top+(n.height-t.height)/2},!1)}this.setState({secondaryPaneSize:e})}},{key:"componentDidUpdate",value:function(e,t){t.secondaryPaneSize!==this.state.secondaryPaneSize&&this.props.onSecondaryPaneSizeChange&&this.props.onSecondaryPaneSizeChange(this.state.secondaryPaneSize),t.resizing!==this.state.resizing&&(this.state.resizing?this.props.onDragStart&&this.props.onDragStart():this.props.onDragEnd&&this.props.onDragEnd())}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("touchend",this.handleMouseUp),document.removeEventListener("touchmove",this.handleTouchMove)}},{key:"getSecondaryPaneSize",value:function(e,t,n,r){var o,a,i,s;this.props.vertical?(o=e.height,a=t.height,i=n.top-e.top):(o=e.width,a=t.width,i=n.left-e.left),r&&(i-=a/2),i<0?i=0:i>o-a&&(i=o-a);var l=o-a-(s=1===this.props.primaryIndex?i:o-a-i);return this.props.percentage&&(s=100*s/o,l=100*l/o,a=100*a/o,o=100),l<this.props.primaryMinSize?s=Math.max(s-(this.props.primaryMinSize-l),0):s<this.props.secondaryMinSize&&(s=Math.min(o-a-this.props.primaryMinSize,this.props.secondaryMinSize)),s}},{key:"handleResize",value:function(){if(this.splitter&&!this.props.percentage){var e=this.container.getBoundingClientRect(),t=this.splitter.getBoundingClientRect(),n=this.getSecondaryPaneSize(e,t,{left:t.left,top:t.top},!1);this.setState({secondaryPaneSize:n})}}},{key:"handleMouseMove",value:function(e){if(this.state.resizing){var t=this.container.getBoundingClientRect(),n=this.splitter.getBoundingClientRect(),r=this.getSecondaryPaneSize(t,n,{left:e.clientX,top:e.clientY},!0);m(),this.setState({secondaryPaneSize:r})}}},{key:"handleTouchMove",value:function(e){this.handleMouseMove(e.changedTouches[0])}},{key:"handleSplitterMouseDown",value:function(){m(),this.setState({resizing:!0})}},{key:"handleMouseUp",value:function(){this.setState((function(e){return e.resizing?{resizing:!1}:null}))}},{key:"render",value:function(){var e=this,t="splitter-layout";this.props.customClassName&&(t+=" ".concat(this.props.customClassName)),this.props.vertical&&(t+=" splitter-layout-vertical"),this.state.resizing&&(t+=" layout-changing");var n=o.a.Children.toArray(this.props.children).slice(0,2);0===n.length&&n.push(o.a.createElement("div",null));for(var r=[],a=0!==this.props.primaryIndex&&1!==this.props.primaryIndex?0:this.props.primaryIndex,i=0;i<n.length;++i){var s=!0,c=null;n.length>1&&i!==a&&(s=!1,c=this.state.secondaryPaneSize),r.push(o.a.createElement(l,{vertical:this.props.vertical,percentage:this.props.percentage,primary:s,size:c},n[i]))}return o.a.createElement("div",{className:t,ref:function(t){e.container=t}},r[0],r.length>1&&o.a.createElement("div",{role:"separator",className:"layout-splitter",ref:function(t){e.splitter=t},onMouseDown:this.handleSplitterMouseDown,onTouchStart:this.handleSplitterMouseDown}),r.length>1&&r[1])}}])&&d(t.prototype,n),e}();f.propTypes={customClassName:i.a.string,vertical:i.a.bool,percentage:i.a.bool,primaryIndex:i.a.number,primaryMinSize:i.a.number,secondaryInitialSize:i.a.number,secondaryMinSize:i.a.number,onDragStart:i.a.func,onDragEnd:i.a.func,onSecondaryPaneSizeChange:i.a.func,children:i.a.arrayOf(i.a.node)},f.defaultProps={customClassName:"",vertical:!1,percentage:!1,primaryIndex:0,primaryMinSize:0,secondaryInitialSize:void 0,secondaryMinSize:0,onDragStart:null,onDragEnd:null,onSecondaryPaneSizeChange:null,children:[]};var g=f;t.default=g}]))},6046:(e,t,n)=>{"use strict";n.d(t,{jI:()=>o,sZ:()=>s,tB:()=>i,ut:()=>a});var r=n(5458);function o(e,t,n,r){const o=[],a=[];for(let i=0;i<e.length;i++){const s=e.frame[i],l=e.prefix[i],c=t.func[s],d=n.fileName[c];let u=null,h=null!==l?a[l]:null;d===r&&(u=t.line[s],null!==u&&(null===h?h=new Set([u]):h.has(u)||(h=new Set(h),h.add(u)))),o.push(u),a.push(h)}return{selfLine:o,stackLines:a}}function a(e,t,n,o){const a=o.asInverted();return null!==a?function(e,t,n,o){const a=o.depthForNode(n),[i,s]=o.getSuffixOrderIndexRangeForCallNode(n),l=o.isRoot(n),c=o.getStackIndexToNonInvertedCallNodeIndex(),d=e.prefix,u=o.getSuffixOrderIndexes(),h=[],p=[];for(let n=0;n<e.length;n++){let o=null,m=null;const f=(0,r.Nv)(n,i,s,u,a,c,d);if(null!==f){const n=e.frame[f],r=t.line[n];null!==r&&(m=new Set([r]),l&&(o=r))}h.push(o),p.push(m)}return{selfLine:h,stackLines:p}}(e,t,n,a):function(e,t,n,r){const o=r.getStackIndexToNonInvertedCallNodeIndex(),a=[],i=[];for(let r=0;r<e.length;r++){let s=null,l=null;if(o[r]===n){const n=e.frame[r];s=t.line[n],null!==s&&(l=new Set([s]))}else{const t=e.prefix[r];l=null!==t?i[t]:null}a.push(s),i.push(l)}return{selfLine:a,stackLines:i}}(e,t,n,o)}const i={totalLineHits:new Map,selfLineHits:new Map};function s(e,t){if(null===e)return i;const{selfLine:n,stackLines:r}=e,o=new Map,a=new Map;for(let e=0;e<t.length;e++){const i=t.stack[e];if(null===i)continue;const s=t.weight?t.weight[e]:1,l=r[i];if(null!==l)for(const e of l){const t=o.get(e)??0;o.set(e,t+s)}const c=n[i];if(null!==c){const e=a.get(c)??0;a.set(c,e+s)}}return{totalLineHits:o,selfLineHits:a}}},6098:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".panelSettingsList{align-items:stretch;display:flex;flex:1;justify-content:flex-start;list-style:none;margin:0;padding:0}.panelSettingsListItem{align-items:center;display:flex;margin:0 5px;padding:0}.panelSettingsListItem:not(:first-child){border-left:1px solid var(--grey-20);padding-left:10px}","",{version:3,sources:["webpack://./src/components/shared/PanelSettingsList.css"],names:[],mappings:"AAIA,mBAGE,mBAAoB,CAFpB,YAAa,CACb,MAAO,CAEP,0BAA2B,CAG3B,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,uBAEE,kBAAmB,CADnB,YAAa,CAGb,YAAa,CADb,SAEF,CAEA,yCAEE,oCAAqC,CADrC,iBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.panelSettingsList {\n display: flex;\n flex: 1;\n align-items: stretch;\n justify-content: flex-start;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.panelSettingsListItem {\n display: flex;\n align-items: center;\n padding: 0;\n margin: 0 5px;\n}\n\n.panelSettingsListItem:not(:first-child) {\n padding-left: 10px;\n border-left: 1px solid var(--grey-20);\n}\n"],sourceRoot:""}]);const s=i},6169:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".networkChart{cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}.networkChart .treeViewBody{border-top:1px solid var(--grey-30)}.networkChart .treeViewBody .treeViewBodyInnerWrapper{flex-flow:column nowrap;width:100%}.networkChartRowItem{display:block;height:16px;position:relative;width:100%}.networkChartRowItem.odd{background-color:#f5f5f5}.networkChartRowItem.isHovered,.networkChartRowItem.isRightClicked,.networkChartRowItem.isSelected,.networkChartRowItem:hover{background-color:#bbe0f6}.networkChartRowItemLabel{display:inline-block;margin-left:4px;max-height:16px;overflow:hidden;pointer-events:none;white-space:nowrap;width:100%}.networkChartRowItemBar{background-color:var(--grey-20);border-radius:2px;box-shadow:0 0 0 1px inset var(--marker-color);display:inline-block;height:14px;margin:1px 0;opacity:.7;overflow:hidden;position:absolute;top:0}.networkChartRowItemBarPhase{background-color:var(--marker-color);height:100%;position:absolute}.networkChartRowItemUriOptional{color:var(--grey-40);max-width:90px}.networkChartRowItemUriOptional,.networkChartRowItemUriRequired{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.networkChartRowItemUriRequired{max-width:35%}.networkChartRowItem:hover .networkChartRowItemUriOptional{color:unset}","",{version:3,sources:["webpack://./src/components/network-chart/index.css"],names:[],mappings:"AAIA,cAIE,cAAe,CAHf,YAAa,CACb,MAAO,CACP,uBAAwB,CAExB,wBAAiB,CAAjB,gBACF,CAEA,4BACE,mCACF,CAEA,sDAEE,uBAAwB,CADxB,UAEF,CAEA,qBAEE,aAAc,CAEd,WAAY,CAHZ,iBAAkB,CAElB,UAEF,CAEA,yBACE,wBACF,CAEA,8HAIE,wBACF,CAEA,0BACE,oBAAqB,CAIrB,eAAgB,CADhB,eAAgB,CAFhB,eAAgB,CAOhB,mBAAoB,CACpB,kBAAmB,CAPnB,UAQF,CAEA,wBAUE,+BAAgC,CAJhC,iBAAkB,CAKlB,8CAA+C,CAR/C,oBAAqB,CAErB,WAAY,CAEZ,YAAa,CAKb,UAAY,CARZ,eAAgB,CAHhB,iBAAkB,CAClB,KAWF,CAEA,6BAGE,oCAAqC,CADrC,WAAY,CADZ,iBAGF,CAEA,gCAIE,oBAAqB,CADrB,cAIF,CAEA,gEARE,oBAAqB,CACrB,eAAgB,CAGhB,sBAAuB,CACvB,kBASF,CANA,gCAGE,aAGF,CAEA,2DACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.networkChart {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n cursor: default;\n user-select: none;\n}\n\n.networkChart .treeViewBody {\n border-top: 1px solid var(--grey-30);\n}\n\n.networkChart .treeViewBody .treeViewBodyInnerWrapper {\n width: 100%;\n flex-flow: column nowrap;\n}\n\n.networkChartRowItem {\n position: relative;\n display: block;\n width: 100%;\n height: 16px;\n}\n\n.networkChartRowItem.odd {\n background-color: #f5f5f5;\n}\n\n.networkChartRowItem:hover,\n.networkChartRowItem.isRightClicked,\n.networkChartRowItem.isSelected,\n.networkChartRowItem.isHovered {\n background-color: #bbe0f6;\n}\n\n.networkChartRowItemLabel {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n max-height: 16px;\n margin-left: 4px;\n\n /* This is necessary so that the marker element gets the mouse events, because\n * the label element is on top becaose of the :hover rule below. */\n pointer-events: none;\n white-space: nowrap;\n}\n\n.networkChartRowItemBar {\n position: absolute; /* The bar will be positioned in JS. */\n top: 0;\n display: inline-block;\n overflow: hidden; /* This clips this element's children using its border-radius */\n height: 14px;\n border-radius: 2px;\n margin: 1px 0; /* Because the line's height is 16px, this margin vertically centers the bar */\n\n /* styling properties */\n background-color: var(--grey-20);\n box-shadow: 0 0 0 1px inset var(--marker-color);\n opacity: 0.7;\n}\n\n.networkChartRowItemBarPhase {\n position: absolute;\n height: 100%;\n background-color: var(--marker-color);\n}\n\n.networkChartRowItemUriOptional {\n display: inline-block;\n overflow: hidden;\n max-width: 90px;\n color: var(--grey-40);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.networkChartRowItemUriRequired {\n display: inline-block;\n overflow: hidden;\n max-width: 35%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.networkChartRowItem:hover .networkChartRowItemUriOptional {\n color: unset;\n}\n"],sourceRoot:""}]);const s=i},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);r&&i[d[0]]||(void 0!==a&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},6426:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},6444:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".metaInfoGrid{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.metaInfoGrid>div{margin:2px 0}.metaInfoGrid>div:nth-child(-n+4){display:block;font-weight:500}.metaInfoGrid>div:nth-child(4n+1){color:var(--grey-50);font-weight:500}.metaInfoGrid>div:not(:nth-child(4n+1)){text-align:right}.metaInfoValueRight{display:inline-block;text-align:right;width:calc(100% - 140px)}","",{version:3,sources:["webpack://./src/components/app/MenuButtons/MetaOverheadStatistics.css"],names:[],mappings:"AAIA,cACE,YAAa,CAEb,mCAAqC,CADrC,kBAEF,CAEA,kBACE,YACF,CAEA,kCACE,aAAc,CACd,eACF,CAEA,kCACE,oBAAqB,CACrB,eACF,CAEA,wCACE,gBACF,CAEA,oBACE,oBAAqB,CAErB,gBAAiB,CADjB,wBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.metaInfoGrid {\n display: grid;\n margin-bottom: 20px;\n grid-template-columns: repeat(4, 1fr);\n}\n\n.metaInfoGrid > div {\n margin: 2px 0;\n}\n\n.metaInfoGrid > div:nth-child(-n + 4) {\n display: block;\n font-weight: 500;\n}\n\n.metaInfoGrid > div:nth-child(4n + 1) {\n color: var(--grey-50);\n font-weight: 500;\n}\n\n.metaInfoGrid > div:not(:nth-child(4n + 1)) {\n text-align: right;\n}\n\n.metaInfoValueRight {\n display: inline-block;\n width: calc(100% - 140px);\n text-align: right;\n}\n"],sourceRoot:""}]);const s=i},6455:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".backtrace{margin:0;padding:0}.tooltip .backtrace{overflow:hidden}.backtraceStackFrame{list-style:none;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.backtraceStackFrameOrigin{color:#0000008c;font-style:normal;margin-left:10px}.backtraceStackFrame_isFrameLabel{color:#0009}","",{version:3,sources:["webpack://./src/components/shared/Backtrace.css"],names:[],mappings:"AAAA,WAEE,QAAS,CADT,SAEF,CAEA,oBACE,eACF,CAEA,qBAOE,eAAgB,CADhB,QAAS,CAJT,eAAgB,CAGhB,SAAU,CAKV,sBAAuB,CACvB,kBACF,CAEA,2BAEE,eAAwB,CACxB,iBAAkB,CAFlB,gBAGF,CAEA,kCACE,WACF",sourcesContent:[".backtrace {\n padding: 0;\n margin: 0;\n}\n\n.tooltip .backtrace {\n overflow: hidden;\n}\n\n.backtraceStackFrame {\n /* Position */\n overflow: hidden;\n\n /* Box */\n padding: 0;\n margin: 0;\n list-style: none;\n\n /* Other */\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.backtraceStackFrameOrigin {\n margin-left: 10px;\n color: rgb(0 0 0 / 0.55);\n font-style: normal;\n}\n\n.backtraceStackFrame_isFrameLabel {\n color: rgb(0 0 0 / 0.6);\n}\n"],sourceRoot:""}]);const s=i},6487:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackCustomMarkerGraph{height:var(--graph-height);margin-bottom:2px;position:relative;width:100%}.timelineTrackCustomMarkerCanvas{height:100%;position:absolute;width:100%}.timelineTrackCustomMarkerGraphDot{border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}","",{version:3,sources:["webpack://./src/components/timeline/TrackCustomMarker.css"],names:[],mappings:"AAIA,gCAGE,0BAA2B,CAC3B,iBAAkB,CAHlB,iBAAkB,CAClB,UAGF,CAEA,iCAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,mCAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackCustomMarkerGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n margin-bottom: 2px;\n}\n\n.timelineTrackCustomMarkerCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackCustomMarkerGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},6503:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".threadActivityGraph{height:25px}.threadActivityGraphCanvas{display:block;height:100%;width:100%}","",{version:3,sources:["webpack://./src/components/shared/thread/ActivityGraph.css"],names:[],mappings:"AAIA,qBACE,WACF,CAEA,2BACE,aAAc,CAEd,WAAY,CADZ,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadActivityGraph {\n height: 25px;\n}\n\n.threadActivityGraphCanvas {\n display: block;\n width: 100%;\n height: 100%;\n}\n"],sourceRoot:""}]);const s=i},6505:(e,t,n)=>{"use strict";e.exports=n.p+"6c6b49af3a86dfdd44e6.svg"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},6544:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5199),n.b),d=new URL(n(4898),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.photon-checkbox{appearance:none;background-color:var(--grey-90-a10);border:1px solid var(--grey-90-a30);border-radius:2px;padding:0;position:relative}.photon-checkbox:focus-visible{border:none}.photon-checkbox-default{height:16px;margin:0 4px;width:16px}.photon-checkbox-micro{height:13px;margin:0 3px;width:13px}.photon-checkbox:hover:not([disabled]){background-color:var(--grey-90-a20)}.photon-checkbox:checked:not([disabled]){background-color:var(--blue-60);border:none}.photon-checkbox:hover:active:not([disabled]){background-color:var(--grey-90-a30)}.photon-checkbox-default:checked:not([disabled]){background-image:url(${h})}.photon-checkbox-micro:checked:not([disabled]){background-image:url(${p})}.photon-checkbox:checked:hover:not([disabled]){background-color:var(--blue-70)}.photon-checkbox:checked:hover:active:not([disabled]){background-color:var(--blue-80)}`,"",{version:3,sources:["webpack://./res/css/photon/checkbox.css"],names:[],mappings:"AAIA,iBAKE,eAAgB,CAChB,mCAAoC,CAHpC,mCAAoC,CACpC,iBAAkB,CAFlB,SAAU,CADV,iBAMF,CAGA,+BACE,WACF,CAGA,yBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAGA,uBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAEA,uCACE,mCACF,CAEA,yCAEE,+BAAgC,CADhC,WAEF,CAEA,8CACE,mCACF,CAEA,iDACE,wDACF,CAEA,+CACE,wDACF,CAEA,+CACE,+BACF,CAEA,sDACE,+BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-checkbox {\n position: relative;\n padding: 0;\n border: 1px solid var(--grey-90-a30);\n border-radius: 2px;\n appearance: none;\n background-color: var(--grey-90-a10);\n}\n\n/* Remove the border, as it compets with box-shadow styles applied with focus.css */\n.photon-checkbox:focus-visible {\n border: none;\n}\n\n/* Use this class with the photon-checkbox for the canonical photon styling. */\n.photon-checkbox-default {\n width: 16px;\n height: 16px;\n margin: 0 4px;\n}\n\n/* Use this class with the photon-checkbox for the custom micro variant. */\n.photon-checkbox-micro {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n}\n\n.photon-checkbox:hover:not([disabled]) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-checkbox:checked:not([disabled]) {\n border: none;\n background-color: var(--blue-60);\n}\n\n.photon-checkbox:hover:active:not([disabled]) {\n background-color: var(--grey-90-a30);\n}\n\n.photon-checkbox-default:checked:not([disabled]) {\n background-image: url(../../img/svg/checkbox-check-16.svg);\n}\n\n.photon-checkbox-micro:checked:not([disabled]) {\n background-image: url(../../img/svg/checkbox-check-13.svg);\n}\n\n.photon-checkbox:checked:hover:not([disabled]) {\n background-color: var(--blue-70);\n}\n\n.photon-checkbox:checked:hover:active:not([disabled]) {\n background-color: var(--blue-80);\n}\n"],sourceRoot:""}]);const m=u},6558:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackContextMenuItem{display:flex}.timelineTrackContextMenuSpacer{flex:1;width:20px}.timelineTrackContextMenuPid{color:var(--grey-90-a60)}.react-contextmenu-item--selected .timelineTrackContextMenuPid{color:#fff}.timelineTrackContextMenu{max-height:43.5vh;overflow-y:auto}.trackContextMenuSearchFilter{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}","",{version:3,sources:["webpack://./src/components/timeline/TrackContextMenu.css"],names:[],mappings:"AAIA,8BACE,YACF,CAMA,gCAEE,MAAO,CADP,UAEF,CAEA,6BACE,wBACF,CAEA,+DACE,UACF,CAEA,0BACE,iBAAkB,CAClB,eACF,CAEA,8BACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackContextMenuItem {\n display: flex;\n}\n\n/* This spacer allows the width of a menu item to both grow and\n * shrink. By letting it shrink, it won't cause the text to get\n * unaligned or flow into the checkmark on the far right when a\n * scrollbar appears. */\n.timelineTrackContextMenuSpacer {\n width: 20px;\n flex: 1;\n}\n\n.timelineTrackContextMenuPid {\n color: var(--grey-90-a60);\n}\n\n.react-contextmenu-item--selected .timelineTrackContextMenuPid {\n color: #fff;\n}\n\n.timelineTrackContextMenu {\n max-height: 43.5vh;\n overflow-y: auto;\n}\n\n.trackContextMenuSearchFilter {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},6648:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackThread{display:flex;flex:1;flex-flow:column nowrap;position:relative;z-index:1}.timelineTrackThreadBlank{background-color:#fff;height:var(--timeline-track-thread-blank-height);left:-1px;padding-left:1px;position:relative;width:100%}","",{version:3,sources:["webpack://./src/components/timeline/TrackThread.css"],names:[],mappings:"AAIA,qBAGE,YAAa,CACb,MAAO,CACP,uBAAwB,CAJxB,iBAAkB,CAClB,SAIF,CAEA,0BAOE,qBAAsB,CAFtB,gDAAiD,CAFjD,SAAU,CAGV,gBAAiB,CAJjB,iBAAkB,CAElB,UAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackThread {\n position: relative;\n z-index: 1;\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.timelineTrackThreadBlank {\n /* Clip off the border to the left, by overflowing by one pixel. */\n position: relative;\n left: -1px;\n width: 100%;\n height: var(--timeline-track-thread-blank-height);\n padding-left: 1px;\n background-color: #fff;\n}\n"],sourceRoot:""}]);const s=i},6720:(e,t,n)=>{"use strict";n.d(t,{S:()=>r,x:()=>o});const r="SIMPLEPERF";function o(e,t){return new TextDecoder("utf8").decode(t.slice(0,e.length))===e}},6756:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,":root{--category-color-transparent:#fff;--category-color-purple:var(--purple-70);--category-color-green:var(--green-60);--category-color-orange:var(--orange-50);--category-color-yellow:#ffe129;--category-color-lightblue:var(--blue-40);--category-color-blue:var(--blue-60);--category-color-brown:var(--orange-70);--category-color-magenta:var(--magenta-60);--category-color-red:var(--red-60);--category-color-lightred:#a4000f9a;--category-color-gray:var(--grey-40);--category-color-grey:var(--grey-40);--category-color-darkgray:var(--grey-50);--category-color-darkgrey:var(--grey-50)}.category-color-transparent{background-color:var(--category-color-transparent);border-color:#0006}.category-color-purple{background-color:var(--category-color-purple)}.category-color-green{background-color:var(--category-color-green)}.category-color-orange{background-color:var(--category-color-orange)}.category-color-yellow{background-color:var(--category-color-yellow)}.category-color-lightblue{background-color:var(--category-color-lightblue)}.category-color-blue{background-color:var(--category-color-blue)}.category-color-brown{background-color:var(--category-color-brown)}.category-color-magenta{background-color:var(--category-color-magenta)}.category-color-red{background-color:var(--category-color-red)}.category-color-lightred{background-color:var(--category-color-lightred)}.category-color-gray,.category-color-grey{background-color:var(--category-color-grey)}.category-color-darkgray,.category-color-darkgrey{background-color:var(--category-color-darkgrey)}","",{version:3,sources:["webpack://./res/css/categories.css"],names:[],mappings:"AAIA,MACE,iCAAkC,CAClC,wCAAyC,CACzC,sCAAuC,CACvC,wCAAyC,CACzC,+BAAgC,CAChC,yCAA0C,CAC1C,oCAAqC,CACrC,uCAAwC,CACxC,0CAA2C,CAC3C,kCAAmC,CACnC,mCAAoC,CACpC,oCAAqC,CACrC,oCAAqC,CACrC,wCAAyC,CACzC,wCACF,CAQA,4BAEE,kDAAmD,CADnD,kBAEF,CAEA,uBACE,6CACF,CAEA,sBACE,4CACF,CAEA,uBACE,6CACF,CAEA,uBACE,6CACF,CAEA,0BACE,gDACF,CAEA,qBACE,2CACF,CAEA,sBACE,4CACF,CAEA,wBACE,8CACF,CAEA,oBACE,0CACF,CAEA,yBACE,+CACF,CAEA,0CAEE,2CACF,CAEA,kDAEE,+CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n:root {\n --category-color-transparent: #fff;\n --category-color-purple: var(--purple-70);\n --category-color-green: var(--green-60);\n --category-color-orange: var(--orange-50);\n --category-color-yellow: #ffe129; /* this yellow has more contrast than yellow-50 */\n --category-color-lightblue: var(--blue-40);\n --category-color-blue: var(--blue-60);\n --category-color-brown: var(--orange-70);\n --category-color-magenta: var(--magenta-60);\n --category-color-red: var(--red-60);\n --category-color-lightred: #a4000f9a; /* red-70 with 60 alpha */\n --category-color-gray: var(--grey-40);\n --category-color-grey: var(--grey-40);\n --category-color-darkgray: var(--grey-50);\n --category-color-darkgrey: var(--grey-50);\n}\n\n/**\n * These classes should be used to create a small color swatch to describe a\n * category. They should be used with the class `colored-square` that's defined\n * in res/css/style.css.\n * They're global css classes that can be used across the project.\n */\n.category-color-transparent {\n border-color: rgb(0 0 0 / 0.4);\n background-color: var(--category-color-transparent);\n}\n\n.category-color-purple {\n background-color: var(--category-color-purple);\n}\n\n.category-color-green {\n background-color: var(--category-color-green);\n}\n\n.category-color-orange {\n background-color: var(--category-color-orange);\n}\n\n.category-color-yellow {\n background-color: var(--category-color-yellow);\n}\n\n.category-color-lightblue {\n background-color: var(--category-color-lightblue);\n}\n\n.category-color-blue {\n background-color: var(--category-color-blue);\n}\n\n.category-color-brown {\n background-color: var(--category-color-brown);\n}\n\n.category-color-magenta {\n background-color: var(--category-color-magenta);\n}\n\n.category-color-red {\n background-color: var(--category-color-red);\n}\n\n.category-color-lightred {\n background-color: var(--category-color-lightred);\n}\n\n.category-color-gray,\n.category-color-grey {\n background-color: var(--category-color-grey);\n}\n\n.category-color-darkgray,\n.category-color-darkgrey {\n background-color: var(--category-color-darkgrey);\n}\n"],sourceRoot:""}]);const s=i},6767:(e,t,n)=>{"use strict";e.exports=n.p+"a3196e840709b18a3119.svg"},6780:(e,t,n)=>{"use strict";e.exports=n.p+"58c5415e952fb6dddd6b.png"},6830:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".DetailsContainer .layout-pane>*{box-sizing:border-box;height:100%;width:100%}.DetailsContainer .layout-pane:not(.layout-pane-primary){max-width:600px}.DetailsContainer{position:unset}.DetailsContainer .layout-splitter{background:var(--grey-10);border-left:1px solid var(--grey-30);border-top:1px solid var(--grey-30)}.DetailsContainer .layout-splitter:hover{background:var(--grey-30)}","",{version:3,sources:["webpack://./src/components/app/DetailsContainer.css"],names:[],mappings:"AAAA,iCAGE,qBAAsB,CADtB,WAAY,CADZ,UAGF,CAEA,yDACE,eACF,CAGA,kBAGE,cACF,CAEA,mCAGE,yBAA0B,CAD1B,oCAAqC,CADrC,mCAGF,CAEA,yCACE,yBACF",sourcesContent:[".DetailsContainer .layout-pane > * {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\n.DetailsContainer .layout-pane:not(.layout-pane-primary) {\n max-width: 600px;\n}\n\n/* overriding defaults from splitter-layout */\n.DetailsContainer {\n /* SplitterLayout injects position: absolute, this conflicts with our using\n * Flex Layout. */\n position: unset;\n}\n\n.DetailsContainer .layout-splitter {\n border-top: 1px solid var(--grey-30);\n border-left: 1px solid var(--grey-30);\n background: var(--grey-10); /* Same background as sidebars */\n}\n\n.DetailsContainer .layout-splitter:hover {\n background: var(--grey-30); /* same as the border above */\n}\n"],sourceRoot:""}]);const s=i},6855:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.timelineSelection.activeTab{--thread-label-column-width:0px}.timelineTrack:not(:first-child) .timelineTrackGlobalRow.activeTab .timelineTrackThread{border-top:1px solid var(--grey-30);padding-top:10px}.timelineResources{background-color:#fff}.timelineResourcesHeader{cursor:pointer;font-size:12px;height:var(--resources-header-height);line-height:var(--resources-header-height);padding-left:20px;position:relative}.timelineResourcesHeader:before{left:8px;top:calc(50% - 5px)}.timelineResourceTracks{list-style:none;margin:0;padding:0;position:relative}.timelineTrackResource:first-child{border-top:none}.timelineTrackResourceRow{flex-direction:column;position:relative}.timelineTrackResourceRow .threadActivityGraph,.timelineTrackResourceRow .timelineMarkers{transition:height .2s}.timelineResourcesHeader .timelineMarkers{height:0}.timelineTrackResourceRow:not(.opened) .timelineMarkers{height:3px}.timelineTrackResourceRow.opened .timelineMarkers:not(.timelineMarkersGeckoMain) canvas{height:6px}.timelineTrackResourceRow .timelineMarkersGeckoMain{height:9px}.timelineResourcesHeader .threadActivityGraph{height:20px}.timelineTrackResourceRow:not(.opened) .threadActivityGraph{height:6px}.timelineTrackResourceLabel{cursor:pointer;line-height:var(--resources-header-height);max-width:calc(100% - 55px);overflow:hidden;padding:0 5px 0 30px;text-overflow:ellipsis;white-space:nowrap}.timelineTrackResourceRow.opened .timelineTrackResourceLabel{position:relative}.timelineTrackResourceLabel:before{left:20px;top:5px}.timelineResourcesHeader:before,.timelineTrackResourceLabel:before{border-bottom:5px solid #0000;border-left:5px solid #979797;border-top:5px solid #0000;content:"";height:0;position:absolute;transition:transform .2s;width:0}.timelineResourcesHeader.opened:before,.timelineTrackResourceRow.opened .timelineTrackResourceLabel:before{transform:rotate(90deg)}.timelineTrackResourceLabel span{font-weight:700}.timelineResourcesHeader .timelineTrackThread.condensed{height:var(--resources-header-height);left:0;position:absolute;top:0;width:100%}',"",{version:3,sources:["webpack://./src/components/timeline/ActiveTabTimeline.css"],names:[],mappings:"AAIA,6BAKE,+BACF,CAEA,wFAIE,mCAAoC,CADpC,gBAEF,CAGA,mBACE,qBACF,CAEA,yBAIE,cAAe,CACf,cAAe,CAHf,qCAAsC,CAItC,0CAA2C,CAH3C,iBAAkB,CAFlB,iBAMF,CAEA,gCAEE,QAAS,CADT,mBAEF,CAEA,wBAIE,eAAgB,CADhB,QAAS,CADT,SAAU,CADV,iBAIF,CAGA,mCACE,eACF,CAEA,0BAEE,qBAAsB,CADtB,iBAEF,CAEA,0FAEE,qBACF,CAEA,0CAKE,QACF,CAGA,wDACE,UACF,CAMA,wFAGE,UACF,CAMA,oDACE,UACF,CAEA,8CACE,WACF,CAEA,4DACE,UACF,CAEA,4BAIE,cAAe,CACf,0CAA2C,CAH3C,2BAA4B,CAD5B,eAAgB,CAEhB,oBAAqB,CAGrB,sBAAuB,CACvB,kBACF,CAEA,6DACE,iBACF,CAEA,mCAEE,SAAU,CADV,OAEF,CAEA,mEAQE,6BAAoC,CACpC,6BAA8B,CAF9B,0BAAiC,CAGjC,UAAW,CANX,QAAS,CAFT,iBAAkB,CASlB,wBAA0B,CAR1B,OASF,CAEA,2GAGE,uBACF,CAEA,iCACE,eACF,CAEA,wDAKE,qCAAsC,CAFtC,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineSelection.activeTab {\n /**\n * We have to use `0px` instead of `0` because we are using this variable in\n * `calc` functions and they expect a pixel unit instead of an integer.\n */\n --thread-label-column-width: 0px;\n}\n\n.timelineTrack:not(:first-child)\n .timelineTrackGlobalRow.activeTab\n .timelineTrackThread {\n padding-top: 10px;\n border-top: 1px solid var(--grey-30);\n}\n\n/* Active tab timeline resources panel */\n.timelineResources {\n background-color: #fff;\n}\n\n.timelineResourcesHeader {\n position: relative;\n height: var(--resources-header-height);\n padding-left: 20px;\n cursor: pointer;\n font-size: 12px;\n line-height: var(--resources-header-height);\n}\n\n.timelineResourcesHeader::before {\n top: calc(50% - 5px);\n left: 8px;\n}\n\n.timelineResourceTracks {\n position: relative;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n/* Active tab timeline resource tracks */\n.timelineTrackResource:first-child {\n border-top: none;\n}\n\n.timelineTrackResourceRow {\n position: relative;\n flex-direction: column;\n}\n\n.timelineTrackResourceRow .threadActivityGraph,\n.timelineTrackResourceRow .timelineMarkers {\n transition: height 0.2s;\n}\n\n.timelineResourcesHeader .timelineMarkers {\n /*\n * TODO: Currently we don't show any markers for merged resource track but we\n * should add jank markers.\n */\n height: 0;\n}\n\n/* Set the marker height of the closed resources to 3px */\n.timelineTrackResourceRow:not(.opened) .timelineMarkers {\n height: 3px;\n}\n\n/**\n * Double the marker height of markers when they are open, except the main marker\n * row, because it should be heigher (it's set by the full timeline css).\n */\n.timelineTrackResourceRow.opened\n .timelineMarkers:not(.timelineMarkersGeckoMain)\n canvas {\n height: 6px;\n}\n\n/**\n * This is the main markers section. Since it has additional marker rows,\n * we need to set it a heigher value.\n */\n.timelineTrackResourceRow .timelineMarkersGeckoMain {\n height: 9px;\n}\n\n.timelineResourcesHeader .threadActivityGraph {\n height: 20px;\n}\n\n.timelineTrackResourceRow:not(.opened) .threadActivityGraph {\n height: 6px;\n}\n\n.timelineTrackResourceLabel {\n overflow: hidden;\n max-width: calc(100% - 55px);\n padding: 0 5px 0 30px;\n cursor: pointer;\n line-height: var(--resources-header-height);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.timelineTrackResourceRow.opened .timelineTrackResourceLabel {\n position: relative;\n}\n\n.timelineTrackResourceLabel::before {\n top: 5px;\n left: 20px;\n}\n\n.timelineResourcesHeader::before,\n.timelineTrackResourceLabel::before {\n position: absolute;\n width: 0;\n height: 0;\n\n /* Drawing the arrow */\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid #979797;\n content: '';\n transition: transform 0.2s;\n}\n\n.timelineResourcesHeader.opened::before,\n.timelineTrackResourceRow.opened .timelineTrackResourceLabel::before {\n /* Rotating the arrow if the panel is opened */\n transform: rotate(90deg);\n}\n\n.timelineTrackResourceLabel span {\n font-weight: bold;\n}\n\n.timelineResourcesHeader .timelineTrackThread.condensed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--resources-header-height);\n}\n"],sourceRoot:""}]);const s=i},6859:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,":root{--magenta-50:#ff1ad9;--magenta-60:#ed00b5;--magenta-70:#b5007f;--magenta-80:#7d004f;--magenta-90:#440027;--purple-30:#c069ff;--purple-40:#ad3bff;--purple-50:#9400ff;--purple-60:#8000d7;--purple-70:#6200a4;--purple-80:#440071;--purple-90:#25003e;--blue-40:#45a1ff;--blue-50:#0a84ff;--blue-50-a30:#0a84ff4d;--blue-60:#0060df;--blue-70:#003eaa;--blue-80:#002275;--blue-90:#000f40;--teal-50:#00feff;--teal-60:#00c8d7;--teal-70:#008ea4;--teal-80:#005a71;--teal-90:#002d3e;--green-50:#30e60b;--green-60:#12bc00;--green-70:#058b00;--green-80:#006504;--green-90:#003706;--yellow-50:#ffe900;--yellow-60:#d7b600;--yellow-60-a30:#d7b6004d;--yellow-70:#a47f00;--yellow-80:#715100;--yellow-90:#3e2800;--red-50:#ff0039;--red-60:#d70022;--red-60-a30:#d700224d;--red-70:#a4000f;--red-80:#5a0002;--red-90:#3e0200;--orange-50:#ff9400;--orange-60:#d76e00;--orange-70:#a44900;--orange-80:#712b00;--orange-90:#3e1300;--grey-10:#f9f9fa;--grey-10-a10:#f9f9fa1a;--grey-10-a20:#f9f9fa33;--grey-10-a40:#f9f9fa66;--grey-10-a60:#f9f9fa99;--grey-10-a80:#f9f9facc;--grey-20:#ededf0;--grey-30:#d7d7db;--grey-40:#b1b1b3;--grey-50:#737373;--grey-60:#4a4a4f;--grey-70:#38383d;--grey-80:#2a2a2e;--grey-90:#0c0c0d;--grey-90-a05:#0c0c0d0d;--grey-90-a10:#0c0c0d1a;--grey-90-a20:#0c0c0d33;--grey-90-a30:#0c0c0d4d;--grey-90-a40:#0c0c0d66;--grey-90-a50:#0c0c0d80;--grey-90-a60:#0c0c0d99;--grey-90-a70:#0c0c0db3;--grey-90-a80:#0c0c0dcc;--grey-90-a90:#0c0c0de6;--ink-40:#7175a8;--ink-50:#595e91;--ink-60:#464b76;--ink-70:#363959;--ink-80:#202340;--ink-90:#0f1126;--white-100:#fff}","",{version:3,sources:["webpack://./node_modules/photon-colors/photon-colors.css"],names:[],mappings:"AAMA,MACE,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CAErB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,iBAAkB,CAClB,iBAAkB,CAClB,uBAAsC,CACtC,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAElB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAElB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CAEnB,mBAAoB,CACpB,mBAAoB,CACpB,yBAAuC,CACvC,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,gBAAiB,CACjB,gBAAiB,CACjB,sBAAmC,CACnC,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CAEjB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,iBAAkB,CAClB,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,uBAAqC,CACrC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CAEpC,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CAEjB,gBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* AUTOGENERATED Photon Colors CSS Variables v3.3.2 */\n\n:root {\n --magenta-50: #ff1ad9;\n --magenta-60: #ed00b5;\n --magenta-70: #b5007f;\n --magenta-80: #7d004f;\n --magenta-90: #440027;\n\n --purple-30: #c069ff;\n --purple-40: #ad3bff;\n --purple-50: #9400ff;\n --purple-60: #8000d7;\n --purple-70: #6200a4;\n --purple-80: #440071;\n --purple-90: #25003e;\n\n --blue-40: #45a1ff;\n --blue-50: #0a84ff;\n --blue-50-a30: rgba(10, 132, 255, 0.3);\n --blue-60: #0060df;\n --blue-70: #003eaa;\n --blue-80: #002275;\n --blue-90: #000f40;\n\n --teal-50: #00feff;\n --teal-60: #00c8d7;\n --teal-70: #008ea4;\n --teal-80: #005a71;\n --teal-90: #002d3e;\n\n --green-50: #30e60b;\n --green-60: #12bc00;\n --green-70: #058b00;\n --green-80: #006504;\n --green-90: #003706;\n\n --yellow-50: #ffe900;\n --yellow-60: #d7b600;\n --yellow-60-a30: rgba(215, 182, 0, 0.3);\n --yellow-70: #a47f00;\n --yellow-80: #715100;\n --yellow-90: #3e2800;\n\n --red-50: #ff0039;\n --red-60: #d70022;\n --red-60-a30: rgba(215, 0, 34, 0.3);\n --red-70: #a4000f;\n --red-80: #5a0002;\n --red-90: #3e0200;\n\n --orange-50: #ff9400;\n --orange-60: #d76e00;\n --orange-70: #a44900;\n --orange-80: #712b00;\n --orange-90: #3e1300;\n\n --grey-10: #f9f9fa;\n --grey-10-a10: rgba(249, 249, 250, 0.1);\n --grey-10-a20: rgba(249, 249, 250, 0.2);\n --grey-10-a40: rgba(249, 249, 250, 0.4);\n --grey-10-a60: rgba(249, 249, 250, 0.6);\n --grey-10-a80: rgba(249, 249, 250, 0.8);\n --grey-20: #ededf0;\n --grey-30: #d7d7db;\n --grey-40: #b1b1b3;\n --grey-50: #737373;\n --grey-60: #4a4a4f;\n --grey-70: #38383d;\n --grey-80: #2a2a2e;\n --grey-90: #0c0c0d;\n --grey-90-a05: rgba(12, 12, 13, 0.05);\n --grey-90-a10: rgba(12, 12, 13, 0.1);\n --grey-90-a20: rgba(12, 12, 13, 0.2);\n --grey-90-a30: rgba(12, 12, 13, 0.3);\n --grey-90-a40: rgba(12, 12, 13, 0.4);\n --grey-90-a50: rgba(12, 12, 13, 0.5);\n --grey-90-a60: rgba(12, 12, 13, 0.6);\n --grey-90-a70: rgba(12, 12, 13, 0.7);\n --grey-90-a80: rgba(12, 12, 13, 0.8);\n --grey-90-a90: rgba(12, 12, 13, 0.9);\n\n --ink-40: #7175A8;\n --ink-50: #595E91;\n --ink-60: #464B76;\n --ink-70: #363959;\n --ink-80: #202340;\n --ink-90: #0f1126;\n\n --white-100: #ffffff;\n\n}\n"],sourceRoot:""}]);const s=i},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6942:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,a(n)))}return e}function a(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return o.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=i(t,n));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},6967:(e,t,n)=>{"use strict";var r={};n.r(r),n.d(r,{exclude:()=>Ft,extract:()=>Bt,parse:()=>It,parseUrl:()=>Nt,pick:()=>Mt,stringify:()=>_t,stringifyUrl:()=>Pt});var o={};n.r(o),n.d(o,{getActiveTabProfileSpecificState:()=>fo,getAllCommittedRanges:()=>yo,getAssemblyViewIsOpen:()=>So,getAssemblyViewNativeSymbol:()=>Bo,getAssemblyViewScrollGeneration:()=>Io,getCurrentSearchString:()=>Mo,getDataSource:()=>go,getFileNameInZipFilePath:()=>ua,getFirstSelectedThreadIndex:()=>Go,getFormattedMetaInfoString:()=>da,getFullProfileSpecificState:()=>mo,getGlobalTrackOrder:()=>jo,getHash:()=>Ao,getHiddenGlobalTracks:()=>$o,getHiddenLocalTracks:()=>Xo,getHiddenLocalTracksByPid:()=>Ko,getImplementationFilter:()=>wo,getInvertCallstack:()=>Lo,getIsActiveTabResourcesPanelOpen:()=>Po,getIsBottomBoxOpen:()=>sa,getLastSelectedCallTreeSummaryStrategy:()=>Eo,getLegacyHiddenThreads:()=>Vo,getLegacyThreadOrder:()=>Ho,getLocalTrackOrder:()=>Jo,getLocalTrackOrderByPid:()=>Yo,getMarkersSearchString:()=>Fo,getMarkersSearchStrings:()=>ea,getMarkersSearchStringsAsRegExp:()=>ra,getNetworkSearchString:()=>Ro,getNetworkSearchStrings:()=>ta,getNetworkSearchStringsAsRegExp:()=>oa,getPathInZipFileFromUrl:()=>ca,getProfileNameForStorage:()=>pa,getProfileNameFromUrl:()=>vo,getProfileNameWithDefault:()=>ha,getProfileSpecificState:()=>po,getProfileUrl:()=>bo,getProfilesToCompare:()=>Co,getSearchStrings:()=>Qo,getSearchStringsAsRegExp:()=>na,getSelectedTab:()=>Do,getSelectedThreadIndexes:()=>Uo,getSelectedThreadIndexesOrNull:()=>Oo,getSelectedThreadsKey:()=>zo,getShowJsTracerSummary:()=>_o,getShowUserTimings:()=>ko,getSourceViewFile:()=>xo,getSourceViewScrollGeneration:()=>To,getSymbolServerUrl:()=>ma,getTabFilter:()=>qo,getTimelineTrackOrganization:()=>No,getTimelineType:()=>Wo,getTransformStack:()=>ia,getUrlPredictor:()=>la,getUrlState:()=>ho,hasTabFilter:()=>Zo});var a={};n.r(a),n.d(a,{getActiveTabGlobalTrackFromReference:()=>ds,getActiveTabGlobalTrackReferences:()=>cs,getActiveTabGlobalTracks:()=>is,getActiveTabID:()=>Li,getActiveTabMainTrack:()=>as,getActiveTabProfileView:()=>Ja,getActiveTabResourceTrackFromReference:()=>us,getActiveTabResourceTracks:()=>ss,getActiveTabResourcesThreadsKey:()=>ls,getActiveTabTimeline:()=>os,getCategories:()=>Mi,getCommittedRange:()=>li,getCommittedRangeLabels:()=>ci,getContainsPrivateBrowsingInformation:()=>Bs,getContentfulSpeedIndexProgress:()=>Ii,getCounterSelectors:()=>Ui,getCounters:()=>Ei,getCurrentTableViewOptions:()=>ti,getDefaultCategory:()=>bi,getExtensionIdToNameMap:()=>ws,getExtensionTable:()=>Pi,getFocusCallTreeGeneration:()=>ai,getFullProfileView:()=>Xa,getGlobalTrackAndIndexByPid:()=>Yi,getGlobalTrackFromReference:()=>Ki,getGlobalTrackName:()=>ts,getGlobalTrackNames:()=>es,getGlobalTrackReferences:()=>ji,getGlobalTracks:()=>Vi,getHasPreferenceMarkers:()=>$i,getHiddenTrackCount:()=>ps,getIPCMarkerCorrelations:()=>zi,getInnerWindowIDSetByTabID:()=>Cs,getInnerWindowIDToPageMap:()=>Gi,getInnerWindowIDToTabMap:()=>Wi,getLastNonShiftClick:()=>yi,getLocalTrackFromReference:()=>Xi,getLocalTrackName:()=>rs,getLocalTrackNamesByPid:()=>ns,getLocalTracks:()=>Zi,getLocalTracksByPid:()=>qi,getMarkerSchema:()=>Fi,getMarkerSchemaByName:()=>Di,getMeta:()=>ki,getMouseTimePosition:()=>di,getOriginsProfileView:()=>Qa,getOriginsTimeline:()=>hs,getPageList:()=>Ai,getPagesMap:()=>gs,getPerceptualSpeedIndexProgress:()=>Bi,getPreviewSelection:()=>hi,getPreviewSelectionRange:()=>pi,getProcessIdToNameMap:()=>Ss,getProcessesWithMemoryTrack:()=>Ji,getProfile:()=>fi,getProfileExtraInfo:()=>Ps,getProfileFilterPageData:()=>xs,getProfileFilterPageDataByTabID:()=>Es,getProfileFilterSortedPageData:()=>ks,getProfileInterval:()=>gi,getProfileOrNull:()=>mi,getProfileRootRange:()=>ni,getProfileTimelineUnit:()=>si,getProfileUsesMultipleStackTypes:()=>Ns,getProfileView:()=>Za,getProfileViewOptions:()=>ei,getProfiledThreadIds:()=>Is,getProfilerConfiguration:()=>_i,getReferenceCPUDeltaPerMs:()=>ms,getRelevantInnerWindowIDsForActiveTab:()=>vs,getRelevantInnerWindowIDsForCurrentTab:()=>ys,getRelevantPagesForActiveTab:()=>bs,getRightClickedThreadIndex:()=>Qi,getRightClickedTrack:()=>wi,getSampleUnits:()=>Ni,getScrollToSelectionGeneration:()=>oi,getShouldDisplaySearchfox:()=>_s,getStringIndexMarkerFieldsByDataType:()=>Ri,getSymbolicationStatus:()=>ri,getTabToThreadIndexesMap:()=>Hi,getTableViewOptionSelectors:()=>ui,getThreadActivityScores:()=>fs,getThreadIdToNameMap:()=>Ts,getThreadNames:()=>vi,getThreads:()=>Ci,getVisualMetrics:()=>Ti,getVisualMetricsOrNull:()=>xi,getVisualProgress:()=>Si,getZeroAt:()=>ii});var i={};n.r(i),n.d(i,{getExpandedZipFileIndexes:()=>Rs,getHasZipFile:()=>Os,getSelectedZipFileIndex:()=>Fs,getZipFile:()=>Ls,getZipFileErrorMessage:()=>Us,getZipFileMaxDepth:()=>Ws,getZipFileState:()=>Ds,getZipFileTable:()=>Gs,getZipFileTableOrNull:()=>zs,getZipFileTree:()=>Vs,getZipFileTreeOrNull:()=>Hs,getZippedProfilesState:()=>Ms});var s={};n.r(s),n.d(s,{getApp:()=>js,getBrowserConnection:()=>nl,getBrowserConnectionStatus:()=>tl,getCurrentProfileUploadedInformation:()=>ll,getExperimental:()=>el,getHasZoomedViaMousewheel:()=>Ys,getIsDragAndDropDragging:()=>il,getIsDragAndDropOverlayRegistered:()=>sl,getIsEventDelayTracksEnabled:()=>rl,getIsExperimentalCPUGraphsEnabled:()=>ol,getIsExperimentalProcessCPUTracksEnabled:()=>al,getIsNewProfileLoadAllowed:()=>ul,getIsNewlyPublished:()=>Qs,getIsSidebarOpen:()=>qs,getLastVisibleThreadTabSlug:()=>Xs,getPanelLayoutGeneration:()=>Zs,getScreenshotTrackHeight:()=>cl,getSidebarOpenCategories:()=>pl,getTimelineHeight:()=>dl,getTimelineMarginLeft:()=>hl,getTrackThreadHeights:()=>Js,getUrlSetupPhase:()=>Ks,getView:()=>$s});var l={};n.r(l),n.d(l,{getAbortFunction:()=>Jd,getCheckedSharingOptions:()=>Ud,getFilenameString:()=>zd,getHasPrePublishedState:()=>tu,getHasSanitizedProfile:()=>ru,getIsHidingStaleProfile:()=>nu,getPrePublishedState:()=>eu,getPublishState:()=>Od,getRemoveProfileInformation:()=>Gd,getSanitizedProfile:()=>Vd,getSanitizedProfileData:()=>jd,getShouldSanitizeByDefault:()=>Qd,getUploadError:()=>Zd,getUploadGeneration:()=>Yd,getUploadPhase:()=>Kd,getUploadProgress:()=>qd,getUploadProgressString:()=>Xd,getUploadState:()=>$d});var c={};n.r(c),n.d(c,{getAreThereAnyProcessCPUCounters:()=>au,getIsCPUUtilizationProvided:()=>ou});var d={};n.r(d),n.d(d,{getAssemblyCodeCache:()=>lu,getAssemblyViewCode:()=>du,getSourceCodeCache:()=>iu,getSourceViewCode:()=>su});var u={};n.r(u),n.d(u,{getIconClassName:()=>hu,getIconsWithClassNames:()=>uu});var h={};n.r(h),n.d(h,{getDirection:()=>gu,getL10nState:()=>pu,getLocalization:()=>mu,getPrimaryLocale:()=>fu,getPseudoStrategy:()=>bu,getRequestedLocales:()=>Au});var p={};n.r(p),n.d(p,{addCollapseResourceTransformToStack:()=>Yh,addTransformToStack:()=>Kh,changeCallTreeSearchString:()=>_h,changeCallTreeSummaryStrategy:()=>zh,changeExpandedCallNodes:()=>Ph,changeGlobalTrackOrder:()=>ph,changeHoveredMarker:()=>Rh,changeImplementationFilter:()=>Uh,changeInvertCallstack:()=>Gh,changeLocalTrackOrder:()=>kh,changeMarkersSearchString:()=>Lh,changeMouseTimePosition:()=>Qh,changeNetworkSearchString:()=>Oh,changeProfileName:()=>Xh,changeRightClickedCallNode:()=>nh,changeRightClickedMarker:()=>Dh,changeRightClickedTrack:()=>uh,changeSelectedCallNode:()=>th,changeSelectedMarker:()=>Mh,changeSelectedNetworkMarker:()=>Fh,changeSelectedThreads:()=>oh,changeShowJsTracerSummary:()=>Hh,changeShowUserTimings:()=>Wh,changeTableViewOptions:()=>ep,changeTimelineType:()=>Zh,closeAssemblyView:()=>rp,closeBottomBox:()=>op,commitRange:()=>jh,expandAllCallNodeDescendants:()=>Nh,focusCallTree:()=>dh,handleCallNodeTransformShortcut:()=>ap,hideGlobalTrack:()=>mh,hideLocalTrack:()=>Th,hideProvidedTracks:()=>bh,isolateLocalTrack:()=>Bh,isolateProcess:()=>yh,isolateProcessMainThread:()=>Eh,isolateScreenshot:()=>wh,openAssemblyView:()=>np,popCommittedRanges:()=>$h,popTransformsFromStack:()=>qh,selectActiveTabTrack:()=>ch,selectSelfCallNode:()=>rh,selectTrackFromTid:()=>lh,selectTrackWithModifiers:()=>sh,setContextMenuVisibility:()=>hh,setDataSource:()=>Jh,showAllTracks:()=>gh,showGlobalTrack:()=>Ch,showGlobalTrackIncludingLocalTracks:()=>vh,showLocalTrack:()=>Sh,showProvidedTracks:()=>Ah,updateBottomBoxContentsAndMaybeOpen:()=>tp,updatePreviewSelection:()=>Vh});var m={};n.r(m),n.d(m,{_resetIconCounter:()=>mp,batchLoadDataUrlIcons:()=>pp,iconHasLoaded:()=>sp,iconIsInError:()=>lp,iconStartLoading:()=>hp});var f={};n.r(f),n.d(f,{_fetchProfile:()=>Vp,bulkProcessSymbolicationSteps:()=>_p,changeTabFilter:()=>am,changeTimelineTrackOrganization:()=>Ep,doSymbolicateProfile:()=>Mp,doneSymbolicating:()=>Ip,finalizeActiveTabProfileView:()=>wp,finalizeFullProfileView:()=>Cp,finalizeOriginProfileView:()=>yp,finalizeProfileView:()=>bp,getProfileUrlForHash:()=>Zp,loadProfile:()=>Ap,receiveZipFile:()=>Up,receivedSymbolTableReply:()=>Sp,requestingSymbolTable:()=>Tp,resymbolicateProfile:()=>kp,retrievePageFaviconsFromBrowser:()=>Fp,retrieveProfileForRawUrl:()=>om,retrieveProfileFromBrowser:()=>Dp,retrieveProfileFromFile:()=>tm,retrieveProfileFromStore:()=>Xp,retrieveProfileOrZipFromUrl:()=>Jp,retrieveProfilesToCompare:()=>rm,startSymbolicating:()=>Bp,temporaryError:()=>zp,triggerLoadingFromUrl:()=>fp,unwrapBrowserConnection:()=>Rp,viewProfile:()=>xp,viewProfileFromPostMessage:()=>nm,waitingForProfileFromBrowser:()=>gp,waitingForProfileFromFile:()=>Qp,waitingForProfileFromStore:()=>Lp,waitingForProfileFromUrl:()=>Op});var g={};n.r(g),n.d(g,{changeProfilesToCompare:()=>sm,changeSelectedTab:()=>im,changeSidebarOpenState:()=>um,dismissNewlyPublished:()=>Am,enableEventDelayTracks:()=>Em,enableExperimentalCPUGraphs:()=>km,enableExperimentalProcessCPUTracks:()=>xm,invalidatePanelLayout:()=>hm,profileRemotelyDeleted:()=>Sm,registerDragAndDropOverlay:()=>vm,reportTrackThreadHeight:()=>gm,setCurrentProfileUploadedInformation:()=>Tm,setHasZoomedViaMousewheel:()=>pm,setupInitialUrlState:()=>mm,show404:()=>dm,startDragging:()=>bm,startFetchingProfiles:()=>lm,stopDragging:()=>Cm,toggleOpenCategoryInSidebar:()=>Im,toggleResourcesPanel:()=>wm,unregisterDragAndDropOverlay:()=>ym,updateBrowserConnectionStatus:()=>Bm,updateUrlState:()=>fm,urlSetupDone:()=>cm});var A={};n.r(A),n.d(A,{receiveL10n:()=>Km,requestL10n:()=>$m,togglePseudoStrategy:()=>Ym});var b={};n.r(b),n.d(b,{beginLoadingAssemblyCodeFromBrowserConnection:()=>Xy,beginLoadingAssemblyCodeFromUrl:()=>Zy,beginLoadingSourceCodeFromBrowserConnection:()=>Ky,beginLoadingSourceCodeFromUrl:()=>$y,failLoadingAssemblyCode:()=>Qy,failLoadingSourceCode:()=>qy,finishLoadingAssemblyCode:()=>Jy,finishLoadingSourceCode:()=>Yy});var C={};n.r(C),n.d(C,{attemptToPublish:()=>pE,hideStaleProfile:()=>bE,profilePublished:()=>gE,profileSanitized:()=>fE,resetUploadState:()=>mE,revertToPrePublishedState:()=>AE,toggleCheckedSharingOptions:()=>lE,updateUploadProgress:()=>uE,uploadCompressionStarted:()=>cE,uploadFailed:()=>hE,uploadStarted:()=>dE});var v={};n.r(v),n.d(v,{changeExpandedZipFile:()=>ek,changeSelectedZipFile:()=>QE,returnToZipFileList:()=>rk,showErrorForNoFileInZip:()=>ok,viewProfileFromPathInZipFile:()=>nk,viewProfileFromZip:()=>tk});var y=n(5072),w=n.n(y),E=n(7825),k=n.n(E),x=n(7659),T=n.n(x),S=n(5056),B=n.n(S),I=n(540),N=n.n(I),P=n(1113),M=n.n(P),F=n(1086),R={};R.styleTagTransform=M(),R.setAttributes=B(),R.insert=T().bind(null,"head"),R.domAPI=k(),R.insertStyleElement=N(),w()(F.A,R),F.A&&F.A.locals&&F.A.locals;var D=n(6859),L={};L.styleTagTransform=M(),L.setAttributes=B(),L.insert=T().bind(null,"head"),L.domAPI=k(),L.insertStyleElement=N(),w()(D.A,L),D.A&&D.A.locals&&D.A.locals;var O=n(9815),U={};U.styleTagTransform=M(),U.setAttributes=B(),U.insert=T().bind(null,"head"),U.domAPI=k(),U.insertStyleElement=N(),w()(O.A,U),O.A&&O.A.locals&&O.A.locals;var z=n(1961),G={};G.styleTagTransform=M(),G.setAttributes=B(),G.insert=T().bind(null,"head"),G.domAPI=k(),G.insertStyleElement=N(),w()(z.A,G),z.A&&z.A.locals&&z.A.locals;var W=n(4717),H={};H.styleTagTransform=M(),H.setAttributes=B(),H.insert=T().bind(null,"head"),H.domAPI=k(),H.insertStyleElement=N(),w()(W.A,H),W.A&&W.A.locals&&W.A.locals;var V=n(3829),j={};j.styleTagTransform=M(),j.setAttributes=B(),j.insert=T().bind(null,"head"),j.domAPI=k(),j.insertStyleElement=N(),w()(V.A,j),V.A&&V.A.locals&&V.A.locals;var $=n(6756),K={};K.styleTagTransform=M(),K.setAttributes=B(),K.insert=T().bind(null,"head"),K.domAPI=k(),K.insertStyleElement=N(),w()($.A,K),$.A&&$.A.locals&&$.A.locals;var Y=n(12),q={};q.styleTagTransform=M(),q.setAttributes=B(),q.insert=T().bind(null,"head"),q.domAPI=k(),q.insertStyleElement=N(),w()(Y.A,q),Y.A&&Y.A.locals&&Y.A.locals;var Z=n(8901),X={};X.styleTagTransform=M(),X.setAttributes=B(),X.insert=T().bind(null,"head"),X.domAPI=k(),X.insertStyleElement=N(),w()(Z.A,X),Z.A&&Z.A.locals&&Z.A.locals;var J=n(6540),Q=n(5338);function ee(e,t){for(const n of e)if(n.hasMessage(t))return n;return null}class te extends Array{static from(e){return e instanceof this?e:new this(e)}}class ne extends te{constructor(e){if(super(),!(Symbol.iterator in Object(e)))throw new TypeError("Argument must implement the iteration protocol.");this.iterator=e[Symbol.iterator]()}[Symbol.iterator](){const e=this;let t=0;return{next:()=>(e.length<=t&&e.push(e.iterator.next()),e[t++])}}touchNext(e=1){let t=0;for(;t++<e;){const e=this[this.length-1];if(e&&e.done)break;this.push(this.iterator.next())}return this[this.length-1]}}let re;Symbol.asyncIterator;const oe={menuitem:!0,area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},ae=/<|&#?\w+;/,ie=e=>{console.warn(`[@fluent/react] ${e.name}: ${e.message}`)};class se{constructor(e,t=function(){if("undefined"==typeof document)throw new Error("`document` is undefined. Without it, translations cannot be safely sanitized. Consult the documentation at https://github.com/projectfluent/fluent.js/wiki/React-Overlays.");if(!re){const e=document.createElement("template");re=function(t){return e.innerHTML=t,Array.from(e.content.childNodes)}}return re}(),n){this.bundles=ne.from(e),this.parseMarkup=t,this.reportError=n||ie}getBundle(e){return t=this.bundles,n=e,Array.isArray(n)?n.map((e=>ee(t,e))):ee(t,n);var t,n}areBundlesEmpty(){return Boolean(this.bundles[Symbol.iterator]().next().done)}getString(e,t,n){const r=this.getBundle(e);if(r){const n=r.getMessage(e);if(n&&n.value){let e=[],o=r.formatPattern(n.value,t,e);for(let t of e)this.reportError(t);return o}}else this.areBundlesEmpty()?this.reportError(new Error("Attempting to get a string when no localization bundles are present.")):this.reportError(new Error(`The id "${e}" did not match any messages in the localization bundles.`));return n||e}getElement(e,t,n={}){const r=this.getBundle(t);if(null===r)return t?this.areBundlesEmpty()?this.reportError(new Error("Attempting to get a localized element when no localization bundles are present.")):this.reportError(new Error(`The id "${t}" did not match any messages in the localization bundles.`)):this.reportError(new Error("No string id was provided when localizing a component.")),(0,J.createElement)(J.Fragment,null,e);const o=r.getMessage(t);let a,i=[];if(n.attrs&&o.attributes){a={},i=[];for(const[e,t]of Object.entries(n.attrs))t&&e in o.attributes&&(a[e]=r.formatPattern(o.attributes[e],n.vars,i));for(let e of i)this.reportError(e)}if("string"==typeof e.type&&e.type in oe)return(0,J.cloneElement)(e,a);if(null===o.value)return(0,J.cloneElement)(e,a);i=[];const s=r.formatPattern(o.value,n.vars,i);for(let e of i)this.reportError(e);if(!ae.test(s)||null===this.parseMarkup)return(0,J.cloneElement)(e,a,s);let l;if(n.elems){l=new Map;for(let[e,t]of Object.entries(n.elems))(0,J.isValidElement)(t)&&l.set(e.toLowerCase(),t)}const c=this.parseMarkup(s).map((({nodeName:e,textContent:t})=>{if("#text"===e)return t;const n=e.toLowerCase(),r=null==l?void 0:l.get(n);return r?"string"==typeof r.type&&r.type in oe?r:(0,J.cloneElement)(r,void 0,t):t}));return(0,J.cloneElement)(e,a,...c)}}let le=(0,J.createContext)(null);function ce(e){return(0,J.createElement)(le.Provider,{value:e.l10n},e.children)}function de(e){const{id:t,attrs:n,vars:r,elems:o,children:a}=e,i=(0,J.useContext)(le);if(!i)throw new Error("The <Localized /> component was not properly wrapped in a <LocalizationProvider />.");let s;if(Array.isArray(a)){if(a.length>1)throw new Error("Expected to receive a single React element to localize.");s=a[0]}else s=null!=a?a:null;if(!(0,J.isValidElement)(s)){const e="string"==typeof s?s:void 0,n=i.getString(t,r,e);return J.createElement(J.Fragment,null,n)}return i.getElement(s,t,{attrs:n,vars:r,elems:o})}n(8418);var ue=J.version.startsWith("19"),he=Symbol.for(ue?"react.transitional.element":"react.element"),pe=Symbol.for("react.portal"),me=Symbol.for("react.fragment"),fe=Symbol.for("react.strict_mode"),ge=Symbol.for("react.profiler"),Ae=Symbol.for("react.consumer"),be=Symbol.for("react.context"),Ce=Symbol.for("react.forward_ref"),ve=Symbol.for("react.suspense"),ye=Symbol.for("react.suspense_list"),we=Symbol.for("react.memo"),Ee=Symbol.for("react.lazy"),ke=Ce,xe=we;function Te(e,t,n,r,{areStatesEqual:o,areOwnPropsEqual:a,areStatePropsEqual:i}){let s,l,c,d,u,h=!1;return function(p,m){return h?function(h,p){const m=!a(p,l),f=!o(h,s,p,l);return s=h,l=p,m&&f?(c=e(s,l),t.dependsOnOwnProps&&(d=t(r,l)),u=n(c,d,l),u):m?(e.dependsOnOwnProps&&(c=e(s,l)),t.dependsOnOwnProps&&(d=t(r,l)),u=n(c,d,l),u):f?function(){const t=e(s,l),r=!i(t,c);return c=t,r&&(u=n(c,d,l)),u}():u}(p,m):(s=p,l=m,c=e(s,l),d=t(r,l),u=n(c,d,l),h=!0,u)}}function Se(e){return function(t){const n=e(t);function r(){return n}return r.dependsOnOwnProps=!1,r}}function Be(e){return e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function Ie(e,t){return function(t,{displayName:n}){const r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e,void 0)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=Be(e);let o=r(t,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=Be(o),o=r(t,n)),o},r}}function _e(e,t){return(n,r)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function Ne(e,t,n){return{...n,...e,...t}}var Pe={notify(){},get:()=>[]};function Me(e,t){let n,r=Pe,o=0,a=!1;function i(){c.onStateChange&&c.onStateChange()}function s(){o++,n||(n=t?t.addNestedSub(i):e.subscribe(i),r=function(){let e=null,t=null;return{clear(){e=null,t=null},notify(){(()=>{let t=e;for(;t;)t.callback(),t=t.next})()},get(){const t=[];let n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0;const o=t={callback:n,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){r&&null!==e&&(r=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}())}function l(){o--,n&&0===o&&(n(),n=void 0,r.clear(),r=Pe)}const c={addNestedSub:function(e){s();const t=r.subscribe(e);let n=!1;return()=>{n||(n=!0,t(),l())}},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:i,isSubscribed:function(){return a},trySubscribe:function(){a||(a=!0,s())},tryUnsubscribe:function(){a&&(a=!1,l())},getListeners:()=>r};return c}var Fe=(()=>!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement))(),Re=(()=>"undefined"!=typeof navigator&&"ReactNative"===navigator.product)(),De=(()=>Fe||Re?J.useLayoutEffect:J.useEffect)();function Le(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Oe(e,t){if(Le(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Le(e[n[r]],t[n[r]]))return!1;return!0}var Ue={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},ze={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ge={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},We={[ke]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[xe]:Ge};function He(e){return function(e){if("object"==typeof e&&null!==e){const{$$typeof:t}=e;switch(t){case he:switch(e=e.type){case me:case ge:case fe:case ve:case ye:return e;default:switch(e=e&&e.$$typeof){case be:case Ce:case Ee:case we:case Ae:return e;default:return t}}case pe:return t}}}(e)===we?Ge:We[e.$$typeof]||Ue}var Ve=Object.defineProperty,je=Object.getOwnPropertyNames,$e=Object.getOwnPropertySymbols,Ke=Object.getOwnPropertyDescriptor,Ye=Object.getPrototypeOf,qe=Object.prototype;function Ze(e,t){if("string"!=typeof t){if(qe){const n=Ye(t);n&&n!==qe&&Ze(e,n)}let n=je(t);$e&&(n=n.concat($e(t)));const r=He(e),o=He(t);for(let a=0;a<n.length;++a){const i=n[a];if(!(ze[i]||o&&o[i]||r&&r[i])){const n=Ke(t,i);try{Ve(e,i,n)}catch(e){}}}}return e}var Xe=Symbol.for("react-redux-context"),Je="undefined"!=typeof globalThis?globalThis:{};function Qe(){if(!J.createContext)return{};const e=Je[Xe]??=new Map;let t=e.get(J.createContext);return t||(t=J.createContext(null),e.set(J.createContext,t)),t}var et=Qe(),tt=[null,null];function nt(e,t,n,r,o,a){e.current=r,n.current=!1,o.current&&(o.current=null,a())}function rt(e,t){return e===t}var ot=function(e){const{children:t,context:n,serverState:r,store:o}=e,a=J.useMemo((()=>{const e=Me(o);return{store:o,subscription:e,getServerState:r?()=>r:void 0}}),[o,r]),i=J.useMemo((()=>o.getState()),[o]);De((()=>{const{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),i!==o.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}}),[a,i]);const s=n||et;return J.createElement(s.Provider,{value:a},t)};function at(e){const{mapStateToProps:t,mapDispatchToProps:n,mergeProps:r,options:o,component:a}=e;return function(e,t,n,{pure:r,areStatesEqual:o=rt,areOwnPropsEqual:a=Oe,areStatePropsEqual:i=Oe,areMergedPropsEqual:s=Oe,forwardRef:l=!1,context:c=et}={}){const d=c,u=function(e){return e?"function"==typeof e?Ie(e):_e(e,"mapStateToProps"):Se((()=>({})))}(e),h=function(e){return e&&"object"==typeof e?Se((t=>function(e,t){const n={};for(const r in e){const o=e[r];"function"==typeof o&&(n[r]=(...e)=>t(o(...e)))}return n}(e,t))):e?"function"==typeof e?Ie(e):_e(e,"mapDispatchToProps"):Se((e=>({dispatch:e})))}(t),p=function(e){return e?"function"==typeof e?function(e){return function(t,{displayName:n,areMergedPropsEqual:r}){let o,a=!1;return function(t,n,i){const s=e(t,n,i);return a?r(s,o)||(o=s):(a=!0,o=s),o}}}(e):_e(e,"mergeProps"):()=>Ne}(n),m=Boolean(e);return e=>{const t=e.displayName||e.name||"Component",n=`Connect(${t})`,r={shouldHandleStateChanges:m,displayName:n,wrappedComponentName:t,WrappedComponent:e,initMapStateToProps:u,initMapDispatchToProps:h,initMergeProps:p,areStatesEqual:o,areStatePropsEqual:i,areOwnPropsEqual:a,areMergedPropsEqual:s};function c(t){const[n,o,a]=J.useMemo((()=>{const{reactReduxForwardedRef:e,...n}=t;return[t.context,e,n]}),[t]),i=J.useMemo((()=>d),[n,d]),s=J.useContext(i),l=Boolean(t.store)&&Boolean(t.store.getState)&&Boolean(t.store.dispatch),c=Boolean(s)&&Boolean(s.store),u=l?t.store:s.store,h=c?s.getServerState:u.getState,p=J.useMemo((()=>function(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:r,...o}){return Te(t(e,o),n(e,o),r(e,o),e,o)}(u.dispatch,r)),[u]),[f,g]=J.useMemo((()=>{if(!m)return tt;const e=Me(u,l?void 0:s.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[u,l,s]),A=J.useMemo((()=>l?s:{...s,subscription:f}),[l,s,f]),b=J.useRef(void 0),C=J.useRef(a),v=J.useRef(void 0),y=J.useRef(!1),w=J.useRef(!1),E=J.useRef(void 0);De((()=>(w.current=!0,()=>{w.current=!1})),[]);const k=J.useMemo((()=>()=>v.current&&a===C.current?v.current:p(u.getState(),a)),[u,a]),x=J.useMemo((()=>e=>f?function(e,t,n,r,o,a,i,s,l,c,d){if(!e)return()=>{};let u=!1,h=null;const p=()=>{if(u||!s.current)return;const e=t.getState();let n,p;try{n=r(e,o.current)}catch(e){p=e,h=e}p||(h=null),n===a.current?i.current||c():(a.current=n,l.current=n,i.current=!0,d())};return n.onStateChange=p,n.trySubscribe(),p(),()=>{if(u=!0,n.tryUnsubscribe(),n.onStateChange=null,h)throw h}}(m,u,f,p,C,b,y,w,v,g,e):()=>{}),[f]);var T,S;let B;T=nt,S=[C,b,y,a,v,g],De((()=>T(...S)),void 0);try{B=J.useSyncExternalStore(x,k,h?()=>p(h(),a):k)}catch(e){throw E.current&&(e.message+=`\nThe error may be correlated with this previous error:\n${E.current.stack}\n\n`),e}De((()=>{E.current=void 0,v.current=void 0,b.current=B}));const I=J.useMemo((()=>J.createElement(e,{...B,ref:o})),[o,e,B]);return J.useMemo((()=>m?J.createElement(i.Provider,{value:A},I):I),[i,I,A])}const f=J.memo(c);if(f.WrappedComponent=e,f.displayName=c.displayName=n,l){const t=J.forwardRef((function(e,t){return J.createElement(f,{...e,reactReduxForwardedRef:t})}));return t.displayName=n,t.WrappedComponent=e,Ze(t,e)}return Ze(f,e)}}(t,n,r,o)(a)}var it="NOT_FOUND",st=function(e,t){return e===t};function lt(e,t){var n,r,o="object"==typeof t?t:{equalityCheck:t},a=o.equalityCheck,i=void 0===a?st:a,s=o.maxSize,l=void 0===s?1:s,c=o.resultEqualityCheck,d=function(e){return function(t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,o=0;o<r;o++)if(!e(t[o],n[o]))return!1;return!0}}(i),u=1===l?(n=d,{get:function(e){return r&&n(r.key,e)?r.value:it},put:function(e,t){r={key:e,value:t}},getEntries:function(){return r?[r]:[]},clear:function(){r=void 0}}):function(e,t){var n=[];function r(e){var r=n.findIndex((function(n){return t(e,n.key)}));if(r>-1){var o=n[r];return r>0&&(n.splice(r,1),n.unshift(o)),o.value}return it}return{get:r,put:function(t,o){r(t)===it&&(n.unshift({key:t,value:o}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(l,d);function h(){var t=u.get(arguments);if(t===it){if(t=e.apply(null,arguments),c){var n=u.getEntries().find((function(e){return c(e.value,t)}));n&&(t=n.value)}u.put(arguments,t)}return t}return h.clearCache=function(){return u.clear()},h}function ct(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];var a,i=0,s={memoizeOptions:void 0},l=r.pop();if("object"==typeof l&&(s=l,l=r.pop()),"function"!=typeof l)throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof l+"]");var c=s.memoizeOptions,d=void 0===c?n:c,u=Array.isArray(d)?d:[d],h=function(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return"function"==typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}(r),p=e.apply(void 0,[function(){return i++,l.apply(null,arguments)}].concat(u)),m=e((function(){for(var e=[],t=h.length,n=0;n<t;n++)e.push(h[n].apply(null,arguments));return a=p.apply(null,e)}));return Object.assign(m,{resultFunc:l,memoizedResultFunc:p,dependencies:h,lastResult:function(){return a},recomputations:function(){return i},resetRecomputations:function(){return i=0}}),m}}var dt=ct(lt),ut=n(919);const ht="%[a-f0-9]{2}",pt=new RegExp("("+ht+")|([^%]+?)","gi"),mt=new RegExp("("+ht+")+","gi");function ft(e,t){try{return[decodeURIComponent(e.join(""))]}catch{}if(1===e.length)return e;t=t||1;const n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],ft(n),ft(r))}function gt(e){try{return decodeURIComponent(e)}catch{let t=e.match(pt)||[];for(let n=1;n<t.length;n++)t=(e=ft(t,n).join("")).match(pt)||[];return e}}function At(e,t){const n={};if(Array.isArray(t))for(const r of t){const t=Object.getOwnPropertyDescriptor(e,r);t?.enumerable&&Object.defineProperty(n,r,t)}else for(const r of Reflect.ownKeys(e)){const o=Object.getOwnPropertyDescriptor(e,r);o.enumerable&&t(r,e[r],e)&&Object.defineProperty(n,r,o)}return n}function bt(e,t){if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const n=e.indexOf(t);return-1===n?[]:[e.slice(0,n),e.slice(n+t.length)]}const Ct=e=>null==e,vt=e=>encodeURIComponent(e).replaceAll(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)),yt=Symbol("encodeFragmentIdentifier");function wt(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function Et(e,t){return t.encode?t.strict?vt(e):encodeURIComponent(e):e}function kt(e,t){return t.decode?function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return decodeURIComponent(e)}catch{return function(e){const t={"%FE%FF":"��","%FF%FE":"��"};let n=mt.exec(e);for(;n;){try{t[n[0]]=decodeURIComponent(n[0])}catch{const e=gt(n[0]);e!==n[0]&&(t[n[0]]=e)}n=mt.exec(e)}t["%C2"]="�";const r=Object.keys(t);for(const n of r)e=e.replace(new RegExp(n,"g"),t[n]);return e}(e)}}(e):e}function xt(e){return Array.isArray(e)?e.sort():"object"==typeof e?xt(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function Tt(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function St(e,t,n){return"string"===n&&"string"==typeof e?e:"function"==typeof n&&"string"==typeof e?n(e):"string[]"===n&&"none"!==t.arrayFormat&&"string"==typeof e?[e]:"number[]"!==n||"none"===t.arrayFormat||Number.isNaN(Number(e))||"string"!=typeof e||""===e.trim()?"number"!==n||Number.isNaN(Number(e))||"string"!=typeof e||""===e.trim()?!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()?t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?Number(e):e:"true"===e.toLowerCase():Number(e):[Number(e)]}function Bt(e){const t=(e=Tt(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function It(e,t){wt((t={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null),...t}).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)]$/.exec(e),e=e.replace(/\[\d*]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[])$/.exec(e),e=e.replace(/\[]$/,""),t?void 0!==r[e]?r[e]=[...r[e],n]:r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[...r[e],n]:r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"==typeof n&&n.includes(e.arrayFormatSeparator),a="string"==typeof n&&!o&&kt(n,e).includes(e.arrayFormatSeparator);n=a?kt(n,e):n;const i=o||a?n.split(e.arrayFormatSeparator).map((t=>kt(t,e))):null===n?n:kt(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const o=/(\[])$/.test(t);if(t=t.replace(/\[]$/,""),!o)return void(r[t]=n?kt(n,e):n);const a=null===n?[]:kt(n,e).split(e.arrayFormatSeparator);void 0!==r[t]?r[t]=[...r[t],...a]:r[t]=a};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[...[n[e]].flat(),t]:n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const o of e.split("&")){if(""===o)continue;const e=t.decode?o.replaceAll("+"," "):o;let[a,i]=bt(e,"=");void 0===a&&(a=e),i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:kt(i,t),n(kt(a,t),i,r)}for(const[e,n]of Object.entries(r))if("object"==typeof n&&null!==n&&"string"!==t.types[e])for(const[r,o]of Object.entries(n)){const a=t.types[e]?t.types[e].replace("[]",""):void 0;n[r]=St(o,t,a)}else"object"==typeof n&&null!==n&&"string"===t.types[e]?r[e]=Object.values(n).join(t.arrayFormatSeparator):r[e]=St(n,t,t.types[e]);return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return e[t]=Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?xt(n):n,e}),Object.create(null))}function _t(e,t){if(!e)return"";wt((t={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...t}).arrayFormatSeparator);const n=n=>t.skipNull&&Ct(e[n])||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const o=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[Et(t,e),"[",o,"]"].join("")]:[...n,[Et(t,e),"[",Et(o,e),"]=",Et(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[Et(t,e),"[]"].join("")]:[...n,[Et(t,e),"[]=",Et(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[Et(t,e),":list="].join("")]:[...n,[Et(t,e),":list=",Et(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[Et(n,e),t,Et(o,e)].join("")]:[[r,Et(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,Et(t,e)]:[...n,[Et(t,e),"=",Et(r,e)].join("")]}}(t),o={};for(const[t,r]of Object.entries(e))n(t)||(o[t]=r);const a=Object.keys(o);return!1!==t.sort&&a.sort(t.sort),a.map((n=>{const o=e[n];return void 0===o?"":null===o?Et(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?Et(n,t)+"[]":o.reduce(r(n),[]).join("&"):Et(n,t)+"="+Et(o,t)})).filter((e=>e.length>0)).join("&")}function Nt(e,t){t={decode:!0,...t};let[n,r]=bt(e,"#");return void 0===n&&(n=e),{url:n?.split("?")?.[0]??"",query:It(Bt(e),t),...t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:kt(r,t)}:{}}}function Pt(e,t){t={encode:!0,strict:!0,[yt]:!0,...t};const n=Tt(e.url).split("?")[0]||"";let r=_t({...It(Bt(e.url),{sort:!1}),...e.query},t);r&&=`?${r}`;let o=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);if("string"==typeof e.fragmentIdentifier){const r=new URL(n);r.hash=e.fragmentIdentifier,o=t[yt]?r.hash:`#${e.fragmentIdentifier}`}return`${n}${r}${o}`}function Mt(e,t,n){n={parseFragmentIdentifier:!0,[yt]:!1,...n};const{url:r,query:o,fragmentIdentifier:a}=Nt(e,n);return Pt({url:r,query:At(o,t),fragmentIdentifier:a},n)}function Ft(e,t,n){return Mt(e,Array.isArray(t)?e=>!t.includes(e):(e,n)=>!t(e,n),n)}const Rt=r;var Dt=n(5119),Lt=n.n(Dt),Ot=n(2351),Ut=n.n(Ot);const zt=Lt()((function({places:e,style:t}){return new Intl.NumberFormat(void 0,{minimumFractionDigits:e,maximumFractionDigits:e,style:t})}),{cache:new(Ut())});function Gt(e,t=2,n=3,r="decimal"){if(0===e)return zt({places:0,style:r}).format(e);if(isNaN(e))return"<invalid>";let o=Math.floor(Math.log10(Math.abs(e)))+1;"percent"===r&&(o+=2);let a=t-o;return a<0?a=0:a>n&&(a=n),zt({places:a,style:r}).format(e)}function Wt(e,t,n){let r;switch(e){case"tracing-ms":r=1;break;case"samples":case"bytes":r=0;break;default:throw(0,ut.lC)(e,"Unhandled WeightType.")}return t&&(r=3),Gt(n,3,r)}function Ht(e,t,n){switch(e){case"tracing-ms":return Gt(n,3,t?3:1)+"ms";case"samples":{const e=1===n?" sample":" samples";return Gt(n,3,0)+e}case"bytes":{const e=1===n?" byte":" bytes";return Gt(n,3,0)+e}default:throw(0,ut.lC)(e,"Unhandled WeightType.")}}function Vt(e){return Gt(e,2,1,"percent")}function jt(e,t=3,n=2,r=1/0){const o=1048576;if(r===1/0)return Gt(e/o,t,n)+"MB";r>=o&&(e=Math.round(e/o)*o);const a=e%o;return Gt((e-a)/o,t,0)+"MB"+(a>0&&n>0||r<o?" "+$t(a,t,0,r):"")}function $t(e,t=3,n=2,r=1/0){const o=1024;if(r===1/0)return Gt(e/o,t,n)+"KB";r>=o&&(e=Math.round(e/o)*o);const a=e%o;return Gt((e-a)/o,t,0)+"KB"+(a>0&&n>0||r<o?" "+Kt(a,t,0,r):"")}function Kt(e,t=3,n=2,r=1/0){return e<1e4?Gt(e,0)+"B":e<1048576?$t(e,t,n,r):e<1024**3?jt(e,t,n,r):function(e,t=3,n=2,r=1/0){const o=1024**3;if(r===1/0)return Gt(e/o,t,n)+"GB";r>=o&&(e=Math.round(e/o)*o);const a=e%o;return Gt((e-a)/o,t,0)+"GB"+(a>0&&n>0||r<o?" "+jt(a,t,0,r):"")}(e,t,n,r)}function Yt(e){return e<1e4?Gt(e):e<1e6?Gt(e/1e3,3,2)+"K":e<1e9?Gt(e/1e6,3,2)+"M":Gt(e/1e9,3,2)+"G"}function qt(e,t=3,n=4){return Gt(e,t,n)+"ns"}function Zt(e,t=2,n=3){return Gt(e,t,n)+"μs"}function Xt(e,t=2,n=3){return Gt(e,t,n)+"ms"}function Jt(e,t=5,n=3,r=1/0){const o=1e3,a=e/o;let i="";if(r<o){const e=Math.floor(Math.log10(r/o)),t=Math.max(0,-e);i=a.toFixed(t)}else i=Gt(a,t,n);return i+"s"}function Qt(e,t=5,n=2,r=1/0){const o=1e3,a=6e4;r>=o&&(e=Math.round(e/o)*o);const i=e%a;return Gt((e-i)/a,t,0)+"m"+(i>0&&n>0||r<a?Jt(i,t,0,r):"")}function en(e,t=5,n=1,r=1/0){const o=6e4;r>=o&&(e=Math.round(e/o)*o);const a=36e5,i=e%a;return Gt((e-i)/a,t,0)+"h"+(i>0&&n>0||r<a?Qt(i,t,0,r):"")}function tn(e,t=5,n=3,r=1/0){return r!==1/0&&(r<1e4&&(r=10**Math.floor(Math.log10(r))),e>r&&(e=Math.round(e/r)*r)),e>=6e4-(r===1/0?500:0)?e>=36e5-(r===1/0?500:0)?e>=864e5-(r===1/0?3e4:0)?function(e,t=5,n=1,r=1/0){const o=36e5;r>=o&&(e=Math.round(e/o)*o);const a=864e5,i=e%a;return Gt((e-i)/a,t,0)+"d"+(i>0&&n>0||r<a?en(i,t,0,r):"")}(e,t,n,r):en(e,t,n,r):Qt(e,t,n,r):e>=1e3?Jt(e,t,Number.isInteger(e/1e3)?0:n,r):e>=1?Xt(e,t,Number.isInteger(e)?0:n):1e3*e>=1?Zt(1e3*e,t,Number.isInteger(1e3*e)?0:n):0===e?"0s":qt(1e3*e*1e3,t,Number.isInteger(1e3*e*1e3)?0:n)}function nn(e,t,n=String,r=!0){const o=n(e)+" / "+n(t);let a="";return r&&(a=" ("+Vt(e/t)+")"),o+a}function rn(e){const t=Math.floor(Math.log10(e));return e<=2*Math.pow(10,t)?2*Math.pow(10,t):e<=5*Math.pow(10,t)?5*Math.pow(10,t):Math.pow(10,t+1)}function on(e=""){return e?e.split("~").map((e=>{const t=e.match(/^(-?[0-9]+)?([mun])([0-9]+)$/);if(!t)return console.error(`The range "${e}" couldn't be parsed, ignoring.`),null;const n=t[1]?Number(t[1]):0,r=t[2],o=Number(t[3]);if(isNaN(n)||isNaN(o))return console.error(`The range "${e}" couldn't be parsed, ignoring. This shouldn't happen.`),null;let a,i;switch(r){case"m":a=n,i=n+o;break;case"u":a=n/1e3,i=(n+o)/1e3;break;case"n":a=n/1e6,i=(n+o)/1e6;break;default:throw new Error(`We couldn't recognize the unit ${r}, which can't happen because the regexp wouldn't match.`)}return a===i&&(i+=1e-4),{start:a,end:i}})).filter(Boolean):[]}function an({start:e,end:t}){const n=Math.floor(1e6*e),r=Math.ceil(1e6*t)-n,o=String(r);let a;if(r>9e6){const e=String(n).slice(0,-6);let t=o.slice(0,-6);o.endsWith("000000")||(t=Number(t)+1),a=`${e}m${t}`}else if(r>9e3){const e=String(n).slice(0,-3);let t=o.slice(0,-3);o.endsWith("000")||(t=Number(t)+1),a=`${e}u${t}`}else a=0===r?`${n}n1`:`${n}n${o}`;return a}function sn(e=[]){return e.map(an).join("~")}function ln(e,t,n=1/0){return"bytes"===t?Kt(e,2,2,n):tn(e,2,2,n)}const cn="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._",dn=cn[32];function un(e){const t=Array.from(e);return t.sort(((e,t)=>e-t)),hn(t)}function hn(e){let t="";for(let n=0;n<e.length;n++){const r=mn(e,n);0!==r?(n+=r,t+=dn,t+=fn(e[n])):t+=fn(e[n])}return t}function pn(e){const t=[];let n=0;for(;n<e.length;){const{value:r,hasLeadingZero:o,nextI:a}=An(e,n);if(o&&t.length>=1){const e=t[t.length-1],n=r;if(n>e)for(let r=e+1;r<n;r++)t.push(r);else for(let r=e-1;r>n;r--)t.push(r)}t.push(r),n=a}return t}function mn(e,t){if(t<1||t+1>=e.length)return 0;const n=e[t-1],r=e[t],o=e[t+1];let a=0;if(r===n+1&&o===r+1)for(a=1;t+a+1<e.length&&e[t+a+1]===r+a+1;)a++;else if(r===n-1&&o===r-1)for(a=1;t+a+1<e.length&&e[t+a+1]===r-a-1;)a++;return a}function fn(e){let t=e,n=cn[31&t];for(t>>=5;0!==t;)n=cn[32+(31&t)]+n,t>>=5;return n}function gn(e){switch(e){case"0":default:return 0;case"1":return 1;case"2":return 2;case"3":return 3;case"4":return 4;case"5":return 5;case"6":return 6;case"7":return 7;case"8":return 8;case"9":return 9;case"a":return 10;case"b":return 11;case"c":return 12;case"d":return 13;case"e":return 14;case"f":return 15;case"g":return 16;case"h":return 17;case"i":return 18;case"j":return 19;case"k":return 20;case"l":return 21;case"m":return 22;case"n":return 23;case"o":return 24;case"p":return 25;case"q":return 26;case"r":return 27;case"s":return 28;case"t":return 29;case"u":return 30;case"v":return 31;case"w":return 32;case"x":return 33;case"y":return 34;case"z":return 35;case"A":return 36;case"B":return 37;case"C":return 38;case"D":return 39;case"E":return 40;case"F":return 41;case"G":return 42;case"H":return 43;case"I":return 44;case"J":return 45;case"K":return 46;case"L":return 47;case"M":return 48;case"N":return 49;case"O":return 50;case"P":return 51;case"Q":return 52;case"R":return 53;case"S":return 54;case"T":return 55;case"U":return 56;case"V":return 57;case"W":return 58;case"X":return 59;case"Y":return 60;case"Z":return 61;case".":return 62;case"_":return 63}}function An(e,t){let n=t,r=gn(e[n]),o=32&r,a=31&r;const i=0!==o&&0===a;let s=a;for(n++;o&&n<e.length;)r=gn(e[n]),o=32&r,a=31&r,s=s<<5|a,n++;return{value:s,hasLeadingZero:i,nextI:n}}var bn=n(5458),Cn=n(946),vn=n(5737),yn=n(2834),wn=n.n(yn);const En=function(){const e=`\\b((?:${["http","https","ftp","file","moz-extension","moz-page-thumb"].join("|")})://)/?[^\\s/$.?#][^\\s)]*`;return new RegExp(`${e}|\\b(about:[^?#\\s]+)([?#])[^\\s)]*`,"gi")}();function kn(e,t="<URL>",n="<sanitized>"){return e.replace(En,((e,r,o,a)=>r?r+t:o?o+a+n:e))}function xn(e,t="<PATH>"){let n=null,r=e.lastIndexOf("/");return-1!==r?n="/":(r=e.lastIndexOf("\\"),-1!==r&&(n="\\")),null===n?e:t+n+e.slice(r+1)}const Tn=e=>{if(!e)return null;const t=e.split(",").map((e=>e.trim())).filter((e=>e));return t.length?t:null},Sn=e=>{if(!e||!e.length)return null;const t=e.map(wn()).join("|");return new RegExp(t,"gi")};var Bn=n(2263),In=n(9839),_n=n(9472);const Nn=[{name:"Jank",display:["marker-table","marker-chart"],tooltipLabel:"Jank – event processing delay",tableLabel:"Event processing delay",fields:[],description:_n.TN`
|
7
|
+
Jank markers show when the main event loop of a thread has been busy. It is
|
8
|
+
a good indicator that there may be some kind of performance problem that
|
9
|
+
is worth investigating.
|
10
|
+
`},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],fields:[{key:"messageType",label:"Type",format:"string",searchable:!0},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"},{key:"otherPid",label:"Other Pid",format:"pid",searchable:!0}]},{name:"Network",display:["marker-table","marker-chart"],chartLabel:"{marker.data.URI}",fields:[{format:"string",key:"contentType",label:"Content Type",searchable:!0,hidden:!0}]}];function Pn(e,t){const n=t?t.type:null;return n?e[n]??null:null}function Mn(e,t,n,r){const o=r.split(/{([^}]+)}/);if(1===o.length)return()=>r;function a(e,t){return console.error(_n.TN`
|
11
|
+
Error processing the label "${e}" because of the ${t}.
|
12
|
+
Currently the labels in the marker schema take the form of
|
13
|
+
"marker.data.keyName" or "marker.startTime". No other type
|
14
|
+
of access is currently supported.
|
15
|
+
`),()=>""}const i=o.map(((o,i)=>{if(i%2==0)return()=>o;const s=o.trim().split(".");if(2!==s.length&&3!==s.length)return a(r,o);const[l,c,d]=s;if("marker"!==l)return a(r,o);if(2===s.length)switch(c){case"start":return e=>tn(e.start);case"end":return e=>null===e.end?"unknown":tn(e.end);case"duration":return e=>null===e.end?"unknown":tn(e.end-e.start);case"name":return e=>e.name;case"category":return e=>t[e.category].name;default:return a(r,o)}if("data"===c){let t=null;for(const n of e.fields)if(n.key===d){t=n.format;break}return r=>{if(!r.data)return"";const o=r.data[d];return null==o?"":t?Dn(e.name,t,o,n):o}}return a(r,o)}));return e=>{let t="";for(const n of i)t+=n(e);return t}}const Fn={tooltipLabel:e=>e.name,chartLabel:e=>"",tableLabel:e=>{let t="";if(e.data){const n=e.data;"FileIO"===n.type&&(n.source&&(t=`(${n.source}) `),t+=n.operation,n.filename&&(t=n.operation?`${t} — ${n.filename}`:n.filename))}return t},copyLabel:e=>e.name};function Rn(e,t,n,r,o,a){const i=new Map,s=/^{marker.name}\s[-—]\s/;for(const e of t){let t;"copyLabel"===a?(t=e.tableLabel,t&&!s.test(t)&&(t="{marker.name} — "+t)):(t=e[a],t&&"tableLabel"===a&&(t=t.replace(s,""))),t&&i.set(e.name,Mn(e,r,o,t))}const l=(0,ut.Nn)(Fn[a],"Unable to find a fallback label function."),c=new Map;return t=>{let n=c.get(t);if(void 0===n){const r=e(t),o=r.data?r.data.type:null,a=o?i.get(o):null;n=a?a(r):l(r),c.set(t,n)}return n}}function Dn(e,t,n,r,o,a){if(null==n)return console.warn(`Formatting ${n} for ${e} with format ${JSON.stringify(t)}`),"(empty)";if("object"==typeof t){if("table"===t.type){const{columns:i}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const s=i.some((e=>e.label))?[i.map((e=>e.label||"(empty)"))]:[],l=n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==i.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${i.length})`);return t.map(((t,n)=>{const{format:s}=i[n];return Dn(e,s||"string",t,r,o,a)}))}));return s.push(...l),s.map((e=>`(${e.join(", ")})`)).join(",")}throw new Error(`Unknown format type ${JSON.stringify(t.type)}`)}switch(t){case"url":case"file-path":case"sanitized-string":case"string":return String(n)||"(empty)";case"unique-string":case"flow-id":case"terminating-flow-id":return r.getString(n,"(empty)");case"duration":case"time":return tn(n);case"seconds":return Jt(n);case"milliseconds":return Xt(n);case"microseconds":return Zt(n);case"nanoseconds":return qt(n);case"bytes":return Kt(n);case"integer":return Gt(n,0,0);case"decimal":return Gt(n);case"percentage":return Vt(n);case"pid":return a&&a.has(n)?`${(0,ut.Nn)(a.get(n))} (${n})`:`PID: ${n}`;case"tid":return o&&o.has(n)?`${(0,ut.Nn)(o.get(n))} (${n})`:`TID: ${n}`;case"list":if(!(n instanceof Array))throw new Error("Expected an array for list format");return n.map((t=>Dn(e,"string",t,r))).join(", ");default:return console.warn(`A marker schema of type "${e}" had an unknown format ${JSON.stringify(t)}`),n}}const Ln=/^http(s?):\/\//;function On(e,t,n,r,o,a){if(null==n)return console.warn(`Formatting ${n} for ${JSON.stringify(e)}`),"(empty)";if("url"!==t&&"object"!=typeof t&&"list"!==t)return Dn(e,t,n,r,o,a);if("object"==typeof t){if("table"===t.type){const{columns:i}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const s=i.some((e=>e.label));return J.createElement("table",{className:"marker-table-value"},s?J.createElement("thead",null,J.createElement("tr",null,i.map(((e,t)=>J.createElement("th",{key:t},e.label||""))))):null,J.createElement("tbody",null,n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==i.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${i.length})`);return J.createElement("tr",{key:n},t.map(((t,n)=>J.createElement("td",{key:n},On(e,i[n].type||"string",t,r,o,a)))))}))))}throw new Error(`Unknown format type ${JSON.stringify(t)}`)}switch(t){case"list":if(!(n instanceof Array))throw new Error("Expected an array for list format");return J.createElement("ul",{className:"marker-list-value"},n.map(((t,o)=>J.createElement("li",{key:o},Dn(e,"string",n[o],r)))));case"url":return Ln.test(n)?J.createElement("a",{href:n,target:"_blank",rel:"noreferrer",className:"marker-link-value"},n.replace(Ln,"")):n;default:throw new Error(`Unknown format type ${JSON.stringify(t)}`)}}function Un(e,t,n,r){const{data:o}=t;if(!o)return!1;for(const a of e.fields)if(a.searchable){let e=o[a.key];if(null==e)continue;if("unique-string"===a.format||"flow-id"===a.format||"terminating-flow-id"===a.format){if("number"!=typeof e){console.warn(`In marker ${t.name}, the key ${a.key} has an invalid value "${e}" as a unique string, it isn't a number.`);continue}if(!n.hasIndex(e)){console.warn(`In marker ${t.name}, the key ${a.key} has an invalid index "${e}" as a unique string, as it's missing from the string table.`);continue}e=n.getString(e)}if(""!==e&&r(e,a.key))return!0}return!1}function zn(e,t,n,r,o,a){if(!r)return t;let i=Boolean(r.generic),s=!1;for(const e of r.fieldMap.values())i=i||null!==e.positive,s=s||null!==e.negative;const l=[];for(const c of t){const t=e(c);let d=!0;i&&(d=Gn(t,n,r,o,a)),d&&s&&(d=Wn(t,n,r,o,a)),d&&l.push(c)}return l}function Gn(e,t,n,r,o){const a=n;function i(e,t){t=t.toLowerCase();const n=a.fieldMap.get(t),r=!!a.generic&&a.generic.test(e)||!(!n||!n.positive)&&n.positive.test(e);return a.generic&&(a.generic.lastIndex=0),n&&n.positive&&(n.positive.lastIndex=0),r}const{data:s,name:l,category:c}=e;if(void 0!==o[c]&&i(o[c].name,"cat"))return!0;if(i(l,"name"))return!0;if(s&&"object"==typeof s){if(i(s.type,"type"))return!0;const n=Pn(t,e.data);if(n&&Un(n,e,r,i))return!0}return!1}function Wn(e,t,n,r,o){const a=n;function i(e,t){t=t.toLowerCase();const n=a.fieldMap.get(t),r=n?.negative;if(!r)return!1;const o=r.test(e);return r.lastIndex=0,o}const{data:s,name:l,category:c}=e;if(void 0!==o[c]&&i(o[c].name,"cat"))return!1;if(i(l,"name"))return!1;if(s&&"object"==typeof s){if(i(s.type,"type"))return!1;const n=Pn(t,e.data);if(n&&Un(n,e,r,i))return!1}return!0}function Hn(e,t,n,r=!0){if(0===n.size)return t;const o=[];for(const a of t){const{name:t,data:i}=e(a);if(r){if("Jank"===t){o.push(a);continue}}else if(i&&"Network"===i.type)continue;i&&i.innerWindowID&&n.has(i.innerWindowID)&&o.push(a)}return o}class Vn{constructor(){this._correlations=void 0,this._correlations=new Map}set(e,t,n){let r=this._correlations.get(e);r||(r=new Map,this._correlations.set(e,r)),r.set(t,n)}get(e,t){const n=this._correlations.get(e);if(n)return n.get(t)}}function jn(e){function t(e,t){let n;return n="sending"===t.direction?`${e.pid},${t.otherPid}`:`${t.otherPid},${e.pid}`,n+`,${t.messageSeqno},${t.messageType}`}function n(e){if(null!=e){const t=a.get(e);if(void 0!==t)return`${t} (Thread ID: ${e})`}}function r(e){const{phase:t}=e;if("sending"===e.direction)switch(t){case"endpoint":case void 0:return 0;case"transferStart":return 1;case"transferEnd":return 2;default:throw(0,ut.lC)(t,"Unhandled IPC phase type.")}else switch(t){case"transferEnd":return 3;case"endpoint":case void 0:return 4;case"transferStart":throw new Error('Unexpected "transferStart" phase found on receiving side.');default:throw(0,ut.lC)(t,"Unhandled IPC phase type.")}}const o=new Map,a=new Map;for(const n of e)if(Bn.M.withBackingArray(n.stringArray).hasString("IPC")&&"number"==typeof n.tid){const i=n.tid;a.set(i,(0,bn.XU)(e,n));for(let e=0;e<n.markers.length;e++){const a=n.markers.data[e];if(!a||"IPC"!==a.type)continue;const s=t(n,a);o.has(s)||o.set(s,new Array(5).fill(void 0));const l=(0,ut.Nn)(o.get(s)),c=r(a);void 0===l[c]?l[c]={tid:i,index:e,data:a}:console.warn("Duplicate IPC marker found for key",s)}}const i=new Vn;for(const e of o.values()){const t=e[0],r=e[4],o=t?t.tid:void 0,a=r?r.tid:void 0,s={startTime:t?t.data.startTime:void 0,sendStartTime:e[1]?e[1].data.startTime:void 0,sendEndTime:e[2]?e[2].data.startTime:void 0,recvEndTime:e[3]?e[3].data.startTime:void 0,endTime:r?r.data.startTime:void 0,sendTid:o,recvTid:a,sendThreadName:n(o),recvThreadName:n(a)},l=new Set;if(t&&(l.add(t.tid),i.set(t.tid,t.index,s)),r&&(l.add(r.tid),i.set(r.tid,r.index,s)),!t||!r)for(const t of e.slice(1,4))void 0===t||l.has(t.tid)||(i.set(t.tid,t.index,s),l.add(t.tid))}return i}function $n(e,t,n,r,o){const a=[],i=[],s=new Map,l=new Map;function c(e,t){i.push(e),a.push(t)}const d=new Map;for(let a=0;a<e.length;a++){const i=e.name[a],p=e.startTime[a],m=e.endTime[a],f=e.phase[a],g=e.data[a],A=e.category[a],b=e.threadId?e.threadId[a]:null;if(g)switch(g.type){case"Network":{const n="Network markers are assumed to have a start and end time.";if("STATUS_START"===g.status)l.set(g.id,a);else{const o=g,s=l.get(g.id);if(void 0!==s){l.delete(g.id);const r=e.data[s],d=(0,ut.Nn)(e.startTime[s],n),u=(0,ut.Nn)(p,n);c([s,a],{start:d,end:(0,ut.Nn)(m,n),name:t[i],category:A,threadId:b,data:{...o,startTime:d,fetchStart:u,cause:r.cause||o.cause}})}else{const e=Math.min(r.start,(0,ut.Nn)(p,"Network markers are assumed to have a start time."));c([a],{start:e,end:(0,ut.Nn)(m,n),name:t[i],category:A,threadId:b,data:{...o,startTime:e,fetchStart:o.startTime,cause:o.cause},incomplete:!0})}}continue}case"CompositorScreenshot":{const{windowID:n}=g,r=d.get(n);if(void 0!==r){d.delete(n);const t=(0,ut.Nn)(e.startTime[r],"Expected to find a start time for a screenshot marker."),o=(0,ut.Nn)(p,"The CompositorScreenshot is assumed to have a start time."),a=e.data[r];c([r],{start:t,end:o,name:"CompositorScreenshot",category:A,threadId:e.threadId?e.threadId[r]:null,data:a})}if("CompositorScreenshotWindowDestroyed"===t[i])break;d.set(n,a);continue}case"IPC":{const e=o.get(n||0,a);if(!e)continue;if("sending"===g.direction&&"transferEnd"===g.phase&&void 0!==e.sendStartTime)continue;let t="sending"===g.direction?"IPCOut":"IPCIn";g.sync&&(t="Sync"+t);let r=(0,ut.Nn)(g.startTime,"Expected IPC startTime to exist in the payload."),i=r,s=!0;void 0!==e.startTime&&void 0!==e.endTime&&(r=e.startTime,i=e.endTime,s=!1),c([a],{start:r,end:i,name:t,category:A,threadId:b,data:{...g,...e,niceDirection:"sending"===g.direction?`sent to ${e.recvThreadName||g.otherPid}`:`received from ${e.sendThreadName||g.otherPid}`},incomplete:s});continue}}switch(f){case In.mN:c([a],{start:(0,ut.Nn)(p,"An Instant marker did not have a startTime."),end:null,name:t[i],category:A,threadId:b,data:g});break;case In.KU:c([a],{start:(0,ut.Nn)(p,"An Interval marker did not have a startTime."),end:(0,ut.Nn)(m,"An Interval marker did not have a startTime."),name:t[i],category:A,threadId:b,data:g});break;case In.nO:{let e=s.get(i);e||(e=[],s.set(i,e)),e.push(a)}break;case In.a1:{const n=s.get(i);let o;n&&(o=n.pop());const l=(0,ut.Nn)(m,"An IntervalEnd marker did not have an endTime");void 0!==o?c([o,a],{start:(0,ut.Nn)(e.startTime[o],"An IntervalStart marker did not have a startTime"),name:t[i],end:l,category:A,threadId:b,data:(u=e.data[o],h=g,u||h?{...u,...h}:null)}):c([a],{start:Math.min(l,r.start),name:t[i],end:l,category:A,threadId:b,data:g,incomplete:!0})}break;default:throw new Error("Unhandled marker phase type.")}}var u,h;const p=r.end;for(const n of s.values())for(const r of n){const n=(0,ut.Nn)(e.startTime[r],"Encountered a marker without a startTime. Eventually this needs to be handled for phase-style markers.");c([r],{start:n,end:Math.max(p,n),name:t[e.name[r]],data:e.data[r],category:e.category[r],threadId:e.threadId?e.threadId[r]:null,incomplete:!0})}for(const n of l.values()){const r=(0,ut.Nn)(e.startTime[n],"Network markers are assumed to always have a start time.");c([n],{start:r,end:Math.max(p,r),name:t[e.name[n]],category:e.category[n],threadId:e.threadId?e.threadId[n]:null,data:e.data[n],incomplete:!0})}for(const t of d.values()){const n=(0,ut.Nn)(e.startTime[t],"Expected to find a CompositorScreenshot marker with a start time.");c([t],{start:n,end:Math.max(p,n),name:"CompositorScreenshot",category:e.category[t],threadId:e.threadId?e.threadId[t]:null,data:e.data[t]})}return{markers:a,markerIndexToRawMarkerIndexes:i}}function Kn(e,t,n,r){const{markers:o,markerIndexToRawMarkerIndexes:a}=t,i=new Set;for(let e=0;e<o.length;e++){const{start:t,end:s}=o[e];if(null===s){if(t<r&&t>=n)for(const t of a[e])i.add(t)}else if(t<r&&s>=n)for(const t of a[e])i.add(t)}return[...i].sort(((e,t)=>e-t))}function Yn(e,t,n){return t.filter((t=>n(e(t))))}function qn(e,t,n,r){return Yn(e,t,(e=>e.start<=r&&(e.end||e.start)>=n))}function Zn(e){return!(!e.data||"Network"!==e.data.type)}function Xn(e){return!(!e.data||"UserTiming"!==e.data.type)}function Jn({name:e,data:t}){return"TTI"===e||"FirstContentfulPaint"===e||"FirstContentfulComposite"===e||"LargestContentfulPaint"===e||!!t&&(!(!t.innerWindowID||"Navigation::Start"!==e)||"Navigation"===t.category&&("Load"===e||"DOMContentLoaded"===e))}function Qn(e){const{data:t}=e;if(t&&"FileIO"===t.type)return void 0===t.threadId}function er(e){return t=>{const{data:n}=t;return!n||!e[n.type]||void 0}}function tr(e){let t;try{t=new URL(e.URI)}catch(e){return null}const n=t.pathname,r=n.lastIndexOf(".");if(r<0)return null;const o=n.slice(r+1);switch(o){case"js":return"application/javascript";case"css":case"html":return`text/${o}`;case"gif":case"png":return`image/${o}`;case"jpeg":case"jpg":return"image/jpeg";case"svg":return"image/svg+xml";default:return null}}function nr(e){switch(e){case"text/css":return"network-color-css";case"text/html":return"network-color-html";case"application/javascript":return"network-color-js";case null:return"network-color-other";default:return e.startsWith("image/")?"network-color-img":"network-color-other"}}function rr(e,t){const n=new Map;for(const r of t){const t=e(r),{data:o}=t;if(o&&"CompositorScreenshot"===o.type){let e=n.get(o.windowID);void 0===e&&(e=[],n.set(o.windowID,e)),e.push(t)}}return n}function or(e){return{...e,URI:"",RedirectURI:""}}function ar(e){return{...e,name:kn(e.name)}}function ir(e,t){return["ExtensionParent","ExtensionChild"].includes(e)?{...t,name:t.name.replace(/^.*, (api_(call|event): )/,"$1")}:"Extension Suspend"===e?{...t,name:t.name.replace(/ by .*$/,"")}:t}function sr(e,t){for(const{key:n,format:r}of e.fields)n in t&&("url"===r?t={...t,[n]:kn(t[n])}:"file-path"===r?t={...t,[n]:xn(t[n])}:"sanitized-string"===r&&(t={...t,[n]:"<sanitized>"}));return t}function lr(e){}function cr(e,t,n,r,o,a=lr){const i=function(e,t){const n=new Set;for(const{display:r,name:o}of e)r.includes(t)&&n.add(o);return n}(n,o);return Yn(e,t,(e=>{const t=a(e);if(void 0!==t)return t;const n=e.data?e.data.type??null:null;return null!==n&&i.has(n)}))}function dr(e,t){const{windowWidth:n,windowHeight:r}=e,o=r>n?t/r:t/n;let a=n*o,i=r*o;return a=Math.round(a),i=Math.round(i),{width:a,height:i}}const ur=e=>{if(!e||!e.length)return null;const t=new Map,n=[];for(const r of e){const e=r.match(/^(?<maybeNegative>-?)(?<key>\w+):(?<value>.+)/i);if(e&&e.groups){const{maybeNegative:o,value:a}=e.groups,i=e.groups.key.toLowerCase();let s=t.get(i);s||(s={positive:[],negative:[]},t.set(i,s)),0===o.length?(s.positive.push(a),n.push(r)):s.negative.push(a)}else n.push(r)}const r=new Map;for(const[e,n]of t)r.set(e,{positive:Sn(n.positive),negative:Sn(n.negative)});return{generic:Sn(n),fieldMap:r}};function hr(e){return function(e){let t="",n=0,r=null,o=0;for(let a=1;a<e.length;a++)"<"===e[a]?(" "!==e[a-1]&&"."!==e[a-1]&&null===r&&(t+=e.slice(o,a),o=a,r=n),n++):">"===e[a]&&(n--,n===r&&(o=a+1,r=null));return t+=e.slice(o),t}(function(e){const t=e.replace(/ \[clone [^]+\]$/,"").replace(/ const$/,"").replace(/^static /,"");if(")"!==t[t.length-1])return e;let n=0;for(let e=t.length-1;e>0;e--)if(")"===t[e])n++;else if("("===t[e]&&(n--,0===n))return t.substr(0,e);return t}(e))}const pr={},mr={};function fr(e){if(!e)return[];const t=[];return e.split("~").forEach((e=>{const n=e.split("-"),r=n[0],o=(0,ut.DO)(mr[r]);if(null!==o)switch(o){case"collapse-resource":{const[,e,r,a]=n,i=parseInt(r,10),s=parseInt(a,10);if(isNaN(i)||isNaN(s))break;i>=0&&t.push({type:o,resourceIndex:i,collapsedFuncIndex:s,implementation:(0,bn.Cn)(e)});break}case"collapse-recursion":{const[,e]=n,r=parseInt(e,10);if(isNaN(r)||r<0)break;t.push({type:"collapse-recursion",funcIndex:r});break}case"collapse-direct-recursion":{const[,e,r]=n,o=parseInt(r,10);if(isNaN(o)||o<0)break;t.push({type:"collapse-direct-recursion",funcIndex:o,implementation:(0,bn.Cn)(e)});break}case"merge-function":case"focus-function":case"drop-function":case"collapse-function-subtree":{const[,e]=n,r=parseInt(e,10);if(!isNaN(r)&&r>=0)switch(o){case"merge-function":t.push({type:"merge-function",funcIndex:r});break;case"focus-function":t.push({type:"focus-function",funcIndex:r});break;case"drop-function":t.push({type:"drop-function",funcIndex:r});break;case"collapse-function-subtree":t.push({type:"collapse-function-subtree",funcIndex:r});break;default:throw new Error("Unmatched transform.")}break}case"focus-category":{const[,e]=n,r=parseInt(e,10);!isNaN(r)&&r>=0&&t.push({type:"focus-category",category:r});break}case"focus-subtree":case"merge-call-node":{const[,e,r,a]=n,i=(0,bn.Cn)(e),s=pn(r),l=Boolean(a);switch(o){case"focus-subtree":t.push({type:"focus-subtree",implementation:i,callNodePath:s,inverted:l});break;case"merge-call-node":t.push({type:"merge-call-node",implementation:i,callNodePath:s});break;default:throw new Error("Unmatched transform.")}break}case"filter-samples":{const[,e,...r]=n,o=r.join("-"),a=function(e){if("m"===e)return"marker-search";throw new Error("Unknown filter type.")}(e);t.push({type:"filter-samples",filterType:a,filter:o});break}default:throw(0,ut.lC)(o)}else console.error("Unrecognized transform was passed to the URL.",r)})),t}function gr(e){return e.map((e=>{const t=pr[e.type];if(!t)throw new Error("Expected to be able to convert a transform into its short key.");switch(e.type){case"merge-function":case"drop-function":case"collapse-function-subtree":case"focus-function":case"collapse-recursion":return`${t}-${e.funcIndex}`;case"focus-category":return`${t}-${e.category}`;case"collapse-resource":return`${t}-${e.implementation}-${e.resourceIndex}-${e.collapsedFuncIndex}`;case"collapse-direct-recursion":return`${t}-${e.implementation}-${e.funcIndex}`;case"focus-subtree":case"merge-call-node":{let n=[t,e.implementation,hn(e.callNodePath)].join("-");return e.inverted&&(n+="-i"),n}case"filter-samples":return`${t}-${function(e){if("marker-search"===e)return"m";throw(0,ut.lC)(e)}(e.filterType)}-${e.filter}`;default:throw(0,ut.lC)(e)}})).join("~")}function Ar(e,t,n,r){const{funcTable:o,stringTable:a,resourceTable:i}=t,{categories:s}=e,l=r.map((e=>{if("collapse-resource"===e.type){const t=i.name[e.resourceIndex];return{l10nId:"TransformNavigator--collapse-resource",item:a.getString(t)}}if("focus-category"===e.type){if(void 0===s)throw new Error("Expected categories to be defined.");return{l10nId:"TransformNavigator--focus-category",item:s[e.category].name}}if("filter-samples"===e.type){if("marker-search"===e.filterType)return{l10nId:"TransformNavigator--drop-samples-outside-of-markers-matching",item:e.filter};throw(0,ut.lC)(e.filterType)}let t;switch(e.type){case"focus-subtree":case"merge-call-node":t=e.callNodePath[e.callNodePath.length-1];break;case"focus-function":case"merge-function":case"drop-function":case"collapse-direct-recursion":case"collapse-recursion":case"collapse-function-subtree":t=e.funcIndex;break;default:throw(0,ut.lC)(e)}const n=o.name[t],r=hr(a.getString(n));switch(e.type){case"focus-subtree":return{l10nId:"TransformNavigator--focus-subtree",item:r};case"focus-function":return{l10nId:"TransformNavigator--focus-function",item:r};case"merge-call-node":return{l10nId:"TransformNavigator--merge-call-node",item:r};case"merge-function":return{l10nId:"TransformNavigator--merge-function",item:r};case"drop-function":return{l10nId:"TransformNavigator--drop-function",item:r};case"collapse-direct-recursion":return{l10nId:"TransformNavigator--collapse-direct-recursion-only",item:r};case"collapse-recursion":return{l10nId:"TransformNavigator--collapse-recursion",item:r};case"collapse-function-subtree":return{l10nId:"TransformNavigator--collapse-function-subtree",item:r};default:throw(0,ut.lC)(e)}}));return l.unshift({l10nId:"TransformNavigator--complete",item:n}),l}function br(e,t,n,r){switch(t.type){case"focus-subtree":return function(e,t){return Cr(e,t)?t.slice(e.length-1):[]}(t.callNodePath,e);case"focus-function":return function(e,t){const n=t.indexOf(e);return-1===n?[]:t.slice(n)}(t.funcIndex,e);case"focus-category":return function(e,t,n){const r=[];let o=-1;for(const a of t){const t=n.getCallNodeIndexFromParentAndFunc(o,a);if(null===t)throw new Error(`We couldn't find a node with prefix ${o} and func ${a}, this shouldn't happen.`);n.categoryForNode(t)===e&&r.push(a),o=t}return r}(t.category,e,r);case"merge-call-node":return function(e,t){return Cr(e,t)?t.filter(((t,n)=>n!==e.length-1)):t}(t.callNodePath,e);case"merge-function":return function(e,t){return t.filter((t=>t!==e))}(t.funcIndex,e);case"drop-function":return function(e,t){return t.includes(e)?[]:t}(t.funcIndex,e);case"collapse-resource":return function(e,t,n,r){return r.map((r=>n.resource[r]===e?t:r)).filter(((e,n,r)=>e!==r[n-1]||e!==t))}(t.resourceIndex,t.collapsedFuncIndex,n.funcTable,e);case"collapse-direct-recursion":return function(e,t){const n=[];let r;for(let o=0;o<t.length;o++){const a=t[o];a===e&&a===r||n.push(a),r=a}return n}(t.funcIndex,e);case"collapse-recursion":return function(e,t){const n=t.indexOf(e),r=t.lastIndexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(r))}(t.funcIndex,e);case"collapse-function-subtree":return function(e,t){const n=t.indexOf(e);return-1===n?t:t.slice(0,n+1)}(t.funcIndex,e);case"filter-samples":return e;default:throw(0,ut.lC)(t)}}function Cr(e,t){return e.length<=t.length&&e.every(((e,n)=>e===t[n]))}["focus-subtree","focus-function","focus-category","merge-call-node","merge-function","drop-function","collapse-resource","collapse-direct-recursion","collapse-recursion","collapse-function-subtree","filter-samples"].forEach((e=>{let t;switch(e){case"focus-subtree":t="f";break;case"focus-function":t="ff";break;case"focus-category":t="fg";break;case"merge-call-node":t="mcn";break;case"merge-function":t="mf";break;case"drop-function":t="df";break;case"collapse-resource":t="cr";break;case"collapse-direct-recursion":t="drec";break;case"collapse-recursion":t="rec";break;case"collapse-function-subtree":t="cfs";break;case"filter-samples":t="fs";break;default:throw(0,ut.lC)(e)}pr[e]=t,mr[t]=e}));const vr={combined:(e,t)=>!0,cpp:(e,t)=>{const{funcTable:n,stringTable:r}=e;if(e.funcTable.isJS[t])return!1;const o=r.getString(n.name[t]);return!(-1===n.resource[t]&&o.startsWith("0x"))},js:(e,t)=>e.funcTable.isJS[t]||e.funcTable.relevantForJS[t]};function yr(e,t,n){const{stackTable:r,frameTable:o}=e,a=vr[t],i=[];let s=null;for(let t=0;t<r.length;t++){const l=r.prefix[t],c=r.frame[t],d=o.func[c],u=null===l?-1:i[l];if(null===u)continue;const h=u+1;if(n[h]===d){if(i[t]=h,h===n.length-1){s=t;break}}else a(e,d)?i[t]=null:i[t]=u}if(null===s)return[];const l=[];for(let e=s;null!==e;e=r.prefix[e]){const t=r.frame[e],n=o.func[t];l.push(n)}return l.reverse()}function wr(e,t,n){const r=vr[t];return n.filter((t=>r(e,t.func)))}function Er(e,t){for(let n=0;n<e.length;n++)if(e.func[n]===t){const r=e.prefix[n];if(null!==r&&e.func[r]===t)return!0}return!1}function kr(e,t){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++){const o=e.prefix[r],a=e.func[r],i=-1!==o&&0!==n[o];if(t===a){if(i)return!0;n[r]=1}else i&&(n[r]=1)}return!1}function xr(e,t,n,r,o,a,i){switch(t.type){case"focus-subtree":return t.inverted?function(e,t,n){return(0,Cn.l)("focusInvertedSubtree",(()=>{const r=t.length,{stackTable:o,frameTable:a}=e,i=vr[n],s=new Map;return s.set(null,null),(0,bn.DR)(e,o,(n=>{let l=s.get(n);return void 0===l&&(l=function(n){let s=0;for(let l=n;null!==l;l=o.prefix[l]){const n=o.frame[l],c=a.func[n];if(c===t[s]){if(s++,s===r)return l}else if(i(e,c))return null}return null}(n),s.set(n,l)),l}))}))}(e,t.callNodePath,t.implementation):function(e,t,n){return(0,Cn.l)("focusSubtree",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length,i=new Int32Array(r.length),s=vr[n],l=new Map;l.set(null,null);const c=(0,vn.WG)();for(let n=0;n<r.length;n++){const d=r.prefix[n],u=null!==d?i[d]:0;let h=-1;if(-1!==u){const i=r.frame[n],p=r.category[n],m=r.subcategory[n];if(u===a)h=a;else{const n=o.func[i];n===t[u]?h=u+1:s(e,n)||(h=u)}if(h===a){const e=c.length++,t=l.get(d);c.prefix[e]=t??null,c.frame[e]=i,c.category[e]=p,c.subcategory[e]=m,l.set(n,e)}}i[n]=h}return(0,bn.DR)(e,c,(e=>{if(null===e||i[e]!==a)return null;const t=l.get(e);if(void 0===t)throw new Error("Converting from the old stack to a new stack cannot be undefined");return t}))}))}(e,t.callNodePath,t.implementation);case"merge-call-node":return function(e,t,n){return(0,Cn.l)("mergeCallNode",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length-1,i=new Map;i.set(null,null);const s=(0,vn.WG)(),l=[],c=[],d=vr[n];for(let n=0;n<r.length;n++){const u=r.prefix[n],h=r.frame[n],p=r.category[n],m=r.subcategory[n],f=o.func[h],g=null===u||c[u],A=null===u?-1:l[u],b=t[A+1];let C,v=!1,y=A;if(g&&y<a?b===f?(C=!0,y+1===a?v=!0:y++):C=!d(e,f):C=!1,c[n]=C,l[n]=y,v){const e=i.get(u);i.set(n,void 0===e?null:e)}else{const e=s.length++,t=i.get(u);s.prefix[e]=void 0===t?null:t,s.frame[e]=h,s.category[e]=p,s.subcategory[e]=m,i.set(n,e)}}return(0,bn.DR)(e,s,(0,bn.Us)(i))}))}(e,t.callNodePath,t.implementation);case"merge-function":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Uint32Array(n.length),a=n.frame,i=r.func,s=n.prefix,l=new Array(n.length);for(let e=0;e<n.length;e++){const n=s[e],r=null===n?0:o[n],c=i[a[e]];o[e]=c===t?r:e+1;const d=0===r?null:r-1;l[e]=d}const c={...n,prefix:l};return(0,bn.DR)(e,c,(e=>{if(null===e)return null;const t=o[e];return 0===t?null:t-1}))}(e,t.funcIndex);case"drop-function":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Uint8Array(n.length);for(let e=0;e<n.length;e++){const a=n.prefix[e],i=n.frame[e];(r.func[i]===t||null!==a&&1===o[a])&&(o[e]=1)}return(0,bn.DR)(e,n,(e=>null!==e&&1===o[e]?null:e))}(e,t.funcIndex);case"focus-function":return function(e,t){return(0,Cn.l)("focusFunction",(()=>{const{stackTable:n,frameTable:r}=e,o=new Uint32Array(n.length),a=(0,vn.WG)();for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null===i?0:o[i],d=0===c?null:c-1;if(null!==d||l===t){const t=a.length++;a.prefix[t]=d,a.frame[t]=s,a.category[t]=n.category[e],a.subcategory[t]=n.subcategory[e],o[e]=t+1}}return(0,bn.DR)(e,a,(e=>{if(null===e)return null;const t=o[e];return 0===t?null:t-1}))}))}(e,t.funcIndex);case"focus-category":return function(e,t){return(0,Cn.l)("focusCategory",(()=>{const{stackTable:n}=e,r=new Map;r.set(null,null);const o=(0,vn.WG)();for(let e=0;e<n.length;e++){const a=n.prefix[e],i=r.get(a);if(void 0===i)throw new Error("The prefix should not map to an undefined value");if(n.category[e]!==t){r.set(e,i);continue}const s=o.length++;o.prefix[s]=i,o.frame[s]=n.frame[e],o.category[s]=n.category[e],o.subcategory[s]=n.subcategory[e],r.set(e,s)}return(0,bn.DR)(e,o,(0,bn.Us)(r))}))}(e,t.category);case"collapse-resource":return function(e,t,n,r,o){const{stackTable:a,funcTable:i,frameTable:s}=e,l=(0,vn.LK)(s),c=(0,vn.WG)(),d=new Map,u=new Map,h=new Set,p=vr[r];let m;d.set(null,null);for(let r=0;r<a.length;r++){const f=a.prefix[r],g=a.frame[r],A=a.category[r],b=a.subcategory[r],C=s.func[g],v=i.resource[C],y=d.get(f);if(void 0===y)throw new Error("newStackPrefix must not be undefined");if(v===t)if(h.has(y))d.set(r,y);else{const e=u.get(f);if(void 0===e){const e=c.length++;h.add(e),d.set(r,e),u.set(f,e),void 0===m&&(m=l.length++,l.address.push(s.address[g]),l.inlineDepth.push(s.inlineDepth[g]),l.category.push(s.category[g]),l.subcategory.push(s.subcategory[g]),l.func.push(n),l.nativeSymbol.push(s.nativeSymbol[g]),l.line.push(s.line[g]),l.column.push(s.column[g]),l.innerWindowID.push(s.innerWindowID[g])),c.prefix.push(y),c.frame.push(m),c.category.push(A),c.subcategory.push(b)}else{if(null===e)throw new Error("existingCollapsedStack cannot be null");d.set(r,e),c.category[e]!==A?(c.category[e]=o,c.subcategory[e]=0):c.subcategory[e]!==b&&(c.subcategory[e]=0)}}else{if(!p(e,C)&&null!==y){const e=c.frame[y],n=l.func[e];if(i.resource[n]===t){d.set(r,y);continue}}const n=c.length++;c.prefix.push(y),c.frame.push(g),c.category.push(A),c.subcategory.push(b),d.set(r,n)}}const f={...e,frameTable:l};return(0,bn.DR)(f,c,(0,bn.Us)(d))}(e,t.resourceIndex,t.collapsedFuncIndex,t.implementation,n);case"collapse-direct-recursion":return function(e,t,n){const{stackTable:r,frameTable:o}=e,a=new Map,i=vr[n],s=r.prefix.slice();for(let n=0;n<r.length;n++){const l=r.prefix[n],c=r.frame[n],d=o.func[c],u=null!==l?a.get(l):void 0;void 0===u?d===t&&a.set(n,l):i(e,d)?d===t&&(a.set(n,u),s[n]=u):a.set(n,u)}return{...e,stackTable:{...r,prefix:s}}}(e,t.funcIndex,t.implementation);case"collapse-recursion":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Map,a=n.prefix.slice();for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null!==i?o.get(i):void 0;void 0===c?l===t&&o.set(e,i):(o.set(e,c),l===t&&(a[e]=c))}return{...e,stackTable:{...n,prefix:a}}}(e,t.funcIndex);case"collapse-function-subtree":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Int32Array(n.length),a=new Uint8Array(n.length);for(let e=0;e<n.length;e++){const i=n.prefix[e];if(null!==i&&0!==a[i])o[e]=o[i],a[e]=1;else{o[e]=e;const i=n.frame[e];t===r.func[i]&&(a[e]=1)}}return(0,bn.DR)(e,e.stackTable,(e=>null===e?null:o[e]))}(e,t.funcIndex);case"filter-samples":return function(e,t,n,r,o,a,i){return(0,Cn.l)("filterSamples",(()=>{const s=function(e){if(0===e.length)return[];const t=e.slice().sort(((e,t)=>e.start-t.start));let n={...t[0]};const r=[n];for(let e=1;e<t.length;e++){const o=t[e];o.start>=o.end||o.end<=n.end||(o.start<=n.end?n.end=o.end:(n={...o},r.push(n)))}return r}(function(){if("marker-search"===a)return function(e,t,n,r,o,a){const i=[],s=zn(e,t,n,ur(Tn(a)),r,o);for(const t of s){const{start:n,end:r}=e(t);null!==n&&null!==r&&i.push({start:n,end:r})}return i}(t,n,r,e.stringTable,o,i);throw(0,ut.lC)(a)}());function l(e,t){const n=e.slice();let r=0;const o=t.length;for(const e of s){const{start:a,end:i}=e;for(;r<o&&!(t[r]>=a);r++)n[r]=null;for(;r<o&&!(t[r]>=i);r++);}for(;r<o;)n[r]=null,r++;return n}return(0,bn.hw)(e,e.stackTable,l,l,(e=>e))}))}(e,r,o,a,i,t.filterType,t.filter);default:throw(0,ut.lC)(t)}}const Tr={calltree:"TabBar--calltree-tab","flame-graph":"TabBar--flame-graph-tab","stack-chart":"TabBar--stack-chart-tab","marker-chart":"TabBar--marker-chart-tab","marker-table":"TabBar--marker-table-tab","network-chart":"TabBar--network-tab","js-tracer":"TabBar--js-tracer-tab"},Sr=Object.getOwnPropertyNames(Tr),Br=(Sr.map((e=>({name:e,title:Tr[e]}))),["calltree","flame-graph","stack-chart"]),Ir=10;let _r=!1,Nr=0;function Pr(){Nr++,_r=!0}function Mr(){if(Nr--,Nr<0)throw new Error("_maybeDisableHistoryReplaceState was called more than _enableHistoryReplaceState which should never happen.");0===Nr&&(_r=!1)}function Fr(e){Pr();try{e()}finally{Mr()}}async function Rr(e){Pr();try{await e()}finally{Mr()}}function Dr(e){const t=function(e){const{dataSource:t}=e;switch(t){case"none":return[];case"compare":return null===e.profilesToCompare?["compare"]:["compare",e.selectedTab];case"uploaded-recordings":return["uploaded-recordings"];case"from-browser":case"from-post-message":case"unpublished":case"from-file":return[t,e.selectedTab];case"public":case"local":return[t,e.hash,e.selectedTab];case"from-url":return["from-url",encodeURIComponent(e.profileUrl),e.selectedTab];default:throw(0,ut.lC)(t)}}(e),n=function(e){const{dataSource:t}=e;switch(t){case"none":case"uploaded-recordings":return"";case"compare":if(null===e.profilesToCompare)return"";break;case"public":case"local":case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"from-url":break;default:throw(0,ut.lC)(t)}const{selectedThreads:n}=e.profileSpecific,r=null!==n?(0,bn.X)(n):null;let o,a;const{timelineTrackOrganization:i}=e;switch(i.type){case"full":break;case"active-tab":a=i.type,o=i.tabID;break;case"origins":a=i.type;break;default:throw(0,ut.lC)(i,"Unhandled TimelineTrackOrganization case")}let s,l;switch(i.type){case"full":s={},s.globalTrackOrder=hn(e.profileSpecific.full.globalTrackOrder)||void 0,s.hiddenGlobalTracks=function(e){if(e.size>0)return un(e)}(e.profileSpecific.full.hiddenGlobalTracks),s.hiddenLocalTracksByPid=function(e){const t=[];for(const[n,r]of e)r.size>0&&t.push(`${n}-${un(r)}`);return t.join("~")||void 0}(e.profileSpecific.full.hiddenLocalTracksByPid),s.localTrackOrderByPid=function(e,t){const n=[];for(const r of t){const t=e.get(r);t&&t.length>0&&n.push(`${r}-${hn(t)}`)}return n.join("~")||void 0}(e.profileSpecific.full.localTrackOrderByPid,e.profileSpecific.full.localTrackOrderChangedPids),s.tabID=e.profileSpecific.full.tabFilter??void 0;break;case"active-tab":s={},s.resources=e.profileSpecific.activeTab.isResourcesPanelOpen?null:void 0,s.ctxId=o||void 0;break;case"origins":s={};break;default:throw(0,ut.lC)(i,"Unhandled GlobalTrack type.")}s={...s,range:sn(e.profileSpecific.committedRanges)||void 0,thread:null===n?void 0:un(n),file:e.pathInZipFile||void 0,profiles:e.profilesToCompare||void 0,view:a,v:Ir,profileName:e.profileName||void 0,symbolServer:e.symbolServerUrl||void 0,implementation:"combined"===e.profileSpecific.implementation?void 0:e.profileSpecific.implementation,timelineType:"cpu-category"===e.profileSpecific.timelineType?void 0:e.profileSpecific.timelineType};const c=e.selectedTab;switch(c){case"stack-chart":case"flame-graph":case"calltree":{"stack-chart"===c?(l=s,l.showUserTimings=e.profileSpecific.showUserTimings?null:void 0):l=s,l.search=e.profileSpecific.callTreeSearchString||void 0,l.invertCallstack=e.profileSpecific.invertCallstack?null:void 0,null!==r&&e.profileSpecific.transforms[r]&&(l.transforms=gr(e.profileSpecific.transforms[r])||void 0),l.ctSummary="timing"===e.profileSpecific.lastSelectedCallTreeSummaryStrategy?void 0:e.profileSpecific.lastSelectedCallTreeSummaryStrategy;const{sourceView:t,assemblyView:n,isBottomBoxOpenPerPanel:o}=e.profileSpecific;o[c]&&(null!==t.sourceFile&&(l.sourceView=t.sourceFile),n.isOpen&&null!==n.nativeSymbol&&(l.assemblyView=function(e){const{libIndex:t,address:n,name:r,functionSize:o,functionSizeIsKnown:a}=e,i=n.toString(16);let s=o.toString(16);return a||(s+="_"),`${t}~${i}~${s}~${r}`}(n.nativeSymbol)));break}case"marker-table":case"marker-chart":l=s,l.markerSearch=e.profileSpecific.markersSearchString||void 0;break;case"network-chart":l=s,l.networkSearch=e.profileSpecific.networkSearchString||void 0;break;case"js-tracer":{l=s;const{timelineTrackOrganization:t}=e;switch(t.type){case"full":case"origins":l.summary=e.profileSpecific.full.showJsTracerSummary?null:void 0;break;case"active-tab":break;default:throw(0,ut.lC)(t,"Unhandled timelineTrackOrganization case")}break}default:throw(0,ut.lC)(c)}return Rt.stringify(l,{arrayFormat:"bracket"})}(e),{dataSource:r}=e;return"none"===r?"/":(0===t.length?"/":"/"+t.join("/")+"/")+(n?"?"+n:"")}function Lr(e){const t=(0,ut.au)(e||"none");switch(t){case"none":case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"local":case"public":case"from-url":case"compare":case"uploaded-recordings":return t;default:throw(0,ut.lC)(t,`Unexpected data source ${t}`)}}function Or(e,t){const{pathname:n,query:r}=function(e,t){e.pathname=e.pathname.replace(/^\/+from-addon/,"/from-browser");const n=+e.query.v||0;if(null===t||n===Ir)return e;if(n>Ir)throw new Gr(`Unable to parse a url of version ${n}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${Ir}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let r=n+1;r<=Ir;r++)r in Wr&&(0,Wr[r])(e,t);return e.query.v=Ir,e}({pathname:e.pathname,hash:e.hash,query:Rt.parse(e.search.substr(1),{arrayFormat:"bracket"})},t),o=n.split("/").filter((e=>e)),a=Lr(o[0]),i=void 0!==r.thread?pn(r.thread):[],s=0!==i.length?new Set(i):null,l=null!==s?(0,bn.X)(s):null,c=["local","public"].includes(a),d=["from-url"].includes(a),u=c||d?2:1;let h="combined";"js"!==r.implementation&&"cpp"!==r.implementation||(h=r.implementation);const p={};null!==l&&(p[l]=fr(r.transforms));let m=null;r.ctxId&&Number.isInteger(Number(r.ctxId))&&(m=Number(r.ctxId));let f=null;r.tabID&&Number.isInteger(Number(r.tabID))&&(f=Number(r.tabID));const g=(0,ut.q3)(o[u])||"calltree",A={scrollGeneration:0,libIndex:null,sourceFile:null},b={isOpen:!1,scrollGeneration:0,nativeSymbol:null,allNativeSymbolsForInitiatingCallNode:[]},C={};if(Sr.forEach((e=>C[e]=!1)),r.sourceView&&(A.sourceFile=r.sourceView,C[g]=!0),r.assemblyView){const e=function(e){const[t,n,r,o]=e.split("~"),a=parseInt(t,10),i=parseInt(n,16),[s,l]=r.endsWith("_")?[r.slice(0,-1),!1]:[r,!0],c=parseInt(s,16);return isNaN(a)||isNaN(i)||isNaN(c)?null:{libIndex:a,address:i,name:o,functionSize:c,functionSizeIsKnown:l}}(r.assemblyView);null!==e&&(b.nativeSymbol=e,b.allNativeSymbolsForInitiatingCallNode=[e],b.isOpen=!0,C[g]=!0)}const v=function(e){if(!e)return new Map;const t=new Map;for(const n of e.split("~")){if(!n.includes("-"))continue;const e=n.slice(0,n.indexOf("-")),r=pn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,r)}return t}(r.localTrackOrderByPid),y=new Set(v.keys());return{dataSource:a,hash:c?o[1]:"",profileUrl:d?decodeURIComponent(o[1]):"",profilesToCompare:r.profiles||null,selectedTab:g,pathInZipFile:r.file||null,profileName:r.profileName,symbolServerUrl:r.symbolServer||null,timelineTrackOrganization:jr(r.view,m),profileSpecific:{implementation:h,lastSelectedCallTreeSummaryStrategy:(0,bn.pZ)(r.ctSummary||void 0),invertCallstack:void 0!==r.invertCallstack,showUserTimings:void 0!==r.showUserTimings,committedRanges:r.range?on(r.range):[],selectedThreads:s,callTreeSearchString:r.search||"",markersSearchString:r.markerSearch||"",networkSearchString:r.networkSearch||"",transforms:p,sourceView:A,assemblyView:b,isBottomBoxOpenPerPanel:C,timelineType:$r(r.timelineType),full:{showJsTracerSummary:void 0!==r.summary,globalTrackOrder:(w=r.globalTrackOrder,w?pn(w):[]),hiddenGlobalTracks:Ur(r.hiddenGlobalTracks),hiddenLocalTracksByPid:zr(r.hiddenLocalTracksByPid),localTrackOrderByPid:v,localTrackOrderChangedPids:y,tabFilter:f,legacyThreadOrder:r.threadOrder?r.threadOrder.split("-").map((e=>Number(e))):null,legacyHiddenThreads:r.hiddenThreads?r.hiddenThreads.split("-").map((e=>Number(e))):null},activeTab:{isResourcesPanelOpen:void 0!==r.resources}}};var w}function Ur(e){return e?new Set(pn(e)):new Set}function zr(e){if(!e)return new Map;const t=new Map;for(const n of e.split("~")){if(!n.includes("-"))continue;const e=n.slice(0,n.indexOf("-")),r=pn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,new Set(r))}return t}class Gr extends Error{constructor(...e){super(...e),this.name="UrlUpgradeError"}}const Wr={1:e=>{if("/"===e.pathname){const t=Object.assign({},e.query,Rt.parse(e.hash));"report"in t&&(e.pathname=`/public/${t.report}/calltree/`,e.hash="",e.query={})}void 0!==e.query.jsOnly&&(delete e.query.jsOnly,e.query.implementation="js"),e.query.callTreeFilters&&(e.query.transforms=e.query.callTreeFilters.split("~").map((e=>{const[t,n]=e.split("-");switch(t){case"prefix":return`f-combined-${n}`;case"prefixjs":return`f-js-${n}`;case"postfix":return`f-combined-${n}-i`;case"postfixjs":return`f-js-${n}-i`;default:return}})).filter((e=>e)).join("~"),delete e.query.callTreeFilters)},2:e=>{e.pathname=e.pathname.replace(/^(\/[^/]+\/[^/]+)\/timeline\/?/,"$1/stack-chart/").replace(/^(\/[^/]+\/[^/]+)\/markers\/?/,"$1/marker-table/")},3:e=>{const{query:t}=e;"hidePlatformDetails"in t&&(delete t.hidePlatformDetails,t.implementation="js")},4:(e,t)=>{const n=e.query,r=void 0===n.thread?null:+n.thread;if(null===r||void 0===t)return;const o=fr(n.transforms);if(!o||0===o.length)return;const a=t.threads[r];for(let e=0;e<o.length;e++){const t=o[e];if(!t.implementation||"js"!==t.implementation||!t.callNodePath)continue;const n=Hr(a,t.callNodePath);null!==n&&(t.callNodePath=Vr(a,n))}e.query.transforms=gr(o)},5:({query:e})=>{e.range&&(e.range=e.range.split("~").map((e=>{const t=e.match(/^(-?[0-9.]+)_(-?[0-9.]+)$/);if(!t)return console.error(`The range "${e}" couldn't be parsed, ignoring.`),null;const n=1e3*Number(t[1]),r=1e3*Number(t[2]);return isNaN(n)||isNaN(r)?(console.error(`The range "${e}" couldn't be parsed, ignoring.`),null):an({start:n,end:r})})).filter(Boolean).join("~"))},6:({query:e})=>{if(e.globalTrackOrder){const t=e.globalTrackOrder.split("-").map((e=>+e));e.globalTrackOrder=hn(t)||void 0}if(e.hiddenGlobalTracks){const t=new Set(e.hiddenGlobalTracks.split("-").map((e=>+e)));e.hiddenGlobalTracks=un(t)||void 0}if(e.hiddenLocalTracksByPid&&(e.hiddenLocalTracksByPid=e.hiddenLocalTracksByPid.split("~").map((e=>{const[t,...n]=e.split("-"),r=new Set(n.map((e=>+e)));return`${t}-${un(r)}`})).join("~")),e.localTrackOrderByPid&&(e.localTrackOrderByPid=e.localTrackOrderByPid.split("~").map((e=>{const[t,...n]=e.split("-"),r=n.map((e=>+e));return`${t}-${hn(r)}`})).join("~")),e.thread){const t=new Set(e.thread.split(",").map((e=>+e)));e.thread=un(t)}e.transforms&&e.transforms.includes(";")&&delete e.transforms},7:({query:e})=>{switch(e.timelineType){case"cpu-category":delete e.timelineType;break;case"stack":break;default:e.timelineType="category"}},8:e=>{},9:({query:e})=>{if(e.transforms){const t=e.transforms.split("~");e.transforms=t.map((function(e){if(e.startsWith("irec-")){const[,,t]=e.split("-");return`rec-${t}`}return e.startsWith("rec-")?"d"+e:e})).join("~")}},10:({query:e},t)=>{if(!e.transforms||!e.thread||!t)return;const n=pn(e.thread);if(1!==n.length)return;const r=n[0],o=t.threads[r].funcTable.length,a=e.transforms.split("~");e.transforms=a.map((function(e){if(e.startsWith("cr-")){const[,t,n]=e.split("-"),r=o+ +n;if(!isNaN(r))return`cr-${t}-${n}-${r}`}return e})).join("~")}};for(let e=1;e<=Ir;e++)if(!Wr[e])throw new Error(`There is no upgrader for version ${e}.`);for(const e of Object.keys(Wr)){const t=+e;if(t>Ir)throw new Error(_n.TN`
|
16
|
+
There is an upgrader for version ${t}, which is larger than
|
17
|
+
CURRENT_URL_VERSION (${Ir}). If you added a new upgrader,
|
18
|
+
make sure and bump the CURRENT_URL_VERSION variable.
|
19
|
+
`)}function Hr(e,t){const{stackTable:n,funcTable:r,frameTable:o}=e,a=new Map;a.set(null,-1);for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=o.func[s],c=r.isJS[l];if(null!==i&&!a.has(i))continue;const d=(0,ut.Nn)(a.get(i),"Unable to find the stack depth for a prefix"),u=d+1;if(c&&t[u]===l){if(u===t.length-1)return e;a.set(e,u)}else a.set(e,d)}return null}function Vr(e,t){const{funcTable:n,stackTable:r,frameTable:o}=e,a=[];let i=t;for(;null!==i;){const e=r.frame[i],t=o.func[e];(n.isJS[t]||n.relevantForJS[t])&&a.unshift(t),i=r.prefix[i]}return a}function jr(e,t){switch(e){case"full":default:return{type:"full"};case"active-tab":return{type:"active-tab",tabID:t};case"origins":return{type:"origins"}}}function $r(e){const t=e;switch(t){case"stack":case"cpu-category":case"category":return t;default:return"cpu-category"}}class Kr{constructor(e,t){this._zipFileTable=void 0,this._parentToChildren=void 0,this._displayDataByIndex=void 0,this._zipFileUrl=void 0,this._zipFileTable=e,this._zipFileUrl=t,this._displayDataByIndex=new Map,this._parentToChildren=new Map,this._parentToChildren.set(null,this._computeChildrenArray(null))}getRoots(){return this.getChildren(null)}getChildren(e){let t=this._parentToChildren.get(e);return t||(t=this._computeChildrenArray(e),this._parentToChildren.set(e,t)),t}_computeChildrenArray(e){const t=[];for(let n=0;n<this._zipFileTable.length;n++)this._zipFileTable.prefix[n]===e&&t.push(n);return t}hasChildren(e){return this.getChildren(e).length>0}getAllDescendants(e){if(null===e)return new Set(Array.from({length:this._zipFileTable.length},((e,t)=>t)));const t=new Set;for(const n of this.getChildren(e)){t.add(n);for(const e of this.getAllDescendants(n))t.add(e)}return t}getParent(e){const t=this._zipFileTable.prefix[e];return null===t?-1:t}getDepth(e){return this._zipFileTable.depth[e]}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){let n=null;this.hasChildren(e)||(n=window.location.origin+"/from-url/"+encodeURIComponent(this._zipFileUrl)+"/"+(0,ut.hQ)("calltree")+"/?file="+encodeURIComponent(this._zipFileTable.path[e]));let r=this._zipFileTable.partName[e];const o=[".json"].find((e=>r.endsWith(e)));o&&(r=r.slice(0,r.length-o.length)),t={name:r,url:n,zipTableIndex:e},this._displayDataByIndex.set(e,t)}return t}}const Yr=["localhost","127.0.0.1","::1"];function qr(e){try{const t=e instanceof URL?e:new URL(e);return Yr.includes(t.hostname)}catch(e){return!1}}function Zr(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Xr=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),Jr=()=>Math.random().toString(36).substring(7).split("").join("."),Qr={INIT:`@@redux/INIT${Jr()}`,REPLACE:`@@redux/REPLACE${Jr()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Jr()}`};function eo(e,t,n){if("function"!=typeof e)throw new Error(Zr(2));if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(Zr(0));if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error(Zr(1));return n(eo)(e,t)}let r=e,o=t,a=new Map,i=a,s=0,l=!1;function c(){i===a&&(i=new Map,a.forEach(((e,t)=>{i.set(t,e)})))}function d(){if(l)throw new Error(Zr(3));return o}function u(e){if("function"!=typeof e)throw new Error(Zr(4));if(l)throw new Error(Zr(5));let t=!0;c();const n=s++;return i.set(n,e),function(){if(t){if(l)throw new Error(Zr(6));t=!1,c(),i.delete(n),a=null}}}function h(e){if(!function(e){if("object"!=typeof e||null===e)return!1;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||null===Object.getPrototypeOf(e)}(e))throw new Error(Zr(7));if(void 0===e.type)throw new Error(Zr(8));if("string"!=typeof e.type)throw new Error(Zr(17));if(l)throw new Error(Zr(9));try{l=!0,o=r(o,e)}finally{l=!1}return(a=i).forEach((e=>{e()})),e}return h({type:Qr.INIT}),{dispatch:h,subscribe:u,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw new Error(Zr(10));r=e,h({type:Qr.REPLACE})},[Xr]:function(){const e=u;return{subscribe(t){if("object"!=typeof t||null===t)throw new Error(Zr(11));function n(){const e=t;e.next&&e.next(d())}return n(),{unsubscribe:e(n)}},[Xr](){return this}}}}}function to(e){const t=Object.keys(e),n={};for(let r=0;r<t.length;r++){const o=t[r];"function"==typeof e[o]&&(n[o]=e[o])}const r=Object.keys(n);let o;try{!function(e){Object.keys(e).forEach((t=>{const n=e[t];if(void 0===n(void 0,{type:Qr.INIT}))throw new Error(Zr(12));if(void 0===n(void 0,{type:Qr.PROBE_UNKNOWN_ACTION()}))throw new Error(Zr(13))}))}(n)}catch(e){o=e}return function(e={},t){if(o)throw o;let a=!1;const i={};for(let o=0;o<r.length;o++){const s=r[o],l=n[s],c=e[s],d=l(c,t);if(void 0===d)throw t&&t.type,new Error(Zr(14));i[s]=d,a=a||d!==c}return a=a||r.length!==Object.keys(e).length,a?i:e}}const no=(e="calltree",t)=>{switch(t.type){case"CHANGE_SELECTED_TAB":case"SELECT_TRACK":case"VIEW_FULL_PROFILE":case"CHANGE_TAB_FILTER":return t.selectedTab;case"FOCUS_CALL_TREE":return"calltree";default:return e}},ro=to({globalTrackOrder:(e=[],t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_GLOBAL_TRACK_ORDER":case"CHANGE_TAB_FILTER":return t.globalTrackOrder;case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?[]:e;default:return e}},hiddenGlobalTracks:(e=new Set,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ISOLATE_LOCAL_TRACK":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"ISOLATE_SCREENSHOT_TRACK":case"CHANGE_TAB_FILTER":return t.hiddenGlobalTracks;case"HIDE_GLOBAL_TRACK":{const n=new Set(e);return n.add(t.trackIndex),n}case"SHOW_ALL_TRACKS":return new Set;case"SHOW_PROVIDED_TRACKS":{const n=new Set(e);return t.globalTracksToShow.forEach(Set.prototype.delete,n),n}case"SHOW_GLOBAL_TRACK":case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":{const n=new Set(e);return n.delete(t.trackIndex),n}case"HIDE_PROVIDED_TRACKS":{const n=new Set(e);return t.globalTracksToHide.forEach(Set.prototype.add,n),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Set:e;default:return e}},hiddenLocalTracksByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_TAB_FILTER":return t.hiddenLocalTracksByPid;case"HIDE_LOCAL_TRACK":{const n=new Map(e),r=new Set(n.get(t.pid));return r.add(t.trackIndex),n.set(t.pid,r),n}case"SHOW_ALL_TRACKS":{const t=new Map(e);for(const e of t)t.set(e[0],new Set);return t}case"SHOW_PROVIDED_TRACKS":{const n=new Map(e);for(const[r,o]of t.localTracksByPidToShow.entries()){const t=e.get(r)??new Set,a=new Set(t);o.forEach(Set.prototype.delete,a),n.set(r,a)}return n}case"SHOW_LOCAL_TRACK":{const n=new Map(e),r=new Set(n.get(t.pid));return r.delete(t.trackIndex),n.set(t.pid,r),n}case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":{const n=new Map(e);return n.set(t.pid,new Set),n}case"HIDE_PROVIDED_TRACKS":{const n=new Map(e);for(const[r,o]of t.localTracksByPidToHide.entries()){const t=e.get(r)??new Set,a=new Set(t);o.forEach(Set.prototype.add,a),n.set(r,a)}return n}case"ISOLATE_PROCESS_MAIN_THREAD":case"ISOLATE_LOCAL_TRACK":{const n=new Map(e);return n.set(t.pid,t.hiddenLocalTracks),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Map:e;default:return e}},localTrackOrderByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ENABLE_EVENT_DELAY_TRACKS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":case"CHANGE_TAB_FILTER":return t.localTrackOrderByPid;case"CHANGE_LOCAL_TRACK_ORDER":{const n=new Map(e);return n.set(t.pid,t.localTrackOrder),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Map:e;default:return e}},localTrackOrderChangedPids:(e=new Set,t)=>{switch(t.type){case"CHANGE_LOCAL_TRACK_ORDER":{const n=new Set(e);return n.add(t.pid),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Set:e;default:return e}},showJsTracerSummary:(e=!1,t)=>"CHANGE_SHOW_JS_TRACER_SUMMARY"===t.type?t.showSummary:e,tabFilter:(e=null,t)=>"CHANGE_TAB_FILTER"===t.type?t.tabID:e,legacyThreadOrder:(e=null)=>e,legacyHiddenThreads:(e=null)=>e}),oo=to({isResourcesPanelOpen:(e=!1,t)=>"TOGGLE_RESOURCES_PANEL"===t.type?!e:e}),ao=to({selectedThreads:(e=null,t)=>{switch(t.type){case"CHANGE_SELECTED_THREAD":case"SELECT_TRACK":case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"HIDE_GLOBAL_TRACK":case"HIDE_LOCAL_TRACK":case"HIDE_PROVIDED_TRACKS":case"ISOLATE_LOCAL_TRACK":case"TOGGLE_RESOURCES_PANEL":case"CHANGE_TAB_FILTER":return t.selectedThreadIndexes;case"SANITIZED_PROFILE_PUBLISHED":{const{oldThreadIndexToNew:n}=t;if(null===e||!n)return e;const r=new Set;for(const t of e){const e=n.get(t);if(void 0===e)return console.error(_n.TN`
|
20
|
+
Unable to map an old thread index to a new thread index for the selected
|
21
|
+
thread when sanitizing a profile
|
22
|
+
`),null;r.add(e)}return r}default:return e}},implementation:(e="combined",t)=>{switch(t.type){case"PROFILE_LOADED":return t.implementationFilter||e;case"CHANGE_IMPLEMENTATION_FILTER":return t.implementation;default:return e}},lastSelectedCallTreeSummaryStrategy:(e="timing",t)=>"CHANGE_CALL_TREE_SUMMARY_STRATEGY"===t.type?t.callTreeSummaryStrategy:e,invertCallstack:(e=!1,t)=>"CHANGE_INVERT_CALLSTACK"===t.type?t.invertCallstack:e,showUserTimings:(e=!1,t)=>"CHANGE_SHOW_USER_TIMINGS"===t.type?t.showUserTimings:e,committedRanges:(e=[],t)=>{switch(t.type){case"COMMIT_RANGE":{const{start:n,end:r}=t;return[...e,{start:n,end:r}]}case"POP_COMMITTED_RANGES":return e.slice(0,t.firstPoppedFilterIndex);case"SANITIZED_PROFILE_PUBLISHED":return t.committedRanges?t.committedRanges:e;default:return e}},callTreeSearchString:(e="",t)=>"CHANGE_CALL_TREE_SEARCH_STRING"===t.type?t.searchString:e,markersSearchString:(e="",t)=>"CHANGE_MARKER_SEARCH_STRING"===t.type?t.searchString:e,networkSearchString:(e="",t)=>"CHANGE_NETWORK_SEARCH_STRING"===t.type?t.searchString:e,transforms:(e={},t)=>{switch(t.type){case"PROFILE_LOADED":return t.transformStacks||e;case"ADD_TRANSFORM_TO_STACK":{const{threadsKey:n,transform:r}=t,o=e[n]||[];return Object.assign({},e,{[n]:[...o,r]})}case"POP_TRANSFORMS_FROM_STACK":{const{threadsKey:n,firstPoppedFilterIndex:r}=t,o=e[n]||[];return Object.assign({},e,{[n]:o.slice(0,r)})}case"SANITIZED_PROFILE_PUBLISHED":{const{oldThreadIndexToNew:n}=t;if(!n)return e;const r={};for(const[t,o]of(0,ut.WP)(e)){const e=n.get(Number(t));void 0!==e&&(r[e]=o)}return r}default:return e}},sourceView:(e={scrollGeneration:0,libIndex:null,sourceFile:null},t)=>"UPDATE_BOTTOM_BOX"===t.type?{scrollGeneration:e.scrollGeneration+1,libIndex:t.libIndex,sourceFile:t.sourceFile}:e,assemblyView:(e={scrollGeneration:0,nativeSymbol:null,allNativeSymbolsForInitiatingCallNode:[],isOpen:!1},t)=>{switch(t.type){case"UPDATE_BOTTOM_BOX":return{scrollGeneration:e.scrollGeneration+1,nativeSymbol:t.nativeSymbol,allNativeSymbolsForInitiatingCallNode:t.allNativeSymbolsForInitiatingCallNode,isOpen:e.isOpen||t.shouldOpenAssemblyView};case"OPEN_ASSEMBLY_VIEW":return{...e,isOpen:!0};case"CLOSE_ASSEMBLY_VIEW":return{...e,isOpen:!1};default:return e}},isBottomBoxOpenPerPanel:(e=function(){const e={};return Sr.forEach((t=>e[t]=!1)),e}(),t)=>{switch(t.type){case"UPDATE_BOTTOM_BOX":{const{currentTab:n,shouldOpenBottomBox:r}=t;return r&&!e[n]?{...e,[n]:!0}:e}case"CLOSE_BOTTOM_BOX_FOR_TAB":{const{tab:n}=t;return e[n]?{...e,[n]:!1}:e}default:return e}},timelineType:(e="cpu-category",t)=>{switch(t.type){case"CHANGE_TIMELINE_TYPE":return t.timelineType;case"VIEW_FULL_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return null!==t.timelineType?t.timelineType:e;default:return e}},full:ro,activeTab:oo});var io;const so=(io=to({dataSource:(e="none",t)=>{switch(t.type){case"WAITING_FOR_PROFILE_FROM_FILE":return"from-file";case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return"public";case"TRIGGER_LOADING_FROM_URL":return"from-url";case"PROFILE_REMOTELY_DELETED":return"unpublished";case"SET_DATA_SOURCE":return t.dataSource;default:return e}},hash:(e="",t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return t.hash;case"PROFILE_REMOTELY_DELETED":return"";default:return e}},profileUrl:(e="",t)=>{switch(t.type){case"WAITING_FOR_PROFILE_FROM_URL":return t.profileUrl?t.profileUrl:e;case"TRIGGER_LOADING_FROM_URL":return t.profileUrl;default:return e}},profilesToCompare:(e=null,t)=>"CHANGE_PROFILES_TO_COMPARE"===t.type?t.profiles:e,selectedTab:no,pathInZipFile:(e=null,t)=>{switch(t.type){case"PROCESS_PROFILE_FROM_ZIP_FILE":return t.pathInZipFile?t.pathInZipFile:null;case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"RETURN_TO_ZIP_FILE_LIST":return null;default:return e}},profileSpecific:ao,profileName:(e=null,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"CHANGE_PROFILE_NAME":return t.profileName;default:return e}},timelineTrackOrganization:(e={type:"full"},t)=>{switch(t.type){case"VIEW_FULL_PROFILE":return{type:"full"};case"VIEW_ACTIVE_TAB_PROFILE":return{type:"active-tab",tabID:t.tabID};case"VIEW_ORIGINS_PROFILE":return{type:"origins"};default:return e}},symbolServerUrl:(e=null)=>e}),(e,t)=>{switch(t.type){case"UPDATE_URL_STATE":return t.newUrlState?t.newUrlState:io(void 0,t);case"RETURN_TO_ZIP_FILE_LIST":case"WAITING_FOR_PROFILE_FROM_FILE":return{...io(e,t),profileSpecific:ao(void 0,e),selectedTab:no(void 0,t)};default:return io(e,t)}});function lo(e){return e.endsWith(".0")?e.slice(0,-2):e}function co(e){const t=e.product||"",n=lo(function(e){if(e){const t=/[\d.]+$/.exec(e);if(t)return t[0]}return""}(e.misc));return t+(n?" "+n:"")}function uo(e){switch(e.toolkit){case"android":return e.platform?lo(e.platform):"Android";case"cocoa":return e.oscpu?e.oscpu.replace(/^Intel /,"").replace(/^Mac OS X/,"macOS"):"macOS";case"windows":return e.oscpu?lo(e.oscpu.replace(/;.*$/,"").replace(/ NT/,"")):"Windows";case"gtk":case"gtk3":return e.oscpu?e.oscpu.slice(0,e.oscpu.indexOf(" ")):"Linux";default:return e.oscpu||""}}const ho=e=>e.urlState,po=e=>ho(e).profileSpecific,mo=e=>po(e).full,fo=e=>po(e).activeTab,go=e=>ho(e).dataSource,Ao=e=>ho(e).hash,bo=e=>ho(e).profileUrl,Co=e=>ho(e).profilesToCompare,vo=e=>ho(e).profileName,yo=e=>po(e).committedRanges,wo=e=>po(e).implementation,Eo=e=>po(e).lastSelectedCallTreeSummaryStrategy,ko=e=>po(e).showUserTimings,xo=e=>po(e).sourceView.sourceFile,To=e=>po(e).sourceView.scrollGeneration,So=e=>po(e).assemblyView.isOpen,Bo=e=>po(e).assemblyView.nativeSymbol,Io=e=>po(e).assemblyView.scrollGeneration,_o=e=>mo(e).showJsTracerSummary,No=e=>ho(e).timelineTrackOrganization,Po=e=>fo(e).isResourcesPanelOpen,Mo=e=>po(e).callTreeSearchString,Fo=e=>po(e).markersSearchString,Ro=e=>po(e).networkSearchString,Do=e=>ho(e).selectedTab,Lo=e=>"calltree"===Do(e)&&po(e).invertCallstack,Oo=e=>po(e).selectedThreads,Uo=e=>(0,ut.Nn)(Oo(e),"Attempted to get a thread index before a profile was loaded."),zo=e=>(0,bn.X)(Uo(e)),Go=e=>(0,ut.Nn)((0,ut.cF)(Uo(e)),"Expected to find at least one thread index in the selected thread indexes"),Wo=e=>po(e).timelineType,Ho=e=>mo(e).legacyThreadOrder,Vo=e=>mo(e).legacyHiddenThreads,jo=e=>mo(e).globalTrackOrder,$o=e=>mo(e).hiddenGlobalTracks,Ko=e=>mo(e).hiddenLocalTracksByPid,Yo=e=>mo(e).localTrackOrderByPid,qo=e=>mo(e).tabFilter,Zo=e=>null!==qo(e),Xo=(e,t)=>(0,ut.Nn)(Ko(e).get(t),"Unable to get the hidden tracks from the given pid"),Jo=(e,t)=>(0,ut.Nn)(Yo(e).get(t),"Unable to get the track order from the given pid"),Qo=dt(Mo,Tn),ea=dt(Fo,Tn),ta=dt(Ro,Tn),na=dt(Qo,Sn),ra=dt(ea,ur),oa=dt(ta,ur),aa=[],ia=(e,t)=>po(e).transforms[t]||aa,sa=e=>{const t=Do(e);return po(e).isBottomBoxOpenPerPanel[t]},la=dt(ho,(e=>t=>Dr((Array.isArray(t)?t:[t]).reduce(so,e)))),ca=e=>ho(e).pathInZipFile,da=e=>{const{profile:t}=e.profileView;return t?function(e){const t=co(e),n=uo(e);return t+(n?` – ${n}`:"")}(t.meta):null},ua=dt(ca,(e=>e?function(e){const t=/(?:[^/]+\/)?[^/]+$/.exec(e);return null!==t?t[0]:""}(e):null)),ha=dt(vo,ua,da,((e,t,n)=>e||t||n||"Untitled profile")),pa=dt(vo,ua,((e,t)=>e||t||"")),ma=dt(ho,(({symbolServerUrl:e})=>e&&function(e){try{const t=new URL(e);return!!qr(t)||(["symbols.mozilla.org","symbolication.services.mozilla.com"].includes(t.hostname)?"https:"===t.protocol||(console.error(`HTTPS is required for non-localhost symbol servers. Rejecting ${e} and defaulting to ${In.JZ}.`),!1):(console.error(`The symbol server URL was not in the list of allowed domains. Rejecting ${e} and defaulting to ${In.JZ}.`),!1))}catch(t){return console.error(`The symbol server URL was not valid. Rejecting ${e} and defaulting to ${In.JZ}.`,t),!1}}(e)?e.endsWith("/")?e.slice(0,-1):e:In.JZ));function fa(e,t){return new Set([...e].filter((e=>t.has(e))))}const ga={thread:0,network:1,memory:2,ipc:3,"event-delay":4,"process-cpu":5,power:6,marker:7,bandwidth:8},Aa={network:0,bandwidth:1,memory:2,power:3,ipc:4,thread:5,"event-delay":6,"process-cpu":7,marker:8},ba={process:0,screenshots:1,"visual-progress":2,"perceptual-visual-progress":3,"contentful-visual-progress":4},Ca={"visual-progress":0,"perceptual-visual-progress":1,"contentful-visual-progress":2,screenshots:3,process:4};function va(e,t){const n=e.map(((e,t)=>t)),r=new Intl.Collator("en-US",{numeric:!0});return n.sort(((n,o)=>{if("thread"===e[n].type&&"ipc"===e[o].type&&e[n].threadIndex===e[o].threadIndex)return-1;if("ipc"===e[n].type&&"thread"===e[o].type&&e[n].threadIndex===e[o].threadIndex)return 1;if(t&&t.counters&&"power"===e[n].type&&"power"===e[o].type){const a=e[n].counterIndex,i=e[o].counterIndex;if(t.meta.keepProfileThreadOrder)return a-i;const s=t.counters[a].name,l=t.counters[i].name;return r.compare(s,l)}if("thread"===e[n].type&&"thread"===e[o].type&&t){const a=e[n].threadIndex,i=e[o].threadIndex;if(void 0===a||void 0===i)return-1;if(t&&t.meta.keepProfileThreadOrder)return a-i;const s=t.threads[a].name,l=t.threads[i].name;return r.compare(s,l)||t.threads[a].registerTime-t.threads[i].registerTime}return Aa[e[n].type]-Aa[e[o].type]})),n}function ya(e,t,n,r){const o=new Map;if(null===n)for(const[n,a]of t){let t=va(a,r);if(null!==e){let r=e.get(n);if(void 0!==r){if(r.length!==t.length){const e=r.slice();for(let n=r.length;n<t.length;n++)e.push(n);r=e}Ma(a.length,r)&&(t=r)}}o.set(n,t)}else for(const[e,r]of t){const t=[];for(const e of n){const n=r.findIndex((t=>"thread"===t.type&&t.threadIndex===e));-1!==n&&t.push(n)}for(let e=0;e<r.length;e++)t.includes(e)||t.push(e);o.set(e,t)}return o}function wa(e,t){const n=new Map,r=new Set;for(const e of t)"process"===e.type&&r.add(e.pid);const o=(e.meta.markerSchema||[]).filter((e=>Array.isArray(e.graphs)&&e.graphs.length>0));for(let t=0;t<e.threads.length;t++){const a=e.threads[t],{pid:i,markers:s}=a;if(!r.has(i))continue;let l=n.get(i);if(void 0===l&&(l=[],n.set(i,l)),a.isMainThread||l.push({type:"thread",threadIndex:t}),s.data.some((e=>e&&"Network"===e.type))&&l.push({type:"network",threadIndex:t}),s.data.some((e=>e&&"IPC"===e.type))&&l.push({type:"ipc",threadIndex:t}),o.length>0){const e=new Map;for(const t of o)e.set(t.name,{markerSchema:t,keys:(t.graphs||[]).map((e=>e.key)),markerNames:new Set});for(let t=0;t<s.length;++t){const n=s.name[t],r=s.data[t],o=r?r.type:null;if(r&&o){const t=e.get(o);t&&t.keys.every((e=>e in r))&&t.markerNames.add(n)}}for(const[,{markerSchema:n,markerNames:r}]of e)for(const e of r)l.push({type:"marker",threadIndex:t,markerSchema:n,markerName:e})}}const{counters:a}=e;if(a)for(let e=0;e<a.length;e++){const{pid:t,category:o,samples:i}=a[e];if(r.has(t)&&["Memory","power","Bandwidth"].includes(o)){if("power"===o&&i.length<=2)continue;let r=n.get(t);void 0===r&&(r=[],n.set(t,r)),"Memory"===o?r.push({type:"memory",counterIndex:e}):"Bandwidth"===o?r.push({type:"bandwidth",counterIndex:e}):r.push({type:"power",counterIndex:e})}}for(const e of n.values())e.sort(((e,t)=>ga[e.type]-ga[t.type]));return n}function Ea(e,t=null,n){const r=new Map;let o=[];for(let t=0;t<e.threads.length;t++){const n=e.threads[t],{pid:a,markers:i,stringArray:s}=n;if(n.isMainThread){let e=r.get(a);void 0===e?(e={type:"process",pid:a,mainThreadIndex:t},o.push(e),r.set(a,e)):e.mainThreadIndex=t}else if(!r.has(a)){const e={type:"process",pid:a,mainThreadIndex:null};o.push(e),r.set(a,e)}const l=new Set,c=Bn.M.withBackingArray(s);if(c.hasString("CompositorScreenshot")){const e=c.indexForString("CompositorScreenshot");for(let t=0;t<i.length;t++)if(i.name[t]===e){const e=i.data[t];l.add(e.windowID)}for(const e of l)o.push({type:"screenshots",id:e,threadIndex:t})}}if(e.meta&&e.meta.visualMetrics){const t=e.meta.visualMetrics;t.VisualProgress&&o.push({type:"visual-progress"}),t.PerceptualSpeedIndexProgress&&o.push({type:"perceptual-visual-progress"}),t.ContentfulSpeedIndexProgress&&o.push({type:"contentful-visual-progress"})}return o=function(e,t,n,r){if(null===n)return e;const o=r.get(n);if(!o)return console.warn(`Failed to find the thread indexes for given tab ${n}`),e;const a=[];for(const n of e)switch(n.type){case"process":{const{mainThreadIndex:e}=n;if(null===e)continue;const r=t.threads[e];(r.isMainThread&&"default"===r.processType||o.has(e))&&a.push(n);break}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":a.push(n);break;default:throw new Error("Unhandled globalTack type.")}return a}(o,e,t,n),o.sort(((e,t)=>ba[e.type]-ba[t.type])),o}function ka(e,t,n){if(null!==n){const t=[];for(const r of n){const n=e.findIndex((e=>"process"===e.type&&e.mainThreadIndex===r));-1!==n&&t.push(n)}for(let n=0;n<e.length;n++)t.includes(n)||t.push(n);return t}if(null!==t&&t.length!==e.length){const n=t.slice();for(let r=t.length;r<e.length;r++)n.push(r);t=n}return null!==t&&Ma(e.length,t)?t:function(e){const t=e.map(((e,t)=>t));return t.sort(((t,n)=>Ca[e[t].type]-Ca[e[n].type])),t}(e)}function xa(e,t,n){if(null===e)return Ta(t,n);const r=fa(e,new Set(t));return 0===r.size?Ta(t,n):r}function Ta(e,t){if(void 0!==t.meta.initialSelectedThreads)return new Set(t.meta.initialSelectedThreads.filter((e=>e<t.threads.length||(console.warn(`The specified thread index ${e} is higher than the maximum thread index ${t.threads.length-1}.`),!1))));const n=function(e){if(0===e.length)return null;const t=e.findIndex((e=>"GeckoMain"===e.name&&"tab"===e.processType));return e[-1!==t?t:(0,bn.y9)(e)[0]]}(e.map((e=>t.threads[e]))),r=t.threads.indexOf(n);if(-1===r)throw new Error("Expected to find a thread index to select.");return new Set([r])}function Sa(e,t,n){const r=new Set(n.threads.map(((e,t)=>t))),o=new Set(t),a=(i=r,s=o,new Set([...i].filter((e=>!s.has(e)))));var i,s;return 0===a.size?null:Ia(n,a,e)}function Ba(e,t,n,r){return Ia(t,function(e,t,n,r){if(0===e.threads.length)throw new Error("No threads");if(void 0!==e.meta.initialVisibleThreads)return e.meta.initialVisibleThreads.forEach((t=>(0,ut.Nn)(e.threads[t]))),new Set(e.meta.initialVisibleThreads);const o=function(e){const t=new Set;for(const n of e.globalTracks)"process"===n.type&&null!==n.mainThreadIndex&&t.add(n.mainThreadIndex);for(const[,n]of e.localTracksByPid)for(const e of n)"thread"===e.type&&t.add(e.threadIndex);return t}(t);let a=n.map(((e,t)=>({threadIndex:t,score:e})));a=a.filter((({threadIndex:e})=>o.has(e))),a.sort((({score:e},{score:t})=>e.isEssentialFirefoxThread!==t.isEssentialFirefoxThread?e.isEssentialFirefoxThread?-1:1:t.boostedSampleScore-e.boostedSampleScore));const i=a.slice(0,15),s=Math.max(...a.map((({score:e})=>e.isInParentProcess&&!r?0:e.sampleScore)))*Pa,l=[];let c=i.filter((e=>{const{score:t}=e;return t.isInParentProcess&&!r?(t.sampleScore>=s&&l.push(e),!1):!!t.isEssentialFirefoxThread||!!(t.isInterestingEvenWithMinimalActivity&&t.sampleScore>0)||t.sampleScore>=s}));return 0===c.length&&(c=l),new Set(c.map((({threadIndex:e})=>e)))}(t,e,n,r),e)}function Ia(e,t,n){const r=new Set([...t].map((t=>e.threads[t].pid))),o=new Set(n.globalTrackOrder.filter((e=>{const t=n.globalTracks[e];return"process"===t.type&&!r.has(t.pid)}))),a=new Map;for(const[e,o]of n.localTrackOrderByPid){if(!r.has(e)){a.set(e,new Set(o));continue}const i=n.localTracksByPid.get(e)??[],s=new Set(o.filter((e=>!Da(i[e],t))));a.set(e,s)}return{hiddenGlobalTracks:o,hiddenLocalTracksByPid:a}}function _a({globalTracks:e,localTracksByPid:t},{hiddenGlobalTracks:n,hiddenLocalTracksByPid:r}){const o=[];for(let a=0;a<e.length;a++){if(n.has(a))continue;const i=e[a];if("process"===i.type){const{mainThreadIndex:e,pid:n}=i;null!==e&&o.push(e);const a=(0,ut.Nn)(t.get(n),"A local track was expected to exist for the given pid."),s=(0,ut.Nn)(r.get(n),"Hidden tracks were expected to exists for the given pid.");for(let e=0;e<a.length;e++){const t=a[e];if("thread"===t.type){const{threadIndex:n}=t;s.has(e)||o.push(n)}}}}return o}function Na(e,t,n){switch(e.type){case"thread":return(0,bn.XU)(t,t[e.threadIndex]);case"network":return"Network";case"memory":return"Memory";case"bandwidth":return"Bandwidth";case"ipc":return`IPC — ${(0,bn.XU)(t,t[e.threadIndex])}`;case"event-delay":return(0,bn.XU)(t,t[e.threadIndex])+" Event Delay";case"process-cpu":return"Process CPU";case"power":return n[e.counterIndex].name;case"marker":return t[e.threadIndex].stringArray[e.markerName];default:throw(0,ut.lC)(e,"Unhandled LocalTrack type.")}}const Pa=.05;function Ma(e,t){return t.length===e&&t.slice().sort(((e,t)=>e-t)).every(((e,t)=>e===t))}function Fa(e,t,n,r){if(!r)return null;const o=Sn(Tn(r));if(!o)return null;const a=new Set;for(let r=0;r<e.length;r++){const i=e[r];switch(o.lastIndex=0,i.type){case"process":{const{mainThreadIndex:e}=i;if(o.test(i.pid.toString())){a.add(r);continue}if(null!==e){const i=n[e],s=t[r];if(o.test(s)){a.add(r);continue}const{tid:l}=i;if(l&&o.test(l.toString())){a.add(r);continue}if(o.test(i.processType)){a.add(r);continue}const{processName:c}=i;if(c&&o.test(c)){a.add(r);continue}const d=i["eTLD+1"];if(d&&o.test(d)){a.add(r);continue}}break}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":{const{type:e}=i;if(o.test(e)){a.add(r);continue}break}default:throw(0,ut.lC)(i,"Unhandled GlobalTrack type.")}}return a}function Ra(e,t,n,r){if(!r)return null;const o=Sn(Tn(r));if(!o)return null;const a=new Map;for(const[r,i]of e){const e=new Set,s=t.get(r);if(void 0===s)throw new Error("Failed to get the local track names");for(let t=0;t<i.length;t++){const a=i[t];if(o.lastIndex=0,o.test(r.toString()))e.add(t);else switch(a.type){case"thread":{const{threadIndex:r}=a,i=n[r],l=s[t];if(o.test(l)){e.add(t);continue}const{tid:c}=i;if(c&&o.test(c.toString())){e.add(t);continue}if(o.test(i.processType)){e.add(t);continue}const{processName:d}=i;if(d&&o.test(d)){e.add(t);continue}const u=i["eTLD+1"];if(u&&o.test(u)){e.add(t);continue}break}case"network":case"memory":case"bandwidth":case"marker":case"ipc":case"event-delay":case"power":case"process-cpu":{const{type:n}=a;if(o.test(n)){e.add(t);continue}break}default:throw(0,ut.lC)(a,"Unhandled LocalTrack type.")}}e.size>0&&a.set(r,e)}return a}function Da(e,t){switch(e.type){case"thread":return t.has(e.threadIndex);case"marker":case"network":case"memory":case"bandwidth":case"event-delay":case"process-cpu":case"power":return!0;case"ipc":return!1;default:throw(0,ut.lC)(e,"Unhandled LocalTrack type.")}}var La=n(3038),Oa=n(9004);class Ua extends Error{constructor(e,t,...n){super([e,...n.map((e=>` - ${e.name}: ${e.message}`))].join("\n")),this.library=void 0,this.errors=void 0,this.__proto__=Ua.prototype,this.name="SymbolsNotFoundError",this.library=t,this.errors=n}}function za(e,t,n,r,o){const{frameTable:a,funcTable:i,nativeSymbols:s,stringArray:l}=e,c=Bn.M.withBackingArray(l),{threadLibSymbolicationInfo:d,resultsForLib:u}=t,{resourceIndex:h,allFramesForThisLib:p,allFuncsForThisLib:m,allNativeSymbolsForThisLib:f,libIndex:g}=d,A=new Set(m),b=new Set(f),C=new Map,v=new Map,y=new Map,w=[],E=[];for(const e of p)a.inlineDepth[e]>0?(w.push(e),r[e]=1):E.push(e);for(const e of E){const t=a.nativeSymbol[e],n=a.address[e];let r=u.get(n);if(void 0===r)if(null!==t){const e=c.getString(s.name[t]);r={symbolAddress:s.address[t],name:e}}else r={symbolAddress:n,name:`0x${n.toString(16)}`};const o=r.symbolAddress;if(C.set(e,o),v.set(o,r),null!==t&&!y.has(o)&&b.has(t)){const e=t;b.delete(e),y.set(o,e)}}const k=b.values(),x=(0,vn.dY)(s);for(const[e,t]of v){const n=c.indexForString(t.name);let r=y.get(e);void 0===r&&(r=k.next().value,void 0===r&&(r=x.length,x.libIndex[r]=g,x.length++),y.set(e,r)),x.address[r]=e,x.name[r]=n,x.functionSize[r]=t.functionSize??null}const T=a.nativeSymbol.slice();for(const[e,t]of C){const n=y.get(t);if(void 0===n)throw new Error("Impossible, all symbolAddresses have a canonical symbol at this point.");T[e]=n}const S=(0,vn.LK)({...a,nativeSymbol:T}),B=(0,vn.ES)(i),I=A.values(),_=new Map,N=w.values(),P=[];for(const e of E){const t=a.func[e],n=T[e];if(null===n)throw new Error("Impossible, all frames now have native symbols.");const r=a.address[e];let i=u.get(r);if(void 0===i){const r=x.name[n],o=B.fileName[t];i={symbolAddress:x.address[n],name:c.getString(r),file:null!==o?c.getString(o):void 0,line:a.line[e]??void 0}}const s=i.inlines?i.inlines.slice():[];s.push({name:i.name,file:i.file,line:i.line}),s.reverse();const l=[],d=[];for(let t=0;t<s.length;t++){const o=s[t],a=c.indexForString(o.name),i=void 0!==o.file?c.indexForString(o.file):null,u=`${a}:${i??""}`;let p,m=_.get(u);if(void 0===m&&(m=I.next().value,void 0===m&&(m=B.length,B.isJS[m]=!1,B.relevantForJS[m]=!1,B.resource[m]=h,B.fileName[m]=null,B.lineNumber[m]=null,B.columnNumber[m]=null,B.length++),B.name[m]=a,B.fileName[m]=i,_.set(u,m)),d.push(m),0===t)p=e;else{p=N.next().value,void 0===p&&(p=S.length,S.length++);const t=S.category[e],o=S.subcategory[e],a=S.innerWindowID[e];S.category[p]=t,S.subcategory[p]=o,S.innerWindowID[p]=a,S.address[p]=r,S.nativeSymbol[p]=n}S.inlineDepth[p]=t,S.func[p]=m,S.line[p]=o.line??null,S.column[p]=null,l.push(p)}l.length>1&&o.set(e,l),P.push([t,d.join("#")])}const M=function(e){const t=new Map,n=new Set;for(const[r,o]of e){if(n.has(r))continue;const e=t.get(r);void 0!==e?e!==o&&(t.delete(r),n.add(r)):t.set(r,o)}return t}(P);for(const[e,t]of M)n.set(e,t.split("#").map((e=>+e)));return{...e,frameTable:S,funcTable:B,nativeSymbols:x}}function Ga(e,t){return t.reduce(((t,n)=>{const r=e.get(n);return void 0===r?[...t,n]:[...t,...r]}),[])}function Wa(e,t){const n=[];for(const r of t){const t=Ga(e,r);n.push(t);const o=Ga(e,[r[r.length-1]]).length;if(o>1)for(let e=1;e<o;e++)n.push(t.slice(0,t.length-e))}return new Oa.Qi(n)}const Ha={selectedNonInvertedCallNodePath:[],selectedInvertedCallNodePath:[],expandedNonInvertedCallNodePaths:new Oa.Qi,expandedInvertedCallNodePaths:new Oa.Qi,selectedMarker:null,selectedNetworkMarker:null};function Va(e,t){return e[t]||Ha}function ja(e,t,n){const r={...e};return r[t]={...Va(e,t),...n},r}const $a={fixedColumnWidths:null},Ka=(Ya=to({viewOptions:to({perThread:(e={},t)=>{switch(t.type){case"PROFILE_LOADED":return{};case"BULK_SYMBOLICATION":{const{oldFuncToNewFuncsMaps:n}=t;return(0,ut.K0)(e,((e,t)=>{const r=+t;if(Number.isNaN(r))throw new Error("Bulk symbolication only supports a single thread, and a ThreadsKey with multiple threads was used.");const o=n.get(r);return void 0===o?e:{...e,selectedNonInvertedCallNodePath:Ga(o,e.selectedNonInvertedCallNodePath),selectedInvertedCallNodePath:Ga(o,e.selectedInvertedCallNodePath),expandedNonInvertedCallNodePaths:Wa(o,e.expandedNonInvertedCallNodePaths),expandedInvertedCallNodePaths:Wa(o,e.expandedInvertedCallNodePaths)}}))}case"CHANGE_SELECTED_CALL_NODE":{const{isInverted:n,selectedCallNodePath:r,threadsKey:o,optionalExpandedToCallNodePath:a}=t,i=Va(e,o),s=n?i.selectedInvertedCallNodePath:i.selectedNonInvertedCallNodePath;if((0,Oa.bj)(r,s)&&!a)return e;let l=n?i.expandedInvertedCallNodePaths:i.expandedNonInvertedCallNodePaths;const c=a||r,d=[];for(let e=1;e<c.length;e++)d.push(c.slice(0,e));const u=d.some((e=>!l.has(e)));return u&&(l=new Oa.Qi(l),d.forEach((e=>l.add(e)))),ja(e,o,n?{selectedInvertedCallNodePath:r,expandedInvertedCallNodePaths:l}:{selectedNonInvertedCallNodePath:r,expandedNonInvertedCallNodePaths:l})}case"CHANGE_INVERT_CALLSTACK":{const{newSelectedCallNodePath:n,selectedThreadIndexes:r,invertCallstack:o}=t;return(0,ut.K0)(e,((e,t)=>{if(t===bn.X(r).toString()){const t=new Oa.Qi;for(let e=1;e<n.length;e++)t.add(n.slice(0,e));return o?{...e,selectedInvertedCallNodePath:n,expandedInvertedCallNodePaths:t}:{...e,selectedNonInvertedCallNodePath:n,expandedNonInvertedCallNodePaths:t}}return e}))}case"CHANGE_EXPANDED_CALL_NODES":{const{threadsKey:n,isInverted:r}=t,o=new Oa.Qi(t.expandedCallNodePaths);return ja(e,n,r?{expandedInvertedCallNodePaths:o}:{expandedNonInvertedCallNodePaths:o})}case"CHANGE_SELECTED_MARKER":{const{threadsKey:n,selectedMarker:r}=t;return ja(e,n,{selectedMarker:r})}case"CHANGE_SELECTED_NETWORK_MARKER":{const{threadsKey:n,selectedNetworkMarker:r}=t;return ja(e,n,{selectedNetworkMarker:r})}case"ADD_TRANSFORM_TO_STACK":{const{threadsKey:n,transform:r,transformedThread:o,callNodeInfo:a}=t,i=function(e){return new Oa.Qi(Array.from(e).map((e=>br(e,r,o,a))).filter((e=>e.length>0)))},s=function(e){return br(e,r,o,a)},l=Va(e,n);return ja(e,n,{selectedNonInvertedCallNodePath:s(l.selectedNonInvertedCallNodePath),selectedInvertedCallNodePath:s(l.selectedInvertedCallNodePath),expandedNonInvertedCallNodePaths:i(l.expandedNonInvertedCallNodePaths),expandedInvertedCallNodePaths:i(l.expandedInvertedCallNodePaths)})}case"POP_TRANSFORMS_FROM_STACK":{const{threadsKey:n}=t;return ja(e,n,{selectedNonInvertedCallNodePath:[],selectedInvertedCallNodePath:[],expandedNonInvertedCallNodePaths:new Oa.Qi,expandedInvertedCallNodePaths:new Oa.Qi})}case"CHANGE_IMPLEMENTATION_FILTER":{const{transformedThread:n,threadsKey:r,previousImplementation:o,implementation:a}=t;if(o===a)return e;const i=Va(e,r),s=function(e){return"combined"===a?e=yr(n,o,e):("combined"!==o&&(e=yr(n,o,e)),e=function(e,t,n){const r=vr[t];return n.filter((t=>r(e,t)))}(n,a,e)),e},l=function(e){const t=new Oa.Qi;for(let n=1;n<e.length;n++)t.add(e.slice(0,n));return t},c=s(i.selectedNonInvertedCallNodePath),d=s(i.selectedInvertedCallNodePath);return ja(e,r,{selectedNonInvertedCallNodePath:c,selectedInvertedCallNodePath:d,expandedNonInvertedCallNodePaths:l(c),expandedInvertedCallNodePaths:l(d)})}default:return e}},symbolicationStatus:(e="DONE",t)=>{switch(t.type){case"START_SYMBOLICATING":return"SYMBOLICATING";case"DONE_SYMBOLICATING":return"DONE";default:return e}},waitingForLibs:(e=new Set,t)=>{switch(t.type){case"REQUESTING_SYMBOL_TABLE":{const n=new Set(e);return n.add(t.requestedLib),n}case"RECEIVED_SYMBOL_TABLE_REPLY":{const n=new Set(e);return n.delete(t.requestedLib),n}default:return e}},previewSelection:(e={hasSelection:!1,isModifying:!1},t)=>{switch(t.type){case"UPDATE_PREVIEW_SELECTION":return t.previewSelection;case"COMMIT_RANGE":return{hasSelection:!1,isModifying:!1};case"POP_COMMITTED_RANGES":return t.committedRange?{hasSelection:!0,isModifying:!1,selectionStart:t.committedRange.start,selectionEnd:t.committedRange.end}:{hasSelection:!1,isModifying:!1};default:return e}},scrollToSelectionGeneration:(e=0,t)=>{switch(t.type){case"CHANGE_INVERT_CALLSTACK":case"CHANGE_SELECTED_THREAD":case"SELECT_TRACK":case"HIDE_GLOBAL_TRACK":case"HIDE_LOCAL_TRACK":case"HIDE_PROVIDED_TRACKS":case"CHANGE_CALL_TREE_SEARCH_STRING":case"CHANGE_MARKER_SEARCH_STRING":case"CHANGE_NETWORK_SEARCH_STRING":return e+1;case"CHANGE_SELECTED_CALL_NODE":case"CHANGE_SELECTED_MARKER":case"CHANGE_SELECTED_NETWORK_MARKER":return"pointer"===t.context.source?e:e+1;default:return e}},focusCallTreeGeneration:(e=0,t)=>"FOCUS_CALL_TREE"===t.type?e+1:e,rootRange:(e={start:0,end:1},t)=>"PROFILE_LOADED"===t.type?bn.WT(t.profile):e,lastNonShiftClick:(e=null,t)=>{switch(t.type){case"SELECT_TRACK":return t.lastNonShiftClickInformation;case"HIDE_GLOBAL_TRACK":{if(!e)return null;const{clickedTrack:n}=e;return"global"===n.type&&n.trackIndex===t.trackIndex||"local"===n.type&&n.pid===t.pid?null:e}case"HIDE_LOCAL_TRACK":{if(!e)return null;const{clickedTrack:n}=e;return"local"===n.type&&n.pid===t.pid&&n.trackIndex===t.trackIndex?null:e}default:return e}},rightClickedTrack:(e=null,t)=>"CHANGE_RIGHT_CLICKED_TRACK"===t.type?t.trackReference:e,rightClickedCallNode:(e=null,t)=>{switch(t.type){case"BULK_SYMBOLICATION":{if(null===e)return null;const{oldFuncToNewFuncsMaps:n}=t,r=n.get(+e.threadsKey);return void 0===r?e:{...e,callNodePath:Ga(r,e.callNodePath)}}case"CHANGE_RIGHT_CLICKED_CALL_NODE":return null!==t.callNodePath?{threadsKey:t.threadsKey,callNodePath:t.callNodePath}:null;case"SET_CONTEXT_MENU_VISIBILITY":return t.isVisible?e:null;case"PROFILE_LOADED":case"CHANGE_INVERT_CALLSTACK":case"ADD_TRANSFORM_TO_STACK":case"POP_TRANSFORMS_FROM_STACK":case"CHANGE_IMPLEMENTATION_FILTER":return null;default:return e}},rightClickedMarker:(e=null,t)=>{switch(t.type){case"CHANGE_RIGHT_CLICKED_MARKER":return null!==t.markerIndex?{threadsKey:t.threadsKey,markerIndex:t.markerIndex}:null;case"SET_CONTEXT_MENU_VISIBILITY":return t.isVisible?e:null;case"PROFILE_LOADED":return null;default:return e}},hoveredMarker:(e=null,t)=>{switch(t.type){case"CHANGE_HOVERED_MARKER":return null!==t.markerIndex?{threadsKey:t.threadsKey,markerIndex:t.markerIndex}:null;case"PROFILE_LOADED":return null;default:return e}},mouseTimePosition:(e=null,t)=>"CHANGE_MOUSE_TIME_POSITION"===t.type?t.mouseTimePosition:e,perTab:(e={},t)=>"CHANGE_TABLE_VIEW_OPTIONS"===t.type?function(e,t,n){const r={...e};return r[t]={...e[t]??$a,...n},r}(e,t.tab,t.tableViewOptions):e}),profile:(e=null,t)=>{switch(t.type){case"PROFILE_LOADED":return t.profile;case"BULK_SYMBOLICATION":{if(null===e)throw new Error("Assumed that a profile would be loaded in time for a coalesced functions update.");if(!e.threads.length)return e;const{symbolicatedThreads:n}=t;return{...e,threads:n}}case"DONE_SYMBOLICATING":if(null===e)throw new Error("Strangely we're done symbolicating a non-existent profile.");return{...e,meta:{...e.meta,symbolicated:!0}};case"UPDATE_PAGES":{if(null===e)throw new Error("We tried to update the pages information for a non-existent profile.");const{newPages:n}=t;return{...e,pages:n}}default:return e}},full:to({globalTracks:(e=[],t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_TAB_FILTER":return t.globalTracks;default:return e}},localTracksByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ENABLE_EVENT_DELAY_TRACKS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":case"CHANGE_TAB_FILTER":return t.localTracksByPid;default:return e}}}),activeTab:to({activeTabTimeline:(e=null,t)=>"VIEW_ACTIVE_TAB_PROFILE"===t.type?t.activeTabTimeline:e}),origins:to({originsTimeline:(e=[],t)=>"VIEW_ORIGINS_PROFILE"===t.type?t.originsTimeline:e})}),(e,t)=>{switch(t.type){case"SANITIZED_PROFILE_PUBLISHED":case"REVERT_TO_PRE_PUBLISHED_STATE":case"RETURN_TO_ZIP_FILE_LIST":return Ya(void 0,t);default:return Ya(e,t)}});var Ya;const qa=Ka,Za=e=>e.profileView,Xa=e=>Za(e).full,Ja=e=>Za(e).activeTab,Qa=e=>Za(e).origins,ei=e=>Za(e).viewOptions,ti=e=>ei(e).perTab[Do(e)]||$a,ni=e=>ei(e).rootRange,ri=e=>ei(e).symbolicationStatus,oi=e=>ei(e).scrollToSelectionGeneration,ai=e=>ei(e).focusCallTreeGeneration,ii=e=>ni(e).start,si=e=>{const{sampleUnits:t}=fi(e).meta;return t?t.time:"ms"},li=dt(ni,ii,yo,((e,t,n)=>{if(n.length>0){let{start:e,end:r}=n[n.length-1];return e+=t,r+=t,{start:e,end:r}}return e})),ci=dt(yo,si,(function(e,t){return e.map((e=>ln(e.end-e.start,t)))})),di=e=>ei(e).mouseTimePosition,ui=e=>t=>ei(t).perTab[e]||$a,hi=e=>ei(e).previewSelection,pi=dt(li,hi,((e,t)=>t.hasSelection?{start:t.selectionStart,end:t.selectionEnd}:e)),mi=e=>Za(e).profile,fi=e=>(0,ut.Nn)(mi(e),"Tried to access the profile before it was loaded."),gi=e=>fi(e).meta.interval,Ai=e=>fi(e).pages||null,bi=e=>Mi(e).findIndex((e=>"grey"===e.color)),Ci=e=>fi(e).threads,vi=e=>fi(e).threads.map((e=>e.name)),yi=e=>ei(e).lastNonShiftClick,wi=e=>ei(e).rightClickedTrack,Ei=e=>fi(e).counters||null,ki=e=>fi(e).meta,xi=e=>ki(e).visualMetrics||null,Ti=e=>(0,ut.Nn)(xi(e),"Tried to access the visual metrics when it does not exist."),Si=e=>Ti(e).VisualProgress,Bi=e=>Ti(e).PerceptualSpeedIndexProgress??null,Ii=e=>Ti(e).ContentfulSpeedIndexProgress??null,_i=e=>ki(e).configuration,Ni=e=>ki(e).sampleUnits,Pi=e=>ki(e).extensions,Mi=dt(fi,(e=>{const{categories:t}=e.meta;return t||(0,vn.oP)()})),Fi=dt((e=>ki(e).markerSchema),(e=>{const t=new Set([...Nn.map((e=>e.name))]);return[...e.filter((e=>!t.has(e.name))),...Nn]})),Ri=dt(Fi,(e=>function(e){const t=new Map;t.set("CompositorScreenshot",["url"]);for(const n of e){const{name:e,fields:r}=n,o=[];for(const e of r)"unique-string"!==e.format&&"flow-id"!==e.format&&"terminating-flow-id"!==e.format||!e.key||o.push(e.key);0!==o.length&&t.set(e,o)}return t}(e))),Di=dt(Fi,(e=>{const t=Object.create(null);for(const n of e)t[n.name]=n;return t})),Li=e=>{const t=_i(e);return t&&t.activeTabID&&0!==t.activeTabID?t.activeTabID:null},Oi={},Ui=e=>{let t=Oi[e];return t||(t=function(e){const t=dt(fi,(t=>(0,bn.pR)((0,ut.Nn)(t.counters,"Attempting to get a counter by index, but no counters exist.")[e]))),n=dt(t,li,((e,t)=>(0,bn.Z9)(e.samples,t.start,t.end))),r=dt(t,n,((e,t)=>(0,bn.eG)(e.samples,t))),o=dt(t,gi,((e,t)=>(0,bn.m4)(e.samples,t))),a=dt(t,gi,n,((e,t,n)=>(0,bn.m4)(e.samples,t,n)));return{getCounter:t,getDescription:e=>t(e).description,getPid:e=>t(e).pid,getAccumulateCounterSamples:r,getMaxCounterSampleCountPerMs:o,getMaxRangeCounterSampleCountPerMs:a,getCommittedRangeCounterSampleRange:n}}(e),Oi[e]=t),t},zi=dt(Ci,jn),Gi=dt(Ai,(e=>{if(!e)return null;const t=new Map;for(const n of e)t.set(n.innerWindowID,n);return t})),Wi=dt(Ai,(e=>{if(!e)return null;const t=new Map;for(const n of e)t.set(n.innerWindowID,n.tabID);return t})),Hi=dt(Ci,Wi,((e,t)=>(0,bn.eD)(e,t))),Vi=e=>Xa(e).globalTracks,ji=dt(Vi,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),$i=dt(Ci,(e=>e.some((({stringArray:e,markers:t})=>{const n=Bn.M.withBackingArray(e).indexForString("PreferenceRead");return t.name.some((e=>e===n))})))),Ki=(e,t)=>Vi(e)[t.trackIndex],Yi=(e,t)=>{const n=Vi(e),r=n.findIndex((e=>"process"===e.type&&e.pid===t));if(-1===r)throw new Error("Unable to find the track index for the given pid.");const o=n[r];if("process"!==o.type)throw new Error("The globalTrack must be a process type.");return{globalTrackIndex:r,globalTrack:o}},qi=e=>Xa(e).localTracksByPid,Zi=(e,t)=>(0,ut.Nn)(Xa(e).localTracksByPid.get(t),"Unable to get the tracks for the given pid."),Xi=(e,t)=>Zi(e,t.pid)[t.trackIndex],Ji=dt(qi,(e=>{const t=new Set;for(const[n,r]of e.entries())r.some((e=>"memory"===e.type))&&t.add(n);return t})),Qi=dt(wi,Vi,qi,((e,t,n)=>{if(null===e)return null;if("global"===e.type){const n=t[e.trackIndex];return"process"===n.type?n.mainThreadIndex:null}const{pid:r,trackIndex:o}=e,a=(0,ut.Nn)(n.get(r),"No local tracks found at that pid.")[o];return"thread"===a.type?a.threadIndex:null})),es=dt(Vi,Ci,((e,t)=>e.map((e=>function(e,t){switch(e.type){case"process":if(null===e.mainThreadIndex){const n=e.pid;return t.filter((e=>e.pid===n)).map((e=>e.processName)).find((e=>!!e))||`Process ${n}`}return(0,bn.XU)(t,t[e.mainThreadIndex]).replace(/^https?:\/\//i,"");case"screenshots":return"Screenshots";case"visual-progress":return"Visual Progress";case"perceptual-visual-progress":return"Perceptual Visual Progress";case"contentful-visual-progress":return"Contentful Visual Progress";default:throw(0,ut.lC)(e,"Unhandled GlobalTrack type.")}}(e,t))))),ts=(e,t)=>es(e)[t],ns=dt(qi,Ci,Ei,((e,t,n)=>{const r=new Map;for(const[o,a]of e)r.set(o,a.map((e=>Na(e,t,n||[]))));return r})),rs=(e,t,n)=>(0,ut.Nn)(ns(e).get(t),"Could not find the track names from the given pid")[n],os=e=>Ja(e).activeTabTimeline,as=e=>os(e).mainTrack,is=e=>[...os(e).screenshots,os(e).mainTrack],ss=e=>os(e).resources,ls=e=>os(e).resourcesThreadsKey,cs=dt(is,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),ds=(e,t)=>is(e)[t.trackIndex],us=(e,t)=>ss(e)[t.trackIndex],hs=e=>Qa(e).originsTimeline,ps=dt(Vi,qi,Ko,$o,((e,t,n,r)=>{let o=0,a=0;for(const[i,s]of t){const t=n.get(i)||new Set,l=e.findIndex((e=>"process"===e.type&&e.pid===i));if(-1===l)throw new Error("Unable to find a global track from the given pid.");if(!t)throw new Error("Unable to find the hidden local tracks from the given pid");r.has(l)?o+=s.length:o+=t.size,a+=s.length}return a+=e.length,o+=r.size,{hidden:o,total:a}})),ms=dt(fi,La.I),fs=dt(fi,ms,((e,t)=>{const{threads:n}=e;return n.map((n=>function(e,t,n){const r=function(e){return"GeckoMain"===e.name&&"default"===e.processType&&(!e.processName||"Parent Process"===e.processName)||"GeckoMain"===e.name&&"gpu"===e.processType}(t),o="default"===t.processType,a=function(e){return/^(?:Audio|Media|GraphRunner|WebrtcWorker)/.test(e.name)}(t),i=function({meta:e},{samples:t,stackTable:n,frameTable:r},o){if(e.sampleUnits&&t.threadCPUDelta)return t.threadCPUDelta.reduce(((e,t)=>e+(t??0)),0);const a=e.categories?e.categories.findIndex((e=>"grey"===e.color)):-1,i=e.categories?e.categories.findIndex((e=>"Idle"===e.name)):-1,s=(0,bn.Ar)(n,r,a);return t.stack.filter((e=>null!==e&&s.category[e]!==i)).length*(o*e.interval)}(e,t,n);return{isEssentialFirefoxThread:r,isInParentProcess:o,isInterestingEvenWithMinimalActivity:a,sampleScore:i,boostedSampleScore:a?40*i:i}}(e,n,t)))})),gs=dt(Ai,Gi,((e,t)=>{if(null===e||null===t||0===e.length)return null;const n=new Map;for(const r of e){const e=n=>{if(0===n.embedderInnerWindowID)return n;const r=t.get(n.embedderInnerWindowID);return void 0!==r?e(r):n},o=e(r),{tabID:a}=o,i=n.get(a);void 0===i?n.set(a,[r]):i.push(r)}return n})),As=[],bs=dt(gs,Li,((e,t)=>null===e||0===e.size||null===t?As:e.get(t)??As)),Cs=dt(gs,(e=>{if(null===e||0===e.size)return null;const t=new Map;for(const[n,r]of e)t.set(n,new Set(r.map((e=>e.innerWindowID))));return t})),vs=dt(Cs,Li,((e,t)=>null===e||0===e.size||null===t?new Set:e.get(t)??new Set)),ys=dt(No,vs,((e,t)=>{switch(e.type){case"active-tab":return t;case"full":case"origins":return new Set;default:throw(0,ut.lC)(e,"Unhandled timelineTrackOrganization case")}})),ws=dt(Pi,(e=>{if(!e)return null;const t=new Map;for(let n=0;n<e.length;n++)t.set(e.baseURL[n],e.name[n]);return t})),Es=dt(gs,ws,bn.ej),ks=dt(Es,Hi,fs,((e,t,n)=>{const r=[];for(const[o,a]of e.entries()){let e=0;const i=t.get(o);if(i){for(const t of i.values()){const r=n[t];if(!r)throw new Error("Failed to find the thread score!");e+=r.boostedSampleScore}r.push({tabID:o,tabScore:e,pageData:a})}}return r.sort(((e,t)=>t.tabScore-e.tabScore)),r})),xs=e=>{const t=Es(e),n=Li(e),r=No(e);return null===n||"active-tab"!==r.type?null:t.get(n)??null},Ts=dt(Ci,(e=>{const t=new Map;for(const n of e)t.set(n.tid,(0,bn.XU)(e,n));return t})),Ss=dt(Ci,(e=>{const t=new Map;for(const n of e)n.isMainThread&&n.pid&&t.set(n.pid,(0,bn.XU)(e,n));return t})),Bs=dt(fi,(e=>{const{threads:t,pages:n}=e;return!(!n||!n.some((e=>e.isPrivateBrowsing)))||t.some((e=>e.isPrivateBrowsing))})),Is=dt(Ci,(e=>{const t=new Set;for(const{tid:n}of e)t.add(n);return t})),_s=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.sourceCodeIsNotOnSearchfox},Ns=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.usesOnlyOneStackType},Ps=dt(fi,(e=>e.meta.extra||[])),Ms=e=>e.zippedProfiles,Fs=e=>Ms(e).selectedZipFileIndex,Rs=e=>Ms(e).expandedZipFileIndexes,Ds=e=>Ms(e).zipFile,Ls=e=>Ds(e).zip,Os=e=>"NO_ZIP_FILE"!==Ds(e).phase,Us=e=>{const{error:t}=Ms(e);return null===t?null:t.message},zs=dt(Ls,(e=>null===e?null:function(e){const t=(0,ut.WP)(e.files).filter((([e,t])=>!t.dir)).map((([e,t])=>e)),n=new Map,r={prefix:[],path:[],partName:[],file:[],depth:[],length:0};for(const o of t){const t=o.split("/").filter((e=>e));let a="",i=null;for(let s=0;s<t.length;s++){const l=t[s];a?a+="/"+l:a=l;const c=n.get(a);if(void 0!==c){i=c;continue}const d=r.length++;r.prefix[d]=i,r.path[d]=a,r.partName[d]=l,r.depth[d]=s,r.file[d]=s+1===t.length?e.files[o]:null,n.set(a,d),i=d}}return r}(e))),Gs=e=>(0,ut.Nn)(zs(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),Ws=dt(Gs,(function(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++)t=Math.max(t,e.depth[n]);return t})),Hs=dt(Gs,bo,((e,t)=>null===e?null:new Kr(e,t))),Vs=e=>(0,ut.Nn)(Hs(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),js=e=>e.app,$s=e=>js(e).view,Ks=e=>js(e).urlSetupPhase,Ys=e=>js(e).hasZoomedViaMousewheel,qs=e=>js(e).isSidebarOpenPerPanel[Do(e)],Zs=e=>js(e).panelLayoutGeneration,Xs=e=>js(e).lastVisibleThreadTabSlug,Js=e=>js(e).trackThreadHeights,Qs=e=>js(e).isNewlyPublished,el=e=>js(e).experimental,tl=e=>js(e).browserConnectionStatus,nl=dt(tl,(e=>"ESTABLISHED"===e.status?e.browserConnection:null)),rl=e=>el(e).eventDelayTracks,ol=e=>el(e).cpuGraphs,al=e=>el(e).processCPUTracks,il=e=>js(e).isDragAndDropDragging,sl=e=>js(e).isDragAndDropOverlayRegistered,ll=e=>js(e).currentProfileUploadedInformation,cl=dt(No,(e=>{switch(e.type){case"active-tab":return In.oQ;case"full":case"origins":return In.xs;default:throw(0,ut.lC)(e,"Unhandled TimelineTrackOrganization")}})),dl=dt(No,Vi,qi,$o,Ko,Js,os,Po,cl,((e,t,n,r,o,a,i,s,l)=>{let c=In.NC;switch(e.type){case"origins":return c+500;case"active-tab":{i.resources.length>0&&(c+=In.RN);const{threadsKey:e}=i.mainTrack,t=a[e];if(void 0===t)return null;c+=t+1;for(let e=0;e<i.screenshots.length;e++)c+=l+1;if(s)for(const e of i.resources)switch(e.type){case"sub-frame":case"thread":{const{threadIndex:t}=e;if(null===t)c+=In.pp+1;else{const e=a[t];if(void 0===e)return null;c+=e+In.RN+1}}break;default:throw(0,ut.lC)(e)}return c}case"full":{for(const[e,n]of t.entries())if(!r.has(e))switch(n.type){case"screenshots":c+=l+1;break;case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":c+=In.li;break;case"process":{const{mainThreadIndex:e}=n;if(null===e)c+=In.pp+1;else{const t=a[e];if(void 0===t)return null;c+=t+1}break}default:throw(0,ut.lC)(n)}const e=new Set;for(const n of r){const r=t[n];"process"===r.type&&e.add(r.pid)}for(const[t,r]of n)if(!e.has(t))for(const[e,n]of r.entries())if(!(0,ut.Nn)(o.get(t),"Could not look up the hidden local tracks from the given PID").has(e))switch(n.type){case"thread":{const e=a[n.threadIndex];if(void 0===e)return null;c+=e+1}break;case"network":c+=In.LT+1;break;case"memory":c+=In.mk+1;break;case"bandwidth":c+=In.AJ+1;break;case"event-delay":c+=In.ZB+1;break;case"ipc":c+=In.F2+1;break;case"process-cpu":case"power":c+=In.xJ+1;break;case"marker":c+=In.Zh+1;break;default:throw(0,ut.lC)(n)}return c}default:throw(0,ut.lC)(e,"Unhandled TimelineTrackOrganization")}})),ul=dt($s,go,Ds,((e,t,n)=>{const r=e.phase,o=n.phase;return!("INITIALIZING"===r&&"none"!==t||"PROCESS_PROFILE_FROM_ZIP_FILE"===o)})),hl=dt(No,(e=>{switch(e.type){case"active-tab":return In.Ae;case"full":case"origins":return In.RD;default:throw(0,ut.lC)(e,"Unhandled TimelineTrackOrganization")}})),pl=dt(js,(e=>e.sidebarOpenCategories));var ml=n(4199),fl=n(1710),gl=n.n(fl);function Al(e,t,n){const r=e.get(t);return r?r.find(n):void 0}function bl(e,t,n){const r=e.get(t);return r?r.filter(n):[]}function Cl(e,t,n,r,o){const a=`${o.pid}:${o.tid}`,i=e.get(a);if(i)return i;const s=(0,vn.Qh)();s.pid=`${o.pid}`,s.tid=a,s.processType="unknown",s.name="Chrome Thread";const l=Al(n,"thread_name",(e=>e.pid===o.pid&&e.tid===o.tid));l&&(s.name=l.args.name,s.isMainThread=s.name.startsWith("Cr")&&s.name.endsWith("Main"));const c=Al(n,"process_name",(e=>e.pid===o.pid));c&&(s.processName=c.args.name);const d=Al(n,"process_labels",(e=>e.pid===o.pid));if(d){const e=d.args.labels;s.processName?s.processName=`${s.processName} (${e})`:s.processName=`Process ${o.pid} (${e})`}const u=Al(n,"process_sort_index",(e=>e.pid===o.pid));let h=0;u&&(h=u.args.sort_index);const p=Al(n,"thread_sort_index",(e=>e.pid===o.pid&&e.tid===o.tid));let m=0;p?m=p.args.sort_index:!l||"CrBrowserMain"!==l.args.name&&"CrGpuMain"!==l.args.name||(m=-1),r.threads.push(s);const f=new Map;f.set(void 0,null);const g={thread:s,nodeIdToStackId:f,funcKeyToFuncId:new Map,originToResourceIndex:new Map,lastSeenTime:o.ts/1e3,lastSampledTime:0,pid:o.pid,processSortIndex:h,threadSortIndex:m,tieBreakerIndex:t.size};return e.set(a,g),t.set(s,g),g}function vl(e){switch(e.name){case"ProfileChunk":return e.args.data.timeDeltas;case"CpuProfile":return e.args.data.cpuProfile.timeDeltas;default:return}}function yl(e){return new Promise((t=>{const n=new Image;n.src=e,n.addEventListener("load",(()=>{t({width:n.width,height:n.height})})),n.addEventListener("error",(()=>{t(null)}))}))}function wl(e){const t=new Set([null]);for(let n=0;n<e.length;n++){if(!t.has(e.prefix[n]))throw new Error("The stack ordering is incorrect");t.add(n)}}class El{constructor(e){this._libs=void 0,this._libRanges=void 0,this._libs=e,this._libRanges=e.map((e=>{const t=BigInt(e.start);return{baseAddress:t-BigInt(e.offset),start:t,end:BigInt(e.end)}}))}locateAddress(e){const t=BigInt(e),n=this._libRanges;let r=0,o=n.length-1;for(;r<=o;){const e=(r+o)/2|0;if(t>=n[e].end)r=e+1;else{if(!(t<n[e].start)){const r=e,o=t-n[r].baseAddress;return{lib:this._libs[r],relativeAddress:Number(o)}}o=e-1}}return{lib:null,relativeAddress:parseInt(e,16)}}}var kl=n(6720);function xl(e,t,n){function r(t,n){if(t!==n)for(const r in e)if("length"!==r){const o=e[r],a=o[t];o[t]=o[n],o[n]=a}}return function e(o,a){if(o<a){const i=function(e,o,a){const i=t[e];let s=o,l=e;for(let e=o;e<=a;e++)n(t[e],i)<0&&(r(e,s),s===l&&(l=e),s++);return r(s,l),s}(o+a>>1,o,a);e(o,i-1),e(i+1,a)}}(0,e.length-1),e}const Tl=0;function Sl(e){if(e){const t=e.split(" -> ");return t[t.length-1]}return e}function Bl(e){for(const t of e.threads)for(let e=0;e<t.markers.length;e++){const n=t.markers.data[e],r="default"===t.processType?0:t.processStartupTime;if(n){if("stack"in n&&n.stack&&n.stack.samples.data.length>0){const e=n.stack,t=e.samples.data[0][e.samples.schema.stack],o=e.samples.data[0][e.samples.schema.time];null!==t&&(n.cause={time:o+r,stack:t})}delete n.stack}}}function Il(e){for(const t of[{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Other",color:"grey",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}])-1===e.meta.categories.findIndex((e=>e.name===t.name))&&e.meta.categories.push(t);const t=e.meta.categories.findIndex((e=>"Other"===e.name)),n=new Map([["DOMEvent","DOM"],["Navigation::DOMComplete","DOM"],["Navigation::DOMInteractive","DOM"],["Navigation::Start","DOM"],["UserTiming","DOM"],["CC","GC / CC"],["GCMajor","GC / CC"],["GCMinor","GC / CC"],["GCSlice","GC / CC"],["Paint","Graphics"],["VsyncTimestamp","Graphics"],["CompositorScreenshot","Graphics"],["JS allocation","JavaScript"],["Styles","Layout"],["nsRefreshDriver::Tick waiting for paint","Layout"],["Navigation","Network"],["Network","Network"],["firstLoadURI","Other"],["IPC","Other"],["Text","Other"],["MainThreadLongTask","Other"],["FileIO","Other"],["Log","Other"],["PreferenceRead","Other"],["BHR-detected hang","Other"],["MainThreadLongTask","Other"]].map((([t,n])=>{const r=e.meta.categories.findIndex((e=>e.name===n));if(-1===r)throw new Error("Could not find a category index to map to.");return[t,r]})));for(const r of e.threads){const{markers:e,stringArray:o}=r;e.category||(e.category=[]);for(let r=0;r<e.length&&"number"!=typeof e.category[r];r++){const a=e.name[r],i=e.data[r];let s=o[a];i&&i.type&&(s="tracing"===i.type?i.category:i.type);let l=n.get(s);void 0===l&&(l=t),e.category[r]=l}}}const _l={1:e=>{(0,Cn.l)("sorting thread markers",(()=>{for(const t of e.threads)xl(t.markers,t.markers.time,((e,t)=>e-t))}));for(const t of e.threads)"processType"in t||("Content"===t.name?(t.processType="tab",t.name="GeckoMain"):"Plugin"===t.name?t.processType="plugin":t.processType="default")},2:e=>{for(const n of e.threads)for(const r of n.libs)"debugName"in r||(r.debugName=r.pdbName,r.path=r.name,r.name=r.debugName.endsWith(".pdb")?r.debugName.substr(0,r.debugName.length-4):r.debugName,r.arch="x86_64-gcc3"===(t=e.meta.abi)?"x86_64":t,delete r.pdbName,delete r.pdbAge,delete r.pdbSignature);var t},3:e=>{for(const t of e.threads)for(const e of t.libs)e.debugPath=e.debugPath||""},4:e=>{e.threads.forEach((e=>{const{funcTable:t,stringArray:n,resourceTable:r}=e,o=Bn.M.withBackingArray(n),a={length:0,type:[],name:[],lib:[],icon:[],addonId:[],host:[]};function i(e,t){const n=a.length++;a.type[n]=vn.AU.library,a.name[n]=e,a.lib[n]=t}function s(e,t){const n=a.length++;a.type[n]=vn.AU.webhost,a.name[n]=e,a.host[n]=t}function l(e){const t=a.length++;a.type[t]=vn.AU.url,a.name[t]=e}const c=new Map,d=new Map;for(let e=0;e<r.length;e++)if(r.type[e]===vn.AU.library)c.set(e,a.length),i(r.name[e],r.lib[e]);else if(r.type[e]===vn.AU.url){const t=o.getString(r.name[e]);let n,i,u=null;try{const e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)throw new Error("not a webhost protocol");n=e.origin,i=e.host}catch(e){n=t,i=null}if(d.has(n))u=d.get(n);else{u=a.length,d.set(n,u);const e=o.indexForString(n);i?s(e,o.indexForString(i)):l(o.indexForString(t))}c.set(e,u)}t.fileName=[],t.lineNumber=[];for(let e=0;e<t.length;e++){const n=t.resource[e];c.has(n)&&(t.resource[e]=c.get(n));let r=null,a=null;if(t.isJS[e]){const n=o.getString(t.name[e]),i=/^(.*) \((.*):([0-9]+)\)$/.exec(n)||/^()(.*):([0-9]+)$/.exec(n);if(i){const n=Sl(i[2]);i[1]?t.name[e]=o.indexForString(i[1]):t.name[e]=o.indexForString(n),r=o.indexForString(n),a=0|Number(i[3])}}t.fileName[e]=r,t.lineNumber[e]=a}e.resourceTable=a}))},5:e=>{for(const t of e.threads)delete t.samples.frameNumber},6:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t,r=[];for(let t=0;t<n.length;t++){const o=e[n.name[t]],a=n.data[t];r[t]="DOMEvent"===o?{type:"DOMEvent",startTime:a.startTime,endTime:a.endTime,eventType:a.type,phase:a.phase}:a}t.markers.data=r}},7:e=>{for(const t of e.threads)t.pausedRanges=[],t.processStartupTime=0,t.processShutdownTime=null,t.registerTime=0,t.unregisterTime=null},8:e=>{for(const t of e.threads){if("default"===t.processType)continue;const{stringArray:e,markers:n}=t,r=[];for(let o=0;o<n.length;o++){const a=e[n.name[o]],i=n.data[o];"DOMEvent"===a&&i.timeStamp?r[o]={type:"DOMEvent",startTime:i.startTime,endTime:i.endTime,timeStamp:i.timeStamp+t.processStartupTime,eventType:i.eventType,phase:i.phase}:r[o]=i}t.markers.data=r}},9:e=>{function t(e){const t=function(e){if("timings"in e&&!("status"in e.timings)){const t=e.timings;t.status="completed",Array.isArray(t.sices)&&(t.slices_list=t.slices,t.slices=t.slices.length),t.allocated_bytes=1024*t.allocated*1024}return e}(e),n=t.timings;switch(n.status){case"completed":{const{totals:e,...o}=n,a={...o,phase_times:r(e),mmu_20ms:n.mmu_20ms/100,mmu_50ms:n.mmu_50ms/100};return{type:"GCMajor",startTime:t.startTime,endTime:t.endTime,timings:a}}case"aborted":return{type:"GCMajor",startTime:t.startTime,endTime:t.endTime,timings:{status:"aborted"}};default:throw console.log("Unknown GCMajor status"),new Error("Unknown GCMajor status")}}function n(e){if("nursery"in e){if("status"in e.nursery)return"no collection"===e.nursery.status&&(e.nursery.status="nursery empty"),Object.assign(e);const t=Object.assign(e,{nursery:Object.assign(e.nursery,{status:"complete",bytes_used:e.nursery.nursery_bytes,new_capacity:e.nursery.new_nursery_bytes,phase_times:e.nursery.timings})});return delete t.nursery.nursery_bytes,delete t.nursery.new_nursery_bytes,delete t.nursery.timings,t}return e}function r(e){const t={};for(const n in e)t[n]=1e3*e[n];return t}for(const o of e.threads)for(let e=0;e<o.markers.length;e++){let a=o.markers.data[e];if(a){switch(a.type){case"GCMinor":a=n(a);break;case"GCSlice":a.timings&&a.timings.times&&(a.timings.phase_times=r(a.timings.times),delete a.timings.times);break;case"GCMajor":a=t(a)}o.markers.data[e]=a}}},10:e=>{Bl(e)},11:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t;if(0===n.length)continue;const r=[];for(let t=0;t<n.length;t++){const o=e[n.name[t]],a=n.data[t];"DOMEvent"===o&&(n.data[t]={type:"tracing",category:"DOMEvent",timeStamp:a.timeStamp,interval:"start",eventType:a.eventType,phase:a.phase},r.push({data:{type:"tracing",category:"DOMEvent",timeStamp:a.timeStamp,interval:"end",eventType:a.eventType,phase:a.phase},time:a.endTime,name:n.name[t]}))}if(r.length>0){r.sort(((e,t)=>e.time-t.time));const e={length:0,name:[],time:[],data:[]};let o=0,a=n.time[0],i=0,s=r[0].time;for(;o<n.length||i<r.length;)a<=s?(e.name.push(n.name[o]),e.time.push(n.time[o]),e.data.push(n.data[o]),e.length++,o++,a=o<n.length?n.time[o]:1/0):(e.name.push(r[i].name),e.time.push(r[i].time),e.data.push(r[i].data),e.length++,i++,s=i<r.length?r[i].time:1/0);t.markers=e}}},12:e=>{e.meta.categories=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"JavaScript",color:"yellow"},{name:"Layout",color:"purple"},{name:"Graphics",color:"green"},{name:"DOM",color:"blue"},{name:"GC / CC",color:"orange"},{name:"Network",color:"lightblue"}];const t={16:1,32:3,64:2,128:6,256:6,512:7,1024:4,2048:1,4096:1},n=new Map([["-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]",0],["base::MessagePumpDefault::Run(base::MessagePump::Delegate*)",0],["mozilla::widget::WinUtils::WaitForMessage(unsigned long)",0],["mozilla::ThreadEventQueue<mozilla::PrioritizedEventQueue<mozilla::LabeledEventQueue> >::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::ThreadEventQueue<mozilla::PrioritizedEventQueue<mozilla::EventQueue> >::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::ThreadEventQueue<mozilla::EventQueue>::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::layers::PaintThread::AsyncPaintContents(mozilla::layers::CompositorBridgeChild *,mozilla::layers::CapturedPaintState *,bool (*)(mozilla::layers::CapturedPaintState *))",4],["PresShell::DoFlushPendingNotifications InterruptibleLayout",3],["nsRefreshDriver::Tick",3],["nsLayoutUtils::GetFrameForPoint",3],["nsAppShell::ProcessGeckoEvents",1],["PollWrapper(_GPollFD*, unsigned int, int)",0],["mozilla::image::DecodePoolImpl::PopWorkLocked(bool)",0],["nsCCUncollectableMarker::Observe(nsISupports*, char const*, char16_t const*)",6],["g_main_context_dispatch",1],["Events::ProcessGeckoEvents",1],["widget::ChildView::drawUsingOpenGL",1],["nsContentSink::StartLayout(bool)",3],["Paint::PresShell::Paint",4],["JS::EvaluateString",2],["js::RunScript",2]]),r=new Map([["PresShell::DoFlushPendingNotifications",3],["PresShell::DoReflow",3],["layout::DoReflow",3],["JS::Compile",2]]);function o(e){const t=n.get(e);if(void 0!==t)return t;const o=r.get(function(e){const t=e.indexOf(" ");return-1===t?e:e.substr(0,t)}(e));return o}const a=/^(get |set )?\w+(\.\w+| constructor)$/;for(const n of e.threads){const{frameTable:e,funcTable:r,stringArray:i}=n;for(let n=0;n<e.length;n++){const s=e.func[n],l=i[r.name[s]],c=o(l);if(void 0!==c)e.category[n]=c;else{const o=e.category[n];if(null!==o)if(!r.isJS[s]&&a.test(l))e.category[n]=5;else{const r=o in t?t[o]:1;e.category[n]=r}}}}},13:e=>{const{meta:t,threads:n}=e,r=t.categories.findIndex((e=>"grey"===e.color));for(const e of n){const{stackTable:t,frameTable:n}=e;t.category=new Array(t.length);for(let e=0;e<t.length;e++){const o=t.frame[e],a=n.category[o];if(null!==a)t.category[e]=a;else{const n=t.prefix[e];t.category[e]=null!==n?t.category[n]:r}}}},14:e=>{const{threads:t}=e;for(let e=0;e<t.length;e++){const n=t[e];null!==n.pid&&void 0!==n.pid||(n.pid=`Unknown Process ${e+1}`)}},15:e=>{for(const t of e.threads){t.frameTable.column=new Array(t.frameTable.length);for(let e=0;e<t.frameTable.length;e++)t.frameTable.column[e]=null}},16:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t,r=[];for(let t=0;t<n.length;t++){const o=e[n.name[t]],a=n.data[t];switch(o){case"VsyncTimestamp":r[t]={type:"VsyncTimestamp",vsync:a.vsync};break;case"LayerTranslation":r[t]={type:"LayerTranslation",layer:a.layer,x:a.x,y:a.y};break;case"CompositorScreenshot":r[t]={type:"CompositorScreenshot",url:a.url,windowID:a.windowID,windowWidth:a.windowWidth,windowHeight:a.windowHeight};break;default:r[t]=a}}t.markers.data=r}},17:e=>{const t=/^(get |set )?\w+(\.\w+| constructor)$/;for(const n of e.threads){const{funcTable:e,stringArray:r}=n,o=Bn.M.withBackingArray(r);e.relevantForJS=new Array(e.length);for(let n=0;n<e.length;n++){const r=o.getString(e.name[n]);r.startsWith("AutoEntryScript ")?(e.name[n]=o.indexForString(r.substring(16)),e.relevantForJS[n]=!0):e.relevantForJS[n]=t.test(r)}}},18:e=>{for(const t of e.threads){const{funcTable:e,stringArray:n}=t,r=Bn.M.withBackingArray(n);e.columnNumber=[];for(let n=0;n<t.funcTable.length;n++)if(e.columnNumber[n]=null,e.isJS[n]){const t=e.fileName[n];if(null!==t){const o=r.getString(t),a=/^(.*):([0-9]+)$/.exec(o);a&&(e.columnNumber[n]=e.lineNumber[n],e.fileName[n]=r.indexForString(a[1]),e.lineNumber[n]=parseInt(a[2],10))}}}},19:e=>{for(const t of e.threads){const e=t.markers,n=t.processStartupTime;for(let r=0;r<t.markers.length;r++){const t=e.data[r];t&&"type"in t&&"Network"===t.type&&(t.domainLookupStart&&(t.domainLookupStart+=n),t.domainLookupEnd&&(t.domainLookupEnd+=n),t.connectStart&&(t.connectStart+=n),t.tcpConnectEnd&&(t.tcpConnectEnd+=n),t.secureConnectionStart&&(t.secureConnectionStart+=n),t.connectEnd&&(t.connectEnd+=n),t.requestStart&&(t.requestStart+=n),t.responseStart&&(t.responseStart+=n),t.responseEnd&&(t.responseEnd+=n))}}},20:e=>{},21:e=>{Bl(e)},22:e=>{for(const t of e.threads){const{stringArray:e}=t,n=Bn.M.withBackingArray(e);if(!n.hasString("DiskIO"))continue;const r=n.indexForString("FileIO");for(let e=0;e<t.markers.length;e++){const n=t.markers.data[e];n&&"DiskIO"===n.type&&(n.type="FileIO",t.markers.name[e]=r)}}},23:e=>{for(const t of e.meta.categories)t.subcategories=["Other"];for(const t of e.threads){const{frameTable:e,stackTable:n}=t;e.subcategory=e.category.map((e=>null===e?null:0)),n.subcategory=n.category.map((e=>null===e?null:0))}},24:e=>{Il(e)},25:e=>{if(e.pages&&e.pages.length>0){const t=new Map,n=new Map;let r=1,o=1;for(const a of e.pages){t.set(`d${a.docshellId}h${a.historyId}`,o);let e=n.get(a.docshellId);e||(e=r++,n.set(a.docshellId,e)),a.browsingContextID=e,a.innerWindowID=o,a.embedderInnerWindowID=0,o++,delete a.docshellId,delete a.historyId,delete a.isSubFrame}for(const n of e.threads){const{markers:e}=n;e.data=e.data.map((e=>{if(e&&void 0!==e.docShellId&&void 0!==e.docshellHistoryId){const n=t.get(`d${e.docShellId}h${e.docshellHistoryId}`);void 0===n?console.error("No page found with given docShellId and historyId"):e.innerWindowID=n,delete e.docShellId,delete e.docshellHistoryId}return e}))}}},26:e=>{if(e.counters&&e.counters.length>0)for(const t of e.counters)t.sampleGroups=[t.sampleGroups]},27:e=>{for(const t of e.threads){const{frameTable:e}=t;e.innerWindowID=new Array(e.length).fill(0)}},28:e=>{for(const t of e.threads){const{markers:n}=t;if(null===n.category[0])return void Il(e)}},29:e=>{for(const t of e.threads)t.samples.duration&&(t.samples.weightType="samples",t.samples.weight=t.samples.duration,delete t.samples.duration),t.nativeAllocations&&(t.nativeAllocations.weightType="bytes",t.nativeAllocations.weight=t.nativeAllocations.duration,delete t.nativeAllocations.duration),t.jsAllocations&&(t.jsAllocations.weightType="bytes",t.jsAllocations.weight=t.jsAllocations.duration,delete t.jsAllocations.duration),t.samples.weight||(t.samples.weight=null),t.samples.weightType||(t.samples.weightType="samples")},30:e=>{for(const{markers:t}of e.threads){const e=t.time,n=[],r=[],o=[];delete t.time,t.startTime=n,t.endTime=r,t.phase=o;for(let a=0;a<t.length;a++){const i=t.data[a],s=e[a];let l=s,c=null,d=0;if(i){const{startTime:e,endTime:t,type:n,interval:r}=i;"tracing"===n?"start"===r?(l=s,c=null,d=2):(l=null,c=s,d=3):e!==t&&"number"==typeof e&&"number"==typeof t&&(l=e,c=t,d=1),"IPC"!==i.type&&"Network"!==i.type&&(delete i.startTime,delete i.endTime)}n.push(l),r.push(c),o.push(d)}}},31:e=>{for(const{markers:t}of e.threads)for(let e=0;e<t.length;e++){const n=t.data[e];if(n){const{type:r,interval:o}=n;"tracing"===r&&"start"!==o&&"end"!==o&&(t.phase[e]=0,t.startTime[e]=t.endTime[e],t.endTime[e]=null)}}},32:e=>{for(const{markers:t}of e.threads)for(let e=0;e<t.length;e++){const n=t.data[e];if(n&&"tracing"===n.type&&"DOMEvent"===n.category){const r=t.startTime[e];n.type="DOMEvent",void 0!==n.timeStamp&&null!==r&&(n.latency=r-n.timeStamp),delete n.timeStamp}}},33:e=>{e.meta.markerSchema=[{name:"GCMajor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCMinor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCSlice",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"CC",tooltipLabel:"Cycle Collect",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"FileIO",display:["marker-chart","marker-table"],data:[{key:"operation",label:"Operation",format:"string",searchable:!0},{key:"source",label:"Source",format:"string",searchable:!0},{key:"filename",label:"Filename",format:"file-path",searchable:!0}]},{name:"MediaSample",display:["marker-chart","marker-table"],data:[{key:"sampleStartTimeUs",label:"Sample start time",format:"microseconds"},{key:"sampleEndTimeUs",label:"Sample end time",format:"microseconds"}]},{name:"Styles",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"elementsTraversed",label:"Elements traversed",format:"integer"},{key:"elementsStyled",label:"Elements styled",format:"integer"},{key:"elementsMatched",label:"Elements matched",format:"integer"},{key:"stylesShared",label:"Styles shared",format:"integer"},{key:"stylesReused",label:"Styles reused",format:"integer"}]},{name:"PreferenceRead",display:["marker-chart","marker-table"],data:[{key:"prefName",label:"Name",format:"string"},{key:"prefKind",label:"Kind",format:"string"},{key:"prefType",label:"Type",format:"string"},{key:"prefValue",label:"Value",format:"string"}]},{name:"UserTiming",tooltipLabel:"{marker.data.name}",chartLabel:"{marker.data.name}",tableLabel:"{marker.data.name}",display:["marker-chart","marker-table"],data:[{label:"Marker",value:"UserTiming"},{key:"entryType",label:"Entry Type",format:"string"},{label:"Description",value:"UserTiming is created using the DOM APIs performance.mark() and performance.measure()."}]},{name:"Text",tableLabel:"{marker.name} — {marker.data.name}",chartLabel:"{marker.name} — {marker.data.name}",display:["marker-chart","marker-table"],data:[{key:"name",label:"Details",format:"string"}]},{name:"Log",display:["marker-table"],tableLabel:"({marker.data.module}) {marker.data.name}",data:[{key:"module",label:"Module",format:"string"},{key:"name",label:"Name",format:"string"}]},{name:"DOMEvent",tooltipLabel:"{marker.data.eventType} — DOMEvent",tableLabel:"{marker.data.eventType}",chartLabel:"{marker.data.eventType}",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"latency",label:"Latency",format:"duration"}]},{name:"Paint",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Navigation",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Layout",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.name} — {marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],data:[{key:"messageType",label:"Type",format:"string"},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"}]},{name:"RefreshDriverTick",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"name",label:"Tick Reasons",format:"string"}]},{name:"Network",display:["marker-table"],data:[]}]},34:e=>{for(const t of e.threads){const e=t.processStartupTime,{markers:n}=t;for(const t of n.data)t&&"tracing"!==t.type&&"Styles"!==t.type&&t.cause&&void 0!==t.cause.time&&(t.cause.time+=e)}},35:e=>{if(e.meta.configuration&&e.meta.configuration.activeBrowsingContextID&&(e.meta.configuration.activeTabID=e.meta.configuration.activeBrowsingContextID,delete e.meta.configuration.activeBrowsingContextID),e.pages&&e.pages.length>0)for(const t of e.pages)t.tabID=t.browsingContextID,delete t.browsingContextID},36:e=>{for(const t of e.threads){const e={libIndex:[],address:[],name:[],length:0},{frameTable:n,funcTable:r,resourceTable:o}=t,a=new Map;for(let t=0;t<r.length;t++){const n=r.resource[t];if(-1===n)continue;if(o.type[n]!==vn.AU.library)continue;const i=o.lib[n];if(null==i||-1===i)continue;const s=r.address[t],l=e.length;e.libIndex.push(i),e.address.push(-1===s?null:s),e.name.push(r.name[t]),e.length++,a.set(t,l)}delete r.address,n.nativeSymbol=n.func.map((e=>a.get(e)??null)),t.nativeSymbols=e}},37:e=>{for(const t of e.threads)"Java Main Thread"===t.name&&(t.name="AndroidUI (JVM)")},38:e=>{for(const t of e.threads){const e=new Set,n=new Set,{samples:r,markers:o,jsAllocations:a,nativeAllocations:i,stackTable:s,frameTable:l}=t;for(let t=0;t<r.length;t++){const n=r.stack[t];null!==n&&e.add(n)}for(let e=0;e<o.length;e++){const t=o.data[e];if(t&&t.cause){const e=t.cause.stack;null!==e&&n.add(e)}}if(void 0!==a)for(let e=0;e<a.length;e++){const t=a.stack[e];null!==t&&n.add(t)}if(void 0!==i)for(let e=0;e<i.length;e++){const t=i.stack[e];null!==t&&n.add(t)}const c=new Uint32Array(l.length),d=new Set;for(const t of e){const e=s.frame[t];c[e]=e,-1!==l.address[e]&&d.add(e)}const u=new Map,h=new Set;for(const e of n){const t=s.frame[e],n=l.address[t];-1!==n&&u.set(t,n)}for(let e=0;e<s.length;e++){const t=s.prefix[e];if(null===t||h.has(t))continue;h.add(t);const n=s.frame[t],r=l.address[n];-1!==r&&u.set(n,r)}if(0===d.size&&0===u.size)continue;for(const[e,t]of u){if(d.has(e)){const n=l.length;l.address.push(t),l.category.push(l.category[e]),l.subcategory.push(l.subcategory[e]),l.func.push(l.func[e]),l.nativeSymbol.push(l.nativeSymbol[e]),l.innerWindowID.push(l.innerWindowID[e]),l.implementation.push(l.implementation[e]),l.line.push(l.line[e]),l.column.push(l.column[e]),l.optimizations.push(l.optimizations[e]),l.length++,c[e]=n}l.address[e]=t-1}const p={frame:[],prefix:[],category:[],subcategory:[],length:0},m=new Map,f=new Map,g=new Uint32Array(s.length);for(let t=0;t<s.length;t++){const r=s.frame[t],o=s.category[t],a=s.subcategory[t],i=s.prefix[t],l=null===i?null:g[i];if(h.has(t)||n.has(t)){const e=p.length;p.frame.push(r),p.category.push(o),p.subcategory.push(a),p.prefix.push(l),p.length++,g[t]=e,f.set(t,e)}if(e.has(t)){const e=c[r],n=p.length;p.frame.push(e),p.category.push(o),p.subcategory.push(a),p.prefix.push(l),p.length++,m.set(t,n)}}t.stackTable=p,r.stack=r.stack.map((e=>null===e?null:m.get(e)??null)),o.data.forEach((e=>{e&&"cause"in e&&e.cause&&(e.cause.stack=f.get(e.cause.stack))})),void 0!==a&&(a.stack=a.stack.map((e=>null===e?null:f.get(e)??null))),void 0!==i&&(i.stack=i.stack.map((e=>null===e?null:f.get(e)??null)))}},39:e=>{for(const t of e.threads)t.samples.threadCPUDelta&&(t.samples.threadCPUDelta.some((e=>null!==e))||delete t.samples.threadCPUDelta)},40:e=>{for(const t of e.threads)t.frameTable.inlineDepth=Array(t.frameTable.length).fill(0)},41:e=>{const t=[],n=new Map;for(const r of e.threads){const{libs:e,resourceTable:o,nativeSymbols:a,stringArray:i}=r,s=Bn.M.withBackingArray(i),l=new Map;delete r.libs;const c=r=>{let o=l.get(r);if(void 0===o){const a=e[r],{debugName:i,breakpadId:s}=a,c=`${i}/${s}`;if(o=n.get(c),void 0===o){o=t.length;const{arch:e,name:r,path:l,debugPath:d,codeId:u}=a;t.push({arch:e,name:r,path:l,debugName:i,debugPath:d,breakpadId:s,codeId:u??null}),n.set(c,o)}l.set(r,o)}return o};for(let e=0;e<o.length;e++){const t=o.name[e];-1!==t&&null!=t||(o.name[e]=s.indexForString("<unnamed resource>"));const n=o.host[e];-1!==n&&void 0!==n||(o.host[e]=null);const r=o.lib[e];if(null==r||-1===r){o.lib[e]=null;continue}const a=c(r);o.lib[e]=a}for(let e=0;e<a.length;e++){const t=c(a.libIndex[e]);a.libIndex[e]=t}}e.libs=t},42:e=>{for(const t of e.threads){const{nativeSymbols:e}=t;e.functionSize=Array(e.length).fill(null)}},43:e=>{},44:e=>{for(const t of e.meta.markerSchema){let e;switch(t.name){case"FileIO":t.data.push({key:"threadId",label:"Thread ID",format:"string",searchable:!0}),e=[];break;case"Log":e=["name","module"];break;case"DOMEvent":t.data.push({key:"eventType",label:"Event Type",format:"string",searchable:!0}),e=["target"];break;case"TraceEvent":e=["name1","name2","val1","val2"];break;default:e=["name","category"]}for(const n of t.data)e.includes(n.key)&&(n.searchable=!0)}},45:e=>{for(const t of e.threads)delete t.frameTable.optimizations},46:e=>{for(const t of e.threads)t.isMainThread="GeckoMain"===t.name||"string"==typeof t.pid||String(t.pid)===t.tid},47:e=>{for(const t of e.threads){t.pid=`${t.pid}`;for(const e of t.markers.data)e&&"IPC"===e.type&&(e.otherPid=`${e.otherPid}`)}if(e.counters)for(const t of e.counters)t.pid=`${t.pid}`;if(e.profilerOverhead)for(const t of e.profilerOverhead)t.pid=`${t.pid}`},48:e=>{if(e.counters&&e.counters.length>0)for(const t of e.counters)t.samples=t.sampleGroups[0].samples,delete t.sampleGroups},49:e=>{},50:e=>{},51:e=>{},52:e=>{const t=new Set(e.meta.markerSchema.map((e=>e.name))),n="tracingCCFrom52Upgrader",r=t.has("CC");let o=!1,a=!1;for(const t of e.threads){const{markers:e}=t;for(let t=0;t<e.length;t++){const i=e.data[t];i&&"tracing"===i.type&&i.category&&(o=!0,r&&"CC"===i.category&&(i.type=n,a=!0,i.interval&&delete i.interval))}}o&&!t.has("tracing")&&e.meta.markerSchema.push({name:"tracing",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]}),a&&e.meta.markerSchema.push({name:n,display:["marker-chart","marker-table","timeline-memory"],data:[{key:"category",label:"Type",format:"string"}]})},53:e=>{for(const t of e.threads){const{frameTable:e,stackTable:n}=t;if(e.category)e.subcategory||(e.subcategory=new Array(e.length).fill(0));else{e.category=new Array(e.length).fill(null),e.subcategory=new Array(e.length).fill(null);for(let t=0;t<n.length;t++){const r=n.frame[t];e.category[r]=n.category[t],e.subcategory[r]=n.subcategory[t]}}delete n.category,delete n.subcategory}},54:e=>{!function(e){const{categories:t}=e.meta;if(!t)return;if(t.some((e=>1!==e.subcategories.length)))return;const n=t.findIndex((e=>"JavaScript"===e.name));if(-1===n)return;const r=t[n].subcategories,o=new Map;for(const t of e.threads){const{frameTable:e,stringArray:a}=t;for(let t=0;t<e.length;t++){const i=e.implementation[t];if(null===i)continue;const s=a[i];let l=o.get(s);void 0===l&&(l=r.length,r[l]=`JIT (${s})`,o.set(s,l)),e.category[t]=n,e.subcategory[t]=l}}}(e);for(const t of e.threads)delete t.frameTable.implementation;delete e.meta.doesNotUseFrameImplementation},55:e=>{for(const t of e.meta.markerSchema){const e=t.data.filter((e=>void 0===e.key)),n=t.data.filter((e=>void 0===e.value));if(t.fields=n,delete t.data,0===e.length)continue;let r=e.findIndex((e=>"Description"===e.label));-1===r&&(r=0);const o=e[r].value;t.description=o;const a=e.filter(((e,t)=>t!==r)),i=a.filter((e=>"Marker"!==e.label&&"UserTiming"!==e.value));0!==i.length&&console.warn(`Discarding the following static fields from marker schema "${t.name}": ${i.map((e=>e.label+": "+e.value)).join(", ")}`)}}},Nl=0;function Pl(e){if(e&&"object"==typeof e&&e.meta&&"object"==typeof e.meta)return e.meta;throw new Error("Could not find the meta property on a profile.")}const Ml={1:()=>{throw new Error("Gecko profiles without version numbers are very old and no conversion code has been written for that version of the profile format.")},2:()=>{throw new Error("Gecko profile version 1 is very old and no conversion code has been written for that version of the profile format.")},3:()=>{throw new Error("Gecko profile version 2 is very old and no conversion code has been written for that version of the profile format.")},4:e=>{!function e(t){t.libs=JSON.parse(t.libs).map((e=>{if("breakpadId"in e)e.debugName=e.name.substr(e.name.lastIndexOf("/")+1);else{e.debugName=e.pdbName;const t=e.pdbSignature.replace(/[{}-]/g,"").toUpperCase();e.breakpadId=t+e.pdbAge}var n;return delete e.pdbName,delete e.pdbAge,delete e.pdbSignature,e.path=e.name,e.name=e.debugName.endsWith(".pdb")?e.debugName.substr(0,e.debugName.length-4):e.debugName,e.arch="x86_64-gcc3"===(n=t.meta.abi)?"x86_64":n,e.debugPath="",e})).sort(((e,t)=>e.start-t.start));for(let n=0;n<t.threads.length;n++)if("string"==typeof t.threads[n]){const r=JSON.parse(t.threads[n]);e(r),t.threads[n]=JSON.stringify(r)}else{const e=t.threads[n];"processType"in e||("Content"===e.name?(e.processType="tab",e.name="GeckoMain"):"Plugin"===e.name?e.processType="plugin":e.processType="default")}t.meta.version=4}(e)},5:e=>{!function e(t){const n=t.threads.map((t=>{if("string"==typeof t){const n=JSON.parse(t);return e(n),{type:"process",data:n}}return{type:"thread",data:t}}));t.processes=n.filter((e=>"process"===e.type)).map((e=>e.data)),t.threads=n.filter((e=>"thread"===e.type)).map((e=>e.data)),t.meta.version=5}(e)},6:e=>{!function e(t){for(const e of t.threads){delete e.samples.schema.frameNumber;for(let t=0;t<e.samples.data.length;t++)e.samples.data[t].splice(5)}for(const n of t.processes)e(n)}(e)},7:e=>{!function e(t){for(const e of t.threads){const t=e.markers.schema.name,n=e.markers.schema.data;for(let r=0;r<e.markers.data.length;r++)if("DOMEvent"===e.stringTable[e.markers.data[r][t]]){const t=e.markers.data[r][n];t.eventType=t.type,t.type="DOMEvent"}}for(const n of t.processes)e(n)}(e)},8:e=>{!function e(t){t.pausedRanges=[],t.meta.shutdownTime=null;for(const e of t.threads)e.registerTime=0,e.unregisterTime=null;for(const n of t.processes)e(n)}(e)},9:e=>{function t(e){if("timings"in e&&!("status"in e.timings)){const t=e.timings;t.status="completed",Array.isArray(t.sices)&&(t.slices_list=t.slices,t.slices=t.slices.length),t.allocated_bytes=1024*t.allocated*1024}return e}function n(e){if("nursery"in e){if("status"in e.nursery)return"no collection"===e.nursery.status&&(e.nursery.status="nursery empty"),Object.assign(e);const t=Object.assign(e,{nursery:Object.assign(e.nursery,{status:"complete",bytes_used:e.nursery.nursery_bytes,new_capacity:e.nursery.new_nursery_bytes,phase_times:e.nursery.timings})});return delete t.nursery.nursery_bytes,delete t.nursery.new_nursery_bytes,delete t.nursery.timings,t}return e}!function e(r){for(const e of r.threads){const r=e.markers.schema.data;for(let o=0;o<e.markers.data.length;o++){let a=e.markers.data[o][r];if(a){switch(a.type){case"GCMinor":a=n(a);break;case"GCMajor":a=t(a)}e.markers.data[o][r]=a}}}for(const t of r.processes)e(t)}(e)},10:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e,n=t.schema.name,r=t.schema.data,o=t.schema.time,a=[];for(let i=0;i<t.data.length;i++){const s=t.data[i],l=e.stringTable[s[n]],c=s[r];if("DOMEvent"===l&&"tracing"!==c.type){const e=[];e[r]={type:"tracing",category:"DOMEvent",timeStamp:c.timeStamp,interval:"end",eventType:c.eventType,phase:c.phase},e[o]=c.endTime,e[n]=s[n],a.push(e),s[o]=c.startTime,s[r]={type:"tracing",category:"DOMEvent",timeStamp:c.timeStamp,interval:"start",eventType:c.eventType,phase:c.phase}}}t.data=t.data.concat(a)}for(const n of t.processes)e(n)}(e)},11:e=>{let t=0;!function e(n){for(const e of n.threads)null!==e.pid&&void 0!==e.pid||(e.pid="Unknown Process "+ ++t);for(const t of n.processes)e(t)}(e);const n=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"JavaScript",color:"yellow"},{name:"Layout",color:"purple"},{name:"Graphics",color:"green"},{name:"DOM",color:"blue"},{name:"GC / CC",color:"orange"},{name:"Network",color:"lightblue"}],r={16:1,32:3,64:2,128:6,256:6,512:7,1024:4,2048:1,4096:1};!function e(t){t.meta.categories=n;for(const e of t.threads){const t=e.frameTable.schema.category;for(const n of e.frameTable.data)t in n&&null!==n[t]&&(n[t]in r?n[t]=r[n[t]]:n[t]=1)}for(const n of t.processes)e(n)}(e)},12:e=>{!function e(t){for(const e of t.threads){const t=e.frameTable.schema.category;for(const n of e.frameTable.data)n.hasOwnProperty(t)&&(n[5]=n[4],n[4]=null);e.frameTable.schema.category=5,e.frameTable.schema.column=4}for(const n of t.processes)e(n)}(e)},13:e=>{!function e(t){for(const e of t.threads){const t=e.markers.schema.name,n=e.markers.schema.data;for(let r=0;r<e.markers.data.length;r++){const o=e.stringTable[e.markers.data[r][t]],a=e.markers.data[r][n];switch(o){case"VsyncTimestamp":case"LayerTranslation":case"CompositorScreenshot":a.type=o,delete a.category}}}for(const n of t.processes)e(n)}(e)},14:e=>{const t=/^(get |set )?\w+(\.\w+| constructor)$/;!function e(n){for(const e of n.threads){e.frameTable.schema={location:0,relevantForJS:1,implementation:2,optimizations:3,line:4,column:5,category:6};const n=e.frameTable.schema.location,r=e.frameTable.schema.relevantForJS,o=Bn.M.withBackingArray(e.stringTable);for(let a=0;a<e.frameTable.data.length;a++){const i=e.frameTable.data[a];i.splice(r,0,!1);const s=o.getString(i[n]);s.startsWith("AutoEntryScript ")?(i[r]=!0,i[n]=o.indexForString(s.substring(16))):i[r]=t.test(s)}}for(const t of n.processes)e(t)}(e)},15:e=>{!function e(t){for(const e of t.threads){const t=Bn.M.withBackingArray(e.stringTable);if(!t.hasString("DiskIO"))continue;const n=t.indexForString("FileIO"),r=e.markers.schema.name,o=e.markers.schema.data;for(let t=0;t<e.markers.data.length;t++){const a=e.markers.data[t],i=a[o];i&&"DiskIO"===i.type&&(a[r]=n,i.type="FileIO")}}for(const n of t.processes)e(n)}(e)},16:e=>{!function e(t){for(const e of t.meta.categories)e.subcategories=["Other"];for(const e of t.threads){const{frameTable:t}=e;t.schema.subcategory=7;for(let e=0;e<t.data.length;e++)t.data[e][t.schema.category]&&(t.data[e][t.schema.subcategory]=0)}for(const n of t.processes)e(n)}(e);for(const t of[{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Other",color:"grey",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}])-1===e.meta.categories.findIndex((e=>e.name===t.name))&&e.meta.categories.push(t);const t=e.meta.categories.findIndex((e=>"Other"===e.name)),n=new Map([["DOMEvent","DOM"],["Navigation::DOMComplete","DOM"],["Navigation::DOMInteractive","DOM"],["Navigation::Start","DOM"],["UserTiming","DOM"],["CC","GC / CC"],["GCMajor","GC / CC"],["GCMinor","GC / CC"],["GCSlice","GC / CC"],["Paint","Graphics"],["VsyncTimestamp","Graphics"],["CompositorScreenshot","Graphics"],["JS allocation","JavaScript"],["Styles","Layout"],["nsRefreshDriver::Tick waiting for paint","Layout"],["Navigation","Network"],["Network","Network"],["firstLoadURI","Other"],["IPC","Other"],["Text","Other"],["MainThreadLongTask","Other"],["FileIO","Other"],["Log","Other"],["PreferenceRead","Other"],["BHR-detected hang","Other"],["MainThreadLongTask","Other"]].map((([t,n])=>{const r=e.meta.categories.findIndex((e=>e.name===n));if(-1===r)throw new Error("Could not find a category index to map to.");return[t,r]})));!function e(r){for(const e of r.threads){const{markers:r,stringTable:o}=e;if(void 0!==r.schema.category)return;r.schema.category=3;for(let e=0;e<r.data.length;e++){const a=r.data[e][r.schema.name],i=r.data[e][r.schema.data];let s=o[a];i&&i.type&&(s="tracing"===i.type?i.category:i.type);let l=n.get(s);void 0===l&&(l=t),r.data[e][r.schema.category]=l}}for(const t of r.processes)e(t)}(e)},17:e=>{let t=1,n=1;!function e(r){if(r.pages&&r.pages.length>0){const e=new Map,o=new Map;for(const a of r.pages){e.set(`d${a.docshellId}h${a.historyId}`,n);let r=o.get(a.docshellId);r||(r=t++,o.set(a.docshellId,r)),a.browsingContextID=r,a.innerWindowID=n,a.embedderInnerWindowID=0,n++,delete a.docshellId,delete a.historyId,delete a.isSubFrame}for(const t of r.threads){const{markers:n}=t,r=n.schema.data;for(let n=0;n<t.markers.data.length;n++){const o=t.markers.data[n][r];if(o&&void 0!==o.docShellId&&void 0!==o.docshellHistoryId){const t=e.get(`d${o.docShellId}h${o.docshellHistoryId}`);void 0===t?console.error("No page found with given docShellId and historyId"):o.innerWindowID=t,delete o.docShellId,delete o.docshellHistoryId}}}}for(const t of r.processes)e(t)}(e)},18:e=>{!function e(t){if(t.counters&&t.counters.length>0)for(const e of t.counters)"samples"in e.sample_groups?e.sample_groups=[e.sample_groups]:e.sample_groups=[];for(const n of t.processes)e(n)}(e)},19:e=>{!function e(t){for(const e of t.threads){const{frameTable:t}=e;t.schema={location:0,relevantForJS:1,innerWindowID:2,implementation:3,optimizations:4,line:5,column:6,category:7,subcategory:8};for(let e=0;e<t.data.length;e++){const n=t.schema.innerWindowID;t.data[e].splice(n,0,0)}}for(const n of t.processes)e(n)}(e)},20:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e,n=t.schema,r={name:0,startTime:1,endTime:2,phase:3,category:4,data:5};t.schema=r;for(let e=0;e<t.data.length;e++){const o=t.data[e],a=o[n.name],i=o[n.time],s=o[n.category],l=o[n.data];let c=i,d=null,u=0;if(l){const{startTime:e,endTime:t,type:n,interval:r}=l;"tracing"===n?"start"===r?(c=i,d=null,u=2):"end"===r&&(c=null,d=i,u=3):e!==t&&"number"==typeof e&&"number"==typeof t&&(c=e,d=t,u=1),"IPC"!==l.type&&"Network"!==l.type&&(delete l.startTime,delete l.endTime)}const h=[];h[r.name]=a,h[r.startTime]=c,h[r.endTime]=d,h[r.phase]=u,h[r.category]=s,h[r.data]=l,t.data[e]=h}}for(const n of t.processes)e(n)}(e)},21:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e;for(let e=0;e<t.data.length;e++){const n=t.data[e],r=n[t.schema.data];if(r&&"tracing"===r.type&&"DOMEvent"===r.category){const e=n[t.schema.startTime];r.type="DOMEvent",void 0!==r.timeStamp&&(r.latency=e-r.timeStamp),delete r.timeStamp}}}for(const n of t.processes)e(n)}(e)},22:e=>{const t=e;t.meta.markerSchema=[{name:"GCMajor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCMinor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCSlice",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"CC",tooltipLabel:"Cycle Collect",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"FileIO",display:["marker-chart","marker-table"],data:[{key:"operation",label:"Operation",format:"string",searchable:!0},{key:"source",label:"Source",format:"string",searchable:!0},{key:"filename",label:"Filename",format:"file-path",searchable:!0}]},{name:"MediaSample",display:["marker-chart","marker-table"],data:[{key:"sampleStartTimeUs",label:"Sample start time",format:"microseconds"},{key:"sampleEndTimeUs",label:"Sample end time",format:"microseconds"}]},{name:"Styles",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"elementsTraversed",label:"Elements traversed",format:"integer"},{key:"elementsStyled",label:"Elements styled",format:"integer"},{key:"elementsMatched",label:"Elements matched",format:"integer"},{key:"stylesShared",label:"Styles shared",format:"integer"},{key:"stylesReused",label:"Styles reused",format:"integer"}]},{name:"PreferenceRead",display:["marker-chart","marker-table"],data:[{key:"prefName",label:"Name",format:"string"},{key:"prefKind",label:"Kind",format:"string"},{key:"prefType",label:"Type",format:"string"},{key:"prefValue",label:"Value",format:"string"}]},{name:"UserTiming",tooltipLabel:"{marker.data.name}",chartLabel:"{marker.data.name}",tableLabel:"{marker.data.name}",display:["marker-chart","marker-table"],data:[{label:"Marker",value:"UserTiming"},{key:"entryType",label:"Entry Type",format:"string"},{label:"Description",value:"UserTiming is created using the DOM APIs performance.mark() and performance.measure()."}]},{name:"Text",tableLabel:"{marker.name} — {marker.data.name}",chartLabel:"{marker.name} — {marker.data.name}",display:["marker-chart","marker-table"],data:[{key:"name",label:"Details",format:"string"}]},{name:"Log",display:["marker-table"],tableLabel:"({marker.data.module}) {marker.data.name}",data:[{key:"module",label:"Module",format:"string"},{key:"name",label:"Name",format:"string"}]},{name:"DOMEvent",tooltipLabel:"{marker.data.eventType} — DOMEvent",tableLabel:"{marker.data.eventType}",chartLabel:"{marker.data.eventType}",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"latency",label:"Latency",format:"duration"}]},{name:"Paint",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Navigation",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Layout",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.name} — {marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],data:[{key:"messageType",label:"Type",format:"string"},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"}]},{name:"RefreshDriverTick",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"name",label:"Tick Reasons",format:"string"}]},{name:"Network",display:["marker-table"],data:[]}];for(const e of t.processes)e.meta.markerSchema=[]},23:e=>{!function t(n){if(e.meta.configuration&&e.meta.configuration.activeBrowsingContextID&&(e.meta.configuration.activeTabID=e.meta.configuration.activeBrowsingContextID,delete e.meta.configuration.activeBrowsingContextID),n.pages&&n.pages.length>0)for(const e of n.pages)e.tabID=e.browsingContextID,delete e.browsingContextID;for(const e of n.processes)t(e)}(e)},24:e=>{},25:e=>{},26:e=>{!function e(t){for(const e of t.meta.markerSchema){let t;switch(e.name){case"FileIO":e.data.push({key:"threadId",label:"Thread ID",format:"string",searchable:!0}),t=[];break;case"Log":t=["name","module"];break;case"DOMEvent":e.data.push({key:"eventType",label:"Event Type",format:"string",searchable:!0}),t=["target"];break;case"TraceEvent":t=["name1","name2","val1","val2"];break;default:t=["name","category"]}for(const n of e.data)t.includes(n.key)&&(n.searchable=!0)}for(const n of t.processes)e(n)}(e)},27:e=>{!function e(t){for(const e of t.threads)delete e.frameTable.schema.optimizations;for(const n of t.processes)e(n)}(e)},28:e=>{},29:e=>{!function e(t){if(t.counters&&t.counters.length>0)for(const e of t.counters)e.sample_groups&&(e.samples=e.sample_groups[0].samples,delete e.sample_groups);for(const n of t.processes)e(n)}(e)},30:e=>{},31:e=>{}},Fl=[{name:"User",color:"yellow",subcategories:["Other"]},{name:"Kernel",color:"orange",subcategories:["Other"]}],Rl=0,Dl=1;function Ll(e){const t=new Map;function n(e,n,r,o,a){let i=t.get(n);void 0===i&&(i=function(e,t,n){const r={schema:{name:0,startTime:1,endTime:2,phase:3,category:4,data:5},data:[]},o={schema:{stack:0,time:1,responsiveness:2},data:[]},a={schema:{location:0,relevantForJS:1,innerWindowID:2,implementation:3,optimizations:4,line:5,column:6,category:7,subcategory:8},data:[]},i={schema:{prefix:0,frame:1},data:[]},s=[],l=new Map,c=new Map;return{addSample:function(t,n,r){e!==t&&(e=t);const d=n.reduce(((e,t)=>function(e,t){const n=null===t?`${e}`:`${e},${t}`;let r=l.get(n);return void 0===r&&(r=i.data.length,i.data.push([t,e]),l.set(n,r)),r}(function(e){let t=c.get(e);if(void 0===t){t=a.data.length;const n=s.length;s.push(e);const r=e.includes("kallsyms")||e.includes("/vmlinux)")||e.endsWith(".ko)")?Dl:Rl,o=null,i=null,l=null,d=!1,u=null,h=0,p=null;a.data.push([n,d,h,o,i,l,p,r,u]),c.set(e,t)}return t}(t),e)),null);o.data.push([d,r,0])},finish:()=>({tid:n,pid:t,name:e,markers:r,samples:o,frameTable:a,stackTable:i,stringTable:s,registerTime:0,unregisterTime:null,processType:"default"})}}(r,e,n),t.set(n,i)),i.addSample(r,a,o)}const r=e.split("\n");let o=0,a=0;for(;o<r.length;){const e=r[o++];if(""===e||e.startsWith("#"))continue;const t=e,i=/^(.*)\s+([\d.]+):/.exec(t);if(!i){console.log('Could not parse line as the start of a sample in the "perf script" profile format: "%s"',t);continue}const s=i[1],l=1e3*parseFloat(i[2]),c=/^(.*)\s+(?:(\d+)\/)?(\d+)\b/.exec(s);if(!c){console.log('Could not parse line as the start of a sample in the "perf script" profile format: "%s"',t);continue}const d=c[1].trim(),u=Number(c[2]||0),h=Number(c[3]||0);0===a&&(a=l);const p=[];for(;o<r.length;){const e=r[o++];if(""===e.trim())break;const t=/^\s*(\w+)\s*(.+) \(([^)]*)\)/.exec(e);if(t){let e=t[2];const n=t[3];if(e=e.replace(/\+0x[\da-f]+$/,""),e.startsWith("("))continue;n&&(e+=` (in ${n})`),p.push(e)}}0!==p.length&&(p.reverse(),n(u,h,d,l,p))}const i=Array.from(t.values()).map((e=>e.finish()));for(const e of i){const t=e.samples.schema.time;e.samples.data.sort(((e,n)=>e[t]-n[t]))}return{meta:{interval:1,processType:0,product:"Firefox",stackwalk:1,debug:0,gcpoison:0,asyncstack:1,startTime:a,shutdownTime:null,version:24,presymbolicated:!0,categories:Fl,markerSchema:[]},libs:[],threads:i,processes:[],pausedRanges:[]}}const Ol=1464814675,Ul=1,zl=2,Gl=3,Wl=240,Hl=3,Vl=-4,jl="\n".charCodeAt(0);class $l{constructor(e){this._decoder=void 0,this._u8View=void 0,this._dataView=void 0,this._pos=void 0,this._decoder=new TextDecoder("utf-8",{fatal:!0}),this._u8View=e,this._dataView=new DataView(this._u8View.buffer),this._pos=0}eof(){return this._pos>=this._u8View.length}curPos(){return this._pos}setCurPos(e){this._pos=e}getU8(){const e=this._dataView.getUint8(this._pos);return this._pos+=1,e}getU16(){const e=this._dataView.getUint16(this._pos,!0);return this._pos+=2,e}getU32(){const e=this._dataView.getUint32(this._pos,!0);return this._pos+=4,e}getU64(){const e=this.getU32();return this.getU32()*Math.pow(2,32)+e}getBytesUntil(e){if(e<this._pos)throw new Error(`getBytesUntil() called with a target position in the past (curPos: ${this._pos}, endPos: ${e})`);const t=this._u8View.subarray(this._pos,e);return this._pos=e,t}getBytes(e){return this.getBytesUntil(this._pos+e)}getString(e){const t=this.getBytes(e);return this._decoder.decode(t)}getLine(){let e=this._u8View.indexOf(jl,this._pos);-1===e&&(e=this._u8View.length);const t=this._u8View.subarray(this._pos,e);return this._pos=e+1,this._decoder.decode(t)}}function Kl(e){try{const t=11,n=e.slice(0,t),r=(new TextDecoder).decode(n);if(/\*version\n[1-3]\n/.test(r))return"regular"}catch(e){}try{if(new DataView(e).getUint32(0,!0)===Ol)return"streaming"}catch(e){}return"unrecognized"}function Yl(e){if(e!==Ol){const t=`0x${Ol.toString(16)}`,n=`0x${e.toString(16)}`;throw new Error(`Unexpected magic header, expected ${t} (little endian), got ${n}`)}}function ql(e){if(e<1||e>3)throw new Error(`This code only knows how to parse versions 1 to 3, got version ${e}.`)}function Zl(e,t){if(e!==t)throw new Error(`Error: version number mismatch; got ${t} in summary but ${e} in data section`)}function Xl(e){let t=e.getLine();if("*version"!==t)throw new Error("Expected *version, got "+t);const n=+e.getLine();ql(n);const r={summaryVersion:n,clock:"thread-cpu"};for(;t=e.getLine(),t&&!t.startsWith("*");){const[e,n]=t.split("=");r[e]=n}return{summaryVersion:n,summaryDetails:r,lineAfterSummary:t}}function Jl(e){const[t,n,r,o]=e.split("\t");return{methodId:+t,className:n,methodName:r,signature:o}}function Ql(e,t){switch(t){case 1:return 9;case 2:return 10;default:return e.getU16()}}function ec(e,t,n,r){const o=e.curPos(),a=1===t?e.getU8():e.getU16(),i=e.getU32(),s=i&Vl,l=i&Hl;if(l>2)throw new Error("Unexpected method action "+l);let c,d;switch(r){case"wall":c=e.getU32(),d=c;break;case"dual":d=e.getU32(),c=e.getU32();break;default:d=e.getU32(),c=d}return e.setCurPos(o+n),{tid:a,methodId:s,globalTime:c,threadTime:d,action:["enter","exit","exit-unroll"][l]}}function tc(e){try{const t=new $l(new Uint8Array(e));switch(Kl(e)){case"regular":return function(e){const{summaryVersion:t,summaryDetails:n,lineAfterSummary:r}=Xl(e);if("*threads"!==r)throw new Error("Expected *threads, got "+r);const{threads:o,lineAfterThreads:a}=function(e){const t=[];let n="";for(;n=e.getLine(),n&&!n.startsWith("*");){const[e,r]=n.split("\t");t.push({tid:+e,threadName:r})}return{threads:t,lineAfterThreads:n}}(e);if("*methods"!==a)throw new Error("Expected *methods, got "+a);const{methods:i,lineAfterMethods:s}=function(e){const t=[];let n="";for(;n=e.getLine(),n&&!n.startsWith("*");)t.push(Jl(n));return{methods:t,lineAfterMethods:n}}(e);if("*end"!==s)throw new Error("Expected *end, got "+s);const l=e.curPos();Yl(e.getU32());const c=e.getU16();Zl(c,t);const d=e.getU16(),u=e.getU64(),h=Ql(e,c);e.setCurPos(l+d);const{clock:p}=n,m=[];for(;!e.eof();)m.push(ec(e,c,h,p));return{summaryDetails:n,threads:o,methods:i,methodActions:m,startTimeInUsecSinceBoot:u}}(t);case"streaming":return function(e){const t=e.curPos();Yl(e.getU32());const n=e.getU16()^Wl;ql(n);const r=e.getU16(),o=e.getU64(),a=Ql(e,n);e.setCurPos(t+r);const i=[],s=[],l=[];let c={clock:"thread-cpu"};for(;!e.eof();){const t=e.curPos();if(0!==e.getU16()){l.push(t),e.setCurPos(t+a);continue}const r=e.getU8();if(r===Ul){const t=e.getU16();i.push(Jl(e.getString(t)))}else{if(r!==zl){if(r===Gl){const t=e.getU32(),r=e.getBytes(t),o=Xl(new $l(r));Zl(n,o.summaryVersion),c=o.summaryDetails;break}throw new Error(`Invalid trace format: got invalid code ${r}.`)}{const t=e.getU16(),n=e.getU16(),r=e.getString(n);s.push({tid:t,threadName:r})}}}const{clock:d}=c,u=[];for(const t of l)e.setCurPos(t),u.push(ec(e,n,a,d));return{summaryDetails:c,threads:s,methods:i,methodActions:u,startTimeInUsecSinceBoot:o}}(t);default:throw new Error("Not an ART trace")}}catch(e){throw console.error("Source exception:",e),new Error(`Could not parse the profile array buffer as an ART trace: ${e}`)}}class nc{constructor(e){this.idleCategory=0,this.otherCategory=1,this.blockingCategory=2,this.androidCategory=3,this.javaCategory=4,this.kotlinCategory=5,this.androidxCategory=6,this.specialCategory=7,this.categories=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"Blocked",color:"lightblue"},{name:"Android",color:"yellow"},{name:"Java",color:"blue"},{name:"Kotlin / KotlinX",color:"purple"},{name:"AndroidX",color:"orange"},{name:"Special",color:"green"}],this._specialCategoryInfo=void 0,this._specialCategoryInfo=function(e){function t(e){const t=e.startsWith("org.")||e.startsWith("com.")?e.substring(4):e,n=t.indexOf(".");return-1===n?t:t.substring(0,n)}const n=new Map;for(let r=0;r<e.length;r++){const o=t(e[r].className);switch(o){case"android":case"java":case"sun":case"kotlin":case"androidx":case"kotlinx":break;default:{const e=n.get(o)||0;n.set(o,e+1)}}}const r=Array.from(n.entries());if(0===r.length)return;r.sort((([e,t],[n,r])=>r-t));const[o]=r[0];return{prefixes:[`${o}.`,`com.${o}.`,`org.${o}.`],name:o[0].toUpperCase()+o.slice(1)}}(e),this._specialCategoryInfo&&(this.categories[this.specialCategory].name=this._specialCategoryInfo.name)}inferJavaCategory(e){return"android.os.MessageQueue.nativePollOnce"===e?this.idleCategory:"java.lang.Object.wait"===e?this.blockingCategory:e.startsWith("android.")||e.startsWith("com.android.")?this.androidCategory:e.startsWith("java.")||e.startsWith("sun.")||e.startsWith("com.sun.")?this.javaCategory:e.startsWith("kotlin.")||e.startsWith("kotlinx.")?this.kotlinCategory:e.startsWith("androidx.")?this.androidxCategory:this._specialCategoryInfo&&this._specialCategoryInfo.prefixes.some((t=>e.startsWith(t)))?this.specialCategory:this.otherCategory}}class rc{constructor(e,t,n,r,o,a,i){this._markers={schema:{name:0,time:1,data:2},data:[]},this._samples={schema:{stack:0,time:1,responsiveness:2,rss:3,uss:4},data:[]},this._frameTable={schema:{location:0,implementation:1,optimizations:2,line:3,category:4},data:[]},this._stackTable={schema:{frame:0,prefix:1},data:[]},this._stringTable=[],this._currentStack=null,this._nextSampleTimestamp=0,this._stackMap=new Map,this._frameMap=new Map,this._registerTime=0,this._name=void 0,this._pid=void 0,this._tid=void 0,this._methodMap=void 0,this._intervalInMsec=void 0,this._honorOriginalSamplingTimestamps=void 0,this._categoryInfo=void 0,this._name=e,this._pid=t,this._tid=n,this._methodMap=r,this._intervalInMsec=o,this._honorOriginalSamplingTimestamps=a,this._categoryInfo=i}_getOrCreateStack(e,t){const n=null===t?`${e}`:`${e},${t}`;let r=this._stackMap.get(n);return void 0===r&&(r=this._stackTable.data.length,this._stackTable.data.push([e,t]),this._stackMap.set(n,r)),r}_getOrCreateFrameForMethodId(e){let t=this._frameMap.get(e);if(void 0===t){const n=this._methodMap.get(e);let r;if(void 0===n)r="<unknown method ID 0x"+e.toString(16)+">";else{const{className:e,methodName:t}=n;r=e+"."+t}const o=this._stringTable.length;this._stringTable.push(r);const a=this._categoryInfo.inferJavaCategory(r);t=this._frameTable.data.length,this._frameTable.data.push([o,null,null,null,a]),this._frameMap.set(e,t)}return t}enterMethod(e){const t=this._getOrCreateFrameForMethodId(e);this._currentStack=this._getOrCreateStack(t,this._currentStack)}exitMethod(e){null!==this._currentStack&&(this._currentStack=this._stackTable.data[this._currentStack][1])}advanceTimeTo(e){if(0===this._nextSampleTimestamp)return this._nextSampleTimestamp=e,void("main"!==this._name&&(this._registerTime=e));for(;this._nextSampleTimestamp<e;){if(this._samples.data.push([this._currentStack,this._nextSampleTimestamp]),this._honorOriginalSamplingTimestamps&&e-this._nextSampleTimestamp<2*this._intervalInMsec){this._nextSampleTimestamp=e;break}this._nextSampleTimestamp+=this._intervalInMsec}}finish(){return null!==this._nextSampleTimestamp&&this._samples.data.push([this._currentStack,this._nextSampleTimestamp]),{tid:this._tid,pid:this._pid,name:this._name,registerTime:this._registerTime,unregisterTime:null,markers:this._markers,samples:this._samples,frameTable:this._frameTable,stackTable:this._stackTable,stringTable:this._stringTable}}}function oc(e,t){const{funcTable:n}=e,r=new Map;for(let e=0;e<n.length;e++){if(!n.isJS[e])continue;const o=n.lineNumber[e],a=n.columnNumber[e],i=n.fileName[e];if(null!==a&&null!==o&&null!==i){const n=`${t.getString(i)}:${o}:${a}`;r.has(n)?r.set(n,null):r.set(n,e)}}return r}function ac(e,t,n){const r=function(e){if(0===e.length)return{events:[],start:[],end:[],line:[],column:[],length:0};let t=e.timestamps[0],n=t+e.durations[0];const r=[t],o=[n],a={events:e.events,start:r,end:o,line:e.line,column:e.column,length:e.length};for(let a=1;a<e.length;a++){const i=e.durations[a];let s=e.timestamps[a],l=s+(null===i?0:i);if(s<t)if(t<l)s=t;else{const e=l-s;s=t,l=Math.min(n,s+e)}else l<n||n<=s||(n-s<l-n?s=n:l=n);r.push(s),o.push(l),t=s,n=l}return a}(t),o=Bn.M.withBackingArray(e.stringArray),{thread:a,stackMap:i}=function(e,t,n,r){const o=(0,vn.vA)(),a=(0,vn.Gh)(),i={...(0,vn.cy)(),weight:[],weightType:"tracing-ms"},s=(0,vn.qc)(),l={...e.funcTable},c={...e,markers:s,funcTable:l,stackTable:a,frameTable:o,samples:i};let d=0;const u=[null],h=[0],p=new Map,m=new Map,f=t.indexForString(""),g=r.findIndex((e=>"Other"===e.name));if(-1===g)throw new Error("Expected to find an 'Other' category.");const A=oc(c,t);for(let e=0;e<n.length;e++){const r=n.events[e],i=t.getString(r),s=n.end[e],c=n.column[e],b=n.line[e];let C=null;if(null!==c&&null!==b){const e=`${i}:${b}:${c}`,t=A.get(e);null!=t&&(C=t,p.set(r,C))}if(null===C){const e=p.get(r);void 0===e?(C=l.length++,l.name.push(r),l.isJS.push(!1),l.resource.push(-1),l.relevantForJS.push(!0),l.fileName.push(null),l.lineNumber.push(null),l.columnNumber.push(null),p.set(r,C)):C=e}let v=u[d];for(;null!==v&&!(s<=h[d]);)v=u[d],d--;const y=o.length++;o.address.push(f),o.inlineDepth.push(0),o.category.push(g),o.func.push(C),o.nativeSymbol.push(null),o.innerWindowID.push(0),o.line.push(b),o.column.push(c);const w=a.length++;a.frame.push(y),a.prefix.push(v),m.set(e,w),d++,0===d&&(d=1),u[d]=e,h[d]=s}return{thread:c,stackMap:m}}(e,o,r,n);return a.samples=function(e,t,n){const r=1e-5,o=(e,t)=>Math.abs(e-t)<r,a=(0,vn.cy)(),i=[];function s(e,t,r){if(o(t,r))return;const s=(0,ut.Nn)(n.get(e),"The JS tracer event did not exist in the stack map.");a.stack.push(s),(0,ut.Nn)(a.time).push(t/1e3),i.push((r-t)/1e3),a.length++}a.weight=i;const l=[],c=[],d=[];let u=-1;for(let n=0;n<t.length;n++){const a=t.start[n],i=t.end[n];if(-1!==u)for(;;){const h=l[u],p=c[u],m=d[u];if(!(p<=a+r)){if(i<p+r){s(m,h,a),l[u]=i,u++,l[u]=a,c[u]=i,d[u]=n;break}if(o(p,i)){o(h,a)||(s(m,h,a),l[u]=a),d[u]=n;break}{const r=e.getString(t.events[m]),o=e.getString(t.events[n]);throw console.error("Current JS Tracer information:",{jsTracer:t,stringTable:e,prefixEventIndex:m,currentEventIndex:n}),console.error(`Prefix (parent) times for "${r}": ${h}ms to ${p}ms`),console.error(`Current (child) times for "${o}": ${a}ms to ${i}ms`),new Error("The JS Tracer information was malformed. Some event lasted longer than its parent event.")}}if(s(m,h,p),u--,-1===u){u=0,d[u]=n,l[u]=a,c[u]=i;break}}else u=0,l[u]=a,c[u]=i,d[u]=n}for(;u>=0;u--)s(d[u],l[u],c[u]);return a}(o,r,i),a}const ic=class{constructor(e){return new window.Worker(`/${e}.js`)}},sc=[];function lc(e){e.onmessage=function(e){const t=e.data,n=sc[t.callbackID];n&&(n[t.type](t.data),sc[t.callbackID]=null)}}function cc(e){return new Promise((function(t,n){const r=new ic("zee-worker");lc(r),r.postMessage({request:"decompress",data:e,callbackID:sc.length},[e.buffer]),sc.push({success:t,error:n})}))}function dc(e){return e.byteLength>=3&&31===e[0]&&139===e[1]&&8===e[2]}function uc(e){const t={length:e.data.length};for(const n in e.schema){const r=e.schema[n];if("number"!=typeof r)throw new Error("fieldIndex must be a number in the Gecko profile table.");t[n]=e.data.map((e=>r in e?e[r]:null))}return t}class hc{constructor(){this._libs=[],this._libKeyToLibIndex=new Map}indexForLib(e){const{debugName:t,breakpadId:n}=e,r=`${t}/${n}`;let o=this._libKeyToLibIndex.get(r);if(void 0===o){o=this._libs.length;const{arch:a,name:i,path:s,debugPath:l,codeId:c}=e;this._libs.push({arch:a,name:i,path:s,debugName:t,debugPath:l,breakpadId:n,codeId:c??null}),this._libKeyToLibIndex.set(r,o)}return o}finish(){return{libs:this._libs}}}function pc(e,t,n){if(!t.startsWith("0x"))return null;const{addressLocator:r,libToResourceIndex:o,resourceTable:a,funcTable:i,stringTable:s}=e;let l=-1,c=-1;try{const n=t,{lib:i,relativeAddress:d}=r.locateAddress(n);if(null!==i){c=d;const t=e.globalDataCollector.indexForLib(i);l=o.get(t),void 0===l&&(l=a.length++,a.lib[l]=t,a.name[l]=s.indexForString(i.name),a.host[l]=null,a.type[l]=vn.AU.library,o.set(t,l))}}catch(e){}const d=i.length++;return i.name[d]=n,i.resource[d]=l,i.relevantForJS[d]=!1,i.isJS[d]=!1,i.fileName[d]=null,i.lineNumber[d]=null,i.columnNumber[d]=null,{funcIndex:d,frameAddress:c}}function mc(e,t){const n=/^(.*) \(in ([^)]*)\) (\+ [0-9]+)$/.exec(t)||/^(.*) \(in ([^)]*)\) (\(.*:.*\))$/.exec(t)||/^(.*) \(in ([^)]*)\)$/.exec(t);if(!n)return null;const{funcTable:r,stringTable:o,stringToNewFuncIndexAndFrameAddress:a,libNameToResourceIndex:i,resourceTable:s}=e,[,l,c]=n,d=(m=l).startsWith&&m.startsWith("non-virtual thunk to ")?m.substr(21):m,u=o.indexForString(d),h=o.indexForString(c),p=a.get(d);var m;if(void 0!==p)return p.funcIndex;let f=i.get(h);void 0===f&&(f=s.length++,i.set(h,f),s.lib[f]=null,s.name[f]=h,s.host[f]=null,s.type[f]=vn.AU.library);const g=r.length++;return r.name[g]=u,r.resource[g]=f,r.relevantForJS[g]=!1,r.isJS[g]=!1,r.fileName[g]=null,r.lineNumber[g]=null,r.columnNumber[g]=null,g}function fc(e,t,n){const{originToResourceIndex:r,resourceTable:o,stringTable:a}=e,i=new URL(t.baseURL[n]).origin;let s=r.get(i);if(void 0===s){s=o.length++,r.set(i,s);const e=`Extension ${JSON.stringify(t.name[n])} (ID: ${t.id[n]})`,l=a.indexForString(t.id[n]);o.lib[s]=null,o.name[s]=a.indexForString(e),o.host[s]=l,o.type[s]=vn.AU.addon}}function gc(e,t){const n=/^(.*) \((.+?):([0-9]+)(?::([0-9]+))?\)$/.exec(t)||/^()(.+?):([0-9]+)(?::([0-9]+))?$/.exec(t);if(!n)return null;const{funcTable:r,stringTable:o,resourceTable:a,originToResourceIndex:i}=e,[,s,l]=n,c=function(e){if(e){const t=e.split(" -> ");return t[t.length-1]}return e}(l),d=(0,bn.SU)(c,a,o,i);let u;u=s?o.indexForString(s):o.indexForString(`(root scope) ${c}`);const h=o.indexForString(c),p=parseInt(n[3],10),m=n[4]?parseInt(n[4],10):null,f=r.length++;return r.name[f]=u,r.resource[f]=d,r.relevantForJS[f]=!1,r.isJS[f]=!0,r.fileName[f]=h,r.lineNumber[f]=p,r.columnNumber[f]=m,f}function Ac({funcTable:e},t,n){const r=e.length++;return e.name[r]=t,e.resource[r]=-1,e.relevantForJS[r]=n,e.isJS[r]=!1,e.fileName[r]=null,e.lineNumber[r]=null,e.columnNumber[r]=null,r}function bc(e){if(!e)return null;if(e.stack&&e.stack.samples.data.length>0){const{samples:t}=e.stack;return t.data[0][t.schema.stack]}return null}function Cc(e){const t={};for(const n in e)t[n]=1e3*e[n];return t}function vc(e){if(!e)return null;const t=function(e){if("stack"in e&&e.stack&&e.stack.samples.data.length>0){const{stack:t,...n}=e,r=t.samples.data[0][t.samples.schema.stack],o=t.samples.data[0][t.samples.schema.time];return null!==r?{...n,cause:{tid:t.tid,time:o,stack:r}}:n}return e}(e);switch(t.type){case"GCSlice":{const{times:e,...n}=t.timings;return{type:"GCSlice",timings:{...n,phase_times:e?Cc(e):{}}}}case"GCMajor":{const e=t.timings;switch(e.status){case"completed":{const{totals:t,...n}=e;return{type:"GCMajor",timings:{...n,phase_times:Cc(t),mmu_20ms:e.mmu_20ms/100,mmu_50ms:e.mmu_50ms/100}}}case"aborted":return{type:"GCMajor",timings:{status:"aborted"}};default:throw console.log("Unknown GCMajor status"),new Error("Unknown GCMajor status")}}case"IPC":{const{startTime:e,endTime:n,otherPid:r,messageType:o,messageSeqno:a,side:i,direction:s,phase:l,sync:c,threadId:d}=t;return{type:"IPC",startTime:e,endTime:n,otherPid:`${r}`,messageType:o,messageSeqno:a,side:i,direction:s,phase:l,sync:c,threadId:d}}default:return t}}function yc(e){const t=1e6,n=new Array(e.length);let r=0;for(let o=0;o<e.length;o++){const a=Math.round(e[o]*t);n[o]=(a-r)/t,r=a}return n}function wc(e,t,n){const r=e.counters,o=e.threads.find((e=>"GeckoMain"===e.name));if(!o||!r)return[];const a=`${o.pid}`,i=t.findIndex((e=>"GeckoMain"===e.name&&e.pid===a));if(-1===i)throw new Error("Unable to find the main thread in the stable thread list. This means that the logic in the _processCounters function is wrong.");return r.reduce(((e,{name:t,category:r,description:o,samples:s})=>{if(0===s.data.length)return e;const l={timeDeltas:yc((c=uc(s)).time),number:c.number,count:c.count,length:c.length};var c;return e.push({name:t,category:r,description:o,pid:a,mainThreadIndex:i,samples:Tc(l,n)}),e}),[])}function Ec(e,t,n){const r=e.profilerOverhead,o=e.threads.find((e=>"GeckoMain"===e.name));if(!o||!r)return null;const a=`${o.pid}`,i=t.findIndex((e=>"GeckoMain"===e.name&&e.pid===a));if(-1===i)throw new Error("Unable to find the main thread in the stable thread list. This means that the logic in the _processProfilerOverhead function is wrong.");return{samples:Bc(uc(r.samples),n),pid:a,mainThreadIndex:i,statistics:r.statistics}}function kc(e,t,n,r){const o=uc(e.frameTable),a=uc(e.stackTable),i=uc(e.samples),s=uc(function(e){const{startTime:t,endTime:n}=e.schema,r=e.data.slice(0);return r.sort(((e,r)=>{const o=e[n]||e[t],a=r[n]||r[t];if(null===o)throw console.error(e),new Error("A marker had null start and end time.");if(null===a)throw console.error(r),new Error("A marker had null start and end time.");return o-a})),Object.assign({},e,{data:r})}(e.markers)),{libs:l,pausedRanges:c,meta:d}=t,{shutdownTime:u}=d,h=e.stringTable.slice(),p=Bn.M.withBackingArray(h),{funcTable:m,resourceTable:f,frameFuncs:g,frameAddresses:A}=function(e,t,n,r,o=(0,vn.Ie)(),a){const i={funcTable:(0,vn.uv)(),resourceTable:(0,vn.WU)(),stringTable:n,addressLocator:new El(r),libToResourceIndex:new Map,originToResourceIndex:new Map,libNameToResourceIndex:new Map,stringToNewFuncIndexAndFrameAddress:new Map,globalDataCollector:a};for(let e=0;e<o.length;e++)fc(i,o,e);const s=[],l=[];for(let r=0;r<e.length;r++){const o=e[r],a=n.getString(o),c=t[r],d=i.stringToNewFuncIndexAndFrameAddress.get(a);if(void 0!==d){const{funcIndex:e,frameAddress:t}=d;s.push(e),l.push(t);continue}let u=null,h=null;const p=pc(i,a,o);null!==p?(u=p.funcIndex,h=p.frameAddress):(u=mc(i,a),null===u&&(u=gc(i,a),null===u&&(u=Ac(i,o,c)))),i.stringToNewFuncIndexAndFrameAddress.set(a,{funcIndex:u,frameAddress:h}),s.push(u),l.push(h)}return{funcTable:i.funcTable,resourceTable:i.resourceTable,frameFuncs:s,frameAddresses:l}}(o.location,o.relevantForJS,p,l,n,r),b=(0,vn.Ry)(),C=function(e,t,n){return{address:n.map((e=>e??-1)),inlineDepth:Array(e.length).fill(0),category:e.category,subcategory:e.subcategory,func:t,nativeSymbol:Array(e.length).fill(null),innerWindowID:e.innerWindowID,line:e.line,column:e.column,length:e.length}}(o,g,A),v=function(e){return{frame:e.frame,prefix:e.prefix,length:e.length}}(a),{markers:y,jsAllocations:w,nativeAllocations:E}=function(e){const t=(0,vn.qc)(),n=(0,vn.uz)(),r=(0,vn.x2)(),o=[],a=[];let i,s;for(let s=0;s<e.length;s++){const l=e.data[s];if(l)switch(l.type){case"JS allocation":n.time.push((0,ut.Nn)(e.startTime[s],"JS Allocations are assumed to have a startTime")),n.className.push(l.className),n.typeName.push(l.typeName),n.coarseType.push(l.coarseType),n.weight.push(l.size),n.inNursery.push(l.inNursery),n.stack.push(bc(l)),n.length++;continue;case"Native allocation":void 0===i&&(i="memoryAddress"in l),r.time.push((0,ut.Nn)(e.startTime[s],"Native Allocations are assumed to have a startTime")),r.weight.push(l.size),r.stack.push(bc(l)),r.length++,i&&(o.push((0,ut.Nn)(l.memoryAddress,"Could not find the memoryAddress property on a gecko marker payload.")),a.push((0,ut.Nn)(l.threadId,"Could not find a threadId property on a gecko marker payload.")));continue}const c=vc(l),d=e.name[s],u=e.startTime[s],h=e.endTime[s],p=e.phase[s],m=e.category[s];t.name.push(d),t.startTime.push(u),t.endTime.push(h),t.phase.push(p),t.category.push(m),t.data.push(c),t.length++}return s=0===r.length?null:i?{time:r.time,weight:r.weight,weightType:r.weightType,stack:r.stack,memoryAddress:o,threadId:a,length:r.length}:{time:r.time,weight:r.weight,weightType:r.weightType,stack:r.stack,length:r.length},{markers:t,jsAllocations:0===n.length?null:n,nativeAllocations:s}}(s),k=function(e){const t={stack:e.stack,timeDeltas:yc(e.time),weightType:"samples",weight:null,length:e.length};if(e.threadCPUDelta&&e.threadCPUDelta.some((e=>null!==e))&&(t.threadCPUDelta=e.threadCPUDelta),e.eventDelay)t.eventDelay=e.eventDelay;else{if(!e.responsiveness)throw new Error("The profile processor expected an eventDelay or responsiveness array in the samples table, but none was found.");t.responsiveness=e.responsiveness}return t}(i),x={name:e.name,isMainThread:"GeckoMain"===e.name,"eTLD+1":e["eTLD+1"],processType:e.processType,processName:"string"==typeof e.processName?e.processName:"",processStartupTime:0,processShutdownTime:u,registerTime:e.registerTime,unregisterTime:e.unregisterTime,tid:e.tid,pid:`${e.pid}`,pausedRanges:c||[],frameTable:C,funcTable:m,nativeSymbols:b,resourceTable:f,stackTable:v,markers:y,stringArray:h,samples:k};return void 0!==e.isPrivateBrowsing&&(x.isPrivateBrowsing=e.isPrivateBrowsing),void 0!==e.userContextId&&(x.userContextId=e.userContextId),w&&(x.jsAllocations=w),E&&(x.nativeAllocations=E),function(){const{jsTracerEvents:n}=e,{jsTracerDictionary:r}=t;if(n&&r){const e=new Array(r.length);for(let t=0;t<r.length;t++)e[t]=p.indexForString(r[t]);const t=n.events.slice();for(let n=0;n<t.length;n++){const r=t[n];t[n]=e[r]}x.jsTracer={...n,events:t}}}(),(0,bn.oQ)(x)}function xc(e,t){return{...e,time:e.time.map((e=>e+t))}}function Tc(e,t){const{timeDeltas:n}=e;if(void 0===n)throw new Error("Should only be called when a timeDeltas column is present");const r=n.slice();return r[0]+=t,{...e,timeDeltas:r}}function Sc(e,t){const n=1e3*t;return{...e,timestamps:e.timestamps.map((e=>e+n))}}function Bc(e,t){return{...e,time:e.time.map((e=>e/1e3+t))}}function Ic(e,t){function n(e){return null===e?e:e+t}return{...e,startTime:e.startTime.map(n),endTime:e.endTime.map(n),data:e.data.map((e=>{if(!e)return e;const n=(0,ut.Cn)(e);return"number"==typeof n.startTime&&(n.startTime+=t),"number"==typeof n.endTime&&(n.endTime+=t),n.cause&&void 0!==n.cause.time&&(n.cause.time+=t),"Network"===n.type&&("number"==typeof n.domainLookupStart&&(n.domainLookupStart+=t),"number"==typeof n.domainLookupEnd&&(n.domainLookupEnd+=t),"number"==typeof n.connectStart&&(n.connectStart+=t),"number"==typeof n.tcpConnectEnd&&(n.tcpConnectEnd+=t),"number"==typeof n.secureConnectionStart&&(n.secureConnectionStart+=t),"number"==typeof n.connectEnd&&(n.connectEnd+=t),"number"==typeof n.requestStart&&(n.requestStart+=t),"number"==typeof n.responseStart&&(n.responseStart+=t),"number"==typeof n.responseEnd&&(n.responseEnd+=t)),n}))}}function _c(e){const{name:t,tooltipLabel:n,tableLabel:r,chartLabel:o,display:a,data:i,graphs:s,isStackBased:l}=e,c=[],d=[];for(const e of i)void 0===e.value?c.push(e):void 0===e.key&&d.push(e);let u;if(0!==d.length){let e=d.findIndex((e=>"Description"===e.label));-1===e&&(e=0);const n=d.filter(((t,n)=>n!==e));0!==n.length&&console.warn(`Discarding the following static fields from marker schema "${t}": ${n.join(", ")}`),u=d[e].value}return{name:t,tooltipLabel:n,tableLabel:r,chartLabel:o,display:a,fields:c,description:u,graphs:s,isStackBased:l}}function Nc(e){const t=e.meta.markerSchema.map(_c),n=new Set(t.map((({name:e})=>e)));for(const r of e.processes)for(const e of r.meta.markerSchema)n.has(e.name)||(n.add(e.name),t.push(_c(e)));return t}function Pc(e){!function(e){const t=Pl(e).version||Nl;if(t!==In.xC){if(t>In.xC)throw new Error(`Unable to parse a Gecko profile of version ${t}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${In.xC}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let n=t+1;n<=In.xC;n++)n in Ml&&Ml[n](e);Pl(e).version=In.xC}}(e);const t=[],n=e.meta.extensions?uc(e.meta.extensions):(0,vn.Ie)(),r=new hc;for(const o of e.threads)t.push(kc(o,e,n,r));const o=wc(e,t,0),a=[Ec(e,t,0)];for(const i of e.processes){const s=i.meta.startTime-e.meta.startTime;for(const e of i.threads){const o=kc(e,i,n,r);o.samples=Tc(o.samples,s),o.markers=Ic(o.markers,s),o.jsTracer&&(o.jsTracer=Sc(o.jsTracer,s)),o.jsAllocations&&(o.jsAllocations=xc(o.jsAllocations,s)),o.nativeAllocations&&(o.nativeAllocations=xc(o.nativeAllocations,s)),o.processStartupTime+=s,null!==o.processShutdownTime&&(o.processShutdownTime+=s),o.registerTime+=s,null!==o.unregisterTime&&(o.unregisterTime+=s),t.push(o)}o.push(...wc(i,t,s)),a.push(Ec(i,t,s))}let i=[...e.pages||[]];for(const t of e.processes)i=i.concat(t.pages||[]);const s={interval:e.meta.interval,startTime:e.meta.startTime,startTimeAsClockMonotonicNanosecondsSinceBoot:e.meta.startTimeAsClockMonotonicNanosecondsSinceBoot,startTimeAsMachAbsoluteTimeNanoseconds:e.meta.startTimeAsMachAbsoluteTimeNanoseconds,startTimeAsQueryPerformanceCounterValue:e.meta.startTimeAsQueryPerformanceCounterValue,abi:e.meta.abi,extensions:n,misc:e.meta.misc,oscpu:e.meta.oscpu,platform:e.meta.platform,processType:e.meta.processType,product:e.meta.product||"",stackwalk:e.meta.stackwalk,debug:!!e.meta.debug,toolkit:e.meta.toolkit,version:e.meta.version,categories:e.meta.categories,preprocessedProfileVersion:In.Ie,appBuildID:e.meta.appBuildID,visualMetrics:e.meta.visualMetrics,configuration:e.meta.configuration,sourceURL:e.meta.sourceURL,physicalCPUs:e.meta.physicalCPUs,logicalCPUs:e.meta.logicalCPUs,CPUName:e.meta.CPUName,symbolicated:!!e.meta.presymbolicated,updateChannel:e.meta.updateChannel,markerSchema:Nc(e),sampleUnits:e.meta.sampleUnits,device:e.meta.device};void 0!==e.meta.profilingStartTime&&(s.profilingStartTime=e.meta.profilingStartTime,s.profilingEndTime=e.meta.profilingEndTime);const l=a.reduce(((e,t)=>(null!==t&&e.push(t),e)),[]);let c={...e.profilingLog||{}};for(const t of e.processes)c={...c,...t.profilingLog||{}};const d={...e.profileGatheringLog||{}};for(const n of t.slice()){const{jsTracer:r}=n;if(r){const o=(0,bn.XU)(t,n),a=ac(n,r,e.meta.categories);a.isJsTracer=!0,a.name=`JS Tracer of ${o}`,t.push(a),delete n.jsTracer}}s.visualMetrics&&function(e,t,n){const{visualMetrics:r}=t;if(0===n.length||!r)return;const o=e.findIndex((e=>"GeckoMain"===e.name&&"default"===e.processType)),a=function(e,t){for(let n=0;n<e.length;n++){const r=e[n];if("GeckoMain"!==r.name||"tab"!==r.processType)continue;const o=new Set(t.filter((e=>0===e.embedderInnerWindowID)).map((e=>e.innerWindowID))),a=Bn.M.withBackingArray(r.stringArray);if(!a.hasString("RefreshDriverTick"))continue;const i=a.indexForString("RefreshDriverTick"),{markers:s}=r;for(let e=0;e<s.length;e++)if(s.name[e]===i&&s.data[e]&&s.data[e].innerWindowID&&o.has(s.data[e].innerWindowID))return n}return null}(e,n);if(-1===o||!a)return;const i=e[o],s=e[a],l=Bn.M.withBackingArray(s.stringArray),c=["Visual","ContentfulSpeedIndex","PerceptualSpeedIndex"];if(void 0===t.categories)return;const d=t.categories.findIndex((e=>"Test"===e.name));function u(e,t,n,r,o,a){if(n!==In.a1&&null===r||(n===In.KU||n===In.a1)&&null===o)return;const i=Bn.M.withBackingArray(e.stringArray);e.markers.name.push(i.indexForString(t)),e.markers.startTime.push(r),e.markers.endTime.push(o),e.markers.phase.push(n),e.markers.category.push(d),e.markers.data.push(a??null),e.markers.length++}let h=null;if(l.hasString("Navigation::Start")){const e=l.indexForString("Navigation::Start"),t=s.markers.name.findIndex((t=>t===e));-1===t?console.error("Failed to find the navigation start marker."):h=s.markers.startTime[t]}for(const e of c){const n=r[`${e}Progress`];if(!n)continue;const o=h??n[0].timestamp,a=n[n.length-1].timestamp,l=`${e} Progress`;u(i,l,In.KU,o,a),u(s,l,In.KU,o,a);const c={name:"VisualMetricProgress",tableLabel:"{marker.name} — {marker.data.percentage}",display:["marker-chart","marker-table"],fields:[{key:"percentage",label:"Percentage",format:"percentage"}]};t.markerSchema.push(c);const d=`${e} Change`;for(const{timestamp:e,percent:t}of n){const n={type:"VisualMetricProgress",percentage:t/100};u(i,d,In.mN,e,null,n),u(s,d,In.mN,e,null,n)}}}(t,s,i);const{libs:u}=r.finish();return{meta:s,libs:u,pages:i,counters:o,profilerOverhead:l,threads:t,profilingLog:c,profileGatheringLog:d}}async function Mc(e,t){try{if("[object ArrayBuffer]"===String(e)){let t=e;const r=new Uint8Array(t);if(dc(r)&&(t=(await cc(r)).buffer),"unrecognized"!==Kl(t))e=function(e){const t=tc(e),n=function(e){const{methodActions:t}=e,n=[],r=new Map,o=Math.min(500,t.length);for(let e=0;e<o;e++){const{tid:o,globalTime:a}=t[e],i=r.get(o);if(a!==i){if(void 0!==i){const e=a-i;n.push(e)}r.set(o,a)}}if(n.sort(((e,t)=>e-t)),n.length<5)return n[0];const a=n.slice(0,Math.floor(n.length/5));return a.reduce(((e,t)=>e+t),0)/a.length}(t);let r,o=!1;!n||n<100?r=.1:(r=Math.round(n/100)/10,o=!0);const{summaryDetails:a,threads:i,methods:s,methodActions:l}=t,c=new nc(s),d=new Map(s.map((e=>[e.methodId,e]))),u=new Map;if(l.length>0)for(let e=0;e<l.length;e++){const{tid:t,methodId:n,globalTime:s,action:h}=l[e];let p=u.get(t);if(void 0===p){const e=i.find((e=>e.tid===t));if(!e)throw new Error(`Encountered method action for unknown thread ${t}`);p=new rc(e.threadName,a.pid?+a.pid:1,t,d,r,o,c),u.set(t,p)}switch(p.advanceTimeTo(s/1e3),h){case"enter":p.enterMethod(n);break;case"exit":case"exit-unroll":p.exitMethod(n);break;default:throw new Error(`Unexpected action ${h}`)}}const h=Array.from(u.values()).map((e=>e.finish()));return{meta:{interval:r,processType:0,product:"ART Trace (Android)",importedFrom:"ART Trace (Android)",pid:a.pid,stackwalk:1,startTime:0,shutdownTime:null,version:11,presymbolicated:!0,categories:c.categories},libs:[],threads:h,processes:[],pausedRanges:[]}}(t);else if((0,kl.x)(kl.S,t)){const{convertSimpleperfTraceProfile:r}=await Promise.all([n.e(957),n.e(999)]).then(n.bind(n,5999));e=r(t)}else try{const n=new TextDecoder;e=await n.decode(t)}catch(e){throw console.error("Source exception:",e),new Error("The profile array buffer could not be parsed as a UTF-8 string.")}}"string"==typeof e&&(e=function(e){if(e.startsWith("# ========\n"))return!0;if(e.startsWith("{"))return!1;const t=e.substring(0,e.indexOf("\n"));return/^\S.*?\s+(?:\d+\/)?\d+\s+(?:\[\d+\]\s+)?[\d.]+:/.test(t)}(e)?Ll(e):JSON.parse(e));const r=e,o=function(e){if(!e||"object"!=typeof e)return null;const{meta:t}=e;if(!t||"object"!=typeof t)return null;if("number"!=typeof t.preprocessedProfileVersion){const{threads:t}=e;if(!t||!Array.isArray(t))return null;const[n]=t;if(!n||"object"!=typeof n||!n.stringArray)return null}const n="number"==typeof t.preprocessedProfileVersion?t.preprocessedProfileVersion:Tl;if(n===In.Ie)return(0,ut.au)(e);if(n>In.Ie)throw new Error(`Unable to parse a processed profile of version ${n}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${In.Ie}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let t=n+1;t<=In.Ie;t++)t in _l&&_l[t](e);const r=(0,ut.au)(e);return r.meta.preprocessedProfileVersion=In.Ie,r}(function(e){if(!e||"object"!=typeof e)return e;const{meta:t}=e;if(!t||"object"!=typeof t)return e;if("number"!=typeof t.preprocessedProfileVersion)return e;const{threads:n}=e;if(!n||!Array.isArray(n)||!n.length)return e;const[r]=n;if(r.stringArray)return e;if(!r.stringTable)return e;for(const t of e.threads)t.stringArray=t.stringTable._array,delete t.stringTable;return e}(r));if(o)return o;const a=function(e,t){if(!e)return null;let n;if(Array.isArray(e)?e.slice(0,5).every((e=>e&&"object"==typeof e&&"ph"in e))&&(n=(0,ut.au)(e)):"object"==typeof e&&"samples"in e&&"timeDeltas"in e&&"startTime"in e&&"endTime"in e?(n=[],n.push({name:"CpuProfile",args:{data:{cpuProfile:(0,ut.au)(e)}},cat:"other",pid:0,tid:0,ts:0,ph:"I"})):"object"==typeof e&&"traceEvents"in e&&Array.isArray(e.traceEvents)&&(n=(0,ut.au)(e.traceEvents)),!n)return null;const r=new Map;for(const e of n){if("object"!=typeof e||null===e||"string"!=typeof e.name)throw new Error("A tracing event in the chrome profile did not follow the expected form.");const{name:t}=e;let n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}return async function(e,t){const n=(0,vn.Z)();n.meta.categories=[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"Native",color:"blue",subcategories:["Other"]}],n.meta.product="Chrome Trace",n.meta.importedFrom="Chrome Trace",n.meta.interval=.5;let r=e.get("Profile")||[];if(e.has("CpuProfile")){const t=e.get("CpuProfile");r=r.concat(t)}const o=function(e){const t=e.findIndex((e=>"JavaScript"===e.name)),n=e.findIndex((e=>"GC / CC"===e.name)),r=e.findIndex((e=>"Native"===e.name)),o=e.findIndex((e=>"Other"===e.name)),a=e.findIndex((e=>"Idle"===e.name));if(-1===t||-1===n||-1===r||-1===o||-1===a)throw new Error("Unable to find the a category in the the defaultCategories.");return function(e,i){switch(e){case"(idle)":return{category:a,isJS:!1,relevantForJS:!1};case"(root)":case"(program)":return{category:o,isJS:!1,relevantForJS:!1};case"(garbage collector)":return{category:n,isJS:!1,relevantForJS:!1};default:return i||"<WASM UNNAMED>"===e||"(unresolved function)"===e?{category:t,isJS:!0,relevantForJS:!1}:{category:r,isJS:!1,relevantForJS:!0}}}}((0,ut.Nn)(n.meta.categories)),a=new Map,i=new Map;for(const t of r){const r=Cl(a,i,e,n,t),{thread:s,funcKeyToFuncId:l,nodeIdToStackId:c,originToResourceIndex:d}=r;let u=[];if("Profile"===t.name){r.lastSeenTime=t.args.data.startTime/1e3;const{id:n,pid:o}=t;u=bl(e,"ProfileChunk",(e=>e.id===n&&e.pid===o))}else"CpuProfile"===t.name&&(r.lastSeenTime=n.meta.profilingStartTime=t.args.data.cpuProfile.startTime/1e3,n.meta.profilingEndTime=t.args.data.cpuProfile.endTime/1e3,u=[t]);for(const e of u){if(!e.args.data||!e.args.data.cpuProfile)continue;const{cpuProfile:t}=e.args.data,{nodes:a,samples:i}=t,u=vl(e);if(!u)continue;const{funcTable:h,frameTable:p,stackTable:m,stringArray:f,samples:g,resourceTable:A}=s,b=Bn.M.withBackingArray(f);if(a){const e=new Map;for(const t of a){const{callFrame:n,id:r}=t;let a;if(a=void 0!==t.parent?t.parent:e.get(r),void 0!==t.children){const n=t.children;for(let t=0;t<n.length;t++)e.set(n[t],r)}let{url:i,lineNumber:s,columnNumber:u}=n;-1===s&&(s=void 0),-1===u&&(u=void 0),void 0!==s&&s++,void 0!==u&&u++,""===i&&(i=void 0);const{functionName:f}=n,g=`${f}:${i||""}:${s||0}:${u||0}`,{category:C,isJS:v,relevantForJS:y}=o(f,void 0!==i||void 0!==s);let w=l.get(g);if(void 0===w){w=h.length++,h.isJS.push(v),h.relevantForJS.push(y);const e=""!==f?f:"(anonymous)";h.name.push(b.indexForString(e)),h.resource.push(v?(0,bn.SU)(i||"<unknown>",A,b,d):-1),h.fileName.push(v?b.indexForString(i||"<unknown>"):null),h.lineNumber.push(void 0===s?null:s),h.columnNumber.push(void 0===u?null:u),l.set(g,w)}const E=r-1,k=c.get(a);if(void 0===k)throw new Error("Unable to find the prefix stack index from a node index.");p.address[E]=-1,p.category[E]=C,p.subcategory[E]=0,p.func[E]=w,p.nativeSymbol[E]=null,p.innerWindowID[E]=0,p.line[E]=void 0===s?null:s,p.column[E]=void 0===u?null:u,p.length=Math.max(p.length,E+1),m.frame.push(E),m.prefix.push(k),c.set(r,m.length++)}}for(let e=0;e<i.length;e++){const t=i[e];if(r.lastSeenTime+=u[e]/1e3,r.lastSeenTime-r.lastSampledTime>=n.meta.interval){r.lastSampledTime=r.lastSeenTime;const e=(0,ut.Nn)(c.get(t),"Could not find the stack information for a sample when decoding a Chrome profile.");(0,ut.Nn)(g.eventDelay,"Could not find the eventDelay in samplesTable inside the newly created Chrome profile thread.").push(null),g.stack.push(e),(0,ut.Nn)(g.time).push(r.lastSampledTime),g.length++}}}}for(const e of n.threads)wl(e.stackTable);if(await async function(e,t,n,r,o){if(!o)return;if(!o||0===o.length)return;const{thread:a}=Cl(e,t,n,r,o[0]),i=Bn.M.withBackingArray(a.stringArray),s=(0,ut.Nn)(r.meta.categories).findIndex((e=>"Graphics"===e.name));if(-1===s)throw new Error("Could not find the Graphics category in the profile's category list.");for(const e of o){const t="data:image/jpg;base64,"+e.args.snapshot,n=await yl(t);null!==n&&(a.markers.data.push({type:"CompositorScreenshot",url:i.indexForString(t),windowID:"id",windowWidth:n.width,windowHeight:n.height}),a.markers.name.push(i.indexForString("CompositorScreenshot")),a.markers.startTime.push(e.ts/1e3),a.markers.endTime.push(null),a.markers.phase.push(In.mN),a.markers.category.push(s),a.markers.length++)}}(a,i,e,n,e.get("Screenshot")),function(e,t,n,r){const o=(0,ut.Nn)(r.meta.categories).findIndex((e=>"Other"===e.name));if(-1===o)throw new Error('No "Other" category in empty profile category list');r.meta.markerSchema=[{name:"EventDispatch",chartLabel:"{marker.data.type2}",tooltipLabel:"{marker.data.type2} - EventDispatch",tableLabel:"{marker.data.type2}",display:["marker-chart","marker-table","timeline-overview"],fields:[{key:"type2",label:"Event Type",format:"string",searchable:!0}]}];for(const[a,i]of n.entries())if("Profile"!==a&&"ProfileChunk"!==a&&"CpuProfile"!==a)for(const s of i)if(void 0!==s.ts&&Number.isFinite(s.ts)&&("X"===s.ph&&void 0!==s.dur&&Number.isFinite(s.dur)||"B"===s.ph||"E"===s.ph||"b"===s.ph||"n"===s.ph||"e"===s.ph||"i"===s.ph||"I"===s.ph||"R"===s.ph)){const i=s.ts/1e3,l=Cl(e,t,n,r,s),{thread:c}=l,{markers:d,stringArray:u}=c,h=Bn.M.withBackingArray(u);let p=null;s.args&&"object"==typeof s.args&&(p=s.args.data||null),d.name.push(h.indexForString(a)),d.category.push(o),p&&"type"in p&&(p.type2=p.type),p&&"category"in p&&(p.category2=p.category);const m={...p,type:a,category:s.cat};if(d.data.push(m),"X"===s.ph){const e=s.dur/1e3;d.phase.push(In.KU),d.startTime.push(i),d.endTime.push(i+e)}else"B"===s.ph||"b"===s.ph?(d.startTime.push(i),d.endTime.push(null),d.phase.push(In.nO)):"E"===s.ph||"e"===s.ph?(d.startTime.push(null),d.endTime.push(i),d.phase.push(In.a1)):(d.startTime.push(i),d.endTime.push(null),d.phase.push(In.mN));d.length++}}(a,i,e,n),void 0===n.meta.profilingStartTime&&void 0===n.meta.profilingEndTime&&e.has("TracingStartedInBrowser")){const t=(0,ut.Nn)(e.get("TracingStartedInBrowser"))[0];if(void 0!==t.ts&&Number.isFinite(t.ts)){let e=-1/0;n.threads.forEach((t=>{const r=(0,bn.GP)(t,n.meta.interval);e=Math.max(e,r.end)})),n.meta.profilingStartTime=t.ts/1e3,n.meta.profilingEndTime=e}}if(t){const e=/(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})/g;let r,o;for(;null!==(o=e.exec(t));)r=o;if(r){const[,e,t,o,a,i,s]=r,l=new Date(`${e}-${t}-${o}T${a}:${i}:${s}`);n.meta.startTime=l.getTime()-(n.meta.profilingStartTime??0)}}return n.threads.sort(((e,t)=>{const n=i.get(e),r=i.get(t);if(!n||!r)throw console.error({threadA:e,threadB:t}),new Error("Unexpected thread");if(n.pid===r.pid){if(n.threadSortIndex!==r.threadSortIndex)return n.threadSortIndex-r.threadSortIndex}else if(n.processSortIndex!==r.processSortIndex)return n.processSortIndex-r.processSortIndex;return n.tieBreakerIndex-r.tieBreakerIndex})),n}(r,t)}(r,t);if(a)return a;const i=function(e){if(!e||"object"!=typeof e)return null;const{dhatFileVersion:t}=e;if("number"!=typeof t)return null;if(2!==t)throw new Error(`This importer only supports dhat version 2. The file provided was version ${t}.`);const n=(0,ut.au)(e),r=(0,vn.Z)();r.meta.product=n.cmd+" (dhat)",r.meta.importedFrom="dhat";const o=(0,vn.x2)(),{funcTable:a,stringArray:i,stackTable:s,frameTable:l}=(0,vn.Qh)(),c=Bn.M.withBackingArray(i),d=new Map;a.name.push(c.indexForString(n.cmd)),a.isJS.push(!1),a.relevantForJS.push(!1),a.resource.push(-1),a.fileName.push(null),a.lineNumber.push(null),a.columnNumber.push(null);const u=a.length++;l.address.push(-1),l.line.push(null),l.column.push(null),l.category.push(0),l.subcategory.push(0),l.innerWindowID.push(null),l.nativeSymbol.push(null),l.inlineDepth.push(0),l.func.push(u);const h=l.length++;s.frame.push(h),s.prefix.push(null);const p=s.length++;for(let e of n.ftbl){let t=n.cmd,r=-1,o=null,i=null;const s=e.match(/^0x([0-9a-f]+): (.+) \((?:in )?(.+?)(?::(\d+))?(?::(\d+))?\)$/i);s&&(r=parseInt(s[1],16),e=s[2],t=s[3],o=s[4]?Number(s[4]):null,i=s[5]?Number(s[5]):null);const u=`${e} ${t}`;let h=d.get(u);void 0===h&&(a.name.push(c.indexForString(e)),a.isJS.push(!1),a.relevantForJS.push(!1),a.resource.push(-1),a.fileName.push(c.indexForString(t)),a.lineNumber.push(o),a.columnNumber.push(i),h=a.length++,d.set(u,h)),l.address.push(r),l.line.push(o),l.column.push(i),l.category.push(0),l.subcategory.push(0),l.innerWindowID.push(null),l.nativeSymbol.push(null),l.inlineDepth.push(0),l.func.push(h),l.length++}const m=[],f=[],g=[],A=[],b=new Map;for(const e of n.pps){let t=0,n=p;for(let r=e.fs.length-1;r>=0;r--){const o=e.fs[r]+1,a=(0,ut.Nn)(l.func[o],"Expected to find a funcIndex from a frameIndex");t=s.length;const i=b.get(n);if(i)for(const e of i){const n=s.frame[e];if(l.func[n]===a){t=e;break}}t===s.length&&(s.frame.push(o),s.prefix.push(n),i?i.push(t):b.set(n,[t]),s.length++),n=t}m.push(e.tb),f.push(e.mb),g.push(e.gb),A.push(e.eb),o.time.push(0),o.stack.push(t),o.length++}return r.threads=[{name:"Total Bytes",weight:m},{name:"Maximum Bytes",weight:f},{name:"Bytes at Global Max",weight:g},{name:"Bytes at End",weight:A}].map((({name:e,weight:t},r)=>{const i=(0,vn.Qh)();return i.pid=n.pid,i.tid=r,i.name=e,i.stringArray=c.getBackingArray(),i.funcTable.name=a.name.slice(),i.funcTable.isJS=a.isJS.slice(),i.funcTable.relevantForJS=a.relevantForJS.slice(),i.funcTable.resource=a.resource.slice(),i.funcTable.fileName=a.fileName.slice(),i.funcTable.lineNumber=a.lineNumber.slice(),i.funcTable.columnNumber=a.columnNumber.slice(),i.funcTable.length=a.length,i.frameTable.address=l.address.slice(),i.frameTable.line=l.line.slice(),i.frameTable.column=l.column.slice(),i.frameTable.category=l.category.slice(),i.frameTable.subcategory=l.subcategory.slice(),i.frameTable.innerWindowID=l.innerWindowID.slice(),i.frameTable.func=l.func.slice(),i.frameTable.length=l.length,i.stackTable.frame=s.frame.slice(),i.stackTable.prefix=s.prefix.slice(),i.stackTable.length=s.length,i.nativeAllocations={time:o.time.slice(),stack:o.stack.slice(),weight:t,weightType:"bytes",length:o.length},i})),r}(r);return i||function(e){if(!e)throw new Error("The profile was empty.");if("object"!=typeof e)throw new Error("The profile was not an object");const t=(0,ut.au)(e.profile?e.profile:e);if(!t.meta)throw new Error("This does not appear to be a valid Gecko Profile, there is no meta field.");return Pc(t)}(r)}catch(e){throw console.error("UnserializationError:",e),new Error(`Unserializing the profile failed: ${e}`)}}class Fc{constructor(e,t=200,n=12096e5){this._dbPromise=void 0,this._maxCount=void 0,this._maxAge=void 0,this._dbPromise=this._setupDB(e),this._maxCount=t,this._maxAge=n}_getDB(){return this._dbPromise?this._dbPromise:Promise.reject(new Error("The database is closed."))}_setupDB(e){const t=window.indexedDB;if(!t)throw new Error("Could not find indexedDB on the window object.");return new Promise(((n,r)=>{const o=t.open(e,2);o.onerror=()=>{if("VersionError"===o.error.name){const o=t.deleteDatabase(e);o.onerror=()=>r(o.error),o.onsuccess=()=>{this._setupDB(e).then(n,r)}}else r(o.error)},o.onupgradeneeded=({oldVersion:e})=>{const t=o.result;t.onerror=r,1===e&&t.deleteObjectStore("symbol-tables"),t.createObjectStore("symbol-tables",{keyPath:["debugName","breakpadId"]}).createIndex("lastUsedDate","lastUsedDate")},o.onblocked=()=>{r(new Error("The symbol store database could not be upgraded because it is open in another tab. Please close all your other profiler.firefox.com tabs and refresh."))},o.onsuccess=()=>{const e=o.result;e.onversionchange=()=>{e.close()},n(e),this._deleteAllBeforeDate(e,new Date(+new Date-this._maxAge)).catch((e=>{console.error("Encountered error while cleaning out database:",e)}))}}))}storeSymbolTable(e,t,[n,r,o]){return this._getDB().then((a=>new Promise(((i,s)=>{const l=a.transaction("symbol-tables","readwrite");l.onerror=()=>s(l.error);const c=l.objectStore("symbol-tables");this._deleteLeastRecentlyUsedUntilCountIsNoMoreThanN(c,this._maxCount-1,(()=>{const a=new Date;c.add({debugName:e,breakpadId:t,addrs:n,index:r,buffer:o,lastUsedDate:a}).onsuccess=()=>i()}))}))))}getSymbolTable(e,t){return this._getDB().then((n=>new Promise(((r,o)=>{const a=n.transaction("symbol-tables","readwrite");a.onerror=()=>o(a.error);const i=a.objectStore("symbol-tables").openCursor([e,t]);i.onsuccess=()=>{const n=i.result;if(n){const e=n.value;e.lastUsedDate=new Date;const t=n.update(e),{addrs:o,index:a,buffer:i}=e;t.onsuccess=()=>r([o,a,i])}else o(new Ua("The requested library does not exist in the database.",{debugName:e,breakpadId:t}))}}))))}close(){return this._getDB().then((e=>{e.close(),this._dbPromise=null}))}_deleteAllBeforeDate(e,t){return new Promise(((n,r)=>{const o=e.transaction("symbol-tables","readwrite");o.onerror=()=>r(o.error);const a=o.objectStore("symbol-tables");this._deleteRecordsLastUsedBeforeDate(a,t,n)}))}_deleteRecordsLastUsedBeforeDate(e,t,n){const r=e.index("lastUsedDate"),o=window.IDBKeyRange.upperBound(t,!0),a=r.openCursor(o);a.onsuccess=()=>{const e=a.result;e?e.delete().onsuccess=()=>{e.continue()}:n()}}_deleteNLeastRecentlyUsedRecords(e,t,n){const r=e.index("lastUsedDate").openCursor();let o=0;r.onsuccess=()=>{const e=r.result;e?e.delete().onsuccess=()=>{o++,o<t?e.continue():n()}:n()}}_count(e,t){const n=e.count();n.onsuccess=()=>t(n.result)}_deleteLeastRecentlyUsedUntilCountIsNoMoreThanN(e,t,n){this._count(e,(r=>{if(r>t){const o=r-t;this._deleteNLeastRecentlyUsedRecords(e,o,n)}else n()}))}}var Rc=n(7837);function Dc(e,t,n){const[r,o,a]=t,i=Uint32Array.from(e);i.sort();const s=new TextDecoder,l=new Map;let c,d,u="";for(let e=0;e<i.length;e++){const t=i[e],h=(0,Rc.lV)(r,t,c)-1;if(h>=0){if(h!==c){const e=o[h],t=o[h+1],i=a.subarray(e,t);u=n(s.decode(i)),d=h<r.length-1?r[h+1]-r[h]:void 0,c=h}l.set(t,{symbolAddress:r[h],name:u,functionSize:d})}else l.set(t,{symbolAddress:0,name:"<before first symbol>"})}return l}class Lc{constructor(e,t){this._symbolProvider=void 0,this._db=void 0,this._symbolProvider=t,this._db="string"==typeof e?new Fc(`${e}-symbol-tables`):e}async closeDb(){await this._db.close()}_storeSymbolTableInDB(e,t){return this._db.storeSymbolTable(e.debugName,e.breakpadId,t).catch((t=>{console.log(`Failed to store the symbol table for ${e.debugName} in the database:`,t)}))}async getSymbols(e,t,r){e=e.filter((e=>{const{debugName:t,breakpadId:n}=e.lib;return""!==t&&""!==n||(r(e,new Ua(`Failed to symbolicate library ${t}/${n}`,e.lib,new Error("Invalid debugName or breakpadId"))),!1)}));const o=[],a=[];await Promise.all(e.map((async e=>{const{lib:t,addresses:n}=e,{debugName:r,breakpadId:i}=t;try{const e=await this._db.getSymbolTable(r,i);a.push({lib:t,addresses:n,symbolTable:e})}catch(t){if(!(t instanceof Ua))throw t;o.push(e)}})));const i=function(e,t,n,r){const o=[];for(const t of e){const e=r(t);let n=o.find((({value:t,elements:n})=>t+e<=1e4&&n.length+1<=10));void 0===n&&(n={value:0,elements:[]},o.push(n)),n.elements.push(t),n.value+=e}return o.map((({elements:e})=>e))}(o,0,0,(({addresses:e})=>e.size)).map((e=>[e,this._symbolProvider.requestSymbolsFromServer(e)])),s=await async function(){try{const{demangle_any:e}=await n.e(556).then(n.bind(n,556));return e}catch(e){return console.error("Demangling module could not be imported.",e),e=>e}}();for(const{lib:e,addresses:n,symbolTable:r}of a)t(e,Dc(n,r,s));await Promise.all(i.map((async([n,o])=>{const a=new Map(e.map((e=>[e,[]]))),i=await this._processSuccessfulResponsesAndReturnRemaining(n,o,a,t);if(0===i.length)return;const l=this._symbolProvider.requestSymbolsFromBrowser(i),c=await this._processSuccessfulResponsesAndReturnRemaining(i,l,a,t);0!==c.length&&await this._getSymbolTablesFromBrowser(c,a,s,t,r)})))}async _processSuccessfulResponsesAndReturnRemaining(e,t,n,r){try{const e=await t,o=[];for(let t=0;t<e.length;t++){const a=e[t];if("SUCCESS"===a.type){const{lib:e,results:t}=a;r(e,t)}else{const{request:e,error:t}=a;o.push(e),(0,ut.Nn)(n.get(e)).push(t)}}return o}catch(t){for(const r of e)(0,ut.Nn)(n.get(r)).push(t);return e}}async _getSymbolTablesFromBrowser(e,t,n,r,o){for(const a of e){const{lib:e,addresses:i}=a;try{const t=await this._symbolProvider.requestSymbolTableFromBrowser(e);r(e,Dc(i,t,n)),await this._storeSymbolTableInDB(e,t)}catch(n){o(a,new Ua(`Could not obtain symbols for ${e.debugName}/${e.breakpadId}.`,e,...t.get(a)??[],n))}}}}function Oc(e,t,n,r){return(e=(0,bn.gv)(e,n,r)).markers=function(e,t,n,r){const o=(0,vn.qc)(),a=[];e.threadId&&(o.threadId=a);const i=Kn(0,t,n,r);for(const t of i)o.startTime.push(e.startTime[t]),o.endTime.push(e.endTime[t]),o.phase.push(e.phase[t]),o.name.push(e.name[t]),o.data.push(e.data[t]),o.category.push(e.category[t]),e.threadId&&a.push(e.threadId[t]),o.length++;return o}(e.markers,t,n,r),e}function Uc(e,t){const{time:n,timeDeltas:r}=e;if(void 0!==n)return{...e,time:n.map((e=>e+t))};const o=(0,ut.Nn)(r).slice();return o[0]+=t,{...e,timeDeltas:o}}function zc(e,t){return e.map((e=>{if(null===e)return e;const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
23
|
+
Lib with index ${e} hasn't been found in the translation map.
|
24
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
25
|
+
`);return n}))}function Gc(e,t){return e.map((e=>{const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
26
|
+
Lib with index ${e} hasn't been found in the translation map.
|
27
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
28
|
+
`);return n}))}function Wc(e,t){return e.map((e=>{if(null===e)return null;const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
29
|
+
Category with index ${e} hasn't been found in the translation map.
|
30
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
31
|
+
`);return n}))}function Hc(e,t){const n=new Map,r=[],o=(0,vn.WU)();return t.forEach((t=>{const a=new Map,{resourceTable:i,stringArray:s}=t;for(let t=0;t<i.length;t++){const r=i.lib[t],l=s[i.name[t]]??"",c=i.host[t],d=null!==c?s[c]:null,u=i.type[t],h=[l,u].join("#"),p=n.get(h);void 0===p?(a.set(t,o.length),n.set(h,o.length),o.lib.push(r),o.name.push(e.indexForString(l)),o.host.push(null===d?null:e.indexForString(d)),o.type.push(u),o.length++):a.set(t,p)}r.push(a)})),{resourceTable:o,translationMaps:r}}function Vc(e,t){const n=new Map,r=[],o=(0,vn.Ry)();return t.forEach((t=>{const a=new Map,{nativeSymbols:i,stringArray:s}=t;for(let t=0;t<i.length;t++){const r=i.libIndex[t],l=s[i.name[t]],c=i.address[t],d=i.functionSize[t],u=[l,c].join("#"),h=n.get(u);void 0===h?(a.set(t,o.length),n.set(u,o.length),o.libIndex.push(r),o.name.push(e.indexForString(l)),o.address.push(c),o.functionSize.push(d),o.length++):a.set(t,h)}r.push(a)})),{nativeSymbols:o,translationMaps:r}}function jc(e,t,n){const r=new Map,o=[],a=(0,vn.uv)();return n.forEach(((n,i)=>{const{funcTable:s,stringArray:l}=n,c=new Map,d=e[i];for(let e=0;e<s.length;e++){const n=s.fileName[e],o="number"==typeof n?l[n]:null,i=s.resource[e]>=0?d.get(s.resource[e]):-1;if(void 0===i)throw new Error(_n.dx`
|
32
|
+
We couldn't find the resource of func ${e} in the translation map.
|
33
|
+
This is a programming error.
|
34
|
+
`);const u=l[s.name[e]],h=s.lineNumber[e],p=[u,i,h].join("#"),m=r.get(p);void 0===m?(r.set(p,a.length),c.set(e,a.length),a.isJS.push(s.isJS[e]),a.name.push(t.indexForString(u)),a.resource.push(i),a.relevantForJS.push(s.relevantForJS[e]),a.fileName.push(null===o?null:t.indexForString(o)),a.lineNumber.push(h),a.columnNumber.push(s.columnNumber[e]),a.length++):c.set(e,m)}o.push(c)})),{funcTable:a,translationMaps:o}}function $c(e,t,n,r){const o=[],a=(0,vn.vA)();return r.forEach(((n,r)=>{const{frameTable:i}=n,s=new Map,l=e[r],c=t[r];for(let e=0;e<i.length;e++){const t=l.get(i.func[e]);if(void 0===t)throw new Error(_n.dx`
|
35
|
+
We couldn't find the function of frame ${e} in the translation map.
|
36
|
+
This is a programming error.
|
37
|
+
`);const n=i.nativeSymbol[e],r=null===n?null:c.get(n);if(void 0===r)throw new Error(_n.dx`
|
38
|
+
We couldn't find the nativeSymbol of frame ${e} in the translation map.
|
39
|
+
This is a programming error.
|
40
|
+
`);a.address.push(i.address[e]),a.inlineDepth.push(i.inlineDepth[e]),a.category.push(i.category[e]),a.subcategory.push(i.subcategory[e]),a.nativeSymbol.push(r),a.func.push(t),a.innerWindowID.push(i.innerWindowID[e]),a.line.push(i.line[e]),a.column.push(i.column[e]),s.set(e,a.length),a.length++}o.push(s)})),{frameTable:a,translationMaps:o}}function Kc(e,t){const n=[],r=(0,vn.Gh)();return t.forEach(((t,o)=>{const{stackTable:a}=t,i=new Map,s=e[o];for(let e=0;e<a.length;e++){const t=s.get(a.frame[e]);if(void 0===t)throw new Error(_n.dx`
|
41
|
+
We couldn't find the frame of stack ${e} in the translation map.
|
42
|
+
This is a programming error.
|
43
|
+
`);const n=a.prefix[e],o=null===n?null:i.get(n);if(void 0===o)throw new Error(_n.dx`
|
44
|
+
We couldn't find the prefix of stack ${e} in the translation map.
|
45
|
+
This is a programming error.
|
46
|
+
`);r.frame.push(t),r.prefix.push(o),i.set(e,r.length),r.length++}n.push(i)})),{stackTable:r,translationMaps:n}}function Yc(e,t){const n={...t.markers},r=[],o=Bn.M.withBackingArray(t.stringArray);return e.forEach((e=>{const t=Bn.M.withBackingArray(e.stringArray);if(t.hasString("CompositorScreenshot")){const a=new Map,{markers:i}=e;for(let r=0;r<i.length;r++){const s=i.data[r];if(null!==s&&"CompositorScreenshot"===s.type){const l=i.name[r],c=l>=0?t.getString(l):null,d=void 0===s.url?void 0:t.getString(s.url),u={...s,url:void 0===d?void 0:o.indexForString(d)};n.data.push(u),n.name.push(null===c?-1:o.indexForString(c)),n.startTime.push(i.startTime[r]),n.endTime.push(i.endTime[r]),n.phase.push(i.phase[r]),n.category.push(i.category[r]),n.threadId&&n.threadId.push(i.threadId?i.threadId[r]:e.tid),a.set(r,n.length),n.length++}}r.push(a)}})),{markerTable:n,translationMaps:r}}const qc="application/vnd.firefox-profiler+json;version=1.0";async function Zc(e){let t=e;if(!t.startsWith("https://profiler.firefox.com/")){const e=new URL(t);e.protocol="https",e.host="profiler.firefox.com",e.port="",t=e.toString()}const n=`${In.HT}/shorten`,r={longUrl:t},o=await fetch(n,{method:"POST",headers:{Accept:qc,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!o.ok)throw new Error(`An error happened while shortening the long url ${t}: ${o.statusText} (${o.status})`);return(await o.json()).shortUrl}class Xc extends Error{constructor(e,t=null){super(e),this.attempt=void 0,this.__proto__=Xc.prototype,this.name="TemporaryError",this.attempt=t}}var Jc=n(1617),Qc=n.n(Jc);const ed=n.p+"79856ce399cb305fafb8.svg";class td{constructor(e,t){this._callNodeInfo=void 0,this._callNodeTable=void 0,this._callTreeTimings=void 0,this._callNodeHasChildren=void 0,this._callNodeInfo=e,this._callNodeTable=e.getNonInvertedCallNodeTable(),this._callTreeTimings=t,this._callNodeHasChildren=t.callNodeHasChildren}_getFirstChildIndex(e){return-1===e?0!==this._callNodeTable.length?0:-1:this._callNodeTable.subtreeRangeEnd[e]!==e+1?e+1:-1}createRoots(){return this.createChildren(-1)}createChildren(e){const t=[];for(let n=this._getFirstChildIndex(e);-1!==n;n=this._callNodeTable.nextSibling[n]){const e=this._callTreeTimings.total[n],r=this._callNodeHasChildren[n];0===e&&0===r||t.push(n)}return t.sort(((e,t)=>Math.abs(this._callTreeTimings.total[t])-Math.abs(this._callTreeTimings.total[e]))),t}hasChildren(e){return 0!==this._callNodeHasChildren[e]}getSelfAndTotal(e){return{self:this._callTreeTimings.self[e],total:this._callTreeTimings.total[e]}}findHeaviestPathInSubtree(e){const t=this._callNodeTable.subtreeRangeEnd[e];let n=-1,r=0;for(let o=e;o<t;o++){const e=Math.abs(this._callTreeTimings.self[o]);(-1===n||e>r)&&(n=o,r=e)}return this._callNodeInfo.getCallNodePathFromIndex(n)}}class nd{constructor(e,t){this._callNodeInfo=void 0,this._nonInvertedCallNodeTable=void 0,this._callNodeSelf=void 0,this._rootNodes=void 0,this._funcCount=void 0,this._totalPerRootFunc=void 0,this._hasChildrenPerRootFunc=void 0,this._totalAndHasChildrenPerNonRootNode=new Map,this._callNodeInfo=e,this._nonInvertedCallNodeTable=e.getNonInvertedCallNodeTable(),this._callNodeSelf=t.callNodeSelf;const{sortedRoots:n,totalPerRootFunc:r,hasChildrenPerRootFunc:o}=t;this._totalPerRootFunc=r,this._hasChildrenPerRootFunc=o,this._rootNodes=n}createRoots(){return this._rootNodes}hasChildren(e){return this._callNodeInfo.isRoot(e)?0!==this._hasChildrenPerRootFunc[e]:this._getTotalAndHasChildren(e).hasChildren}createChildren(e){if(!this.hasChildren(e))return[];const t=this._callNodeInfo.getChildren(e).filter((e=>{const{total:t,hasChildren:n}=this._getTotalAndHasChildren(e);return 0!==t||n}));return t.sort(((e,t)=>Math.abs(this._getTotalAndHasChildren(t).total)-Math.abs(this._getTotalAndHasChildren(e).total))),t}getSelfAndTotal(e){if(this._callNodeInfo.isRoot(e)){const t=this._totalPerRootFunc[e];return{self:t,total:t}}const{total:t}=this._getTotalAndHasChildren(e);return{self:0,total:t}}_getTotalAndHasChildren(e){if(this._callNodeInfo.isRoot(e))throw new Error("This function should not be called for roots");const t=this._totalAndHasChildrenPerNonRootNode.get(e);if(void 0!==t)return t;const n=od(e,this._callNodeInfo,this._callNodeSelf);return this._totalAndHasChildrenPerNonRootNode.set(e,n),n}findHeaviestPathInSubtree(e){const[t,n]=this._callNodeInfo.getSuffixOrderIndexRangeForCallNode(e),r=this._callNodeInfo.getSuffixOrderedCallNodes();let o=-1,a=0;for(let e=t;e<n;e++){const t=r[e],n=Math.abs(this._callNodeSelf[t]);(-1===o||n>a)&&(o=t,a=n)}const i=[];for(let e=o;-1!==e;e=this._nonInvertedCallNodeTable.prefix[e])i.push(this._nonInvertedCallNodeTable.func[e]);return i}}class rd{constructor(e,t,n,r,o,a,i){this._categories=void 0,this._internal=void 0,this._callNodeInfo=void 0,this._thread=void 0,this._rootTotalSummary=void 0,this._displayDataByIndex=void 0,this._children=void 0,this._roots=void 0,this._isHighPrecision=void 0,this._weightType=void 0,this._categories=t,this._internal=r,this._callNodeInfo=n,this._thread=e,this._rootTotalSummary=o,this._displayDataByIndex=new Map,this._children=[],this._roots=r.createRoots(),this._isHighPrecision=a,this._weightType=i}getRoots(){return this._roots}getChildren(e){let t=this._children[e];return void 0===t&&(t=this._internal.createChildren(e),this._children[e]=t),t}hasChildren(e){return this._internal.hasChildren(e)}_addDescendantsToSet(e,t){for(const n of this.getChildren(e))t.add(n),this._addDescendantsToSet(n,t)}getAllDescendants(e){const t=new Set;return this._addDescendantsToSet(e,t),t}getParent(e){return this._callNodeInfo.prefixForNode(e)}getDepth(e){return this._callNodeInfo.depthForNode(e)}getNodeData(e){const t=this._callNodeInfo.funcForNode(e),n=this._thread.stringTable.getString(this._thread.funcTable.name[t]),{self:r,total:o}=this._internal.getSelfAndTotal(e);return{funcName:n,total:o,totalRelative:o/this._rootTotalSummary,self:r,selfRelative:r/this._rootTotalSummary}}_getInliningBadge(e,t){const n=hr(t),r=this._callNodeInfo.sourceFramesInlinedIntoSymbolForNode(e);if(-2===r)return;if(-1===r)return{name:"divergent-inlining",vars:{calledFunction:n},localizationId:"CallTree--divergent-inlining-badge",contentFallback:"",titleFallback:`Some calls to ${n} were inlined by the compiler.`};const o=hr(this._thread.stringTable.getString(this._thread.nativeSymbols.name[r]));return{name:"inlined",vars:{calledFunction:n,outerFunction:o},localizationId:"CallTree--inlining-badge",contentFallback:"(inlined)",titleFallback:`Calls to ${n} were inlined into ${o} by the compiler.`}}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){const{funcName:n,total:r,totalRelative:o,self:a}=this.getNodeData(e),i=this._callNodeInfo.funcForNode(e),s=this._callNodeInfo.categoryForNode(e),l=this._callNodeInfo.subcategoryForNode(e),c=this._getInliningBadge(e,n),d=this._thread.funcTable.resource[i],u=this._thread.resourceTable.type[d],h=-1===d,p=this._getOriginAnnotation(i),m=this._weightType;let f=null,g=null;if(u===vn.AU.webhost)g=f=function(e){try{const t=new URL("/favicon.ico",e);return"http:"===t.protocol&&(t.protocol="https:"),t.href}catch(t){return console.error("Error while extracing the favicon from the libname",e),null}}(p);else if(u===vn.AU.addon){f=ed;const e=this._thread.resourceTable.name[d];g=this._thread.stringTable.getString(e)}const A=Wt(m,this._isHighPrecision,r),b=Wt(m,this._isHighPrecision,a),C=`${Vt(o)}`;let v,y,w;switch(m){case"tracing-ms":y=`${A}ms`,w=`${b}ms`,v=_n.TN`
|
47
|
+
${n},
|
48
|
+
running time is ${y} (${C}),
|
49
|
+
self time is ${w}
|
50
|
+
`;break;case"samples":y=1===r?`${A} sample`:`${A} samples`,w=1===a?`${b} sample`:`${b} samples`,v=_n.TN`
|
51
|
+
${n},
|
52
|
+
running count is ${y} (${C}),
|
53
|
+
self count is ${w}
|
54
|
+
`;break;case"bytes":y=`${A} bytes`,w=`${b} bytes`,v=_n.TN`
|
55
|
+
${n},
|
56
|
+
total size is ${y} (${C}),
|
57
|
+
self size is ${w}
|
58
|
+
`;break;default:throw(0,ut.lC)(m,"Unhandled WeightType.")}t={total:0===r?"—":A,totalWithUnit:0===r?"—":y,self:0===a?"—":b,selfWithUnit:0===a?"—":w,totalPercent:C,name:n,lib:p.slice(0,1e3),isFrameLabel:h,badge:c,categoryName:(0,bn.LU)(this._categories,s,l),categoryColor:this._categories[s].color,iconSrc:f,icon:g,ariaLabel:v},this._displayDataByIndex.set(e,t)}return t}_getOriginAnnotation(e){return(0,bn.Bu)(e,this._thread.funcTable,this._thread.resourceTable,this._thread.stringTable)}getBottomBoxInfoForCallNode(e){return(0,bn.ae)(e,this._callNodeInfo,this._thread)}findHeavyPathToSameFunctionAfterInversion(e){if(null===e)return[];const t=this._internal.findHeaviestPathInSubtree(e),n=this._callNodeInfo.depthForNode(e);return t.slice(n).reverse()}}function od(e,t,n){const r=t.depthForNode(e),[o,a]=t.getSuffixOrderIndexRangeForCallNode(e),i=t.getSuffixOrderedCallNodes(),s=t.getNonInvertedCallNodeTable().depth;let l=0,c=!1;for(let e=o;e<a;e++){const t=i[e],o=n[t];l+=o,c=c||0!==o&&s[t]>r}return{total:l,hasChildren:c}}function ad(e,{callNodeSelf:t,rootTotalSummary:n}){const r=e.getFuncCount(),o=e.getNonInvertedCallNodeTable(),a=o.func,i=o.depth,s=new Float64Array(r),l=new Uint8Array(r),c=new Uint8Array(r),d=[];for(let e=0;e<t.length;e++){const n=t[e];if(0===n)continue;const r=a[e];s[r]+=n,0===c[r]&&(c[r]=1,d.push(r)),0!==i[e]&&(l[r]=1)}return d.sort(((e,t)=>Math.abs(s[t])-Math.abs(s[e]))),{callNodeSelf:t,rootTotalSummary:n,sortedRoots:d,totalPerRootFunc:s,hasChildrenPerRootFunc:l}}function id(e,t){const n=e.asInverted();return null!==n?{type:"INVERTED",timings:ad(n,t)}:{type:"NON_INVERTED",timings:sd(e,t)}}function sd(e,t){const n=e.getNonInvertedCallNodeTable(),{callNodeSelf:r,rootTotalSummary:o}=t,a=new Float64Array(n.length),i=new Uint8Array(n.length);for(let e=n.length-1;e>=0;e--){a[e]+=r[e];const t=0!==i[e],o=0!==a[e];if(!t&&!o)continue;const s=n.prefix[e];-1!==s&&(a[s]+=a[e],i[s]=1)}return{self:r,total:a,callNodeHasChildren:i,rootTotalSummary:o}}function ld(e,t,n,r,o){return(0,Cn.l)("getCallTree",(()=>{switch(r.type){case"NON_INVERTED":{const{timings:a}=r;return new rd(e,n,t,new td(t,a),a.rootTotalSummary,Boolean(e.isJsTracer),o)}case"INVERTED":{const{timings:a}=r;return new rd(e,n,t,new nd((0,ut.Nn)(t.asInverted()),a),a.rootTotalSummary,Boolean(e.isJsTracer),o)}default:throw(0,ut.lC)(r.type,"Unhandled CallTreeTimings type.")}}))}function cd(e,t){switch(t){case"timing":return e.samples;case"js-allocations":return(0,ut.Nn)(e.jsAllocations,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy');case"native-retained-allocations":{const t=(0,ut.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocation" strategy');if(!t.memoryAddress)throw new Error("Attempting to filter by retained allocations data that is missing the memory addresses.");return bn.rf(t)}case"native-allocations":return bn.$v((0,ut.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocations" strategy'));case"native-deallocations-sites":return bn.WM((0,ut.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-deallocations-sites" strategy'));case"native-deallocations-memory":{const t=(0,ut.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-deallocations-memory" strategy');if(!t.memoryAddress)throw new Error("Attempting to filter by retained allocations data that is missing the memory addresses.");return bn.bs((0,ut.Nn)(t,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy'))}default:throw(0,ut.lC)(t)}}function dd(e,t){switch(t){case"timing":return e.samples;case"js-allocations":return(0,ut.Nn)(e.jsAllocations,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy');case"native-retained-allocations":case"native-allocations":case"native-deallocations-sites":case"native-deallocations-memory":return(0,ut.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocation" strategy');default:throw(0,ut.lC)(t)}}function ud(e,t){const n=1===e.size?(0,ut.Nn)((0,ut.cF)(e)):null,r=dt(fi,Ri,((t,n)=>function(e,t){const n=[],r=Bn.M.withBackingArray(n),{resourceTable:o,translationMaps:a}=Hc(r,e),{nativeSymbols:i,translationMaps:s}=Vc(r,e),{funcTable:l,translationMaps:c}=jc(a,r,e),{frameTable:d,translationMaps:u}=$c(c,s,0,e),{stackTable:h,translationMaps:p}=Kc(u,e),m=function(e,t){const n=t.map((e=>e.samples)),r=n.map(bn.px),o=Array(n.length).fill(0),a=[],i={...(0,vn.cy)(),threadId:a};for(;;){let s=null,l=1/0;for(let e=0;e<n.length;e++){const t=n[e],a=o[e];if(a>=t.length)continue;const i=r[e][a];i<l&&(s=e,l=i)}if(null===s)break;const c=s,d=n[c],u=r[c],h=o[c],p=d.stack[h],m=null===p?null:e[c].get(p);if(void 0===m)throw new Error(_n.dx`
|
59
|
+
We couldn't find the stack of sample ${h} in the translation map.
|
60
|
+
This is a programming error.
|
61
|
+
`);i.stack.push(m),(0,ut.Nn)(i.eventDelay).push(null),i.time.push(u[h]),a.push(d.threadId?d.threadId[h]:t[c].tid),i.length++,o[c]++}return i}(p,e),{markerTable:f}=function(e,t,n,r){const o=[],a={...(0,vn.qc)(),threadId:o},i=[];return r.forEach(((r,s)=>{const l=e[s],c=new Map,{markers:d,stringArray:u}=r;for(let e=0;e<d.length;e++){const i=d.name[e],s=i>=0?u[i]:null;let h=d.data[e];if(null!==h&&h.type){const e=h.type;if(h.cause){const e=h.cause.stack,t=l.get(e);if(void 0===t)throw new Error(`Missing old stack entry ${e} in the translation map.`);h={...h,cause:{...h.cause,stack:t}}}const r=n.get(e);if(void 0!==r)for(const e of r){const n=h[e];if("number"==typeof n){const r=t.indexForString(u[n]);h={...h,[e]:r}}}}a.name.push(null===s?-1:t.indexForString(s)),a.startTime.push(d.startTime[e]),a.endTime.push(d.endTime[e]),a.phase.push(d.phase[e]),a.category.push(d.category[e]),a.data.push(h),o.push(d.threadId?d.threadId[e]:r.tid),c.set(e,a.length),a.length++}i.push(c)})),{markerTable:a,translationMaps:i}}(p,r,t,e);let g=1/0,A=-1/0,b=1/0,C=-1/0;for(const t of e)g=Math.min(t.processStartupTime,g),A=Math.max(t.processShutdownTime||1/0,A),b=Math.min(t.registerTime,b),C=Math.max(t.unregisterTime||1/0,C);return{processType:"merged",processStartupTime:g,processShutdownTime:A===1/0?null:A,registerTime:b,unregisterTime:C===1/0?null:C,pausedRanges:[],name:"Merged thread",pid:"Merged thread",tid:"Merged thread",isMainThread:!0,samples:m,markers:f,stackTable:h,frameTable:d,stringArray:n,funcTable:l,nativeSymbols:i,resourceTable:o}}([...e].map((e=>t.threads[e])),n))),o=e=>null!==n?fi(e).threads[n]:r(e),a=dt((e=>o(e).stringArray),(e=>Bn.M.withBackingArray(e))),i=e=>o(e).samples,s=dt(i,Ni,ms,bn.mf),l=e=>o(e).nativeAllocations,c=e=>o(e).jsAllocations,d=dt((e=>o(e).stackTable),(e=>o(e).frameTable),bi,bn.Ar),u=dt(o,s,d,a,bn.nW),h=dt(u,bn.Vj),p=e=>h(e).thread,m=dt(p,ys,((e,t)=>0===t.size?e:bn.hk(e,t))),f=dt(p,vs,((e,t)=>0===t.size?e:bn.hk(e,t))),g=dt(m,li,((e,t)=>{const{start:n,end:r}=t;return bn.Ce(e,n,r)})),A=dt(u,Eo,((e,t)=>{switch(t){case"timing":if(0===e.samples.length&&e.nativeAllocations&&e.nativeAllocations.length>0)return"native-allocations";break;case"js-allocations":if(!e.jsAllocations)return"timing";break;case"native-allocations":case"native-retained-allocations":case"native-deallocations-sites":case"native-deallocations-memory":if(!e.nativeAllocations)return"timing";break;default:(0,ut.lC)(t,"Unhandled call tree sumary strategy.")}return t})),b=dt(u,A,dd),C=dt(b,li,((e,{start:t,end:n})=>{const[r]=bn.XG(e,t,n);return r})),v=dt((e=>s(e)),li,((e,{start:t,end:n})=>{const[r]=bn.XG(e,t,n);return r})),y=dt(Ci,o,bn.XU),w=dt(o,y,bn.g),E=dt(s,o,((e,t)=>bn.aM(e.stack,t))),k=dt(c,o,((e,t)=>bn.aM(e?.stack,t))),x=dt(l,o,((e,t)=>bn.aM(e?.stack,t))),T=e=>u(e).jsTracer||null,S=dt(T,o,a,((e,t,n)=>null===e?null:function(e,t,n){const r=[],{funcTable:o}=t,a=oc(t,n);for(let t=0;t<e.length;t++){const i=e.events[t],s=e.column[t],l=e.line[t];let c=n.getString(i),d=null;if(null!==s&&null!==l){const e=`${c}:${l}:${s}`,t=a.get(e);void 0!==t&&(null===t?c=`(multiple matching functions) ${c}`:(d=t,c=`ƒ ${n.getString(o.name[d])} ${c}`))}for(let n=0;n<=r.length;n++){let o=r[n];o||(o={start:[],end:[],index:[],label:[],func:[],name:"Tracing Information",length:0},r.push(o));const a=e.timestamps[t]/1e3,i=e.durations[t],s=null===i?0:i/1e3,l=o.end[o.length-1];if(void 0===l||l<=a){o.start.push(a),o.end.push(a+s),o.label.push(c),o.index.push(t),o.func.push(d),o.length++;break}}}return r}(e,t,n))),B=dt(T,a,((e,t)=>null===e?null:function(e,t){const n=new Map,r=[],o=/:\/\//;function a(a,i,s){if(i===s)return;const l=e.events[a],c=t.getString(l),d=function(e){const n=r[e];if(void 0!==n)return n;const a=o.test(t.getString(e));return r[e]=a,a}(l)?"Script":c;let u=n.get(d);void 0===u&&(u={start:[],end:[],index:[],label:[],func:[],name:d,length:0},n.set(d,u));{const e=u.start[u.length-1],t=u.end[u.length-1],n=u.end[u.length-2];if(s<i)throw new Error("end is less than the start");if(t<e)throw new Error(`currEnd < currStart "${c} - ${t} < ${e}"`);if(e<n)throw new Error(`currStart < prevEnd "${c} - ${e} < ${n}"`)}u.start.push(i/1e3),u.end.push(s/1e3),u.label.push(c),u.index.push(a),u.length++}const i=[],s=[],l=[];let c=-1;for(let n=0;n<e.length;n++){const r=e.timestamps[n],o=e.durations[n];let d=r+(null===o?0:o);if(-1!==c)for(;;){const o=i[c],u=s[c],h=l[c];if(o<=r&&u>r&&u<d&&(d=u),!(u<=r)){if(u>d){a(h,o,r),i[c]=d,c++,i[c]=r,s[c]=d,l[c]=n;break}if(u===d){o!==r?(a(h,o,r),i[c]=r,l[c]=n):l[c]=n;break}{const a=t.getString(e.events[h]),i=t.getString(e.events[n]);throw console.error("Current JS Tracer information:",{jsTracer:e,stringTable:t,prefixEventIndex:h,currentEventIndex:n}),console.error(`Prefix (parent) times for "${a}": ${o}ms to ${u}ms`),console.error(`Current (child) times for "${i}": ${r}ms to ${d}ms`),new Error("The JS Tracer algorithm encountered some data it could not handle.")}}if(a(h,o,u),c--,-1===c){c=0,l[c]=n,i[c]=r,s[c]=d;break}}else c=0,i[c]=r,s[c]=d,l[c]=n}for(;c>=0;c--)a(l[c],i[c],s[c]);return[...n.values()].sort(((e,t)=>e.name>t.name?1:e.name<t.name?-1:0))}(e,t))),I=dt(s,gi,((e,t)=>null===e||void 0===e.eventDelay?null:bn.qN(e,t)));return{getRawThread:o,getThread:u,getStringTable:a,getSamplesTable:s,getSamplesWeightType:e=>i(e).weightType||"samples",getNativeAllocations:l,getJsAllocations:c,getThreadRange:e=>bn.GP(o(e),gi(e)),getReservedFunctionsForResources:e=>h(e).reservedFunctionsForResources,getRangeFilteredThread:g,getUnfilteredCtssSamples:b,getFilteredCtssSampleIndexOffset:C,getFilteredSampleIndexOffset:v,getFriendlyThreadName:y,getThreadProcessDetails:w,getViewOptions:e=>ei(e).perThread[t]||Ha,getJsTracerTable:T,getExpensiveJsTracerTiming:S,getExpensiveJsTracerLeafTiming:B,getHasUsefulTimingSamples:E,getHasUsefulJsAllocations:k,getHasUsefulNativeAllocations:x,getCanShowRetainedMemory:e=>{const t=l(e);return!!t&&"memoryAddress"in t},getFunctionsReservedThread:p,getTabFilteredThread:m,getActiveTabFilteredThread:f,getProcessedEventDelays:e=>(0,ut.Nn)(I(e),"Could not get the processed event delays"),getCallTreeSummaryStrategy:A}}function hd(e,t,n){const r=Lt()(xr,{cache:new(Qc())}),o=e=>ia(e,n),a=dt(e.getRangeFilteredThread,o,bi,e.getMarkerGetter,e.getFullMarkerListIndexes,Di,Mi,((e,t,n,o,a,i,s)=>t.reduce(((e,t)=>r(e,t,n,o,a,i,s)),e))),i=dt(a,wo,bn.u2),s=dt(i,Qo,bn.KQ),l=dt(s,hi,((e,t)=>{if(!t.hasSelection)return e;const{selectionStart:n,selectionEnd:r}=t;return bn.Ce(e,n,r)})),c=dt(s,e.getCallTreeSummaryStrategy,cd),d=dt(c,(e=>0!==e.length&&e.stack.some((e=>null!==e)))),u=dt(l,e.getCallTreeSummaryStrategy,cd),h=dt(u,(e=>0!==e.length&&e.stack.some((e=>null!==e)))),p=dt(c,hi,e.getFilteredCtssSampleIndexOffset,((e,t,n)=>{if(!t.hasSelection)return n;const[r]=bn.XG(e,t.selectionStart,t.selectionEnd);return n+r})),m=dt(ki,a,e.getFriendlyThreadName,o,Ar);return{getTransformStack:o,getRangeAndTransformFilteredThread:a,getFilteredThread:s,getPreviewFilteredThread:l,getFilteredCtssSamples:c,getPreviewFilteredCtssSamples:u,getPreviewFilteredCtssSampleIndexOffset:p,getHasFilteredCtssSamples:d,getHasPreviewFilteredCtssSamples:h,getTransformLabelL10nIds:m,getLocalizedTransformLabels:dt(m,(e=>e.map((e=>J.createElement(de,{id:e.l10nId,vars:{item:e.item},key:e.item})))))}}function pd(e,t,n){const r=new Map,o=new Map;for(const a of t){const t=e(a),i=e=>{e.start.push(t.start),e.end.push(null===t.end?t.start:t.end),e.index.push(a),e.length++},s=n?n[t.category].name:"None",l=t.data&&"Network"===t.data.type?"Network Requests":t.name,c=({instantOnly:e})=>({start:[],end:[],index:[],name:l,bucket:s,instantOnly:e,length:0});if(null===t.end){let e=o.get(l);e||(e=c({instantOnly:!0}),o.set(l,e)),i(e);continue}let d=r.get(l);void 0===d&&(d=[],r.set(l,d));const u=d.find((e=>e.end[e.length-1]<=t.start));if(u){i(u);continue}if(d.length>=300)continue;const h=c({instantOnly:!1});i(h),d.push(h)}const a=[...o.values()].concat(...r.values());return a.sort(((e,t)=>{if(e.bucket!==t.bucket)return"Test"===e.bucket?-1:"Test"===t.bucket||"Other"===e.bucket?1:"Other"===t.bucket?-1:e.bucket>t.bucket?1:-1;if(e.name===t.name)return e.instantOnly?-1:t.instantOnly?1:0;if("Network"===e.bucket){if("Network Requests"===e.name)return 1;if("Network Requests"===t.name)return-1}return e.name.toLowerCase()>t.name.toLowerCase()?1:-1})),a}function md(e,t,n){const r=pd(e,t,n),o=[];let a;for(const e of r)e.bucket!==a&&(o.push(e.bucket),a=e.bucket),o.push(e);return o}const fd=dt(ei,(e=>e.rightClickedMarker));function gd(e,t,n){const r=dt((t=>e.getThread(t).markers),(t=>e.getRawThread(t).stringArray),(t=>e.getThread(t).tid),e.getThreadRange,zi,$n),o=dt(r,(({markers:e})=>e)),a=dt(r,(({markerIndexToRawMarkerIndexes:e})=>e)),i=dt(e.getSamplesTable,bi,((e,t)=>function(e,t,n){const r=()=>i.push({start:a-o,end:a,name:"Jank",category:n,threadId:null,data:{type:"Jank"}});let o=0,a=0;const i=[];for(let t=0;t<e.length;t++){let n;e.eventDelay?n=e.eventDelay[t]:e.responsiveness&&(n=e.responsiveness[t]),null!=n&&(n<o&&o>=50&&r(),o=n,a=e.time[t])}return o>=50&&r(),i}(e,0,t))),s=dt(o,i,((e,t)=>[...e,...t].sort(((e,t)=>e.start-t.start)))),l=dt(s,(e=>t=>{const n=e[t];if(!n)throw new Error(_n.dx`
|
62
|
+
Tried to get marker index ${t} but it's not in the full list.
|
63
|
+
This is a programming error.
|
64
|
+
`);return n})),c=dt(s,(e=>e.map(((e,t)=>t)))),d=e=>(t,n)=>Yn(t,n,e),u=dt(l,c,li,((e,t,n)=>{const{start:r,end:o}=n;return qn(e,t,r,o)})),h=dt(l,u,ys,Hn),p=dt(l,h,Fi,Di,(()=>"timeline-overview"),cr),m=dt(l,c,vs,((e,t,n)=>Hn(e,t,n,!1))),f=dt(l,h,d(Jn)),g=dt(l,h,i,((e,t,n)=>{const r=n.length>0?"Jank":"BHR-detected hang";return d((e=>Boolean(e.data&&e.data.type===r)))(e,t)})),A=dt(l,h,Di,ra,e.getStringTable,Mi,zn),b=dt(l,A,hi,((e,t,n)=>{if(!n.hasSelection)return t;const{selectionStart:r,selectionEnd:o}=n;return qn(e,t,r,o)})),C=dt(s,(e=>e.every((e=>!Zn(e))))),v=dt(l,u,d(Zn)),y=dt(l,u,d(Xn)),w=dt(l,v,Di,oa,e.getStringTable,Mi,zn),E=dt(s,(e=>e.every((e=>Zn(e))))),k=dt(l,A,Fi,Di,((e,t,n,r)=>cr(e,t,n,0,"marker-chart",er(r)))),x=dt(l,b,Fi,Di,((e,t,n,r)=>cr(e,t,n,0,"marker-table",er(r)))),T=dt(l,Fi,Di,Mi,e.getStringTable,(()=>"tooltipLabel"),Rn),S=dt(l,Fi,Di,Mi,e.getStringTable,(()=>"tableLabel"),Rn),B=dt(l,Fi,Di,Mi,e.getStringTable,(()=>"chartLabel"),Rn),I=dt(l,Fi,Di,Mi,e.getStringTable,(()=>"copyLabel"),Rn),_=dt(l,k,Mi,md),N=dt(l,h,Fi,Di,(()=>"timeline-fileio"),(()=>Qn),cr),P=dt(l,h,Fi,Di,(()=>"timeline-memory"),cr),M=dt(l,h,Fi,Di,(()=>"timeline-ipc"),cr),F=dt(l,v,pd),R=dt(l,y,pd),D=dt(l,u,rr),L=t=>e.getViewOptions(t).selectedMarker,O=t=>e.getViewOptions(t).selectedNetworkMarker,U=dt(fd,(e=>null!==e&&e.threadsKey===n?e.markerIndex:null)),z=dt(l,U,((e,t)=>"number"==typeof t?e(t):null)),G=dt(ei,(({hoveredMarker:e})=>null!==e&&e.threadsKey===n?e.markerIndex:null)),W={};return{getMarkerGetter:l,getTimelineJankMarkerIndexes:g,getDerivedMarkerInfo:r,getMarkerIndexToRawMarkerIndexes:a,getFullMarkerList:s,getFullMarkerListIndexes:c,getMarkerListLength:e=>s(e).length,getNetworkMarkerIndexes:v,getSearchFilteredNetworkMarkerIndexes:w,getAreMarkerPanelsEmptyInFullRange:E,getMarkerTableMarkerIndexes:x,getMarkerChartMarkerIndexes:k,getMarkerChartLabelGetter:B,getMarkerTooltipLabelGetter:T,getMarkerTableLabelGetter:S,getMarkerLabelToCopyGetter:I,getMarkerChartTimingAndBuckets:_,getCommittedRangeFilteredMarkerIndexes:u,getCommittedRangeAndTabFilteredMarkerIndexes:h,getTimelineOverviewMarkerIndexes:p,getActiveTabFilteredMarkerIndexesWithoutGlobals:m,getTimelineVerticalMarkerIndexes:f,getTimelineFileIoMarkerIndexes:N,getTimelineMemoryMarkerIndexes:P,getTimelineIPCMarkerIndexes:M,getNetworkTrackTiming:F,getRangeFilteredScreenshotsById:D,getSearchFilteredMarkerIndexes:A,getPreviewFilteredMarkerIndexes:b,getSelectedMarkerIndex:L,getSelectedMarker:e=>{const t=l(e),n=L(e);return null===n?null:t(n)},getSelectedNetworkMarkerIndex:O,getSelectedNetworkMarker:e=>{const t=l(e),n=O(e);return null===n?null:t(n)},getIsNetworkChartEmptyInFullRange:C,getUserTimingMarkerIndexes:y,getUserTimingMarkerTiming:R,getRightClickedMarkerIndex:U,getRightClickedMarker:z,getHoveredMarkerIndex:G,getMarkerTrackSelectors:(t,n)=>{const r=t.name;return W[r]||(W[r]={}),W[r][n]||(W[r][n]=function(t,n){const r=dt(s,e.getStringTable,((e,r)=>{if(void 0===t.graphs)throw new Error(`No graphs for marker ${n}. This shouldn't happen.`);const o=[];let a=1/0,i=-1/0;const s=[],{graphs:l,name:c}=t,d=l.map((e=>(s.push([]),e.key))),u=r.getString(n);return e.forEach(((e,t)=>{const n=e.data;if(n&&e.name===u&&n.type===c&&d.every((e=>e in n))){o.push(t);for(let e=0;e<d.length;++e){const t=n[d[e]];s[e].push(t),t<a&&(a=t),t>i&&(i=t)}}})),{minNumber:a,maxNumber:i,numbersPerLine:s,markerIndexes:o}})),o=dt(r,li,l,((e,t,n)=>(0,bn.Z9)({time:e.markerIndexes.map((e=>n(e).start)),length:e.markerIndexes.length},t.start,t.end)));return{getCollectedCustomMarkerSamples:r,getCommittedRangeMarkerSampleRange:o}}(t,n)),W[r][n]}}}function Ad(e,t,n,r,o){const a=n.getNonInvertedCallNodeTable(),{prefix:i,subtreeRangeEnd:s,depth:l}=a,c=Array.from({length:r},(()=>({start:[],end:[],callNode:[],length:0})));if(0===e.length)return c;let d=-1,u=-1;const h=new Float64Array(r);for(let n=0;n<e.length;n++){const r=e.time[n],o=t[n]??-1;if(o!==d){for(;-1!==u&&(o<d||o>=s[d]);){const e=h[u],t=c[u],n=t.length++;t.start[n]=e,t.end[n]=r,t.callNode[n]=d,d=i[d],u--}if(-1!==o){const e=l[o];for(;u<e;)u++,h[u]=r}d=o}}const p=e.time[e.length-1]+o;for(;-1!==u;){const e=c[u],t=e.length++,n=h[u];e.start[t]=n,e.end[t]=p,e.callNode[t]=d,d=i[d],u--}return c}function bd(e,t,n){if(0===e.length)return[[]];const{func:r,nextSibling:o,subtreeRangeEnd:a,maxDepth:i}=e,s=t.name,l=Array.from({length:i+1},(()=>[])),c=new Int32Array(i+1);let d=0,u=0;e:for(;;){const e=l[u],t=e.length;for(let a=d;-1!==a;a=o[a]){const o=e.length;if(t===o)e.push(a);else{const i=r[a],l=n.getString(s[i]),c=(0,Rc.Yl)(e,l,(e=>n.getString(s[r[e]])),t,o);e.splice(c,0,a)}}let i=u,h=e,p=c[i],m=h[p];for(;a[m]===m+1;){for(p++,c[i]=p;p===h.length;){if(0===i)break e;i--,h=l[i],p=c[i]}m=h[p]}c[i]=p+1,d=m+1,u=i+1}return l}function Cd(e,t,n){const{total:r,self:o,rootTotalSummary:a}=n,{prefix:i}=t,s=[],l=new Float32Array(t.length),c=Math.abs;for(let t=0;t<e.length;t++){const n=e[t],d=[],u=[],h=[],p=[];let m=0,f=-1;for(let e=0;e<n.length;e++){const t=n[e],s=r[t];if(0===s)continue;const g=i[t];g!==f&&(m=l[g],f=g),l[t]=m;const A=c(s/a),b=c(o[t]/a),C=m+A;d.push(m),u.push(C),h.push(b),p.push(t),m=C}s[t]={start:d,end:u,selfRelative:h,callNode:p,length:p.length}}return s}const vd=dt(ei,(e=>e.rightClickedCallNode));var yd=n(6046);const wd={totalAddressHits:new Map,selfAddressHits:new Map};function Ed(e,t){if(null===e)return wd;const{selfAddress:n,stackAddresses:r}=e,o=new Map,a=new Map;for(let e=0;e<t.length;e++){const i=t.stack[e];if(null===i)continue;const s=t.weight?t.weight[e]:1,l=r[i];if(null!==l)for(const e of l){const t=o.get(e)??0;o.set(e,t+s)}const c=n[i];if(null!==c){const e=a.get(c)??0;a.set(c,e+s)}}return{totalAddressHits:o,selfAddressHits:a}}const kd=ct(lt,{maxSize:2});function xd(e,t,n){const r=dt(e.getThread,gi,((e,t)=>{const{time:n}=e.samples;return 0===n.length?null:{start:n[0],end:n[n.length-1]+t}})),o=kd((t=>e.getFilteredThread(t).stackTable),(t=>e.getFilteredThread(t).frameTable),bi,bn.xR),a=kd(o,bi,(t=>e.getFilteredThread(t).funcTable.length),((e,t,n)=>bn.wk(e.getNonInvertedCallNodeTable(),e.getStackIndexToNonInvertedCallNodeIndex(),t,n))),i=e=>Lo(e)?a(e):o(e),s=dt(e.getFilteredThread,xo,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o)=>null===o?null:(0,yd.jI)(e,t,n,r.indexForString(o)))),l=dt(e.getFilteredThread,Bo,(({nativeSymbols:e},t)=>null===t?null:e.address.findIndex(((n,r)=>n===t.address&&e.libIndex[r]===t.libIndex)))),c=dt(e.getFilteredThread,l,(({stackTable:e,frameTable:t,funcTable:n},r)=>null===r?null:function(e,t,n,r){const o=[],a=[];for(let n=0;n<e.length;n++){const i=e.frame[n],s=e.prefix[n],l=t.nativeSymbol[i];let c=null,d=null!==s?a[s]:null;l===r&&(c=t.address[i],-1!==c&&(null===d?d=new Set([c]):d.has(c)||(d=new Set(d),d.add(c)))),o.push(c),a.push(d)}return{selfAddress:o,stackAddresses:a}}(e,t,0,r))),d=dt(e.getViewOptions,Lo,((e,t)=>t?e.selectedInvertedCallNodePath:e.selectedNonInvertedCallNodePath)),u=dt(i,d,((e,t)=>e.getCallNodeIndexFromPath(t))),h=dt(e.getViewOptions,Lo,((e,t)=>t?e.expandedInvertedCallNodePaths:e.expandedNonInvertedCallNodePaths)),p=dt(i,h,((e,t)=>Array.from(t).map((t=>e.getCallNodeIndexFromPath(t))))),m=dt((t=>e.getPreviewFilteredCtssSamples(t).stack),(e=>i(e).getStackIndexToNonInvertedCallNodeIndex()),bn.WD),f=dt((t=>e.getFilteredCtssSamples(t).stack),(e=>i(e).getStackIndexToNonInvertedCallNodeIndex()),bn.WD),g=dt((t=>e.getFilteredThread(t).samples.stack),(e=>i(e).getStackIndexToNonInvertedCallNodeIndex()),bn.WD),A=dt((t=>e.getTabFilteredThread(t).samples.stack),(e=>i(e).getStackIndexToNonInvertedCallNodeIndex()),bn.WD),b=dt(g,A,i,u,((e,t,n,r)=>bn.st(n,e,t,r))),C=dt(g,i,bn.H7),v=dt(e.getFilteredCtssSamples,i,bn.Jn),y=dt(e.getUnfilteredCtssSamples,(e=>e.weightType||"samples")),w=dt(e.getPreviewFilteredCtssSamples,m,i,((e,t,n)=>function(e,t,n){const r=new Float64Array(n);for(let n=0;n<t.length;n++){const o=t[n];if(null!==o){const t=e.weight?e.weight[n]:1;r[o]+=t}}const o=Math.abs;let a=0;for(let e=0;e<n;e++)a+=o(r[e]);return{callNodeSelf:r,rootTotalSummary:a}}(e,t,n.getNonInvertedCallNodeTable().length))),E=dt(i,w,id),k=dt(i,w,sd),x=dt(e.getFilteredThread,i,Mi,E,y,ld),T=dt(s,e.getPreviewFilteredCtssSamples,yd.sZ),S=dt(c,e.getPreviewFilteredCtssSamples,Ed),B=dt(e.getPreviewFilteredCtssSamples,m,i,gi,((e,t,n,r)=>{const o=function(e,t,n,r){if("samples"!==e.weightType||e.weight)return null;const o=new Float64Array(n);let a=0;for(let n=0;n<e.length-1;n++){const r=t[n];if(null!==r){const t=e.time[n+1]-e.time[n];o[r]+=t,a+=t}}if(e.length>0){const n=t[e.length-1];if(null!==n){const e=r;o[n]+=e,a+=e}}return{callNodeSelf:o,rootTotalSummary:a}}(e,t,n.getNonInvertedCallNodeTable().length,r);return null===o?null:id(n,o)})),I=dt(u,i,B,((e,t,n)=>null===e||null===n?null:function(e,t,n){switch(n.type){case"NON_INVERTED":{const{timings:t}=n;return{self:t.self[e],total:t.total[e]}}case"INVERTED":{const r=(0,ut.Nn)(t.asInverted()),{timings:o}=n,{callNodeSelf:a,totalPerRootFunc:i}=o;if(r.isRoot(e)){const t=i[e];return{self:t,total:t}}const{total:s}=od(e,r,a);return{self:0,total:s}}default:throw(0,ut.lC)(n.type)}}(e,t,n))),_=dt(e.getFilteredCtssSamples,f,i,v,gi,Ad),N=dt((e=>i(e).getNonInvertedCallNodeTable()),(t=>e.getFilteredThread(t).funcTable),(t=>e.getFilteredThread(t).stringTable),bd),P=dt(N,(e=>i(e).getNonInvertedCallNodeTable()),k,Cd),M=dt(vd,i,((e,t)=>null!==e&&n===e.threadsKey?t.getCallNodeIndexFromPath(e.callNodePath):null));return{unfilteredSamplesRange:r,getWeightTypeForCallTree:y,getCallNodeInfo:i,getSourceViewStackLineInfo:s,getAssemblyViewNativeSymbolIndex:l,getAssemblyViewStackAddressInfo:c,getSelectedCallNodePath:d,getSelectedCallNodeIndex:u,getExpandedCallNodePaths:h,getExpandedCallNodeIndexes:p,getSampleIndexToNonInvertedCallNodeIndexForFilteredThread:g,getSamplesSelectedStatesInFilteredThread:b,getTreeOrderComparatorInFilteredThread:C,getCallTree:x,getSourceViewLineTimings:T,getAssemblyViewAddressTimings:S,getTracedTiming:B,getTracedSelfAndTotalForSelectedCallNode:I,getStackTimingByDepth:_,getFilteredCallNodeMaxDepthPlusOne:v,getFlameGraphTiming:P,getRightClickedCallNodeIndex:M}}const Td={},Sd=Lt()((e=>{const t=new Set((""+e).split(",").map((e=>+e)));return Nd(t,e)}),{limit:5}),Bd=e=>{if(e in Td)return Td[e];const t=Nd(new Set([e]));return Td[e]=t,t},Id=e=>{let t=null,n=null;return"number"==typeof e?t=e:n=e,null!==t?Bd(t):(n=(0,ut.Nn)(n),_d(bn.X(n),n))},_d=(e,t=new Set((""+e).split(",").map((e=>+e))))=>1===t.size?Bd((0,ut.Nn)((0,ut.cF)(t))):Sd(e);function Nd(e,t=bn.X(e)){let n=ud(e,t);var r;return n={...n,...gd(n,0,t)},n={...n,...hd(n,0,t)},n={...n,...xd(n,0,t)},n={...n,...(r=n,{getUsefulTabs:dt(r.getRawThread,r.getIsNetworkChartEmptyInFullRange,r.getJsTracerTable,((e,t,n)=>{if("comparison"===e.processType)return["calltree"];let r=Sr;t&&(r=r.filter((e=>"network-chart"!==e))),n||(r=r.filter((e=>"js-tracer"!==e)));const{samples:o,jsAllocations:a,nativeAllocations:i}=e;return[o,a,i].some((t=>(0,bn.aM)(t?.stack,e)))||(r=r.filter((e=>!Br.includes(e)))),r})),getCombinedTimingRows:dt(r.getUserTimingMarkerTiming,r.getStackTimingByDepth,((e,t)=>[...e,...t]))})},n}const Pd=(()=>{const e=Id(0),t={};for(const n in e)t[n]=e=>Id(Uo(e))[n](e);return t})(),Md=(()=>{const e=dt(Pd.getSelectedCallNodePath,Pd.getFilteredThread,((e,{stringTable:t,funcTable:n})=>{if(!e.length)return"";const r=bn.tp(e);return t.getString(n.name[r])})),t=dt(Pd.getSelectedCallNodePath,Pd.getFilteredThread,((e,{funcTable:t})=>{if(!e.length)return!1;const n=bn.tp(e);return t.isJS[n]})),n=dt(Pd.getSelectedCallNodePath,Pd.getFilteredThread,((e,{stringTable:t,funcTable:n,resourceTable:r})=>e.length?bn.Bu(bn.tp(e),n,r,t):"")),r=dt(Pd.getSelectedCallNodePath,Pd.getCallNodeInfo,gi,Pd.getThread,Pd.getPreviewFilteredCtssSampleIndexOffset,Mi,Pd.getPreviewFilteredCtssSamples,Pd.getUnfilteredCtssSamples,bn._X),o=dt(Pd.getFilteredThread,xo,Pd.getCallNodeInfo,Pd.getSelectedCallNodeIndex,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o,a,i)=>{if(null===o||null===i)return null;const s=a.funcForNode(i),l=n.fileName[s];return null===l||r.getString(l)!==o?null:(0,yd.ut)(e,t,i,a)})),a=dt(o,Pd.getPreviewFilteredCtssSamples,yd.sZ),i=dt(Pd.getFilteredThread,Pd.getAssemblyViewNativeSymbolIndex,Pd.getCallNodeInfo,Pd.getSelectedCallNodeIndex,(({stackTable:e,frameTable:t},n,r,o)=>null===n||null===o?null:function(e,t,n,r,o){const a=r.asInverted();return null!==a?function(e,t,n,r,o){const a=r.depthForNode(n),[i,s]=r.getSuffixOrderIndexRangeForCallNode(n),l=r.isRoot(n),c=r.getStackIndexToNonInvertedCallNodeIndex(),d=e.prefix,u=r.getSuffixOrderIndexes(),h=[],p=[];for(let n=0;n<e.length;n++){let r=null,m=null;const f=(0,bn.Nv)(n,i,s,u,a,c,d);if(null!==f){const n=e.frame[f];if(t.nativeSymbol[n]===o){const e=t.address[n];-1!==e&&(m=new Set([e]),l&&(r=e))}}h.push(r),p.push(m)}return{selfAddress:h,stackAddresses:p}}(e,t,n,a,o):function(e,t,n,r,o){const a=r.getStackIndexToNonInvertedCallNodeIndex(),i=[],s=[];for(let r=0;r<e.length;r++){let l=null,c=null;const d=e.frame[r];if(a[r]===n&&t.nativeSymbol[d]===o)l=t.address[d],-1!==l&&(c=new Set([l]));else{const t=e.prefix[r];c=null!==t?s[t]:null}i.push(l),s.push(c)}return{selfAddress:i,stackAddresses:s}}(e,t,n,r,o)}(e,t,o,r,n)));return{getName:e,getIsJS:t,getLib:n,getTimingsForSidebar:r,getSourceViewStackLineInfo:o,getSourceViewLineTimings:a,getAssemblyViewStackAddressInfo:i,getAssemblyViewAddressTimings:dt(i,Pd.getPreviewFilteredCtssSamples,Ed)}})();var Fd=n(3276),Rd=n.n(Fd);function Dd(e){switch(e.meta.updateChannel){case"esr":case"release":case"beta":return!0;default:return!1}}function Ld(e){return e.markers.length>0||e.samples.stack.some((e=>null!==e))}const Od=e=>e.publish,Ud=e=>Od(e).checkedSharingOptions,zd=dt(fi,ni,((e,t)=>{const{startTime:n,product:r}=e.meta,o=e=>e<10?`0${e}`:`${e}`,a=new Date(n+t.start);return`${r} ${o(a.getFullYear())}-${o(a.getMonth()+1)}-${o(a.getDate())} ${o(a.getHours())}.${o(a.getMinutes())} profile.json`})),Gd=dt(Ud,fi,li,$o,Ko,Vi,qi,$i,Bs,No,Li,((e,t,n,r,o,a,i,s,l,c,d)=>{let u=!0;for(const t in e)("includePreferenceValues"!==t||s)&&("includePrivateBrowsingData"!==t||l)&&(u=u&&e[t]);if(u)return null;const h=new Set,p=new Set;if("full"===c.type&&!e.includeHiddenThreads){for(const e of r){const t=a[e];if("process"===t.type){null!==t.mainThreadIndex&&h.add(t.mainThreadIndex);const e=(0,ut.Nn)(i.get(t.pid),"Expected to be able to get a local track by PID.");for(const t of e)"thread"===t.type&&h.add(t.threadIndex)}}for(const[e,t]of o){const n=(0,ut.Nn)(i.get(e),"Expected to be able to get a local track by PID");for(const e of t){const t=n[e];"thread"===t.type?h.add(t.threadIndex):"number"==typeof t.counterIndex&&p.add(t.counterIndex)}}}const m="active-tab"!==c.type||e.includeAllTabs?null:d;return{shouldFilterToCommittedRange:e.includeFullTimeRange?null:n,shouldRemoveUrls:!e.includeUrls,shouldRemoveThreadsWithScreenshots:new Set(e.includeScreenshots?[]:t.threads.map(((e,t)=>t))),shouldRemoveThreads:h,shouldRemoveCounters:p,shouldRemoveExtensions:!e.includeExtension,shouldRemovePreferenceValues:!e.includePreferenceValues,shouldRemovePrivateBrowsingData:!e.includePrivateBrowsingData,shouldRemoveTabsExceptTabID:m}}));let Wd=null,Hd=null;const Vd=dt(fi,(function(e){const t=Ci(e);return Wd===t&&null!==Hd||(Wd=t,Hd=Ci(e).map(((t,n)=>Id(n).getDerivedMarkerInfo(e)))),Hd}),Gd,Di,(function(e,t,n,r){if(null===n)return{profile:e,isSanitized:!1,oldThreadIndexToNew:null,committedRanges:null};const o=n,a=new Map,i=new Set,s=new Set;let l=e.pages;if(l){if(o.shouldRemovePrivateBrowsingData||null!==o.shouldRemoveTabsExceptTabID){l=l.slice();for(let e=l.length-1;e>=0;e--){const t=l[e];let n=!1;o.shouldRemovePrivateBrowsingData&&t.isPrivateBrowsing&&(i.add(t.innerWindowID),n=!0),null!==o.shouldRemoveTabsExceptTabID&&(t.tabID===o.shouldRemoveTabsExceptTabID?s.add(t.innerWindowID):n=!0),n&&l.splice(e,1)}}o.shouldRemoveUrls&&(l=l.map(((e,t)=>({...e,url:kn(e.url,`<Page #${t}>`),favicon:null}))))}let c=!1;const d={...e,meta:{...e.meta,extensions:o.shouldRemoveExtensions?(0,vn.Ie)():e.meta.extensions},pages:l,threads:e.threads.reduce(((e,n,l)=>{const c=function(e,t,n,r,o,a,i){if(r.shouldRemoveThreads.has(n))return null;if(r.shouldRemovePrivateBrowsingData&&e.isPrivateBrowsing)return null;const s=e.stringArray.slice();let l=(0,vn.SQ)(e.markers);const c=new Set;if(r.shouldRemoveUrls||r.shouldRemovePreferenceValues||r.shouldRemoveExtensions||r.shouldRemoveThreadsWithScreenshots.size>0||r.shouldRemovePrivateBrowsingData||null!==r.shouldRemoveTabsExceptTabID)for(let e=0;e<l.length;e++){let t=l.data[e];if(r.shouldRemovePreferenceValues&&t&&"PreferenceRead"===t.type&&(l.data[e]=(d=t,{...d,prefValue:""})),t&&r.shouldRemoveUrls){const n=Pn(i,t);if(n&&(t=l.data[e]=sr(n,t)),"Network"===t.type){l.data[e]=or(t);const n=l.name[e];s[n]=s[n].replace(/:.*/,"")}"Text"===t.type&&(l.data[e]=ar(t),t=l.data[e])}if(r.shouldRemoveExtensions&&t&&"Text"===t.type){const n=s[l.name[e]];l.data[e]=ir(n,t)}if(r.shouldRemoveThreadsWithScreenshots.has(n)&&t&&"CompositorScreenshot"===t.type){const n=t.url;void 0!==n&&(s[n]=""),c.add(e)}r.shouldRemovePrivateBrowsingData&&(t&&"Network"===t.type&&t.isPrivateBrowsing&&c.add(e),t&&t.innerWindowID&&o.has(t.innerWindowID)&&c.add(e)),null!==r.shouldRemoveTabsExceptTabID&&(t?t.innerWindowID&&a.has(t.innerWindowID)||"CompositorScreenshot"!==t.type&&c.add(e):c.add(e))}var d;let u;if(c.size>0||null!==r.shouldFilterToCommittedRange)if(l=function(e,t,n,r){const o=(0,vn.qc)(),a=[];e.threadId&&(o.threadId=a);const i=new Map,s=t=>{n.has(t)||(i.set(t,o.length),o.name.push(e.name[t]),o.startTime.push(e.startTime[t]),o.endTime.push(e.endTime[t]),o.phase.push(e.phase[t]),o.data.push(e.data[t]),o.category.push(e.category[t]),e.threadId&&a.push(e.threadId[t]),o.length++)};if(null===r)for(let t=0;t<e.length;t++)s(t);else{const{start:e,end:n}=r,o=Kn(0,t,e,n);for(const e of o)s(e)}return{rawMarkerTable:o,oldMarkerIndexToNew:i}}(l,t,c,r.shouldFilterToCommittedRange).rawMarkerTable,null!==r.shouldFilterToCommittedRange){const{start:t,end:n}=r.shouldFilterToCommittedRange;if(e.registerTime>n||e.unregisterTime&&e.unregisterTime<t)return null;u=(0,bn.gv)(e,t,n)}else u={...e};else u={...e};if(r.shouldRemoveUrls)for(let e=0;e<s.length;e++)s[e]=kn(s[e]);if(r.shouldRemoveUrls&&u["eTLD+1"]&&delete u["eTLD+1"],o.size>0||null!==r.shouldRemoveTabsExceptTabID){const e=new Map,t=new Set,{frameTable:n,funcTable:i,resourceTable:l,stackTable:c,samples:d}=u;for(let i=0;i<n.length;i++){const s=n.innerWindowID[i],l=n.func[i],c=s&&o.has(s),d=s&&null!==r.shouldRemoveTabsExceptTabID&&!a.has(s);if(c||d){let t=e.get(l);t||(t=[],e.set(l,t)),t.push(i)}else t.add(l)}if(e.size){const r=new Set,o=u.funcTable=(0,vn.ES)(i),a=u.frameTable={...n,innerWindowID:n.innerWindowID.slice(),func:n.func.slice(),line:n.line.slice(),column:n.column.slice()};for(const[n,l]of e.entries()){if(t.has(n)){const e=o.length;o.name.push(s.length),s.push(`<Func #${e}>`),o.isJS.push(i.isJS[n]),o.relevantForJS.push(i.isJS[n]),o.resource.push(-1),o.fileName.push(null),o.lineNumber.push(null),o.columnNumber.push(null),o.length++,l.forEach((t=>a.func[t]=e))}else o.name[n]=s.length,s.push(`<Func #${n}>`),o.fileName[n]=null,o.resource[n]>=0&&r.add(o.resource[n]),o.resource[n]=-1,o.lineNumber[n]=null,o.columnNumber[n]=null;l.forEach((e=>{a.line[e]=null,a.column[e]=null,a.innerWindowID[e]=null}))}if(r.size){const e=u.resourceTable={...l,lib:l.lib.slice(),name:l.name.slice(),host:l.host.slice()},t=new Set(o.resource);for(const n of r)t.has(n)||(e.name[n]=s.length,s.push(`<Resource #${n}>`),e.lib[n]=null,e.host[n]=null)}}const h=u.samples={...d,stack:d.stack.slice()},p=new Uint8Array(c.length),m=1,f=2;for(let e=0;e<c.length;e++){const t=c.prefix[e];if(null!==t&&(p[e]=p[t],p[e]===f))continue;const i=c.frame[e],s=n.innerWindowID[i];if(!s)continue;const l=o.has(s),d=null!==r.shouldRemoveTabsExceptTabID&&a.has(s);l?p[e]=f:d&&(p[e]=m)}for(let e=0;e<d.length;e++){const t=d.stack[e];if(null===t)continue;const n=p[t];n!==f&&(null===r.shouldRemoveTabsExceptTabID||n===m)||(h.stack[e]=null)}}return u.stringArray=s,u.markers=l,Ld(u)||!Ld(e)?u:null}(n,t[l],l,o,i,s,r);return null!==c&&(a.set(l,e.length),e.push(c)),e}),[]),counters:e.counters?e.counters.reduce(((e,t,n)=>{if(o.shouldRemoveCounters.has(n))return c=!0,e;const r=function(e,t,n){const r=n.get(e.mainThreadIndex);if(void 0===r)return null;let o=e;if(null!==t.shouldFilterToCommittedRange){const{start:e,end:n}=t.shouldFilterToCommittedRange;o=(0,bn.Nf)(o,e,n)}return{...o,mainThreadIndex:r}}(t,o,a);return null!==r&&e.push(r),e}),[]):void 0,profilerOverhead:e.profilerOverhead?e.profilerOverhead.reduce(((e,t)=>{const n=a.get(t.mainThreadIndex);return void 0!==n&&e.push({...t,mainThreadIndex:n}),e}),[]):void 0};if(null!==o.shouldFilterToCommittedRange){const{start:e,end:t}=o.shouldFilterToCommittedRange;d.meta.profilingStartTime=e,d.meta.profilingEndTime=t}return{profile:d,isSanitized:!0,committedRanges:o.shouldFilterToCommittedRange?[]:null,oldThreadIndexToNew:a.size!==e.threads.length||c?a:null}})),jd=dt(Vd,(({profile:e})=>Promise.resolve().then((()=>function(e){const t=new ic("zee-worker");lc(t);const n="string"==typeof e?(new TextEncoder).encode(e):e;return new Promise((function(e,r){t.postMessage({request:"compress",data:n,compressionLevel:undefined,callbackID:sc.length},[n.buffer]),sc.push({success:e,error:r})}))}(function(e){return JSON.stringify(e)}(e)))))),$d=e=>Od(e).upload,Kd=e=>$d(e).phase,Yd=e=>$d(e).generation,qd=dt($d,(({uploadProgress:e})=>Rd()(e,.1,.95))),Zd=e=>$d(e).error,Xd=dt(qd,(e=>Gt(e,0,0,"percent"))),Jd=e=>$d(e).abortFunction,Qd=dt(fi,Dd),eu=e=>Od(e).prePublishedState,tu=e=>Boolean(eu(e)),nu=e=>Od(e).isHidingStaleProfile,ru=e=>Od(e).hasSanitizedProfile,ou=dt(Ni,ki,Ci,((e,t,n)=>void 0!==e&&(t.configuration&&t.configuration.features.includes("cpu")||n.some((e=>void 0!==e.samples.threadCPUDelta))))),au=dt(Ei,(e=>null!==e&&e.some((e=>"CPU"===e.category)))),iu=e=>e.code.sourceCodeCache,su=dt(iu,xo,((e,t)=>t?e.get(t):void 0)),lu=e=>e.code.assemblyCodeCache,cu=dt(Bo,mi,((e,t)=>null===t||null===e?null:t.libs[e.libIndex])),du=dt(lu,Bo,cu,((e,t,n)=>{if(null===t||null===n)return;const{debugName:r,breakpadId:o}=n,a=`${r}/${o}/${t.address.toString(16)}`;return e.get(a)})),uu=e=>e.icons,hu=(e,t)=>null===t?"":uu(e).get(t)??"",pu=e=>e.l10n,mu=e=>pu(e).localization,fu=e=>pu(e).primaryLocale,gu=e=>pu(e).direction,Au=e=>pu(e).requestedLocales,bu=e=>pu(e).pseudoStrategy,Cu={app:s,profile:a,urlState:o,icons:u,publish:l,zippedProfiles:i,selectedThread:Pd,selectedNode:Md,l10n:h,cpu:c,code:d};function vu(e,t){const n=Id(e),r=n.getActiveTabFilteredThread(t);for(const e of r.samples.stack)if(null!==e)return!1;return!(n.getActiveTabFilteredMarkerIndexesWithoutGlobals(t).length>0)}function yu(e,t){const{frameTable:n,markers:r}=e;for(let e=0;e<n.length;e++){const r=n.innerWindowID[e];if(null!==r&&t.has(r))return!0}for(let e=0;e<r.length;e++){const n=r.data[e];if(n&&n.innerWindowID&&"Network"!==n.type&&t.has(n.innerWindowID))return!0}return!1}function wu(e,t){if(e.isMainThread){let n=(0,ut.Nn)(e.frameTable.innerWindowID).find((e=>e&&0!==e&&t.has(e)));if(null==n){const r=e.markers.data.find((e=>{if(e&&e.innerWindowID&&0!==e.innerWindowID&&"Network"!==e.type){const n=t.get(e.innerWindowID);return n&&"about:blank"!==n.url&&"about:newtab"!==n.url}return!1}));r&&r.innerWindowID&&(n=r.innerWindowID)}return null==n?null:(0,ut.Nn)(t.get(n)).url}return e.name}class Eu{constructor(e){this._ctx=void 0,this._previousFillColor=void 0,this._ctx=e,this._previousFillColor=""}set(e){e!==this._previousFillColor&&(this._ctx.fillStyle=e,this._previousFillColor=e)}}function ku(e,t,n){let r=n.start,o=n.end;if(null===o){const a=(t-e)/40;r=n.start-a,o=n.start+a}return{start:r,end:o}}function xu(e){return{ctrlOrMeta:(e.ctrlKey||e.metaKey)&&!e.altKey,shift:e.shiftKey&&!e.altKey}}function Tu(e){let t,n=-1/0;for(const[r,o]of e)o>n&&(n=o,t=r);return t}const Su=(e,t)=>t.some((t=>e instanceof t));let Bu,Iu;const _u=new WeakMap,Nu=new WeakMap,Pu=new WeakMap;let Mu={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return _u.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Du(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Fu(e){Mu=e(Mu)}function Ru(e){return"function"==typeof e?(t=e,(Iu||(Iu=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Lu(this),e),Du(this.request)}:function(...e){return Du(t.apply(Lu(this),e))}):(e instanceof IDBTransaction&&function(e){if(_u.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{t(),r()},a=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)}));_u.set(e,t)}(e),Su(e,Bu||(Bu=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Mu):e);var t}function Du(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{t(Du(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener("success",o),e.addEventListener("error",a)}));return Pu.set(t,e),t}(e);if(Nu.has(e))return Nu.get(e);const t=Ru(e);return t!==e&&(Nu.set(e,t),Pu.set(t,e)),t}const Lu=e=>Pu.get(e),Ou=["get","getKey","getAll","getAllKeys","count"],Uu=["put","add","delete","clear"],zu=new Map;function Gu(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(zu.get(t))return zu.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=Uu.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!Ou.includes(n))return;const a=async function(e,...t){const a=this.transaction(e,o?"readwrite":"readonly");let i=a.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),o&&a.done]))[0]};return zu.set(t,a),a}Fu((e=>({...e,get:(t,n,r)=>Gu(t,n)||e.get(t,n,r),has:(t,n)=>!!Gu(t,n)||e.has(t,n)})));const Wu=["continue","continuePrimaryKey","advance"],Hu={},Vu=new WeakMap,ju=new WeakMap,$u={get(e,t){if(!Wu.includes(t))return e[t];let n=Hu[t];return n||(n=Hu[t]=function(...e){Vu.set(this,ju.get(this)[t](...e))}),n}};async function*Ku(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,$u);for(ju.set(n,t),Pu.set(n,Lu(t));t;)yield n,t=await(Vu.get(n)||t.continue()),Vu.delete(n)}function Yu(e,t){return t===Symbol.asyncIterator&&Su(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Su(e,[IDBIndex,IDBObjectStore])}Fu((e=>({...e,get:(t,n,r)=>Yu(t,n)?Ku:e.get(t,n,r),has:(t,n)=>Yu(t,n)||e.has(t,n)})));const qu="published-profiles-store",Zu="published-profiles",Xu=2;async function Ju(){if(!window.indexedDB)throw new Error("Could not find indexedDB on the window object.");let e;try{e=await async function(){return await function(e,t,{blocked:n,upgrade:r,blocking:o,terminated:a}={}){const i=indexedDB.open(e,t),s=Du(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(Du(i.result),e.oldVersion,e.newVersion,Du(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{a&&e.addEventListener("close",(()=>a())),o&&e.addEventListener("versionchange",(e=>o(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}(qu,Xu,{upgrade(e,t,n,r){switch(t){case 0:e.createObjectStore(Zu,{keyPath:"profileToken"}).createIndex("originHostname","originHostname");case 1:(0,ut.Nn)(r.store).createIndex("publishedDate","publishedDate")}}})}()}catch(e){if("VersionError"===e.name)throw window.deleteDB=()=>function(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),Du(n).then((()=>{}))}(qu),new Error(_n.dx`
|
65
|
+
We tried to open an existing published profiles store database with a
|
66
|
+
smaller version than the current one. We can't do that with IndexedDB.
|
67
|
+
The only way to recover is to delete the database and create a new one,
|
68
|
+
but we don't want to do this automatically.
|
69
|
+
Until this is fixed we won't be able to store newly published profiles
|
70
|
+
or retrieve previously published profiles.
|
71
|
+
|
72
|
+
If you want to delete the database, you can do so by running 'deleteDB()'
|
73
|
+
in the console, or using the developer tools.
|
74
|
+
`);throw e}return e}async function Qu(e){const t=await Ju();await t.put(Zu,e)}async function eh(e){if(!e)return null;const t=await Ju();return await t.get(Zu,e)||null}function th(e,t,n={source:"auto"},r){return(o,a)=>{if(r)for(let e=0;e<t.length;e++)if(t[e]!==r[e])throw new Error(_n.TN`
|
75
|
+
The optional expanded call node path provided to the changeSelectedCallNode
|
76
|
+
must contain the selected call node path.
|
77
|
+
`);o({type:"CHANGE_SELECTED_CALL_NODE",isInverted:Lo(a()),selectedCallNodePath:t,optionalExpandedToCallNodePath:r,threadsKey:e,context:n})}}function nh(e,t){return{type:"CHANGE_RIGHT_CLICKED_CALL_NODE",threadsKey:e,callNodePath:t}}function rh(e,t){return(n,r)=>{const o=_d(e),a=o.getSampleIndexToNonInvertedCallNodeIndexForFilteredThread(r());if(null===t||t<0||t>=a.length)return void n(th(e,[]));const i=a[t];if(null===i)return void n(th(e,[]));const s=o.getCallNodeInfo(r()),l=s.getNonInvertedCallNodeTable(),c=[];let d=i;for(;-1!==d;)c.push(l.func[d]),d=l.prefix[d];s.isInverted()?n(th(e,c.slice(0,1),{source:"auto"},c)):n(th(e,c.reverse()))}}function oh(e){return{type:"CHANGE_SELECTED_THREAD",selectedThreadIndexes:e}}function ah(e,t){switch(t.type){case"global":{const n=Ki(e,t);switch(n.type){case"process":{const{mainThreadIndex:r,pid:o}=n;return null===r?null:{type:"global",trackReference:t,threadIndex:r,relatedThreadIndex:r,globalTrackIndex:t.trackIndex,pid:o,localTrackIndex:null,relatedTab:"network-chart"===Do(e)?Xs(e):null}}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":return null;default:throw(0,ut.lC)(n,"Unhandled GlobalTrack type.")}}case"local":{const n=Xi(e,t),{globalTrackIndex:r}=Yi(e,t.pid),o={type:"local",trackReference:t,pid:t.pid,globalTrackIndex:r,localTrackIndex:t.trackIndex};switch(n.type){case"thread":return{...o,threadIndex:n.threadIndex,relatedThreadIndex:n.threadIndex,relatedTab:"network-chart"===Do(e)?Xs(e):null};case"network":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:"network-chart"};case"marker":case"ipc":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:"marker-chart"};case"event-delay":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:null};case"memory":case"bandwidth":case"process-cpu":case"power":{const t=Ui(n.counterIndex).getCounter(e);return{...o,threadIndex:null,relatedThreadIndex:t.mainThreadIndex,relatedTab:null}}default:throw(0,ut.lC)(n,"Unhandled LocalTrack type.")}}default:throw(0,ut.lC)(t,"Unhandled TrackReference type")}}function ih(e,t){const n=new Set([e.relatedThreadIndex]);return{type:"SELECT_TRACK",selectedThreadIndexes:n,selectedTab:t,lastNonShiftClickInformation:{clickedTrack:e.trackReference,selection:n}}}function sh(e,t={}){return(n,r)=>{const o=ah(r(),e);if(!o)return;let a=o.relatedTab??Do(r());const i=Id(o.relatedThreadIndex).getUsefulTabs(r());i.includes(a)||(a=i[0]),t.shift?n(function(e,t){return(n,r)=>{const o=yi(r());let a=o&&o.clickedTrack;if(!a){const e=Uo(r()),t=(0,ut.cF)(e);void 0!==t&&(a=function(e,t,n){for(let n=0;n<t.length;n++){const r=t[n];if("process"===r.type&&r.mainThreadIndex===e)return{type:"global",trackIndex:n}}for(const[t,r]of n)for(let n=0;n<r.length;n++){const o=r[n];if("thread"===o.type&&o.threadIndex===e)return{type:"local",pid:t,trackIndex:n}}return null}(t,Vi(r()),qi(r())))}if(a){const i=ah(r(),a);if(i){const a=function(e,t,n){const r=Vi(e),o=jo(e),a=$o(e),i=[];(function(e,t,n){if(t.globalTrackIndex===n.globalTrackIndex){const r=Jo(e,t.pid);return r.indexOf(t.localTrackIndex)-r.indexOf(n.localTrackIndex)}const r=jo(e);return r.indexOf(t.globalTrackIndex)-r.indexOf(n.globalTrackIndex)})(e,t,n)>0&&([n,t]=[t,n]);const s=o.indexOf(t.globalTrackIndex),l=o.indexOf(n.globalTrackIndex);for(let c=s;c<=l;c++){const d=o[c];if(a.has(d))continue;const u=r[d];if("process"!==u.type)continue;const h=Jo(e,u.pid),p=Xo(e,u.pid),m=Zi(e,u.pid);let f=!0,g=0,A=h.length-1;c===s&&"local"===t.type&&(f=!1,g=h.indexOf(t.localTrackIndex)),c===l&&(A="global"===n.type?-1:h.indexOf(n.localTrackIndex)),f&&null!==u.mainThreadIndex&&i.push(u.mainThreadIndex);for(let e=g;e<=A;e++){const t=h[e];if(p.has(t))continue;const n=m[t];"thread"===n.type&&i.push(n.threadIndex)}}return i.push(t.relatedThreadIndex),i.push(n.relatedThreadIndex),i}(r(),i,e);return void n({type:"SELECT_TRACK",selectedThreadIndexes:new Set([...a,...o?o.selection:[]]),selectedTab:t,lastNonShiftClickInformation:o})}}n(ih(e,t))}}(o,a)):t.ctrlOrMeta?n(function(e,t){return(n,r)=>{const o=new Set(Uo(r()));if(o.has(e.relatedThreadIndex)){if(o.delete(e.relatedThreadIndex),0===o.size)return}else o.add(e.relatedThreadIndex);n({type:"SELECT_TRACK",selectedThreadIndexes:o,selectedTab:t,lastNonShiftClickInformation:{clickedTrack:e.trackReference,selection:o}})}}(o,a)):n(ih(o,a))}}function lh(e){return(t,n)=>{const r=Vi(n()),o=qi(n()),a=Ci(n()),i=function(e,t,n,r){for(let n=0;n<t.length;n++){const o=t[n];if("process"===o.type&&null!==o.mainThreadIndex&&r[o.mainThreadIndex].tid===e)return{type:"global",trackIndex:n}}for(const[t,o]of n)for(let n=0;n<o.length;n++){const a=o[n];if("thread"===a.type&&r[a.threadIndex].tid===e)return{type:"local",pid:t,trackIndex:n}}return null}(e,r,o,a);if(null!==i){switch(i.type){case"global":t(Ch(i.trackIndex));break;case"local":{const{globalTrackIndex:e}=Yi(n(),i.pid);t(Ch(e)),t(Sh(i.pid,i.trackIndex));break}default:throw(0,ut.lC)(i.type)}t(sh(i))}else console.warn(`Failed to find a track with tid: ${e}`)}}function ch(e){return(t,n)=>{const r=Do(n()),o=Uo(n());let a,i=r;switch(e.type){case"global":{const t=ds(n(),e);switch(t.type){case"tab":a=new Set([...t.threadIndexes]),"network-chart"===i&&(i=Xs(n()));break;case"screenshots":return;default:throw(0,ut.lC)(t,"Unhandled ActiveTabGlobalTrack type.")}break}case"resource":{const t=us(n(),e);switch(t.type){case"sub-frame":case"thread":a=new Set([t.threadIndex]),"network-chart"===i&&(i=Xs(n()));break;default:throw(0,ut.lC)(t,"Unhandled ActiveTabResourceTrack type.")}break}default:throw(0,ut.lC)(e,"Unhandled TrackReference type")}const s=Id(a).getUsefulTabs(n());s.includes(i)||(i=s[0]),r===i&&o===a||t({type:"SELECT_TRACK",selectedThreadIndexes:a,selectedTab:i,lastNonShiftClickInformation:null})}}function dh(){return{type:"FOCUS_CALL_TREE"}}function uh(e){return{type:"CHANGE_RIGHT_CLICKED_TRACK",trackReference:e}}function hh(e){return{type:"SET_CONTEXT_MENU_VISIBILITY",isVisible:e}}function ph(e){return(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"change global track order"}),{type:"CHANGE_GLOBAL_TRACK_ORDER",globalTrackOrder:e}}function mh(e){return(t,n)=>{const r=$o(n());if(r.has(e))return;const o=Vi(n());if(o.length===r.size+1)return;const a=o[e],i=new Set(Uo(n()));fh(n,i,a,e),0!==i.size&&((0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"hide global track"}),t({type:"HIDE_GLOBAL_TRACK",trackIndex:e,pid:"process"===a.type?a.pid:null,selectedThreadIndexes:i}))}}function fh(e,t,n,r){if("process"===n.type){if(null!==n.mainThreadIndex&&t.delete(n.mainThreadIndex),0!==t.size)for(const r of Zi(e(),n.pid))"thread"===r.type&&t.delete(r.threadIndex);if(0===t.size){const n=xh(e,new Set([r]));if(null===n)return;t.add(n)}}}function gh(){return e=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"show all tracks"}),e({type:"SHOW_ALL_TRACKS"})}}function Ah(e,t){return(n,r)=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"show provided tracks"});const o=Vi(r());for(const[n,r]of o.entries())r.pid&&t.has(r.pid)&&e.add(n);n({type:"SHOW_PROVIDED_TRACKS",globalTracksToShow:e,localTracksByPidToShow:t})}}function bh(e,t){return(n,r)=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"hide provided tracks"});const o=$o(r()),a=Vi(r());if(!(o.size+e.size-fa(o,e).size<a.length))return void console.warn("No other visible global track left after hiding");const i=new Set(Uo(r()));for(const t of e)fh(r,i,a[t],t);for(const[e,o]of t){const t=Zi(r(),e),a=Xo(r(),e);for(const e of o){const n=t[e];"thread"===n.type&&i.delete(n.threadIndex)}if(new Set([...a,...o]).size===t.length){const{globalTrack:t,globalTrackIndex:o}=Yi(r(),e);null===t.mainThreadIndex&&n(mh(o))}}if(0===i.size){const n=xh(r,e,t);null!==n&&i.add(n)}0!==i.size&&n({type:"HIDE_PROVIDED_TRACKS",globalTracksToHide:e,localTracksByPidToHide:t,selectedThreadIndexes:i})}}function Ch(e){return t=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"show global track"}),t({type:"SHOW_GLOBAL_TRACK",trackIndex:e})}}function vh(e,t){return n=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"show global track including local tracks"}),n({type:"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS",trackIndex:e,pid:t})}}function yh(e){return(t,n)=>{const r=Vi(n())[e],o=jo(n());if("process"!==r.type)return;const a=Uo(n()),i=Zi(n(),r.pid),s=new Set;null!==r.mainThreadIndex&&a.has(r.mainThreadIndex)&&s.add(r.mainThreadIndex);for(const e of i)void 0!==e.threadIndex&&a.has(e.threadIndex)&&s.add(e.threadIndex);if(0===s.size){if(null===r.mainThreadIndex){for(const e of i)if("thread"===e.type){s.add(e.threadIndex);break}}else s.add(r.mainThreadIndex);if(0===s.size)return}(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate process"}),t({type:"ISOLATE_PROCESS",hiddenGlobalTracks:new Set(o.filter((t=>t!==e))),isolatedTrackIndex:e,selectedThreadIndexes:s})}}function wh(e){return(t,n)=>{const r=Vi(n()),o=r[e];if("screenshots"!==o.type)return;if(null===o.threadIndex)return;const a=new Set($o(n()));for(let t=0;t<r.length;t++)"screenshots"===r[t].type&&t!==e&&a.add(t);(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate screenshot track"}),t({type:"ISOLATE_SCREENSHOT_TRACK",hiddenGlobalTracks:a})}}function Eh(e){return(t,n)=>{const r=Vi(n())[e],o=jo(n());if("process"!==r.type)return;const a=r.mainThreadIndex;null!==a&&((0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate process main thread"}),t({type:"ISOLATE_PROCESS_MAIN_THREAD",pid:r.pid,hiddenGlobalTracks:new Set(o.filter((t=>t!==e))),isolatedTrackIndex:e,selectedThreadIndexes:new Set([a]),hiddenLocalTracks:new Set(Jo(n(),r.pid))}))}}function kh(e,t){return(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"change local track order"}),{type:"CHANGE_LOCAL_TRACK_ORDER",pid:e,localTrackOrder:t}}function xh(e,t,n){const r=Vi(e()),o=jo(e()),a=$o(e());for(const i of o){const o=r[i];if(void 0!==t&&t.has(i)||a.has(i)||"process"!==o.type)continue;if(null!==o.mainThreadIndex)return o.mainThreadIndex;const s=Zi(e(),o.pid),l=Jo(e(),o.pid),c=Xo(e(),o.pid),d=n?n.get(o.pid)??new Set:new Set;for(const e of l){const t=s[e];if(!c.has(e)&&"thread"===t.type&&!d.has(e))return t.threadIndex}}return null}function Th(e,t){return(n,r)=>{const o=Zi(r(),e),a=Xo(r(),e),i=o[t],s=Uo(r()),l=new Set(s);if("thread"===i.type&&l.delete(i.threadIndex),a.has(t))return;const{globalTrack:c,globalTrackIndex:d}=Yi(r(),e);if(a.size+1!==o.length||null!==c.mainThreadIndex){if(0===l.size){for(let e=0;e<o.length;e++){const n=o[e];if(!a.has(e)&&"thread"===n.type&&e!==t){l.add(n.threadIndex);break}}if(0===l.size&&null!==c.mainThreadIndex&&void 0!==c.mainThreadIndex&&l.add(c.mainThreadIndex),0===l.size){const n=xh(r,new Set([d]),new Map([[e,new Set([t])]]));null!==n&&l.add(n)}if(0===l.size)return}(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"hide local track"}),n({type:"HIDE_LOCAL_TRACK",pid:e,trackIndex:t,selectedThreadIndexes:l})}else n(mh(d))}}function Sh(e,t){return n=>{(0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"show local track"}),n({type:"SHOW_LOCAL_TRACK",trackIndex:t,pid:e})}}function Bh(e,t){return(n,r)=>{const o=Zi(r(),e)[t],{globalTrack:a,globalTrackIndex:i}=Yi(r(),e),s=jo(r()),l=Jo(r(),e),c=new Set;"thread"===o.type?c.add(o.threadIndex):"process"===a.type&&null!==a.mainThreadIndex&&c.add(a.mainThreadIndex),0!==c.size&&((0,ml.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate local track"}),n({type:"ISOLATE_LOCAL_TRACK",pid:e,hiddenGlobalTracks:new Set(s.filter((e=>e!==i))),hiddenLocalTracks:new Set(l.filter((e=>e!==t))),selectedThreadIndexes:c}))}}let Ih=!1;function _h(e){return Ih||(Ih=!0,(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"call tree search string"})),{type:"CHANGE_CALL_TREE_SEARCH_STRING",searchString:e}}function Nh(e,t,n){return(r,o)=>{const a=Pd.getExpandedCallNodeIndexes(o()),i=Pd.getCallTree(o()).getAllDescendants(t);i.add(t),a.forEach((e=>{null!==e&&i.add(e)}));const s=[...i].map((e=>n.getCallNodePathFromIndex(e)));r(Ph(e,s))}}function Ph(e,t){return(n,r)=>{n({type:"CHANGE_EXPANDED_CALL_NODES",isInverted:Lo(r()),threadsKey:e,expandedCallNodePaths:t})}}function Mh(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_MARKER",selectedMarker:t,threadsKey:e,context:n}}function Fh(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_NETWORK_MARKER",selectedNetworkMarker:t,threadsKey:e,context:n}}function Rh(e,t){return{type:"CHANGE_HOVERED_MARKER",markerIndex:t,threadsKey:e}}function Dh(e,t){return{type:"CHANGE_RIGHT_CLICKED_MARKER",threadsKey:e,markerIndex:t}}function Lh(e){return{type:"CHANGE_MARKER_SEARCH_STRING",searchString:e}}function Oh(e){return{type:"CHANGE_NETWORK_SEARCH_STRING",searchString:e}}function Uh(e){return(t,n)=>{const r=wo(n()),o=zo(n()),a=Pd.getRangeAndTransformFilteredThread(n());(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"change implementation filter",eventLabel:e}),t({type:"CHANGE_IMPLEMENTATION_FILTER",implementation:e,threadsKey:o,transformedThread:a,previousImplementation:r})}}function zh(e){return(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"change call tree summary strategy",eventLabel:e}),{type:"CHANGE_CALL_TREE_SUMMARY_STRATEGY",callTreeSummaryStrategy:e}}function Gh(e){return(t,n)=>{(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"change invert callstack"});const r=Pd.getCallTree(n()),o=Pd.getSelectedCallNodeIndex(n()),a=r.findHeavyPathToSameFunctionAfterInversion(o);t({type:"CHANGE_INVERT_CALLSTACK",invertCallstack:e,selectedThreadIndexes:Uo(n()),newSelectedCallNodePath:a})}}function Wh(e){return t=>{(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"toggle user timings"}),t({type:"CHANGE_SHOW_USER_TIMINGS",showUserTimings:e})}}function Hh(e){return t=>{(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:e?"show JS tracer summary":"show JS tracer stacks"}),t({type:"CHANGE_SHOW_JS_TRACER_SUMMARY",showSummary:e})}}function Vh(e){return(t,n)=>{(function(e,t){let n=0,r=0;for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&(n++,e[r]!==t[r]))return!1;for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&r++;return n===r})(hi(n()),e)||t({type:"UPDATE_PREVIEW_SELECTION",previewSelection:e})}}function jh(e,t){return t===e&&(t+=1e-6),{type:"COMMIT_RANGE",start:e,end:t}}function $h(e){return(t,n)=>{t({type:"POP_COMMITTED_RANGES",firstPoppedFilterIndex:e,committedRange:yo(n()).length!==e&&li(n())})}}function Kh(e,t){return(n,r)=>{const o=_d(e),a=o.getRangeAndTransformFilteredThread(r()),i=o.getCallNodeInfo(r());n({type:"ADD_TRANSFORM_TO_STACK",threadsKey:e,transform:t,transformedThread:a,callNodeInfo:i}),(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"add transform",eventLabel:t.type})}}function Yh(e,t,n){return(r,o)=>{const a=_d(e).getReservedFunctionsForResources(o()),i=(0,ut.Nn)((0,ut.Nn)(a).get(t));r(Kh(e,{type:"collapse-resource",resourceIndex:t,collapsedFuncIndex:i,implementation:n}))}}function qh(e){return(t,n)=>{t({type:"POP_TRANSFORMS_FROM_STACK",threadsKey:zo(n()),firstPoppedFilterIndex:e})}}function Zh(e){return{type:"CHANGE_TIMELINE_TYPE",timelineType:e}}function Xh(e){return async(t,n)=>{if(t({type:"CHANGE_PROFILE_NAME",profileName:e}),window.indexedDB){const t=Ao(n());await async function(e,t){const n=await eh(e);if(n&&n.name!==t){const e=Dr({...Or(new URL(n.urlPath,window.location.href)),profileName:t}),r={...n,name:t,urlPath:e};await Qu(r)}}(t,e||"")}(0,ml.H)({hitType:"event",eventCategory:"profile",eventAction:"change profile name"})}}function Jh(e){return{type:"SET_DATA_SOURCE",dataSource:e}}function Qh(e){return{type:"CHANGE_MOUSE_TIME_POSITION",mouseTimePosition:e}}function ep(e,t){return{type:"CHANGE_TABLE_VIEW_OPTIONS",tab:e,tableViewOptions:t}}function tp(e,{libIndex:t,sourceFile:n,nativeSymbols:r}){const o=0!==r.length?r[0]:null;return{type:"UPDATE_BOTTOM_BOX",libIndex:t,sourceFile:n,nativeSymbol:o,allNativeSymbolsForInitiatingCallNode:r,currentTab:e,shouldOpenBottomBox:null!==n||null!==o,shouldOpenAssemblyView:null===n&&null!==o}}function np(){return{type:"OPEN_ASSEMBLY_VIEW"}}function rp(){return{type:"CLOSE_ASSEMBLY_VIEW"}}function op(){return(e,t)=>{e({type:"CLOSE_BOTTOM_BOX_FOR_TAB",tab:Do(t())})}}function ap(e,t,n){return(r,o)=>{if(e.metaKey||e.ctrlKey||e.altKey)return;const a=_d(t),i=a.getThread(o()),s=a.getCallNodeInfo(o()),l=wo(o()),c=Lo(o()),d=s.getCallNodePathFromIndex(n),u=s.funcForNode(n),h=s.categoryForNode(n),p=s.getNonInvertedCallNodeTable();switch(e.key){case"F":r(Kh(t,{type:"focus-subtree",callNodePath:d,implementation:l,inverted:c}));break;case"f":r(Kh(t,{type:"focus-function",funcIndex:u}));break;case"M":r(Kh(t,{type:"merge-call-node",callNodePath:d,implementation:l}));break;case"m":r(Kh(t,{type:"merge-function",funcIndex:u}));break;case"d":r(Kh(t,{type:"drop-function",funcIndex:u}));break;case"C":{const{funcTable:e}=i,n=e.resource[u];r(Yh(t,n,l));break}case"r":kr(p,u)&&r(Kh(t,{type:"collapse-recursion",funcIndex:u}));break;case"R":Er(p,u)&&r(Kh(t,{type:"collapse-direct-recursion",funcIndex:u,implementation:l}));break;case"c":r(Kh(t,{type:"collapse-function-subtree",funcIndex:u}));break;case"g":r(Kh(t,{type:"focus-category",category:h}))}}}function ip(e){return{type:"FATAL_ERROR",error:e}}function sp(e){return{type:"ICON_HAS_LOADED",iconWithClassName:e}}function lp(e){return{type:"ICON_IN_ERROR",icon:e}}const cp=new Set;let dp,up=0;function hp(e){return t=>async function(e){if(cp.has(e))return Promise.resolve({type:"cached"});cp.add(e);const t="favicon-"+ ++up;return new Promise((n=>{const r=new Image;r.src=e,r.referrerPolicy="no-referrer",r.onload=()=>{n({type:"loaded",iconWithClassName:{icon:e,className:t}})},r.onerror=()=>{n({type:"error"})}}))}(e).then((n=>{switch(n.type){case"loaded":t(sp(n.iconWithClassName));break;case"error":t(lp(e));break;case"cached":break;default:throw new Error(`Unknown icon load result ${n.type}`)}}))}function pp(e){return t=>{const n=[];for(const t of e){if(!t||cp.has(t))continue;cp.add(t);const e="favicon-"+ ++up;n.push({icon:t,className:e})}t({type:"ICON_BATCH_ADD",icons:n})}}function mp(){up=0}function fp(e){return{type:"TRIGGER_LOADING_FROM_URL",profileUrl:e}}function gp(){return{type:"WAITING_FOR_PROFILE_FROM_BROWSER"}}function Ap(e,t={},n=!1){return async r=>{if(0===e.threads.length)return console.error("This profile has no threads.",e),void r(ip(new Error("No threads were captured in this profile, there is nothing to display.")));r({type:"PROFILE_LOADED",profile:e,pathInZipFile:t.pathInZipFile,implementationFilter:t.implementationFilter,transformStacks:t.transformStacks}),!1===n&&await r(bp(t.browserConnection??null,t.timelineTrackOrganization,t.skipSymbolication))}}function bp(e=null,t,n){return async(r,o)=>{if(n)throw new Error("Please do not use skipSymbolication outside of tests");const a=mi(o());if(null===a||"PROFILE_LOADED"!==$s(o()).phase)return;const i=Oo(o()),s=a.pages;switch(t||(t=No(o())),t.type){case"full":r(Cp(a,i));break;case"active-tab":{const e=Li(o());r(s&&null!==e?wp(a,i,t.tabID):Cp(a,i));break}case"origins":r(s?yp(a,s,i):Cp(a,i));break;default:throw(0,ut.lC)(t,"Unhandled TimelineTrackOrganization type.")}let l=null;e&&s&&s.length>0&&(l=Fp(r,s,e));let c=null;if(!n&&!1===a.meta.symbolicated){const t=Pp(r,ma(o()),e);t&&(c=Mp(r,a,t))}await Promise.all([l,c])}}function Cp(e,t){return(n,r)=>{const o=null!==t,a=Hi(r()),i=o?qo(r()):null,s=Ea(e,i,a),l=wa(e,s),c=Ho(r()),d=ka(s,o?jo(r()):null,c),u=ya(o?Yo(r()):null,l,c,e),h={globalTracks:s,globalTrackOrder:d,localTracksByPid:l,localTrackOrderByPid:u};let p=null;const m=Vo(r());if(null!==m?p=Sa(h,m,e):o&&(p=function(e,t,n){const r=fa(new Set(e.globalTrackOrder),t),o=new Map;for(const[t,a]of e.localTrackOrderByPid){const i=new Set(a),s=fa(i,n.get(t)||new Set);if(o.set(t,s),s.size===i.size){const n=e.globalTracks.findIndex((e=>"process"===e.type&&e.pid===t&&null===e.mainThreadIndex));-1!==n&&r.add(n)}}const a={hiddenGlobalTracks:r,hiddenLocalTracksByPid:o};return 0===_a(e,a).length?null:a}(h,$o(r()),Ko(r()))),null===p){const t=null===i;p=Ba(h,e,fs(r()),t)}const f=xa(t,_a(h,p),e);let g=null;o||(g=(0,bn.Pr)(e));let A=Do(r());if(Br.includes(A)){let t=!1;for(const n of f){const r=e.threads[n],{samples:o,jsAllocations:a,nativeAllocations:i}=r;if(t=[o,a,i].some((e=>(0,bn.aM)(e?.stack,r))),t)break}t||(A="marker-chart")}Fr((()=>{n({type:"VIEW_FULL_PROFILE",selectedThreadIndexes:f,selectedTab:A,globalTracks:s,globalTrackOrder:d,localTracksByPid:l,localTrackOrderByPid:u,timelineType:g,...p})}))}}function vp(e){if(e.startsWith("chrome://"))return e;try{const t=new URL(e);return"null"===t.origin?e:t.origin}catch{return e}}function yp(e,t,n){return r=>{const o=new Map;for(const e of t)o.set(e.innerWindowID,e);const a=[],i=new Map,s=new Map,l=new Set;for(let n=0;n<e.threads.length;n++){const{frameTable:r}=e.threads[n];let c=!1;for(let e=0;e<r.length;e++){const l=r.innerWindowID[e];if(null===l||0===l)continue;const d=o.get(l);if(!d){console.error("Could not find the page for an innerWindowID",{innerWindowID:l,pages:t});break}0===d.embedderInnerWindowID?i.set(l,n):s.set(l,n),c=!0,a[n]=d;break}c||(a[n]=null,l.add(n))}const c=[],d=new Map,u=new Map;for(const[t,n]of i){const r=e.threads[n],o=(0,ut.Nn)(a[n]);d.set(r.pid,t),u.set(t,t),c.push({type:"origin",innerWindowID:t,threadIndex:n,page:o,origin:vp(o.url),children:[]})}const h=new Set([...s]);let p=1/0;for(;p!==h.size;){p=h.size;for(const t of h){const[n,r]=t,o=(0,ut.Nn)(a[r]),i=u.get(o.embedderInnerWindowID);if(void 0===i)continue;const s=e.threads[r];d.set(s.pid,i),h.delete(t),u.set(n,i),(0,ut.Nn)(c.find((e=>e.innerWindowID===i))).children.push({type:"sub-origin",innerWindowID:n,threadIndex:r,origin:vp(o.url),page:o})}}const m=[];for(const t of l){const n=e.threads[t],r=d.get(n.pid),o={type:"no-origin",threadIndex:t};r?(0,ut.Nn)(c.find((e=>e.innerWindowID===r))).children.push(o):m.push(o)}r({type:"VIEW_ORIGINS_PROFILE",selectedThreadIndexes:null===n?new Set([0]):n,originsTimeline:[...m,...c]})}}function wp(e,t,n){return(r,o)=>{const a=null!==t,i=bs(o());if(0===i.length)return void r(Cp(e,t));const s=function(e,t,n){const r=[],o=[],a=[],i=function(e){const t=[];for(const n of e)0===n.embedderInnerWindowID&&t.push(n.innerWindowID);return new Set(t)}(t),s=function(e){const t=new Map;for(const n of e)t.set(n.innerWindowID,n);return t}(t);for(let t=0;t<e.threads.length;t++){const l=e.threads[t],{markers:c,stringArray:d}=l,u=Bn.M.withBackingArray(d);if(l.isMainThread){if(yu(l,i))r.push(t);else if(!vu(t,n)){const e=wu(l,s);null!==e&&o.push({type:"sub-frame",threadIndex:t,name:e})}}else if(!vu(t,n)){const e=wu(l,s);null!==e&&o.push({type:"thread",threadIndex:t,name:e})}const h=new Set,p=u.indexForString("CompositorScreenshot");if(-1!==p){for(let e=0;e<c.length;e++)if(c.name[e]===p){const t=c.data[e];h.add(t.windowID)}for(const e of h)a.push({type:"screenshots",id:e,threadIndex:t})}}const l=new Set(r),c={type:"tab",threadIndexes:l,threadsKey:(0,bn.X)(l)},d=(0,bn.X)(new Set(o.map((e=>e.threadIndex))));return{mainTrack:c,screenshots:a,resources:o,resourcesThreadsKey:d}}(e,i,o());null===t&&(t=new Set([...s.mainTrack.threadIndexes]));let l=null;a||(l=(0,bn.Pr)(e)),r({type:"VIEW_ACTIVE_TAB_PROFILE",activeTabTimeline:s,selectedThreadIndexes:t,tabID:n,timelineType:l})}}function Ep(e){return(t,n)=>{const r=fi(n()),o=null;switch(t({type:"DATA_RELOAD"}),e.type){case"full":t(Cp(r,o));break;case"active-tab":t(wp(r,o,e.tabID));break;case"origins":t(yp(r,(0,ut.Nn)(r.pages,"There was no page information in the profile."),o));break;default:throw(0,ut.lC)(e,"Unhandled TimelineTrackOrganization type.")}}}function kp(){return async(e,t)=>{const n=Pp(e,ma(t()),null),r=fi(t());if(!n)throw new Error("There was no symbol store when attempting to re-symbolicate.");await Mp(e,r,n)}}function xp(e,t={}){return async n=>{await n(Ap(e,t,!1))}}function Tp(e){return{type:"REQUESTING_SYMBOL_TABLE",requestedLib:e}}function Sp(e){return{type:"RECEIVED_SYMBOL_TABLE_REPLY",requestedLib:e}}function Bp(){return{type:"START_SYMBOLICATING"}}function Ip(){return{type:"DONE_SYMBOLICATING"}}function _p(e){return(t,n)=>{const{threads:r}=fi(n()),o=new Map,a=r.map(((t,n)=>{const r=e.get(n);if(void 0===r)return t;const{thread:a,oldFuncToNewFuncsMap:i}=function(e,t){const n=new Map,r=e.frameTable.length,o=new Uint8Array(r),a=new Map;let i=e;for(const e of t)i=za(i,e,n,o,a);return i=function(e,t,n){if(0===n.size)return e;const{stackTable:r}=e,o=(0,vn.Gh)(),a=new Int32Array(r.length);for(let e=0;e<r.length;e++){const i=r.frame[e],s=r.prefix[e],l=null===s?-1:a[s];if(0!==t[i]){a[e]=l;continue}let c=n.get(i);void 0===c&&(c=[i]);let d=-1!==l?l:null;for(let e=0;e<c.length;e++){const t=c[e],n=o.length;o.frame.push(t),o.prefix.push(d),o.length++,d=n}a[e]=d??-1}return(0,bn.Fb)(e,o,(e=>{if(null===e)return null;const t=a[e];return-1!==t?t:null}))}(i,o,a),{thread:i,oldFuncToNewFuncsMap:n}}(t,r);return o.set(n,i),a}));t({type:"BULK_SYMBOLICATION",oldFuncToNewFuncsMaps:o,symbolicatedThreads:a})}}dp="object"==typeof window&&window.requestIdleCallback?window.requestIdleCallback:"object"==typeof process&&process.nextTick?process.nextTick:e=>setTimeout(e,0);const Np=new class{constructor(){this._updates=void 0,this._updateObservers=void 0,this._requestedUpdate=void 0,this._updates=new Map,this._updateObservers=[],this._requestedUpdate=!1}_scheduleUpdate(e){this._requestedUpdate||(dp((()=>this._dispatchUpdate(e)),{timeout:2e3}),this._requestedUpdate=!0)}_dispatchUpdate(e){const t=this._updates,n=this._updateObservers;this._updates=new Map,this._updateObservers=[],this._requestedUpdate=!1,e(_p(t));for(const e of n)e()}enqueueSingleSymbolicationStep(e,t,n,r){this._scheduleUpdate(e);let o=this._updates.get(t);void 0===o&&(o=[],this._updates.set(t,o)),o.push(n),this._updateObservers.push(r)}};function Pp(e,t,n){if(!window.indexedDB)return null;async function r(t,n,r){for(const{lib:t}of n)e(Tp(t));try{return await async function(e,t,n){const r=t.map((e=>({request:e,addressArray:Array.from(e.addresses)}))),o={jobs:r.map((({request:e,addressArray:t})=>{const{debugName:n,breakpadId:r}=e.lib;return{memoryMap:[[n,r]],stacks:[t.map((e=>[0,e]))]}}))},a=function(e){if(!(e instanceof Object&&"results"in e))throw new Error("Expected an object with property `results`");const t=e.results;if(!Array.isArray(t))throw new Error("Expected `results` to be an array");for(const e of t){if(!(e instanceof Object&&"found_modules"in e&&"stacks"in e))throw new Error("Expected jobResult to have `found_modules` and `stacks` properties");if(!(e.found_modules instanceof Object))throw new Error("Expected `found_modules` to be an object");const t=e.stacks;if(!Array.isArray(t))throw new Error("Expected `stacks` to be an array");for(const e of t){if(!Array.isArray(e))throw new Error("Expected `stack` to be an array");for(const t of e){if(!(t instanceof Object))throw new Error("Expected `frameInfo` to be an object");if(!("module_offset"in t)||!("module"in t)||!("frame"in t))throw new Error("Expected frameInfo to have `module_offset`, `module` and `frame` properties");if("file"in t&&"string"!=typeof t.file)throw new Error("Expected frameInfo.file to be a string, if present");if("line"in t&&"number"!=typeof t.line)throw new Error("Expected frameInfo.line to be a number, if present");if("function_offset"in t&&"string"!=typeof t.function_offset)throw new Error("Expected frameInfo.function_offset to be a string, if present");if("function_size"in t&&"string"!=typeof t.function_size)throw new Error("Expected frameInfo.function_size to be a string, if present");if("inlines"in t){const e=t.inlines;if(!Array.isArray(e))throw new Error("Expected `inlines` to be an array");for(const t of e)if(!(t instanceof Object))throw new Error("Expected `inlineFrame` to be an object")}}}}return e}(await n("/symbolicate/v5",JSON.stringify(o)));return r.map((({request:t,addressArray:n},r)=>{const o=a.results[r];try{const{lib:r}=t,a=function(e,t,n,r){const{lib:o}=t,{debugName:a,breakpadId:i}=o;if(!r.found_modules[`${a}/${i}`])throw new Error(`The ${e} does not have symbols for ${a}/${i}.`);const s=r.stacks[0];if(s.length!==n.length)throw new Error(`The result from the ${e} has an unexpected length.`);const l=new Map;for(let e=0;e<s.length;e++){const t=n[e],r=s[e];let o;if(void 0!==r.function&&void 0!==r.function_offset){const e=r.function,n=parseInt(r.function_offset.substr(2),16);let a,i;if(void 0!==r.inlines){const e=r.inlines.length;a=r.inlines.map((({function:t,file:n,line:o},a)=>{const i=e-a;return{name:t??`<unknown at ${r.module_offset} at inline depth ${i}>`,file:n,line:o}}))}void 0!==r.function_size&&(i=parseInt(r.function_size.substr(2),16)),o={name:e,symbolAddress:t-n,file:r.file,line:r.line,inlines:a,functionSize:i}}else o={name:`<unknown at ${r.module_offset}>`,symbolAddress:t};l.set(t,o)}return l}(e,t,n,o);return{type:"SUCCESS",lib:r,results:a}}catch(e){return{type:"ERROR",request:t,error:e}}}))}(t,n,r)}catch(e){throw new Error(`There was a problem with the symbolication API request to the ${t}: ${e.message}`)}finally{for(const{lib:t}of n)e(Sp(t))}}const o=new Lc("perf-html-async-storage",{requestSymbolsFromServer:e=>r("symbol server",e,(async(e,n)=>(await fetch(t+e,{body:n,method:"POST",mode:"cors",headers:new Headers({"User-Agent":`FirefoxProfiler/1.0 (+${location.origin})`})})).json())),requestSymbolsFromBrowser:async e=>{if(null===n)throw new Error("No connection to the browser, cannot run querySymbolicationApi");const t=n;return r("browser",e,(async(e,n)=>JSON.parse(await t.querySymbolicationApi(e,n))))},requestSymbolTableFromBrowser:async t=>{if(null===n)throw new Error("No connection to the browser, cannot obtain symbol tables");const{debugName:r,breakpadId:o}=t;e(Tp(t));try{const a=await n.getSymbolTable(r,o);return e(Sp(t)),a}catch(n){throw e(Sp(t)),n}}});return o}async function Mp(e,t,n){e({type:"START_SYMBOLICATING"});const r=[];await async function(e,t,n){const r=e.threads.map((t=>function(e,t){const{frameTable:n,funcTable:r,nativeSymbols:o,resourceTable:a}=e,i=new Map;for(let e=0;e<a.length;e++){if(a.type[e]!==vn.AU.library)continue;const s=a.lib[e];if(null===s)continue;const l=t[s];if(void 0===l)throw new Error("Did not find a lib.");const c=new Set;for(let t=0;t<r.length;t++)r.resource[t]===e&&c.add(t);const d=new Set;for(let e=0;e<o.length;e++)o.libIndex[e]===s&&d.add(e);const u=[],h=[];for(let t=0;t<n.length;t++){const o=n.func[t];r.resource[o]===e&&(u.push(t),h.push(n.address[t]))}const p=`${l.debugName}/${l.breakpadId}`;i.set(p,{libIndex:s,resourceIndex:e,allFuncsForThisLib:c,allNativeSymbolsForThisLib:d,allFramesForThisLib:u,frameAddresses:h})}return i}(t,e.libs))),o=function(e){const t=new Map;for(const n of e)for(const[e,{frameAddresses:r}]of n){let n=t.get(e);void 0===n&&(n=new Set,t.set(e,n));for(const e of r)n.add(e)}return Array.from(t).map((([e,t])=>{const[n,r]=e.split("/");return{lib:{debugName:n,breakpadId:r},addresses:t}}))}(r);await t.getSymbols(o,((t,o)=>{const{debugName:a,breakpadId:i}=t;!function(e,t,n,r,o){const{threads:a}=e;for(let e=0;e<a.length;e++){const a=t[e].get(r);void 0!==a&&o(e,{threadLibSymbolicationInfo:a,resultsForLib:n})}}(e,r,o,`${a}/${i}`,n)}),((e,t)=>{if(!(t instanceof Ua))throw t;console.warn(t)}))}(t,n,((t,n)=>{r.push(new Promise((r=>{Np.enqueueSingleSymbolicationStep(e,t,n,r)})))})),await Promise.all(r),e({type:"DONE_SYMBOLICATING"})}async function Fp(e,t,n){const r=[...t],o=await n.getPageFavicons(r.map((e=>e.url)));if(r.length!==o.length)return;const a=o.map((e=>e?async function(e,t="application/octet-stream"){return new Promise(((n,r)=>{const o=Object.assign(new FileReader,{onload:()=>n(o.result),onerror:()=>r(o.error)});o.readAsDataURL(new Blob([e],{type:t}))}))}(e.data,e.mimeType):Promise.resolve(null))),i=await Promise.all(a);for(let e=0;e<o.length;e++)i[e]&&(r[e]={...r[e],favicon:i[e]});e(pp(i)),e({type:"UPDATE_PAGES",newPages:r})}function Rp(e){switch(e.status){case"ESTABLISHED":break;case"NOT_FIREFOX":throw new Error("/from-browser only works in Firefox browsers");case"NO_ATTEMPT":throw new Error("retrieveProfileFromBrowser should never be called while browserConnectionStatus is NO_ATTEMPT");case"WAITING":throw new Error("retrieveProfileFromBrowser should never be called while browserConnectionStatus is WAITING");case"DENIED":throw e.error;case"TIMED_OUT":throw new Error("Timed out when waiting for reply to WebChannel message");default:throw(0,ut.lC)(e.status)}return e.browserConnection}function Dp(e,t=!1){return async n=>{try{const r=Rp(e);n({type:"WAITING_FOR_PROFILE_FROM_BROWSER"});const o=await r.getProfile({onThirtySecondTimeout:()=>{n(zp(new Xc(_n.TN`
|
78
|
+
We were unable to connect to the browser within thirty seconds.
|
79
|
+
This might be because the profile is big or your machine is slower than usual.
|
80
|
+
Still waiting...
|
81
|
+
`)))}}),a=await async function(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)?Yp(e):e}(o),i=a.meta;if(i.configuration&&i.configuration.features.includes("power"))try{await Promise.all([r.getExternalPowerTracks(i.startTime+i.profilingStartTime,i.startTime+i.profilingEndTime).then((e=>function(e,t){for(const n of e){const{samples:e}=n,r=e.schema.time;for(const n of e.data)n[r]=Math.round(1e6*(n[r]+t.meta.profilingStartTime))/1e6;t.counters||(t.counters=[]),t.counters.push(n)}}(e,a))),r.getExternalMarkers(i.startTime+i.profilingStartTime,i.startTime+i.profilingEndTime).then((e=>function(e,t){if(!e.markerSchema||!e.categories||!e.markers)return;for(const n of e.markerSchema){const e=t.meta.markerSchema.find((e=>e.name===n.name));e?JSON.stringify(n)!==JSON.stringify(e)&&console.error(`Existing marker schema for ${n.name} doesn't match`,n,e):t.meta.markerSchema.push(n)}const n=new Map;for(let r=0;r<e.categories.length;++r){const o=e.categories[r];let a=t.meta.categories.findIndex((e=>e.name===o.name));-1===a&&(a=t.meta.categories.push(o)-1),n.set(r,a)}const r=t.threads.find((e=>"GeckoMain"===e.name&&"default"===e.processType));if(!r)throw new Error("Could not find the main thread in the gecko profile");const{data:o,schema:a}=e.markers;for(const e of Object.keys(r.markers.schema))if(!(e in a)||r.markers.schema[e]!==a[e])throw new Error("Marker table schema in the gecko profile and the external marker data do not match");for(const e of o){const o=e[a.name];let i=r.stringTable.indexOf(o);-1===i&&(i=r.stringTable.length,r.stringTable.push(o));const s=e;s[a.name]=i,s[a.startTime]&&(s[a.startTime]=s[a.startTime]+t.meta.profilingStartTime),s[a.endTime]&&(s[a.endTime]=s[a.endTime]+t.meta.profilingStartTime),s[a.category]=n.get(s[a.category])||0,r.markers.data.push(s)}}(e,a)))])}catch(e){console.error(e)}const s=Pc(a);await n(Ap(s,{browserConnection:r},t))}catch(e){n(ip(e)),console.error(e)}}}function Lp(){return{type:"WAITING_FOR_PROFILE_FROM_STORE"}}function Op(e){return{type:"WAITING_FOR_PROFILE_FROM_URL",profileUrl:e}}function Up(e){return{type:"RECEIVE_ZIP_FILE",zip:e}}function zp(e){return{type:"TEMPORARY_ERROR",error:e}}function Gp(e){return new Promise((t=>setTimeout(t,e)))}function Wp(e,t){if(!navigator.userAgent.match(/Safari\/\d+\.\d+/))return!1;const n=new URL(e);return"TypeError"===t.name&&"http:"===n.protocol&&qr(n)&&"https:"===location.protocol}class Hp extends Error{constructor(...e){super(...e),this.name="SafariLocalhostHTTPLoadError"}}async function Vp(e){let t=0;const{url:n,onTemporaryError:r}=e,o=e.reportError||console.error;for(;;){let e;try{e=await fetch(n)}catch(e){if(Wp(n,e))throw new Hp;throw e}if(e.ok)return $p(n,e,o);if(403!==e.status)throw new Error(_n.TN`
|
82
|
+
Could not fetch the profile on remote server.
|
83
|
+
Response was: ${e.status} ${e.statusText}.
|
84
|
+
`);if(10==t++)break;r(new Xc("Profile not found on remote server.",{count:t,total:11})),await Gp(1e3)}throw new Error(_n.TN`
|
85
|
+
Could not fetch the profile on remote server:
|
86
|
+
still not found after ${10} seconds.
|
87
|
+
`)}function jp(e,t){return"application/zip"===t||"application/json"===t?t:e.match(/\.zip$/)?"application/zip":e.match(/\.json/)?"application/json":null}async function $p(e,t,n){const r=jp(e,t.headers.get("content-type"));switch(r){case"application/zip":return{responseType:"ZIP",zip:await Kp(t,n)};case"application/json":case null:return{responseType:"PROFILE",profile:await qp(t,n,r)};default:throw(0,ut.lC)(r)}}async function Kp(e,t){const n=await e.arrayBuffer();try{return await gl().loadAsync(n)}catch(n){const r="Unable to open the archive file.";throw t(r),t("Error:",n),t("Fetch response:",e),new Error(`${r} The full error information has been printed out to the DevTool’s console.`)}}async function Yp(e){let t=new Uint8Array(e);dc(t)&&(t=await cc(t));const n=new TextDecoder;return JSON.parse(n.decode(t))}async function qp(e,t,n){let r=null;try{return r=await e.arrayBuffer(),await Yp(r)}catch(o){let a;if(o&&"object"==typeof o&&"AbortError"===o.name)a="The network request to load the profile was aborted.";else if("application/json"===n)a="The profile’s JSON could not be decoded.";else{if(null===n&&null!==r)return r;a=_n.TN`
|
88
|
+
The profile could not be downloaded and decoded. This does not look like a supported file
|
89
|
+
type.
|
90
|
+
`}throw t(a),t("JSON parsing error:",o),t("Fetch response:",e),new Error(`${a} The full error information has been printed out to the DevTool’s console.`)}}function Zp(e){return`https://storage.googleapis.com/${In.d7}/${e}`}function Xp(e,t=!1){return Jp(Zp(e),t)}function Jp(e,t=!1){return async function(n){n(Op(e));try{const r=await Vp({url:e,onTemporaryError:e=>{n(zp(e))}});switch(r.responseType){case"PROFILE":{const o=r.profile,a=await Mc(o,e);if(void 0===a)throw new Error("Unable to parse the profile.");await n(Ap(a,{},t));break}case"ZIP":{const e=r.zip;await n(Up(e));break}default:throw(0,ut.lC)(r.responseType,"Expected to receive an archive or profile from _fetchProfile.")}}catch(e){n(ip(e))}}}function Qp(){return{type:"WAITING_FOR_PROFILE_FROM_FILE"}}function em(e){const t=new FileReader,n=new Promise(((e,n)=>{t.onload=()=>e(t.result),t.onerror=()=>n(t.error)}));return{asText:()=>(t.readAsText(e),n),asArrayBuffer:()=>(t.readAsArrayBuffer(e),n)}}function tm(e,t,n=em){return async r=>{r({type:"WAITING_FOR_PROFILE_FROM_FILE"});try{if("application/zip"===jp(e.name,e.type)){const t=await n(e).asArrayBuffer(),o=await gl().loadAsync(t);await r(Up(o))}else{const o=await n(e).asArrayBuffer(),a=await Mc(o,e.name);if(void 0===a)throw new Error("Unable to parse the profile.");await Rr((async()=>{await r(xp(a,{browserConnection:t}))}))}}catch(e){r(ip(e))}}}function nm(e){return async t=>{try{const n=await Mc(e);if(void 0===n)throw new Error("Unable to parse the profile.");await Rr((async()=>{await t(xp(n))}))}catch(e){t(ip(e))}}}function rm(e,t=!1){return async n=>{n(Op());try{const r=await Promise.all(e.map((async e=>((e.startsWith("https://perfht.ml/")||e.startsWith("https://share.firefox.dev/")||e.startsWith("https://bit.ly/"))&&(e=await async function(e){const t=`${In.HT}/expand`,n={shortUrl:e},r=await fetch(t,{method:"POST",headers:{Accept:qc,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`An error happened while expanding the shortened url ${e}: ${r.statusText} (${r.status})`);return(await r.json()).longUrl}(e)),Or(new URL(e)))))),o=r.map((async({dataSource:e,hash:t,profileUrl:r})=>{switch(e){case"public":r=Zp(t);break;case"from-url":break;default:throw new Error("Only public uploaded profiles are supported by the comparison function.")}const o=await Vp({url:r,onTemporaryError:e=>{n(zp(e))}});if("PROFILE"!==o.responseType)throw new Error("Expected to receive a profile from _fetchProfile");return Mc(o.profile)})),a=await Promise.all(o),{profile:i,implementationFilters:s,transformStacks:l}=function(e,t){if(e.length!==t.length)throw new Error("Passed arrays do not have the same length. This should not happen.");if(!e.length)throw new Error("There are no profiles to merge.");const n=(0,vn.Z)();for(const[t,r]of Object.entries(e[0].meta))e.every((e=>e.meta[t]===r))&&(n.meta[t]=r);n.meta.markerSchema=e[0].meta.markerSchema,n.meta.categories=e[0].meta.categories,n.meta.interval=Math.min(...e.map((e=>e.meta.interval))),e.every((e=>void 0===e.meta.symbolicated))?delete n.meta.symbolicated:n.meta.symbolicated=e.every((e=>e.meta.symbolicated));const{categories:r,translationMaps:o}=function(e){const t=[],n=[],r=new Map;return e.forEach((e=>{const o=new Map;n.push(o),e&&e.forEach(((e,n)=>{const{name:a}=e;let i=r.get(a);void 0===i&&(i=t.length,t.push(e),r.set(a,i)),o.set(n,i)}))})),{categories:t,translationMaps:n}}(e.map((e=>e.meta.categories)));n.meta.categories=r;const{libs:a,translationMaps:i}=function(e){const t=new Map,n=[],r=[];for(const o of e){const e=new Map;o.forEach(((n,o)=>{const a=[n.name,n.debugName].join("#"),i=t.get(a);void 0===i?(e.set(o,r.length),t.set(a,r.length),r.push(n)):e.set(o,i)})),n.push(e)}return{libs:r,translationMaps:n}}(e.map((e=>e.libs)));n.libs=a;const s={},l=[];let c;for(let r=0;r<t.length;r++){const{profileName:a,profileSpecific:d}=t[r],u=d.selectedThreads;if(null===u)throw new Error(`No thread has been selected in profile ${r}`);const h=(0,ut.cF)(u);if(1!==u.size||void 0===h)throw new Error("Only one thread selection is currently supported for the comparison view.");const p=e[r];let m={...p.threads[h]};s[r]=d.transforms[h],l.push(d.implementation),m.frameTable={...m.frameTable,category:Wc(m.frameTable.category,o[r])},m.resourceTable={...m.resourceTable,lib:zc(m.resourceTable.lib,i[r])},m.nativeSymbols={...m.nativeSymbols,libIndex:Gc(m.nativeSymbols.libIndex,i[r])};const{markerTable:f}=Yc(p.threads,m);m.markers={...m.markers,...f};const g=(0,bn.WT)(p).start,A=d.committedRanges&&d.committedRanges.pop();A&&(c||(c=jn(p.threads)),m=Oc(m,$n(m.markers,m.stringArray,m.tid||0,A,c),A.start+g,A.end+g)),m.pid=`${m.pid} from profile ${r+1}`,m.tid=`${m.tid} from profile ${r+1}`,m.isMainThread=!0,m.processName=`${a||`Profile ${r+1}`}: ${m.processName||m.name}`;let b=0;if(m.samples.length){const{time:e,timeDeltas:t}=m.samples;b=void 0!==e?-e[0]:-(0,ut.Nn)(t)[0]}else if(m.markers.length)for(const e of m.markers.startTime)if(null!==e){b=-e;break}m.samples=Uc(m.samples,b),m.markers=Ic(m.markers,b),m.registerTime+=b,m.processStartupTime+=b,null!==m.processShutdownTime&&(m.processShutdownTime+=b),null!==m.unregisterTime&&(m.unregisterTime+=b),null===m.processShutdownTime&&null===m.unregisterTime&&(m.unregisterTime=(0,bn.GP)(m,p.meta.interval).end),n.threads.push(m)}return 2===e.length&&n.threads.push(function(e){const t=[],n=Bn.M.withBackingArray(t),r=e.map((e=>e.thread)),{resourceTable:o,translationMaps:a}=Hc(n,r),{nativeSymbols:i,translationMaps:s}=Vc(n,r),{funcTable:l,translationMaps:c}=jc(a,n,r),{frameTable:d,translationMaps:u}=$c(c,s,0,r),{stackTable:h,translationMaps:p}=Kc(u,r),{samples:m}=function(e,t){const n=[new Map,new Map],[{thread:{samples:r,tid:o},weightMultiplier:a},{thread:{samples:i,tid:s},weightMultiplier:l}]=t,c=[],d=[],u={...(0,vn.cy)(),weight:c,threadId:d},h=(0,bn.px)(r),p=(0,bn.px)(i);let m=0,f=0;for(;m<r.length||f<i.length;)if(m<r.length&&(f>=i.length||h[m]<p[f])){const t=r.stack[m],i=null===t?null:e[0].get(t);if(void 0===i)throw new Error(_n.dx`
|
91
|
+
We couldn't find the stack of sample ${m} in the translation map.
|
92
|
+
This is a programming error.
|
93
|
+
`);u.stack.push(i),u.eventDelay.push(null),u.time.push(h[m]),d.push(r.threadId?r.threadId[m]:o);const s=r.weight?r.weight[m]:1;c.push(-a*s),n[0].set(m,u.length),u.length++,m++}else{const t=i.stack[f],r=null===t?null:e[1].get(t);if(void 0===r)throw new Error(_n.dx`
|
94
|
+
We couldn't find the stack of sample ${f} in the translation map.
|
95
|
+
This is a programming error.
|
96
|
+
`);u.stack.push(r),u.eventDelay.push(null),u.time.push(p[f]),d.push(i.threadId?i.threadId[f]:s);const o=i.weight?i.weight[f]:1;c.push(l*o),n[1].set(f,u.length),u.length++,f++}return{samples:u,translationMaps:n}}(p,e);return{processType:"comparison",processStartupTime:Math.min(r[0].processStartupTime,r[1].processStartupTime),processShutdownTime:Math.max(r[0].processShutdownTime||0,r[1].processShutdownTime||0)||null,registerTime:Math.min(r[0].registerTime,r[1].registerTime),unregisterTime:Math.max(r[0].unregisterTime||0,r[1].unregisterTime||0)||null,pausedRanges:[],name:"Diff between 1 and 2",pid:"Diff between 1 and 2",tid:"Diff between 1 and 2",isMainThread:!0,samples:m,markers:(0,vn.qc)(),stackTable:h,frameTable:d,stringArray:t,funcTable:l,resourceTable:o,nativeSymbols:i}}([{thread:n.threads[0],weightMultiplier:e[0].meta.interval/n.meta.interval},{thread:n.threads[1],weightMultiplier:e[1].meta.interval/n.meta.interval}])),n.meta.initialVisibleThreads=n.threads.map(((e,t)=>t)),{profile:n,implementationFilters:l,transformStacks:s}}(a,r);let c;s[0]===s[1]&&(c=s[0]),await n(Ap(i,{transformStacks:l,implementationFilter:c},t))}catch(e){n(ip(e))}}}function om(e,t){return async(n,r)=>{const o=e.pathname.split("/").filter((e=>e));let a=o[0];"from-addon"===a&&(a="from-browser");let i=Lr(a);switch("from-file"===i&&(i="none"),n(Jh(i)),i){case"from-browser":if(void 0===t)throw new Error("Error: all callers of this function should supply a browserConnectionStatus argument for from-browser");await n(Dp(t,!0));break;case"public":await n(Xp(o[1],!0));break;case"from-url":await n(Jp(decodeURIComponent(o[1]),!0));break;case"compare":{const t=Rt.parse(e.search.substr(1),{arrayFormat:"bracket"});Array.isArray(t.profiles)&&await n(rm(t.profiles,!0));break}case"from-post-message":window.addEventListener("message",(e=>{const{data:t}=e;if(console.log("Received postMessage",t),t&&"object"==typeof t)switch(t.name){case"inject-profile":n(nm(t.profile));break;case"ready:request":console.log("Responding via postMessage that the profiler is ready."),(e.source??window).postMessage({name:"ready:response"},"*");break;default:console.log("Unknown post message",t)}}));break;case"uploaded-recordings":case"none":case"from-file":case"local":case"unpublished":break;default:throw(0,ut.lC)(i,`Unknown dataSource ${i}.`)}return mi(r())}}function am(e){return(t,n)=>{const r=fi(n()),o=Hi(n()),a=Ea(r,e,o),i=wa(r,a),s=Ho(n()),l=ka(a,null,s),c=ya(null,i,s,r),d={globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c};let u=null;const h=Vo(n());if(null!==h&&(u=Sa(d,h,r)),null===u){const t=null===e;u=Ba(d,r,fs(n()),t)}const p=xa(null,_a(d,u),r);let m=Do(n());if(Br.includes(m)){let e=!1;for(const t of p){const n=r.threads[t],{samples:o,jsAllocations:a,nativeAllocations:i}=n;if(e=[o,a,i].some((e=>(0,bn.aM)(e?.stack,n))),e)break}e||(m="marker-chart")}t({type:"CHANGE_TAB_FILTER",tabID:e,selectedThreadIndexes:p,selectedTab:m,globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c,...u})}}function im(e){return(t,n)=>{Do(n())!==e&&((0,ml.H)({hitType:"pageview",page:e}),t({type:"CHANGE_SELECTED_TAB",selectedTab:e}))}}function sm(e){return{type:"CHANGE_PROFILES_TO_COMPARE",profiles:e}}function lm(){return{type:"START_FETCHING_PROFILES"}}function cm(){return(e,t)=>{e({type:"URL_SETUP_DONE"});const n=go(t());(0,ml.H)({hitType:"pageview",page:"none"===n?"home":Do(t())}),(0,ml.H)({hitType:"event",eventCategory:"datasource",eventAction:n})}}function dm(e){return{type:"ROUTE_NOT_FOUND",url:e}}function um(e,t){return{type:"CHANGE_SIDEBAR_OPEN_STATE",tab:e,isOpen:t}}function hm(){return{type:"INCREMENT_PANEL_LAYOUT_GENERATION"}}function pm(){return{type:"HAS_ZOOMED_VIA_MOUSEWHEEL"}}function mm(e,t,n){return r=>{let o;try{o=Or(e,t)}catch(t){return"UrlUpgradeError"===t.name?void r(ip(t)):(console.error(t),void r(dm(e.pathname+e.search)))}"from-file"===o.dataSource&&(o=null),Fr((()=>{r(fm(o)),r(bp(n)),r(cm())}))}}function fm(e){return{type:"UPDATE_URL_STATE",newUrlState:e}}function gm(e,t){return(n,r)=>{Js(r())[e]!==t&&n({type:"UPDATE_TRACK_THREAD_HEIGHT",height:t,threadsKey:e})}}function Am(){return{type:"DISMISS_NEWLY_PUBLISHED"}}function bm(){return{type:"START_DRAGGING"}}function Cm(){return{type:"STOP_DRAGGING"}}function vm(){return{type:"REGISTER_DRAG_AND_DROP_OVERLAY"}}function ym(){return{type:"UNREGISTER_DRAG_AND_DROP_OVERLAY"}}function wm(){return(e,t)=>{const n=Po(t());let r=Uo(t());if(n){const e=as(t());r=new Set([...e.threadIndexes])}e({type:"TOGGLE_RESOURCES_PANEL",selectedThreadIndexes:r})}}function Em(){return(e,t)=>{if(rl(t()))return console.error("Tried to enable the event delay tracks, but they are already enabled."),!1;if(void 0===Pd.getSamplesTable(t()).eventDelay)return console.error(_n.TN`
|
97
|
+
Tried to enable the event delay tracks, but this profile does
|
98
|
+
not have eventDelay values. It is likely an older profile.
|
99
|
+
`),!1;const n=qi(t()),r=function(e,t){const n=new Map;for(let r=0;r<e.length;r++){const o=e[r],{pid:a}=o;let i=n.get(a);void 0===i&&(i=t.get(a),void 0===i&&(i=[]),i=[...i]),i.push({type:"event-delay",threadIndex:r}),n.set(a,i)}return n}(Ci(t()),n);return e({type:"ENABLE_EVENT_DELAY_TRACKS",localTracksByPid:r,localTrackOrderByPid:ya(Yo(t()),r,null)}),!0}}function km(){return(e,t)=>ol(t())?(console.error("Tried to enable the CPU graph tracks, but they are already enabled."),!1):ou(t())?(e({type:"ENABLE_EXPERIMENTAL_CPU_GRAPHS"}),!0):(console.error(_n.TN`
|
100
|
+
Tried to enable the CPU graph tracks, but this profile does
|
101
|
+
not have threadCPUDelta values. It is likely an older profile.
|
102
|
+
`),!1)}function xm(){return(e,t)=>{if(al(t()))return console.error("Tried to enable the process CPU tracks, but they are already enabled."),!1;if(!ou(t())&&au(t()))return console.error(_n.TN`
|
103
|
+
Tried to enable the process CPU tracks, but this profile does
|
104
|
+
not have threadCPUDelta values or process CPU threads.
|
105
|
+
`),!1;const n=qi(t()),r=function(e,t){if(null===e)return t;const n=new Map(t);for(const[t,r]of e.entries()){if("CPU"!==r.category||"processCPU"!==r.name)continue;const{pid:e}=r;let o=n.get(e)??[];o=[...o,{type:"process-cpu",counterIndex:t}],n.set(e,o)}return n}(Ei(t()),n);return e({type:"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS",localTracksByPid:r,localTrackOrderByPid:ya(Yo(t()),r,null)}),!0}}function Tm(e){return{type:"SET_CURRENT_PROFILE_UPLOADED_INFORMATION",uploadedProfileInformation:e}}function Sm(){return{type:"PROFILE_REMOTELY_DELETED"}}function Bm(e){return{type:"UPDATE_BROWSER_CONNECTION_STATUS",browserConnectionStatus:e}}function Im(e,t){return{type:"TOGGLE_SIDEBAR_OPEN_CATEGORY",kind:e,category:t}}async function _m(){return(await Fm({type:"STATUS_QUERY"})).version||0}const Nm="font-weight: bold; color: #0a6";let Pm=0;class Mm extends Error{constructor(e){super(`${e.error} (errno: ${e.errno})`),this.name="WebChannelError",this.errno=void 0,this.errno=e.errno}}function Fm(e){const t=Pm++;return e.type,new Promise(((n,r)=>{var o;window.addEventListener("WebChannelMessageToContent",(function e(o){const{id:a,message:i}=o.detail;if("profiler.firefox.com"===a&&i&&"object"==typeof i){!function(e){if("STATUS_RESPONSE"===e.type){const{menuButtonIsEnabled:t}=e;e.type="SUCCESS_RESPONSE",e.response={menuButtonIsEnabled:t}}else"ENABLE_MENU_BUTTON_DONE"===e.type&&(e.type="SUCCESS_RESPONSE",e.response=void 0)}(i);const o=i;o.type?o.requestId===t&&(window.removeEventListener("WebChannelMessageToContent",e,!0),"SUCCESS_RESPONSE"===o.type?n(o.response):r(new Error(o.error))):"string"==typeof o.error&&(console.error(`[webchannel] %c${o.error}`,Nm),window.removeEventListener("WebChannelMessageToContent",e,!0),r(new Mm(o)))}else r(new Error("A malformed WebChannel event was received.")),console.error("[webchannel] %cmalformed event received",Nm,o)}),!0),o={requestId:t,...e},window.dispatchEvent(new CustomEvent("WebChannelMessageToChrome",{detail:JSON.stringify({id:"profiler.firefox.com",message:o})}))}))}class Rm{constructor(e){this._webChannelSupportsGetProfileAndSymbolication=void 0,this._webChannelSupportsGetExternalPowerTracks=void 0,this._webChannelSupportsGetExternalMarkers=void 0,this._webChannelSupportsGetPageFavicons=void 0,this._webChannelSupportsOpenDebuggerInTab=void 0,this._geckoProfiler=void 0,this._webChannelSupportsGetProfileAndSymbolication=e>=1,this._webChannelSupportsGetExternalPowerTracks=e>=2,this._webChannelSupportsGetExternalMarkers=e>=3,this._webChannelSupportsGetPageFavicons=e>=4,this._webChannelSupportsOpenDebuggerInTab=e>=5}async _getConnectionViaFrameScript(){return this._geckoProfiler||(this._geckoProfiler=await window.geckoProfilerPromise),this._geckoProfiler}async getProfile(e){const t=setTimeout(e.onThirtySecondTimeout,3e4);if(this._webChannelSupportsGetProfileAndSymbolication){const e=await async function(){return Fm({type:"GET_PROFILE"})}();return clearTimeout(t),e}const n=await this._getConnectionViaFrameScript(),r=await n.getProfile();return clearTimeout(t),r}async getExternalMarkers(e,t){return this._webChannelSupportsGetExternalMarkers?async function(e,t){return Fm({type:"GET_EXTERNAL_MARKERS",startTime:e,endTime:t})}(e,t):[]}async getExternalPowerTracks(e,t){return this._webChannelSupportsGetExternalPowerTracks?async function(e,t){return Fm({type:"GET_EXTERNAL_POWER_TRACKS",startTime:e,endTime:t})}(e,t):[]}async querySymbolicationApi(e,t){if(!this._webChannelSupportsGetProfileAndSymbolication)throw new Error("Can't use querySymbolicationApi in Firefox versions with the old WebChannel.");return async function(e,t){return Fm({type:"QUERY_SYMBOLICATION_API",path:e,requestJson:t})}(e,t)}async showFunctionInDevtools(e,t,n,r){if(!this._webChannelSupportsOpenDebuggerInTab)throw new Error("Can't use showFunctionInDevtools in Firefox versions with the old WebChannel.");return async function(e,t,n,r){return Fm({type:"OPEN_SCRIPT_IN_DEBUGGER",tabId:e,scriptUrl:t,line:n,column:r})}(e,t,n,r)}async getSymbolTable(e,t){if(this._webChannelSupportsGetProfileAndSymbolication)return async function(e,t){return Fm({type:"GET_SYMBOL_TABLE",debugName:e,breakpadId:t})}(e,t);if(this._geckoProfiler)return this._geckoProfiler.getSymbolTable(e,t);throw new Error("Cannot obtain a symbol table: have neither WebChannel nor a GeckoProfiler object")}async getPageFavicons(e){return this._webChannelSupportsGetPageFavicons?async function(e){return Fm({type:"GET_PAGE_FAVICONS",pageUrls:e})}(e):[]}}class Dm extends Error{constructor(...e){super(...e),this.name="TimeoutError"}}async function Lm(e=navigator.userAgent){if(!function(e){return e.includes("Firefox/")||e.includes("Thunderbird/")}(e))return{status:"NOT_FIREFOX"};try{const e=await Promise.race([_m(),new Promise(((e,t)=>{setTimeout((()=>{t(new Dm("Timed out after 5000ms"))}),5e3)}))]);return{status:"ESTABLISHED",browserConnection:new Rm(e)}}catch(e){return e instanceof Dm?{status:"TIMED_OUT"}:{status:"DENIED",error:new Error(_n.TN`
|
106
|
+
This profiler instance was unable to connect to the
|
107
|
+
WebChannel. This usually means that it’s running on a
|
108
|
+
different host from the one that is specified in the
|
109
|
+
preference devtools.performance.recording.ui-base-url. If
|
110
|
+
you would like to capture new profiles with this instance, you can go to about:config
|
111
|
+
and change the preference. Error: ${e.name}: ${e.message}
|
112
|
+
`)}}}var Om=n(717),Um={};Um.styleTagTransform=M(),Um.setAttributes=B(),Um.insert=T().bind(null,"head"),Um.domAPI=k(),Um.insertStyleElement=N(),w()(Om.A,Um),Om.A&&Om.A.locals&&Om.A.locals;class zm extends J.PureComponent{render(){const{children:e,additionalMessage:t,showLoader:n,showBackHomeLink:r,title:o}=this.props;return J.createElement("div",{className:"rootMessageContainer"},J.createElement("div",{className:"rootMessage"},J.createElement(de,{id:"ProfileRootMessage--title"},J.createElement("h1",{className:"rootMessageTitle"},"Firefox Profiler")),o?J.createElement("h2",null,o):null,J.createElement("div",{className:"rootMessageText"},J.createElement("p",null,e)),t?J.createElement("div",{className:"rootMessageAdditional"},t):null,r?J.createElement("div",{className:"rootBackHomeLink"},J.createElement("a",{href:"/"},J.createElement(de,{id:"ProfileRootMessage--additional"},"Back to home"))):null,n?J.createElement("div",{className:"loading"},J.createElement("div",{className:"loading-div loading-div-1 loading-row-1"}),J.createElement("div",{className:"loading-div loading-div-2 loading-row-2"}),J.createElement("div",{className:"loading-div loading-div-3 loading-row-3"}),J.createElement("div",{className:"loading-div loading-div-4 loading-row-3"}),J.createElement("div",{className:"loading-div loading-div-5 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-6 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-7 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-8 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-9 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-10 loading-row-4"})):null))}}const Gm=Object.freeze({"from-browser":"ProfileLoaderAnimation--loading-unpublished","from-post-message":"ProfileLoaderAnimation--loading-from-post-message",unpublished:"ProfileLoaderAnimation--loading-unpublished","from-file":"ProfileLoaderAnimation--loading-from-file",local:"ProfileLoaderAnimation--loading-local",public:"ProfileLoaderAnimation--loading-public","from-url":"ProfileLoaderAnimation--loading-from-url",compare:"ProfileLoaderAnimation--loading-compare"});class Wm extends J.PureComponent{render(){const{view:e,dataSource:t}=this.props,n=Gm[t],r=n||"ProfileLoaderAnimation--loading-view-not-found",o=Boolean(n),a=Boolean(e.additionalData&&e.additionalData.message);return J.createElement(de,{id:r,attrs:{title:!0},elems:{a:J.createElement("span",null)}},J.createElement(zm,{additionalMessage:this._renderAdditionalMessage(),showLoader:o,showBackHomeLink:a},`Untranslated ${r}`))}_renderAdditionalMessage(){const{view:e}=this.props;if(!e.additionalData)return null;const{message:t,attempt:n}=e.additionalData;return J.createElement(J.Fragment,null,t?J.createElement("p",null,t):null,n?J.createElement("p",null,`Tried ${function(e){switch(e){case 1:return"once";case 2:return"twice";default:return`${e} times`}}(n.count)} out of ${n.total}.`):null)}}const Hm=at({mapStateToProps:e=>({view:$s(e),dataSource:go(e)}),component:Wm});class Vm extends J.PureComponent{constructor(...e){super(...e),this._updateState=()=>{const{updateUrlState:e,show404:t,urlState:n}=this.props;let r;if(window.history.state)r=window.history.state;else try{r=Or(window.location)}catch(e){return console.error(e),void t(window.location.pathname+window.location.search)}const o=["from-browser","from-post-message","unpublished"],a=o.includes(n.dataSource)&&"public"===r.dataSource||"public"===n.dataSource&&o.includes(r.dataSource),i="public"===n.dataSource&&"public"===r.dataSource&&n.hash!==r.hash;a||i?window.history.replaceState(n,document.title,Dr(n)):e(r)}}async _processInitialUrls(){const{startFetchingProfiles:e,setupInitialUrlState:t,urlSetupDone:n,updateBrowserConnectionStatus:r}=this.props,o=this.props.retrieveProfileForRawUrl;let a;e();const i=window.location.pathname.split("/").filter((e=>e))[0];["from-browser","from-addon","from-file","from-post-message"].includes(i)&&(r({status:"WAITING"}),a=await Lm(),r(a));try{const e=await o(window.location,a),n=void 0!==a&&"ESTABLISHED"===a.status?a.browserConnection:null;t(window.location,e,n)}catch(e){console.error("There was an error in the initial URL setup.",e),n()}}componentDidMount(){this._processInitialUrls(),window.addEventListener("popstate",this._updateState)}componentWillUnmount(){window.removeEventListener("popstate",this._updateState)}componentDidUpdate(){const{urlSetupPhase:e,phase:t,urlState:n}=this.props;if("done"!==e)return;if("FATAL_ERROR"===t)return;const r=window.location.pathname+window.location.search,o=Dr(n);!window.history.state||_r?window.history.replaceState(n,document.title,o):o!==r&&window.history.pushState(n,document.title,o)}render(){const{urlSetupPhase:e,children:t}=this.props;switch(e){case"initial-load":return null;case"loading-profile":return J.createElement(Hm,null);case"done":return t;default:return(0,ut.lC)(e,"Unhandled URL setup phase."),null}}}const jm=at({mapStateToProps:e=>({urlState:e.urlState,urlSetupPhase:Ks(e),phase:$s(e).phase}),mapDispatchToProps:{updateUrlState:fm,startFetchingProfiles:lm,urlSetupDone:cm,show404:dm,setupInitialUrlState:mm,retrieveProfileForRawUrl:om,updateBrowserConnectionStatus:Bm},component:Vm});function $m(e){return{type:"REQUEST_L10N",locales:e}}function Km(e,t,n){return{type:"RECEIVE_L10N",localization:e,primaryLocale:t,direction:n}}function Ym(e){return{type:"TOGGLE_PSEUDO_STRATEGY",pseudoStrategy:e}}class qm{constructor(e){this.value=e}valueOf(){return this.value}}class Zm extends qm{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}}class Xm extends qm{constructor(e,t={}){super(e),this.opts=t}toString(e){if(e)try{return e.memoizeIntlObject(Intl.NumberFormat,this.opts).format(this.value)}catch(t){e.reportError(t)}return this.value.toString(10)}}class Jm extends qm{static supportsValue(e){if("number"==typeof e)return!0;if(e instanceof Date)return!0;if(e instanceof qm)return Jm.supportsValue(e.valueOf());if("Temporal"in globalThis){const t=globalThis.Temporal;if(e instanceof t.Instant||e instanceof t.PlainDateTime||e instanceof t.PlainDate||e instanceof t.PlainMonthDay||e instanceof t.PlainTime||e instanceof t.PlainYearMonth)return!0}return!1}constructor(e,t={}){e instanceof Jm?(t={...e.opts,...t},e=e.value):e instanceof qm&&(e=e.valueOf()),"object"==typeof e&&"calendarId"in e&&void 0===t.calendar&&(t={...t,calendar:e.calendarId}),super(e),this.opts=t}[Symbol.toPrimitive](e){return"string"===e?this.toString():this.toNumber()}toNumber(){const e=this.value;if("number"==typeof e)return e;if(e instanceof Date)return e.getTime();if("epochMilliseconds"in e)return e.epochMilliseconds;if("toZonedDateTime"in e)return e.toZonedDateTime("UTC").epochMilliseconds;throw new TypeError("Unwrapping a non-number value as a number")}toString(e){if(e)try{return e.memoizeIntlObject(Intl.DateTimeFormat,this.opts).format(this.value)}catch(t){e.reportError(t)}return"number"==typeof this.value||this.value instanceof Date?new Date(this.value).toISOString():this.value.toString()}}function Qm(e,t,n){return n===t||(n instanceof Xm&&t instanceof Xm&&n.value===t.value||t instanceof Xm&&"string"==typeof n&&n===e.memoizeIntlObject(Intl.PluralRules,t.opts).select(t.value))}function ef(e,t,n){return t[n]?of(e,t[n].value):(e.reportError(new RangeError("No default")),new Zm)}function tf(e,t){const n=[],r=Object.create(null);for(const o of t)"narg"===o.type?r[o.name]=nf(e,o.value):n.push(nf(e,o));return{positional:n,named:r}}function nf(e,t){switch(t.type){case"str":return t.value;case"num":return new Xm(t.value,{minimumFractionDigits:t.precision});case"var":return function(e,{name:t}){let n;if(e.params){if(!Object.prototype.hasOwnProperty.call(e.params,t))return new Zm(`$${t}`);n=e.params[t]}else{if(!e.args||!Object.prototype.hasOwnProperty.call(e.args,t))return e.reportError(new ReferenceError(`Unknown variable: $${t}`)),new Zm(`$${t}`);n=e.args[t]}if(n instanceof qm)return n;switch(typeof n){case"string":return n;case"number":return new Xm(n);case"object":if(Jm.supportsValue(n))return new Jm(n);default:return e.reportError(new TypeError(`Variable type not supported: $${t}, ${typeof n}`)),new Zm(`$${t}`)}}(e,t);case"mesg":return function(e,{name:t,attr:n}){const r=e.bundle._messages.get(t);if(!r)return e.reportError(new ReferenceError(`Unknown message: ${t}`)),new Zm(t);if(n){const o=r.attributes[n];return o?of(e,o):(e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Zm(`${t}.${n}`))}return r.value?of(e,r.value):(e.reportError(new ReferenceError(`No value: ${t}`)),new Zm(t))}(e,t);case"term":return function(e,{name:t,attr:n,args:r}){const o=`-${t}`,a=e.bundle._terms.get(o);if(!a)return e.reportError(new ReferenceError(`Unknown term: ${o}`)),new Zm(o);if(n){const t=a.attributes[n];if(t){e.params=tf(e,r).named;const n=of(e,t);return e.params=null,n}return e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Zm(`${o}.${n}`)}e.params=tf(e,r).named;const i=of(e,a.value);return e.params=null,i}(e,t);case"func":return function(e,{name:t,args:n}){let r=e.bundle._functions[t];if(!r)return e.reportError(new ReferenceError(`Unknown function: ${t}()`)),new Zm(`${t}()`);if("function"!=typeof r)return e.reportError(new TypeError(`Function ${t}() is not callable`)),new Zm(`${t}()`);try{let t=tf(e,n);return r(t.positional,t.named)}catch(n){return e.reportError(n),new Zm(`${t}()`)}}(e,t);case"select":return function(e,{selector:t,variants:n,star:r}){let o=nf(e,t);if(o instanceof Zm)return ef(e,n,r);for(const t of n)if(Qm(e,o,nf(e,t.key)))return of(e,t.value);return ef(e,n,r)}(e,t);default:return new Zm}}function rf(e,t){if(e.dirty.has(t))return e.reportError(new RangeError("Cyclic reference")),new Zm;e.dirty.add(t);const n=[],r=e.bundle._useIsolating&&t.length>1;for(const o of t)if("string"!=typeof o){if(e.placeables++,e.placeables>100)throw e.dirty.delete(t),new RangeError(`Too many placeables expanded: ${e.placeables}, max allowed is 100`);r&&n.push(""),n.push(nf(e,o).toString(e)),r&&n.push("")}else n.push(e.bundle._transform(o));return e.dirty.delete(t),n.join("")}function of(e,t){return"string"==typeof t?e.bundle._transform(t):rf(e,t)}class af{constructor(e,t,n){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=e,this.errors=t,this.args=n}reportError(e){if(!(this.errors&&e instanceof Error))throw e;this.errors.push(e)}memoizeIntlObject(e,t){let n=this.bundle._intls.get(e);n||(n={},this.bundle._intls.set(e,n));let r=JSON.stringify(t);return n[r]||(n[r]=new e(this.bundle.locales,t)),n[r]}}function sf(e,t){const n=Object.create(null);for(const[r,o]of Object.entries(e))t.includes(r)&&(n[r]=o.valueOf());return n}const lf=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function cf(e,t){let n=e[0];if(n instanceof Zm)return new Zm(`NUMBER(${n.valueOf()})`);if(n instanceof Xm)return new Xm(n.valueOf(),{...n.opts,...sf(t,lf)});if(n instanceof Jm)return new Xm(n.toNumber(),{...sf(t,lf)});throw new TypeError("Invalid argument to NUMBER")}const df=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function uf(e,t){let n=e[0];if(n instanceof Zm)return new Zm(`DATETIME(${n.valueOf()})`);if(n instanceof Jm||n instanceof Xm)return new Jm(n,sf(t,df));throw new TypeError("Invalid argument to DATETIME")}const hf=new Map;class pf{constructor(e,{functions:t,useIsolating:n=!0,transform:r=e=>e}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(e)?e:[e],this._functions={NUMBER:cf,DATETIME:uf,...t},this._useIsolating=n,this._transform=r,this._intls=function(e){const t=Array.isArray(e)?e.join(" "):e;let n=hf.get(t);return void 0===n&&(n=new Map,hf.set(t,n)),n}(e)}hasMessage(e){return this._messages.has(e)}getMessage(e){return this._messages.get(e)}addResource(e,{allowOverrides:t=!1}={}){const n=[];for(let r=0;r<e.body.length;r++){let o=e.body[r];if(o.id.startsWith("-")){if(!1===t&&this._terms.has(o.id)){n.push(new Error(`Attempt to override an existing term: "${o.id}"`));continue}this._terms.set(o.id,o)}else{if(!1===t&&this._messages.has(o.id)){n.push(new Error(`Attempt to override an existing message: "${o.id}"`));continue}this._messages.set(o.id,o)}}return n}formatPattern(e,t=null,n=null){if("string"==typeof e)return this._transform(e);let r=new af(this,n,t);try{return rf(r,e).toString(r)}catch(e){if(r.errors&&e instanceof Error)return r.errors.push(e),(new Zm).toString(r);throw e}}}const mf=/^(-?[a-zA-Z][\w-]*) *= */gm,ff=/\.([a-zA-Z][\w-]*) *= */y,gf=/\*?\[/y,Af=/(-?[0-9]+(?:\.([0-9]+))?)/y,bf=/([a-zA-Z][\w-]*)/y,Cf=/([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y,vf=/^[A-Z][A-Z0-9_-]*$/,yf=/([^{}\n\r]+)/y,wf=/([^\\"\n\r]*)/y,Ef=/\\([\\"])/y,kf=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y,xf=/^\n+/,Tf=/ +$/,Sf=/ *\r?\n/g,Bf=/( *)$/,If=/{\s*/y,_f=/\s*}/y,Nf=/\[\s*/y,Pf=/\s*] */y,Mf=/\s*\(\s*/y,Ff=/\s*->\s*/y,Rf=/\s*:\s*/y,Df=/\s*,?\s*/y,Lf=/\s+/y;class Of{constructor(e){this.body=[],mf.lastIndex=0;let t=0;for(;;){let n=mf.exec(e);if(null===n)break;t=mf.lastIndex;try{this.body.push(s(n[1]))}catch(e){if(e instanceof SyntaxError)continue;throw e}}function n(n){return n.lastIndex=t,n.test(e)}function r(n,r){if(e[t]===n)return t++,!0;if(r)throw new r(`Expected ${n}`);return!1}function o(e,r){if(n(e))return t=e.lastIndex,!0;if(r)throw new r(`Expected ${e.toString()}`);return!1}function a(n){n.lastIndex=t;let r=n.exec(e);if(null===r)throw new SyntaxError(`Expected ${n.toString()}`);return t=n.lastIndex,r}function i(e){return a(e)[1]}function s(e){let t=l(),r=function(){let e=Object.create(null);for(;n(ff);){let t=i(ff),n=l();if(null===n)throw new SyntaxError("Expected attribute value");e[t]=n}return e}();if(null===t&&0===Object.keys(r).length)throw new SyntaxError("Expected message value or attributes");return{id:e,value:t,attributes:r}}function l(){let r;if(n(yf)&&(r=i(yf)),"{"===e[t]||"}"===e[t])return c(r?[r]:[],1/0);let o=A();return o?r?c([r,o],o.length):(o.value=b(o.value,xf),c([o],o.length)):r?b(r,Tf):null}function c(r=[],o){for(;;){if(n(yf)){r.push(i(yf));continue}if("{"===e[t]){r.push(d());continue}if("}"===e[t])throw new SyntaxError("Unbalanced closing brace");let a=A();if(!a)break;r.push(a),o=Math.min(o,a.length)}let a=r.length-1,s=r[a];"string"==typeof s&&(r[a]=b(s,Tf));let l=[];for(let e of r)e instanceof Uf&&(e=e.value.slice(0,e.value.length-o)),e&&l.push(e);return l}function d(){o(If,SyntaxError);let e=u();if(o(_f))return e;if(o(Ff)){let t=function(){let e,t=[],o=0;for(;n(gf);){r("*")&&(e=o);let n=p(),a=l();if(null===a)throw new SyntaxError("Expected variant value");t[o++]={key:n,value:a}}if(0===o)return null;if(void 0===e)throw new SyntaxError("Expected default variant");return{variants:t,star:e}}();return o(_f,SyntaxError),{type:"select",selector:e,...t}}throw new SyntaxError("Unclosed placeable")}function u(){if("{"===e[t])return d();if(n(Cf)){let[,n,r,i=null]=a(Cf);if("$"===n)return{type:"var",name:r};if(o(Mf)){let a=function(){let n=[];for(;;){switch(e[t]){case")":return t++,n;case void 0:throw new SyntaxError("Unclosed argument list")}n.push(h()),o(Df)}}();if("-"===n)return{type:"term",name:r,attr:i,args:a};if(vf.test(r))return{type:"func",name:r,args:a};throw new SyntaxError("Function names must be all upper-case")}return"-"===n?{type:"term",name:r,attr:i,args:[]}:{type:"mesg",name:r,attr:i}}return m()}function h(){let e=u();return"mesg"!==e.type?e:o(Rf)?{type:"narg",name:e.name,value:m()}:e}function p(){let e;return o(Nf,SyntaxError),e=n(Af)?f():{type:"str",value:i(bf)},o(Pf,SyntaxError),e}function m(){if(n(Af))return f();if('"'===e[t])return function(){r('"',SyntaxError);let n="";for(;;){if(n+=i(wf),"\\"!==e[t]){if(r('"'))return{type:"str",value:n};throw new SyntaxError("Unclosed string literal")}n+=g()}}();throw new SyntaxError("Invalid expression")}function f(){let[,e,t=""]=a(Af),n=t.length;return{type:"num",value:parseFloat(e),precision:n}}function g(){if(n(Ef))return i(Ef);if(n(kf)){let[,e,t]=a(kf),n=parseInt(e||t,16);return n<=55295||57344<=n?String.fromCodePoint(n):"�"}throw new SyntaxError("Unknown escape sequence")}function A(){let n=t;switch(o(Lf),e[t]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return C(e.slice(n,t))}return" "===e[t-1]&&C(e.slice(n,t))}function b(e,t){return e.replace(t,"")}function C(e){let t=e.replace(Sf,"\n"),n=Bf.exec(e)[1].length;return new Uf(t,n)}}}class Uf{constructor(e,t){this.value=e,this.length=t}}function zf(e,t=!1,n="",r="",o){if(1===o.length)return o;const a=/(&[#\w]+;|<\s*.+?\s*>)/;return o.split(a).map((o=>a.test(o)?o:n+o.replace(/[a-z]/gi,(n=>{const r=n.charCodeAt(0);if(r>=97&&r<=122){const n=String.fromCodePoint(e.small[r-97]);return!t||97!==r&&101!==r&&111!==r&&117!==r?n:n+n}return r>=65&&r<=90?String.fromCodePoint(e.caps[r-65]):n}))+r)).join("")}const Gf={accented:zf.bind(null,{caps:[550,385,391,7698,7702,401,403,294,298,308,310,319,7742,544,510,420,586,344,350,358,364,7804,7814,7818,7822,7824],small:[551,384,392,7699,7703,402,608,295,299,309,311,320,7743,414,511,421,587,345,351,359,365,7805,7815,7819,7823,7825]},!0,"",""),bidi:zf.bind(null,{caps:[8704,1296,8579,5601,398,8498,8513,72,73,383,1276,8514,87,78,79,1280,210,7450,83,8869,8745,581,77,88,8516,90],small:[592,113,596,112,477,607,387,613,305,638,670,645,623,117,111,100,98,633,115,647,110,652,653,120,654,122]},!1,"","")},Wf={accented:"ltr",bidi:"rtl"},Hf={hour:"numeric",minute:"numeric"},Vf={month:"short",day:"numeric",hour:"numeric",minute:"numeric"},jf={year:"numeric",month:"short",day:"numeric"},$f=(e,t)=>{const n=e[0],r=Date.now()-+n;return new Jm(n,r<0||r>31536e6?jf:r>864e5?Vf:Hf)},Kf={be:"Беларуская",de:"Deutsch",el:"Ελληνικά","en-GB":"English (GB)","en-CA":"English (CA)","en-US":"English (US)","es-CL":"Español",fr:"Français","fy-NL":"Frysk",fur:"Furlan",ia:"Interlingua",it:"Italiano",nl:"Nederlands","pt-BR":"Português (BR)",ru:"Русский","sv-SE":"Svenska",uk:"Українська","zh-CN":"简体中文","zh-TW":"正體中文"},Yf=Object.keys(Kf),qf="en-US",Zf=["ar","he","fa","ps","ur"];async function Xf(e){const t=await fetch(`/locales/${e}/app.ftl`,{mode:"no-cors",credentials:"include"});return[e,await t.text()]}class Jf extends J.PureComponent{constructor(...e){super(...e),this._onLocaleChange=e=>{this.props.requestL10n([e.currentTarget.value])}}render(){const{primaryLocale:e}=this.props;return e?J.createElement(de,{id:"FooterLinks--languageSwitcher--select",attrs:{title:!0}},J.createElement("select",{className:"appFooterLinksLanguageSwitcher",onChange:this._onLocaleChange,value:e},Yf.map((e=>J.createElement("option",{value:e,key:e},Kf[e]??e))))):null}}const Qf=at({component:Jf,mapStateToProps:e=>({primaryLocale:fu(e)}),mapDispatchToProps:{requestL10n:$m}});var eg=n(2441),tg={};tg.styleTagTransform=M(),tg.setAttributes=B(),tg.insert=T().bind(null,"head"),tg.domAPI=k(),tg.insertStyleElement=N(),w()(eg.A,tg),eg.A&&eg.A.locals&&eg.A.locals;class ng extends J.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.setState({hide:!0})},this.state={hide:!1}}render(){return this.state.hide?null:J.createElement("div",{className:"appFooterLinks"},J.createElement(de,{id:"FooterLinks--hide-button",attrs:{title:!0,"aria-label":!0}},J.createElement("button",{className:"appFooterLinksClose",type:"button",onClick:this._onClick},"✕")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/about/legal/terms/mozilla",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--legal"},"Legal")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--Privacy"},"Privacy")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites/#cookies",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--Cookies"},"Cookies")),J.createElement(Qf,null))}}var rg=n(9133),og={};og.styleTagTransform=M(),og.setAttributes=B(),og.insert=T().bind(null,"head"),og.domAPI=k(),og.insertStyleElement=N(),w()(rg.A,og),rg.A&&rg.A.locals&&rg.A.locals;class ag extends J.Component{constructor(...e){super(...e),this.state={hasError:!1,errorString:null}}componentDidCatch(e,{componentStack:t}){console.error("An unhandled error was thrown in a React component.",e,t);let n=null;if(e&&"object"==typeof e&&"function"==typeof e.toString){const t=e.toString();"string"==typeof t&&(n=t)}this.setState({hasError:!0,errorString:n}),(0,ml.N)({exDescription:n?n+"\n"+t:t,exFatal:!0})}render(){if(this.state.hasError){const{errorString:e}=this.state;return J.createElement("div",{className:"appErrorBoundary"},J.createElement("div",{className:"appErrorBoundaryContents"},J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text appErrorBoundaryInnerText"},J.createElement("p",null,this.props.message),e?J.createElement("p",null,e,"."):null,J.createElement("p",null,this.props.reportExplanationMessage)),J.createElement("a",{className:"photon-button photon-button-micro photon-message-bar-action-button",href:"https://github.com/firefox-devtools/profiler/issues/new?title=An%20error%20occurred%20in%20Firefox%20Profiler",target:"_blank",rel:"noreferrer"},this.props.buttonContent))))}return this.props.children}}function ig(e){return J.createElement(ag,{...e,buttonContent:"Report the error on GitHub",reportExplanationMessage:"Please report this error to the developers, including the full error as displayed in the Developer Tools’ Web Console."})}function sg(e){return J.createElement(ag,{...e,buttonContent:J.createElement(de,{id:"ErrorBoundary--report-error-on-github"},"Report the error on GitHub"),reportExplanationMessage:J.createElement(de,{id:"ErrorBoundary--report-error-to-developers-description"},"Please report this issue to the developers, including the full error as displayed in the Developer Tools’ Web Console.")})}var lg=n(6009),cg=n.n(lg),dg=n(6942),ug=n.n(dg),hg=n(2305),pg={};pg.styleTagTransform=M(),pg.setAttributes=B(),pg.insert=T().bind(null,"head"),pg.domAPI=k(),pg.insertStyleElement=N(),w()(hg.A,pg),hg.A&&hg.A.locals&&hg.A.locals;class mg extends J.PureComponent{constructor(...e){super(...e),this._onClickListener=e=>{this.props.onSelectTab(e.currentTarget.dataset.name)},this._onMouseDown=e=>{this.props.onSelectTab(e.currentTarget.dataset.name),e.preventDefault()}}render(){const{selectedTabSlug:e,visibleTabs:t}=this.props;return J.createElement("ol",{className:"tabBarTabWrapper",role:"tablist","aria-label":"Profiler tabs"},t.map((t=>J.createElement("li",{className:ug()({tabBarTab:!0,selected:t===e}),key:t,"data-name":t,onClick:this._onClickListener,onMouseDown:this._onMouseDown},J.createElement(de,{id:Tr[t]},J.createElement("button",{className:"tabBarTabButton",type:"button",id:`${t}-tab-button`,role:"tab","aria-selected":t===e,"aria-controls":`${t}-tab`},Tr[t]))))))}}var fg=n(9298),gg=n.n(fg);let Ag=null;function bg(){return Ag||(Ag=function(){const e=new Map,t=new Map;let n=null;function r(t,n){const r=e.get(t);r&&r.forEach((e=>e(n)))}function o(e){for(const n of e)document.hidden?t.set(n.target,n.contentRect):r(n.target,n.contentRect)}function a(){document.hidden||(t.forEach(((e,t)=>r(t,e))),t.clear())}function i(){return n||(n=new ResizeObserver(o),window.addEventListener("visibilitychange",a)),n}return{subscribe(t,n){const r=e.get(t)??new Set;e.set(t,r),r.add(n),i().observe(t)},unsubscribe(t,r){const o=e.get(t);o?(o.delete(r)||console.warn("[ResizeObserverWrapper.unsubscribe] We tried to unregister an unknown callback."),0===o.size&&(e.delete(t),i().unobserve(t)),0===e.size&&(n=null,window.removeEventListener("visibilitychange",a))):console.warn("[ResizeObserverWrapper.unsubscribe] We tried to unregister a callback for an element that wasn't registered in the first place. Ignoring...")}}}()),Ag}class Cg extends J.PureComponent{render(){const{renderItem:e,item:t,index:n,columnIndex:r}=this.props;return e(t,n,r)}}class vg extends J.PureComponent{render(){const{className:e,renderItem:t,items:n,specialItems:r,visibleRangeStart:o,visibleRangeEnd:a,columnIndex:i,forceRender:s}=this.props;return J.createElement("div",{className:e},gg()(o,Math.max(o,a)).map((e=>{const o=n[e],a=`${r.indexOf(o)}|${r.reduce(((e,t)=>t===o?e+1:e),0)}`;return J.createElement(Cg,{key:e,index:e,columnIndex:i,renderItem:t,item:o,items:n,forceRenderItem:a,forceRender:s})})))}}class yg extends J.PureComponent{render(){const{itemHeight:e,className:t,renderItem:n,items:r,specialItems:o,visibleRangeStart:a,visibleRangeEnd:i,columnIndex:s,containerWidth:l,forceRender:c}=this.props,d=Math.floor(a/16),u=Math.ceil(i/16),h=gg()(d,Math.max(d,u)).map((e=>16*e));return J.createElement("div",{className:t,style:{height:(r.length+1)*e+"px",minWidth:1===s?l:void 0}},J.createElement("div",{className:`${t}TopSpacer`,key:-1,style:{height:Math.max(0,a)*e+"px"}}),h.map((e=>J.createElement(vg,{className:`${t}InnerChunk`,key:e,visibleRangeStart:Math.max(e,a),visibleRangeEnd:Math.min(e+16,i),columnIndex:s,renderItem:n,items:r,specialItems:o,forceRender:c}))))}}class wg extends J.PureComponent{constructor(...e){super(...e),this._container=J.createRef(),this.state={scrollTop:0,containerHeight:0},this._resizeListener=e=>{this.setState({containerHeight:e.height})},this._onScroll=e=>{this.setState({scrollTop:e.currentTarget.scrollTop})},this._onCopy=e=>{const{onCopy:t}=this.props;t&&document.activeElement===this._container.current&&t(e)},this._onMouseLeaveInnerWrapper=()=>{this.props.onMouseLeaveRenderedList&&this.props.onMouseLeaveRenderedList()}}componentDidMount(){document.addEventListener("copy",this._onCopy,!1);const e=this._container.current;if(!e)throw new Error("The container was assumed to exist while mounting The VirtualList.");bg().subscribe(e,this._resizeListener)}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1);const e=this._container.current;if(!e)throw new Error("The container was assumed to exist while unmounting The VirtualList.");bg().unsubscribe(e,this._resizeListener)}computeVisibleRange(){const{itemHeight:e,disableOverscan:t}=this.props,{scrollTop:n,containerHeight:r}=this.state,o=t?0:25;let a=Math.floor(n/e)-o,i=Math.ceil((n+r)/e)+o;return t||(a=16*Math.floor(a/16),i=16*Math.ceil(i/16)),{visibleRangeStart:a,visibleRangeEnd:i}}_scrollContainerHorizontally(e,t,n){const r=t,o=t+400,a=e.clientWidth-n;e.scrollLeft>r?e.scrollLeft=r:e.scrollLeft+a<o&&(e.scrollLeft=Math.min(r,o-a))}scrollItemIntoView(e,t,n=0){const r=this._container.current;if(!r)return;let o=3*this.props.itemHeight;r.clientHeight<2*o&&(o=0);const a=e*this.props.itemHeight,i=a-o,s=a+this.props.itemHeight,l=s+o,c=16*this.props.itemHeight;if(a+c<r.scrollTop||s-c>r.scrollTop+r.clientHeight){const e=a-(r.clientHeight-this.props.itemHeight)/2;r.scrollTop=Math.min(i,e)}else i<r.scrollTop?r.scrollTop=i:l>r.scrollTop+r.clientHeight&&(r.scrollTop=Math.min(i,l-r.clientHeight));this._scrollContainerHorizontally(r,t,n)}focus(){const e=this._container.current;e&&e.focus()}render(){const{itemHeight:e,className:t,renderItem:n,items:r,focusable:o,specialItems:a,onKeyDown:i,containerWidth:s,forceRender:l,ariaRole:c,ariaLabel:d,ariaActiveDescendant:u}=this.props,h=this.props.columnCount||1,{visibleRangeStart:p,visibleRangeEnd:m}=this.computeVisibleRange();return J.createElement("div",{className:t,ref:this._container,tabIndex:o?0:-1,onKeyDown:i,role:c,"aria-label":d,"aria-activedescendant":u,onScroll:this._onScroll},J.createElement("div",{className:`${t}InnerWrapper`,onMouseLeave:this._onMouseLeaveInnerWrapper},gg()(h).map((o=>J.createElement(yg,{className:ug()(`${t}Inner`,`${t}Inner${o}`),visibleRangeStart:Math.max(0,p),visibleRangeEnd:Math.min(r.length,m),itemHeight:e,renderItem:n,items:r,specialItems:a,columnIndex:o,containerWidth:s,forceRender:l,key:o})))))}}var Eg=n(961),kg=n(5556),xg=n.n(kg),Tg=n(5228),Sg=n.n(Tg);function Bg(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"function"==typeof e&&e(...n)}function Ig(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const _g="react-contextmenu",Ng="react-contextmenu--visible",Pg="react-contextmenu-item",Mg="react-contextmenu-item--disabled",Fg="react-contextmenu-item--selected",Rg={},Dg=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),Lg="REACT_CONTEXTMENU_SHOW",Og="REACT_CONTEXTMENU_HIDE";function Ug(e,t){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{detail:t}):(n=document.createEvent("CustomEvent"),n.initCustomEvent(e,!1,!0,t)),r&&(r.dispatchEvent(n),Sg()(Rg,t))}function zg(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;Ug(Lg,Sg()({},e,{type:Lg}),t)}function Gg(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;Ug(Og,Sg()({},e,{type:Og}),t)}const Wg=new class{constructor(){this.callbacks={},Dg&&(window.addEventListener(Lg,this.handleShowEvent),window.addEventListener(Og,this.handleHideEvent))}handleShowEvent=e=>{for(const t in this.callbacks)Ig(this.callbacks,t)&&this.callbacks[t].show(e)};handleHideEvent=e=>{for(const t in this.callbacks)Ig(this.callbacks,t)&&this.callbacks[t].hide(e)};register=(e,t)=>{const n=Math.random().toString(36).substring(7);return this.callbacks[n]={show:e,hide:t},n};unregister=e=>{e&&this.callbacks[e]&&delete this.callbacks[e]}};function Hg(){return Hg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hg.apply(null,arguments)}class Vg extends J.Component{static propTypes=(()=>({attributes:xg().object,children:xg().node,className:xg().string,data:xg().object,disabled:xg().bool,divider:xg().bool,onClick:xg().func,onMouseLeave:xg().func,onMouseMove:xg().func,preventClose:xg().bool,selected:xg().bool,role:xg().string}))();static defaultProps={attributes:{},children:null,className:"",data:{},disabled:!1,divider:!1,onClick:()=>null,onMouseMove:()=>null,onMouseLeave:()=>null,preventClose:!1,selected:!1,role:"menuitem"};handleClick=e=>{0!==e.button&&1!==e.button&&e.preventDefault(),this.props.disabled||this.props.divider||(Bg(this.props.onClick,e,Sg()({},this.props.data,Rg.data),Rg.target),this.props.preventClose||Gg())};render(){const{attributes:e,children:t,className:n,disabled:r,divider:o,selected:a,role:i}=this.props,s=ug()(n,Pg,e.className,{[ug()(Mg,e.disabledClassName)]:r,[ug()("react-contextmenu-item--divider",e.dividerClassName)]:o,[ug()(Fg,e.selectedClassName)]:a});return J.createElement("div",Hg({},e,{className:s,role:i,tabIndex:"-1","aria-disabled":r?"true":"false","aria-orientation":o?"horizontal":null,ref:e=>{this.ref=e},onMouseMove:this.props.onMouseMove,onMouseLeave:this.props.onMouseLeave,onTouchEnd:this.handleClick,onClick:this.handleClick}),o?null:t)}}class jg extends J.Component{static propTypes=(()=>({children:xg().node.isRequired}))();constructor(e){super(e),this.seletedItemRef=null,this.state={selectedItem:null,forceSubMenuOpen:!1}}handleKeyNavigation=e=>{if(!1!==this.state.isVisible)switch(e.key){case"ArrowLeft":case"Left":case"Escape":case"Esc":e.preventDefault(),this.hideMenu(e);break;case"ArrowUp":case"Up":e.preventDefault(),this.selectChildren(!0);break;case"ArrowDown":case"Down":e.preventDefault(),this.selectChildren(!1);break;case"ArrowRight":case"Right":this.tryToOpenSubMenu(e);break;case"Enter":e.preventDefault(),this.tryToOpenSubMenu(e);{const t=this.seletedItemRef&&this.seletedItemRef.props&&this.seletedItemRef.props.disabled;this.seletedItemRef&&this.seletedItemRef.ref instanceof HTMLElement&&!t?this.seletedItemRef.ref.click():this.hideMenu(e)}}};handleForceClose=()=>{this.setState({forceSubMenuOpen:!1})};tryToOpenSubMenu=e=>{this.state.selectedItem&&this.state.selectedItem.type===this.getSubMenuType()&&(e.preventDefault(),this.setState({forceSubMenuOpen:!0}))};selectChildren=e=>{const{selectedItem:t}=this.state,n=[];let r=0,o={};const a=(e,t)=>{e&&([Vg,this.getSubMenuType()].indexOf(e.type)<0&&e.props.children instanceof Object?J.Children.forEach(e.props.children,a):e.props.divider||(e.props.disabled&&(++r,o[t]=!0),n.push(e)))};if(J.Children.forEach(this.props.children,a),r===n.length)return;const i=function(t){let r=t;do{e?--r:++r,r<0?r=n.length-1:r>=n.length&&(r=0)}while(r!==t&&o[r]);return r===t?null:r}(t?t.index:-1);null!==i&&this.setState({selectedItem:{index:i,type:n[i].type},forceSubMenuOpen:!1})};onChildMouseMove=(e,t)=>{null!==this.state.selectedItem&&this.state.selectedItem.index===t||this.setState({selectedItem:{index:t,type:e.type},forceSubMenuOpen:!1})};onChildMouseLeave=()=>{this.setState({selectedItem:null,forceSubMenuOpen:!1})};renderChildren=(()=>{var e=this;return function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{value:-1};return J.Children.map(t,(t=>{let r=n;const o={};if(!J.isValidElement(t))return t;if([Vg,e.getSubMenuType()].indexOf(t.type)<0)return o.children=e.renderChildren(t.props.children,r),J.cloneElement(t,o);let a=null;return t.props.divider||(a=++r.value),o.onMouseLeave=e.onChildMouseLeave.bind(e),t.type===e.getSubMenuType()&&(o.forceOpen=e.state.forceSubMenuOpen&&e.state.selectedItem&&e.state.selectedItem.index===a,o.forceClose=e.handleForceClose,o.parentKeyNavigationHandler=e.handleKeyNavigation),!t.props.divider&&e.state.selectedItem&&e.state.selectedItem.index===a?(o.selected=!0,o.ref=t=>{e.seletedItemRef=t},J.cloneElement(t,o)):(o.onMouseMove=()=>e.onChildMouseMove(t,a),J.cloneElement(t,o))}))}})()}function $g(){return $g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$g.apply(null,arguments)}class Kg extends jg{static propTypes=(()=>({children:xg().node.isRequired,attributes:xg().object,title:xg().node.isRequired,className:xg().string,disabled:xg().bool,hoverDelay:xg().number,rtl:xg().bool,selected:xg().bool,onMouseMove:xg().func,onMouseOut:xg().func,forceOpen:xg().bool,forceClose:xg().func,parentKeyNavigationHandler:xg().func}))();static defaultProps={disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:()=>null,onMouseOut:()=>null,forceOpen:!1,forceClose:()=>null,parentKeyNavigationHandler:()=>null};constructor(e){super(e),this.state=Sg()({},this.state,{visible:!1})}componentDidMount(){this.listenId=Wg.register((()=>{}),this.hideSubMenu)}getSubMenuType(){return Kg}shouldComponentUpdate(e,t){return this.isVisibilityChange=!(this.state.visible===t.visible&&this.props.forceOpen===e.forceOpen||this.state.visible&&e.forceOpen||this.props.forceOpen&&t.visible),!0}componentDidUpdate(){if(this.isVisibilityChange)if(this.props.forceOpen||this.state.visible)(window.requestAnimationFrame||setTimeout)((()=>{if(!this.subMenu)return;const e=this.props.rtl?this.getRTLMenuPosition():this.getMenuPosition();this.subMenu.style.removeProperty("top"),this.subMenu.style.removeProperty("bottom"),this.subMenu.style.removeProperty("left"),this.subMenu.style.removeProperty("right"),Ig(e,"top")&&(this.subMenu.style.top=e.top),Ig(e,"left")&&(this.subMenu.style.left=e.left),Ig(e,"bottom")&&(this.subMenu.style.bottom=e.bottom),Ig(e,"right")&&(this.subMenu.style.right=e.right),this.subMenu.classList.add(Ng),this.registerHandlers(),this.setState({selectedItem:null})}));else{const e=()=>{this.subMenu&&(this.subMenu.removeEventListener("transitionend",e),this.subMenu.style.removeProperty("bottom"),this.subMenu.style.removeProperty("right"),this.subMenu.style.top=0,this.subMenu.style.left="100%",this.unregisterHandlers())};this.subMenu.addEventListener("transitionend",e),this.subMenu.classList.remove(Ng)}}componentWillUnmount(){this.listenId&&Wg.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}getMenuPosition=()=>{const{innerWidth:e,innerHeight:t}=window,n=this.subMenu.getBoundingClientRect(),r={};return n.bottom>t?r.bottom=0:r.top=0,n.right<e?r.left="100%":r.right="100%",r};getRTLMenuPosition=()=>{const{innerHeight:e}=window,t=this.subMenu.getBoundingClientRect(),n={};return t.bottom>e?n.bottom=0:n.top=0,t.left<0?n.left="100%":n.right="100%",n};hideMenu=e=>{e.preventDefault(),this.hideSubMenu(e)};hideSubMenu=e=>{e.detail&&e.detail.id&&this.menu&&e.detail.id!==this.menu.id||(this.props.forceOpen&&this.props.forceClose(),this.setState({visible:!1,selectedItem:null}),this.unregisterHandlers())};handleClick=e=>{e.preventDefault(),this.props.disabled||(Bg(this.props.onClick,e,Sg()({},this.props.data,Rg.data),Rg.target),this.props.onClick&&!this.props.preventCloseOnClick&&Gg())};handleMouseEnter=()=>{this.closetimer&&clearTimeout(this.closetimer),this.props.disabled||this.state.visible||(this.opentimer=setTimeout((()=>this.setState({visible:!0,selectedItem:null})),this.props.hoverDelay))};handleMouseLeave=()=>{this.opentimer&&clearTimeout(this.opentimer),this.state.visible&&(this.closetimer=setTimeout((()=>this.setState({visible:!1,selectedItem:null})),this.props.hoverDelay))};menuRef=e=>{this.menu=e};subMenuRef=e=>{this.subMenu=e};registerHandlers=()=>{document.removeEventListener("keydown",this.props.parentKeyNavigationHandler),document.addEventListener("keydown",this.handleKeyNavigation)};unregisterHandlers=e=>{document.removeEventListener("keydown",this.handleKeyNavigation),e||document.addEventListener("keydown",this.props.parentKeyNavigationHandler)};render(){const{children:e,attributes:t,disabled:n,title:r,selected:o}=this.props,{visible:a}=this.state,i={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:ug()(Pg,"react-contextmenu-submenu",t.listClassName),style:{position:"relative"}},s={className:ug()(Pg,t.className,{[ug()(Mg,t.disabledClassName)]:n,[ug()("react-contextmenu-item--active",t.visibleClassName)]:a,[ug()(Fg,t.selectedClassName)]:o}),onMouseMove:this.props.onMouseMove,onMouseOut:this.props.onMouseOut,onClick:this.handleClick},l={ref:this.subMenuRef,style:{position:"absolute",transition:"opacity 1ms",top:0,left:"100%"},className:ug()(_g,this.props.className)};return J.createElement("nav",$g({},i,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),J.createElement("div",$g({},t,s),r),J.createElement("nav",$g({},l,{role:"menu",tabIndex:"-1"}),this.renderChildren(e)))}}class Yg extends jg{static propTypes=(()=>({id:xg().string.isRequired,children:xg().node.isRequired,data:xg().object,className:xg().string,hideOnLeave:xg().bool,rtl:xg().bool,onHide:xg().func,onMouseLeave:xg().func,onShow:xg().func,preventHideOnContextMenu:xg().bool,preventHideOnResize:xg().bool,preventHideOnScroll:xg().bool,style:xg().object}))();static defaultProps={className:"",data:{},hideOnLeave:!1,rtl:!1,onHide:()=>null,onMouseLeave:()=>null,onShow:()=>null,preventHideOnContextMenu:!1,preventHideOnResize:!1,preventHideOnScroll:!1,style:{}};constructor(e){super(e),this.state=Sg()({},this.state,{x:0,y:0,isVisible:!1})}getSubMenuType(){return Kg}componentDidMount(){this.listenId=Wg.register(this.handleShow,this.handleHide)}componentDidUpdate(){const e=window.requestAnimationFrame||setTimeout;this.state.isVisible?e((()=>{const{x:t,y:n}=this.state,{top:r,left:o}=this.props.rtl?this.getRTLMenuPosition(t,n):this.getMenuPosition(t,n);e((()=>{this.menu&&this.state.isVisible&&(this.menu.style.top=`${r}px`,this.menu.style.left=`${o}px`,this.menu.style.opacity=1,this.menu.style.pointerEvents="auto")}))})):e((()=>{this.menu&&(this.menu.style.opacity=0,this.menu.style.pointerEvents="none")}))}componentWillUnmount(){this.listenId&&Wg.unregister(this.listenId),this.unregisterHandlers()}registerHandlers=()=>{document.addEventListener("mousedown",this.handleOutsideClick),document.addEventListener("touchstart",this.handleOutsideClick),this.props.preventHideOnScroll||document.addEventListener("scroll",this.handleHide),this.props.preventHideOnContextMenu||document.addEventListener("contextmenu",this.handleHide),document.addEventListener("keydown",this.handleKeyNavigation),this.props.preventHideOnResize||window.addEventListener("resize",this.handleHide)};unregisterHandlers=()=>{document.removeEventListener("mousedown",this.handleOutsideClick),document.removeEventListener("touchstart",this.handleOutsideClick),document.removeEventListener("scroll",this.handleHide),document.removeEventListener("contextmenu",this.handleHide),document.removeEventListener("keydown",this.handleKeyNavigation),window.removeEventListener("resize",this.handleHide)};handleShow=e=>{if(e.detail.id!==this.props.id||this.state.isVisible)return;const{x:t,y:n}=e.detail.position;this.setState({isVisible:!0,x:t,y:n}),this.registerHandlers(),Bg(this.props.onShow,e)};handleHide=e=>{var t;!this.state.isVisible||e.detail&&e.detail.id&&e.detail.id!==this.props.id||(this.unregisterHandlers(),t=()=>{this.setState({isVisible:!1,selectedItem:null,forceSubMenuOpen:!1})},Eg.flushSync?Eg.flushSync(t):t(),Bg(this.props.onHide,e))};handleOutsideClick=e=>{this.menu.contains(e.target)||Gg()};handleMouseLeave=e=>{e.preventDefault(),Bg(this.props.onMouseLeave,e,Sg()({},this.props.data,Rg.data),Rg.target),this.props.hideOnLeave&&Gg()};handleContextMenu=e=>{e.preventDefault(),this.handleHide(e)};hideMenu=e=>{"Escape"!==e.key&&"Esc"!==e.key&&"Enter"!==e.key||Gg()};getMenuPosition=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:n,left:t};if(!e.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=e.menu.getBoundingClientRect();return n+i.height>a&&(r.top-=i.height),t+i.width>o&&(r.left-=i.width),r.top<0&&(r.top=i.height<a?(a-i.height)/2:0),r.left<0&&(r.left=i.width<o?(o-i.width)/2:0),r}})();getRTLMenuPosition=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:n,left:t};if(!e.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=e.menu.getBoundingClientRect();return r.left=t-i.width,n+i.height>a&&(r.top-=i.height),r.left<0&&(r.left+=i.width),r.top<0&&(r.top=i.height<a?(a-i.height)/2:0),r.left+i.width>o&&(r.left=i.width<o?(o-i.width)/2:0),r}})();menuRef=e=>{this.menu=e};render(){const{children:e,className:t,style:n}=this.props,{isVisible:r}=this.state,o=Sg()({},n,{position:"fixed",opacity:0,pointerEvents:"none"}),a=ug()(_g,t,{[Ng]:r});return J.createElement("nav",{role:"menu",tabIndex:"-1",ref:this.menuRef,style:o,className:a,onContextMenu:this.handleContextMenu,onMouseLeave:this.handleMouseLeave},this.renderChildren(e))}}class qg extends J.Component{static propTypes=(()=>({id:xg().string.isRequired,children:xg().node.isRequired,attributes:xg().object,collect:xg().func,disable:xg().bool,holdToDisplay:xg().number,posX:xg().number,posY:xg().number,renderTag:xg().elementType,triggerOnLeftClick:xg().bool,disableIfShiftIsPressed:xg().bool}))();static defaultProps={attributes:{},collect:()=>null,disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,triggerOnLeftClick:!1,disableIfShiftIsPressed:!1};touchHandled=!1;handleMouseDown=e=>{this.props.holdToDisplay>=0&&0===e.button&&(e.persist(),e.stopPropagation(),this.mouseDownTimeoutId=setTimeout((()=>this.handleContextClick(e)),this.props.holdToDisplay)),Bg(this.props.attributes.onMouseDown,e)};handleMouseUp=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),Bg(this.props.attributes.onMouseUp,e)};handleMouseOut=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),Bg(this.props.attributes.onMouseOut,e)};handleTouchstart=e=>{this.touchHandled=!1,this.props.holdToDisplay>=0&&(e.persist(),e.stopPropagation(),this.touchstartTimeoutId=setTimeout((()=>{this.handleContextClick(e),this.touchHandled=!0}),this.props.holdToDisplay)),Bg(this.props.attributes.onTouchStart,e)};handleTouchEnd=e=>{this.touchHandled&&e.preventDefault(),clearTimeout(this.touchstartTimeoutId),Bg(this.props.attributes.onTouchEnd,e)};handleContextMenu=e=>{this.handleContextClick(e),Bg(this.props.attributes.onContextMenu,e)};handleMouseClick=e=>{this.handleContextClick(e),Bg(this.props.attributes.onClick,e)};handleContextClick=e=>{if(this.props.disable)return;if(this.props.disableIfShiftIsPressed&&e.shiftKey)return;e.preventDefault(),e.stopPropagation();let t=e.clientX||e.touches&&e.touches[0].pageX,n=e.clientY||e.touches&&e.touches[0].pageY;this.props.posX&&(t-=this.props.posX),this.props.posY&&(n-=this.props.posY),Gg();let r=Bg(this.props.collect,this.props),o={position:{x:t,y:n},target:this.elem,id:this.props.id};r&&"function"==typeof r.then?r.then((t=>{o.data=Sg()({},t,{target:e.target}),zg(o)})):(o.data=Sg()({},r,{target:e.target}),zg(o))};elemRef=e=>{this.elem=e};render(){const{renderTag:e,attributes:t,children:n,triggerOnLeftClick:r}=this.props,o={...t,className:ug()("react-contextmenu-wrapper",t.className),onContextMenu:this.handleContextMenu,onClick:r?this.handleMouseClick:null,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef};return J.createElement(e,o,n)}}Object.keys(qg.propTypes);class Zg extends J.PureComponent{render(){return J.createElement(qg,{holdToDisplay:-1,...this.props})}}var Xg=n(8268),Jg={};function Qg(e){const{children:t,id:n}=e;return n?J.createElement(de,{...e},t):t}Jg.styleTagTransform=M(),Jg.setAttributes=B(),Jg.insert=T().bind(null,"head"),Jg.domAPI=k(),Jg.insertStyleElement=N(),w()(Xg.A,Jg),Xg.A&&Xg.A.locals&&Xg.A.locals;class eA extends J.PureComponent{constructor(...e){super(...e),this._onDividerMouseDown=e=>{this.props.onColumnWidthChangeStart(Number(e.currentTarget.dataset.columnIndex),e.clientX)},this._onDividerDoubleClick=e=>{this.props.onColumnWidthReset(Number(e.currentTarget.dataset.columnIndex))}}render(){const{fixedColumns:e,mainColumn:t,viewOptions:n}=this.props,r=n.fixedColumnWidths;return 0!==e.length||t.titleL10nId?J.createElement("div",{className:"treeViewHeader"},e.map(((e,t)=>{const n=r[t]+(e.headerWidthAdjustment||0);return J.createElement(J.Fragment,{key:e.propName},J.createElement(Qg,{id:e.titleL10nId,attrs:{title:!0}},J.createElement("span",{style:{width:n},className:`treeViewHeaderColumn treeViewFixedColumn ${e.propName}`})),!0!==e.hideDividerAfter?J.createElement("span",{key:e.propName+"Divider",className:ug()("treeViewColumnDivider",{isResizable:e.resizable}),onMouseDown:e.resizable?this._onDividerMouseDown:void 0,onDoubleClick:e.resizable?this._onDividerDoubleClick:void 0,"data-column-index":t}):null)})),J.createElement(Qg,{id:t.titleL10nId,attrs:{title:!0}},J.createElement("span",{className:`treeViewHeaderColumn treeViewMainColumn ${t.propName}`}))):null}}function tA(e,t,n){if(!t)return e;t.lastIndex=0;const r=[];let o,a=0;for(;o=t.exec(e);){const i=o;if(null===i)break;r.push(e.substring(a,i.index)),a=t.lastIndex,r.push(J.createElement("span",{key:i.index,className:n},i[0]))}return r.push(e.substring(a)),r}class nA extends J.PureComponent{constructor(...e){super(...e),this._onClick=e=>{const{nodeId:t,onClick:n}=this.props;n(t,e)}}render(){const{displayData:e,columns:t,viewOptions:n,index:r,isSelected:o,isRightClicked:a,highlightRegExp:i,rowHeightStyle:s}=this.props,l=n.fixedColumnWidths;return J.createElement("div",{className:ug()("treeViewRow","treeViewRowFixedColumns",{even:r%2==0,odd:r%2!=0,isSelected:o,isRightClicked:a}),style:s,onMouseDown:this._onClick},t.map(((t,n)=>{const r=t.component,o=e[t.propName]||"";return J.createElement(J.Fragment,{key:t.propName},J.createElement("span",{className:`treeViewRowColumn treeViewFixedColumn ${t.propName}`,title:o,style:{width:l[n]}},r?J.createElement(r,{displayData:e}):tA(o,i,"treeViewHighlighting")),!0!==t.hideDividerAfter?J.createElement("span",{className:"treeViewColumnDivider"}):null)})))}}class rA extends J.PureComponent{constructor(...e){super(...e),this._onMouseDown=e=>{const{nodeId:t,onClick:n}=this.props;e.target.classList.contains("treeRowToggleButton")||n(t,e)},this._onToggleClick=e=>{const{nodeId:t,isExpanded:n,onToggle:r}=this.props;r(t,!n,!0===e.altKey)}}render(){const{displayData:e,depth:t,mainColumn:n,appendageColumn:r,index:o,canBeExpanded:a,isExpanded:i,isSelected:s,isRightClicked:l,highlightRegExp:c,rowHeightStyle:d,indentWidth:u,nodeId:h}=this.props,p=n.component;let m=null;a&&(m=!1),i&&(m=!0);let f=e.selfTimeUnit;return"—"===f&&(f="0ms"),J.createElement("div",{className:ug()("treeViewRow","treeViewRowScrolledColumns",{even:o%2==0,odd:o%2!=0,isSelected:s,isRightClicked:l}),style:d,onMouseDown:this._onMouseDown,"aria-expanded":m,"aria-level":t+1,"aria-selected":s,"aria-label":e.ariaLabel,role:"treeitem",id:`treeViewRow-${h}`},J.createElement("span",{className:"treeRowIndentSpacer",style:{width:t*u+"px"}}),J.createElement("span",{className:`treeRowToggleButton ${i?"expanded":"collapsed"} ${a?"canBeExpanded":"leaf"}`,onClick:this._onToggleClick}),e.categoryColor&&e.categoryName?J.createElement("span",{className:`colored-square category-color-${e.categoryColor}`,title:e.categoryName}):null,J.createElement("span",{className:ug()("treeViewRowColumn","treeViewMainColumn",n.propName,{dim:e.isFrameLabel})},e.badge?J.createElement(de,{id:e.badge.localizationId,vars:e.badge.vars,attrs:{title:!0}},J.createElement("span",{className:`treeBadge ${e.badge.name}`,title:e.badge.titleFallback},e.badge.contentFallback)):null,p?J.createElement(p,{displayData:e}):tA(e[n.propName],c,"treeViewHighlighting")),r?J.createElement("span",{className:`treeViewRowColumn treeViewAppendageColumn ${r.propName}`},tA(e[r.propName],c,"treeViewHighlighting")):null)}}class oA extends J.PureComponent{constructor(...e){super(...e),this._list=null,this._takeListRef=e=>this._list=e,this._currentMovedColumnState=null,this.state={fixedColumnWidths:null,isResizingColumns:!1},this._columnSizeChangedCounter=0,this._computeSpecialItemsMemoized=Lt()(((e,t)=>[e??void 0,t??void 0]),{limit:1}),this._computeExpandedNodesMemoized=Lt()((e=>new Set(e)),{limit:1}),this._computeInitialColumnWidthsMemoized=Lt()((e=>e.map((e=>e.initialWidth)))),this._getCurrentFixedColumnWidths=()=>this.state.fixedColumnWidths||this.props.viewOptions.fixedColumnWidths||this._computeInitialColumnWidthsMemoized(this.props.fixedColumns),this._getCurrentViewOptions=()=>({fixedColumnWidths:this._getCurrentFixedColumnWidths()}),this._onColumnWidthChangeStart=(e,t)=>{this._currentMovedColumnState={columnIndex:e,startX:t,initialWidth:this._getCurrentFixedColumnWidths()[e]},this.setState({isResizingColumns:!0}),window.addEventListener("mousemove",this._onColumnWidthChangeMouseMove),window.addEventListener("mouseup",this._onColumnWidthChangeMouseUp)},this._cleanUpMouseHandlers=()=>{window.removeEventListener("mousemove",this._onColumnWidthChangeMouseMove),window.removeEventListener("mouseup",this._onColumnWidthChangeMouseUp)},this._onColumnWidthChangeMouseMove=e=>{const t=this._currentMovedColumnState;if(null!==t){const{columnIndex:n,startX:r,initialWidth:o}=t,a=this.props.fixedColumns[n],i=this._getCurrentFixedColumnWidths(),s=e.clientX-r,l=Math.max(o+s,a.minWidth||10);this.setState((e=>{this._columnSizeChangedCounter++;const t=(e.fixedColumnWidths||i).slice();return t[n]=l,{fixedColumnWidths:t}}))}},this._onColumnWidthChangeMouseUp=()=>{this.setState({isResizingColumns:!1}),this._cleanUpMouseHandlers(),this._currentMovedColumnState=null,this._propagateColumnWidthChange(this._getCurrentFixedColumnWidths())},this.componentWillUnmount=()=>{this._cleanUpMouseHandlers()},this._onColumnWidthReset=e=>{const t=this.props.fixedColumns[e],n=this._getCurrentFixedColumnWidths().slice();n[e]=t.initialWidth||10,this._columnSizeChangedCounter++,this.setState({fixedColumnWidths:n}),this._propagateColumnWidthChange(n)},this._propagateColumnWidthChange=e=>{const{onViewOptionsChange:t,viewOptions:n}=this.props;t&&t({...n,fixedColumnWidths:e})},this._computeAllVisibleRowsMemoized=Lt()(((e,t)=>{function n(e,t,r,o){if(r.push(o),!t.has(o))return;const a=e.getChildren(o);for(let o=0;o<a.length;o++)n(e,t,r,a[o])}const r=e.getRoots(),o=[];for(let a=0;a<r.length;a++)n(e,t,o,r[a]);return o}),{limit:1}),this._renderRow=(e,t,n)=>{const{tree:r,fixedColumns:o,mainColumn:a,appendageColumn:i,selectedNodeId:s,rightClickedNodeId:l,highlightRegExp:c,rowHeight:d,indentWidth:u}=this.props,h=r.getDisplayData(e),p={height:d,lineHeight:`${d}px`};if(0===n)return J.createElement(nA,{displayData:h,columns:o,viewOptions:this._getCurrentViewOptions(),nodeId:e,index:t,isSelected:e===s,isRightClicked:e===l,onClick:this._onRowClicked,highlightRegExp:c||null,rowHeightStyle:p});const m=r.hasChildren(e),f=m&&!this._isCollapsed(e);return J.createElement(rA,{rowHeightStyle:p,displayData:h,mainColumn:a,appendageColumn:i,depth:r.getDepth(e),nodeId:e,index:t,canBeExpanded:m,isExpanded:f,isSelected:e===s,isRightClicked:e===l,onToggle:this._toggle,onClick:this._onRowClicked,highlightRegExp:c||null,indentWidth:u})},this._toggle=(e,t=this._isCollapsed(e),n=!1)=>{const r=new Set(this._getExpandedNodes());if(t){if(r.add(e),n)for(const t of this.props.tree.getAllDescendants(e))r.add(t)}else r.delete(e);this.props.onExpandedNodesChange(Array.from(r.values()))},this._onRowClicked=(e,t)=>{0===t.button?this._selectWithMouse(e):2===t.button&&this._rightClickSelect(e),2===t.detail&&0===t.button&&(this.props.onDoubleClick?this.props.onDoubleClick(e):this._toggle(e))},this._onCopy=e=>{e.preventDefault();const{tree:t,selectedNodeId:n,mainColumn:r}=this.props;if(n){const o=t.getDisplayData(n);e.clipboardData.setData("text/plain",o[r.propName])}},this._onKeyDown=e=>{this.props.onKeyDown&&this.props.onKeyDown(e);const t=e.ctrlKey||e.altKey,n=e.key.startsWith("Arrow")||e.key.startsWith("Page")||"Home"===e.key||"End"===e.key,r="*"===e.key,o="Enter"===e.key;if(t||!n&&!r&&!o)return;e.stopPropagation(),e.preventDefault();const a=this.props.selectedNodeId,i=this._getAllVisibleRows(),s=i.findIndex((e=>e===a));if(null===a||-1===s)return void this._selectWithKeyboard(i[0]);if(n)switch(e.key){case"ArrowUp":if(e.metaKey){this._selectWithKeyboard(i[0]);break}s>0&&this._selectWithKeyboard(i[s-1]);break;case"ArrowDown":if(e.metaKey){this._selectWithKeyboard(i[i.length-1]);break}s<i.length-1&&this._selectWithKeyboard(i[s+1]);break;case"PageUp":if(s>0){const e=Math.max(0,s-15);this._selectWithKeyboard(i[e])}break;case"PageDown":if(s<i.length-1){const e=Math.min(i.length-1,s+15);this._selectWithKeyboard(i[e])}break;case"Home":this._selectWithKeyboard(i[0]);break;case"End":this._selectWithKeyboard(i[i.length-1]);break;case"ArrowLeft":if(this._isCollapsed(a)){const e=this.props.tree.getParent(a);-1!==e&&this._selectWithKeyboard(e)}else this._toggle(a);break;case"ArrowRight":this._isCollapsed(a)?this._toggle(a):this.props.tree.hasChildren(a)&&this._selectWithKeyboard(this.props.tree.getChildren(a)[0]);break;default:throw new Error("Unhandled navigation key.")}const{rightClickedNodeId:l}=this.props,c=l??a;if(r&&this._toggleAll(c),o){const{onEnterKey:e}=this.props;e&&null!==c&&e(c)}}}scrollSelectionIntoView(){const{selectedNodeId:e,tree:t}=this.props,n=this._list;if(n)if(null===e)n.scrollItemIntoView(0,0);else{const r=this._getAllVisibleRows().indexOf(e),o=t.getDepth(e),a=this._getCurrentFixedColumnWidths().reduce(((e,t)=>e+t),0);n.scrollItemIntoView(r,10*o,a)}}_getExpandedNodes(){return this._computeExpandedNodesMemoized(this.props.expandedNodeIds)}_getAllVisibleRows(){const{tree:e}=this.props;return this._computeAllVisibleRowsMemoized(e,this._getExpandedNodes())}_getSpecialItems(){const{selectedNodeId:e,rightClickedNodeId:t}=this.props;return this._computeSpecialItemsMemoized(e,t)}_isCollapsed(e){return!this._getExpandedNodes().has(e)}_toggleAll(e,t=this._isCollapsed(e)){this._toggle(e,t,!0)}_selectWithMouse(e){this.props.onSelectionChange(e,{source:"pointer"})}_rightClickSelect(e){this.props.onRightClickSelection?this.props.onRightClickSelection(e):this._selectWithMouse(e)}_selectWithKeyboard(e){this.props.onSelectionChange(e,{source:"keyboard"})}focus(){this._list&&this._list.focus()}render(){const{fixedColumns:e,mainColumn:t,disableOverscan:n,contextMenu:r,contextMenuId:o,maxNodeDepth:a,rowHeight:i,selectedNodeId:s}=this.props,{isResizingColumns:l}=this.state;return J.createElement("div",{className:ug()("treeView",{isResizingColumns:l})},J.createElement(eA,{fixedColumns:e,mainColumn:t,viewOptions:this._getCurrentViewOptions(),onColumnWidthChangeStart:this._onColumnWidthChangeStart,onColumnWidthReset:this._onColumnWidthReset}),J.createElement(Zg,{id:o??"unknown",disable:!o,attributes:{className:"treeViewContextMenu"}},J.createElement(wg,{className:"treeViewBody",ariaRole:"tree",ariaLabel:"Call tree",ariaActiveDescendant:null!==s?`treeViewRow-${s}`:null,items:this._getAllVisibleRows(),renderItem:this._renderRow,itemHeight:i,columnCount:2,focusable:!0,onKeyDown:this._onKeyDown,specialItems:this._getSpecialItems(),disableOverscan:!!n||l,onCopy:this._onCopy,containerWidth:Math.max(3e3,10*a+2e3),ref:this._takeListRef,forceRender:this._columnSizeChangedCounter})),r)}}var aA=n(2589),iA={};iA.styleTagTransform=M(),iA.setAttributes=B(),iA.insert=T().bind(null,"head"),iA.domAPI=k(),iA.insertStyleElement=N(),w()(aA.A,iA),aA.A&&aA.A.locals&&aA.A.locals;class sA extends J.PureComponent{render(){const{viewName:e,reason:t,threadName:n}=this.props;return J.createElement("div",{className:"EmptyReasons"},J.createElement("h3",null,"The ",e," is empty for “",n,"”"),J.createElement("p",null,t))}}class lA extends J.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":_n.TN`
|
113
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
114
|
+
to view samples.
|
115
|
+
`,J.createElement(sA,{threadName:n,reason:r,viewName:"call tree"})}}const cA=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e),thread:Pd.getThread(e),rangeFilteredThread:Pd.getRangeFilteredThread(e)}),component:lA});var dA=n(1636),uA={};uA.styleTagTransform=M(),uA.setAttributes=B(),uA.insert=T().bind(null,"head"),uA.domAPI=k(),uA.insertStyleElement=N(),w()(dA.A,uA),dA.A&&dA.A.locals&&dA.A.locals;class hA extends J.PureComponent{constructor(e){super(e),e.icon&&e.iconStartLoading(e.icon)}componentDidUpdate(){this.props.icon&&this.props.iconStartLoading(this.props.icon)}render(){return J.createElement("div",{className:`nodeIcon ${this.props.className}`})}}const pA=at({mapStateToProps:(e,t)=>{const n=t.displayData?t.displayData.iconSrc:t.iconUrl;return{className:hu(e,n),icon:n}},mapDispatchToProps:{iconStartLoading:hp},component:hA});var mA=n(290),fA={};fA.styleTagTransform=M(),fA.setAttributes=B(),fA.insert=T().bind(null,"head"),fA.domAPI=k(),fA.insertStyleElement=N(),w()(mA.A,fA),mA.A&&mA.A.locals&&mA.A.locals;class gA extends J.PureComponent{constructor(...e){super(...e),this._mainColumn={propName:"name",titleL10nId:""},this._appendageColumn={propName:"lib",titleL10nId:""},this._treeView=null,this._takeTreeViewRef=e=>this._treeView=e,this._weightTypeToColumns=Lt()((e=>{switch(e){case"tracing-ms":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--tracing-ms-total",minWidth:30,initialWidth:70,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--tracing-ms-self",minWidth:30,initialWidth:70,resizable:!0},{propName:"icon",titleL10nId:"",component:pA,initialWidth:10}];case"samples":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--samples-total",minWidth:30,initialWidth:70,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--samples-self",minWidth:30,initialWidth:70,resizable:!0},{propName:"icon",titleL10nId:"",component:pA,initialWidth:10}];case"bytes":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--bytes-total",minWidth:30,initialWidth:140,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--bytes-self",minWidth:30,initialWidth:90,resizable:!0},{propName:"icon",titleL10nId:"",component:pA,initialWidth:10}];default:throw(0,ut.lC)(e,"Unhandled WeightType.")}}),{cache:new Map}),this._onSelectedCallNodeChange=(e,t)=>{const{callNodeInfo:n,threadsKey:r,changeSelectedCallNode:o}=this.props;o(r,n.getCallNodePathFromIndex(e),t)},this._onRightClickSelection=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onExpandedCallNodesChange=e=>{const{callNodeInfo:t,threadsKey:n,changeExpandedCallNodes:r}=this.props;r(n,e.map((e=>t.getCallNodePathFromIndex(e))))},this._onKeyDown=e=>{const{selectedCallNodeIndex:t,rightClickedCallNodeIndex:n,handleCallNodeTransformShortcut:r,threadsKey:o}=this.props,a=null!==n?n:t;null!==a&&r(e,o,a)},this._onEnterOrDoubleClick=e=>{const{tree:t,updateBottomBoxContentsAndMaybeOpen:n}=this.props;n("calltree",t.getBottomBoxInfoForCallNode(e))}}componentDidMount(){this.focus(),this.maybeProcureInterestingInitialSelection(),null!==this.props.selectedCallNodeIndex&&this._treeView&&this._treeView.scrollSelectionIntoView()}componentDidUpdate(e){this.props.focusCallTreeGeneration>e.focusCallTreeGeneration&&this.focus(),this.maybeProcureInterestingInitialSelection(),null!==this.props.selectedCallNodeIndex&&this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this._treeView&&this._treeView.scrollSelectionIntoView()}focus(){this._treeView&&this._treeView.focus()}maybeProcureInterestingInitialSelection(){const{tree:e,expandedCallNodeIndexes:t,selectedCallNodeIndex:n,callNodeInfo:r,categories:o}=this.props;if(null!==n||t.length>0)return;const a=o.findIndex((e=>"Idle"===e.name)),i=t.slice();let s=e.getRoots()[0];if(void 0!==s){i.push(s);for(let t=0;t<17;t++){const t=e.getChildren(s);if(0===t.length)break;const n=t.find((e=>r.categoryForNode(e)!==a));s=void 0!==n?n:t[0],i.push(s)}this._onExpandedCallNodesChange(i),r.categoryForNode(s)!==a&&this._onSelectedCallNodeChange(s,{source:"auto"})}}render(){const{tree:e,selectedCallNodeIndex:t,rightClickedCallNodeIndex:n,expandedCallNodeIndexes:r,searchStringsRegExp:o,disableOverscan:a,callNodeMaxDepthPlusOne:i,weightType:s,tableViewOptions:l,onTableViewOptionsChange:c}=this.props;return 0===e.getRoots().length?J.createElement(cA,null):J.createElement(oA,{tree:e,fixedColumns:this._weightTypeToColumns(s),mainColumn:this._mainColumn,appendageColumn:this._appendageColumn,onSelectionChange:this._onSelectedCallNodeChange,onRightClickSelection:this._onRightClickSelection,onExpandedNodesChange:this._onExpandedCallNodesChange,selectedNodeId:t,rightClickedNodeId:n,expandedNodeIds:r,highlightRegExp:o,disableOverscan:a,ref:this._takeTreeViewRef,contextMenuId:"CallNodeContextMenu",maxNodeDepth:i,rowHeight:16,indentWidth:10,onKeyDown:this._onKeyDown,onEnterKey:this._onEnterOrDoubleClick,onDoubleClick:this._onEnterOrDoubleClick,viewOptions:l,onViewOptionsChange:c})}}const AA=at({mapStateToProps:e=>({threadsKey:zo(e),scrollToSelectionGeneration:oi(e),focusCallTreeGeneration:ai(e),tree:Pd.getCallTree(e),callNodeInfo:Pd.getCallNodeInfo(e),categories:Mi(e),selectedCallNodeIndex:Pd.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Pd.getRightClickedCallNodeIndex(e),expandedCallNodeIndexes:Pd.getExpandedCallNodeIndexes(e),searchStringsRegExp:na(e),disableOverscan:hi(e).isModifying,invertCallstack:Lo(e),implementationFilter:wo(e),callNodeMaxDepthPlusOne:Pd.getFilteredCallNodeMaxDepthPlusOne(e),weightType:Pd.getWeightTypeForCallTree(e),tableViewOptions:ti(e)}),mapDispatchToProps:{changeSelectedCallNode:th,changeRightClickedCallNode:nh,changeExpandedCallNodes:Ph,addTransformToStack:Kh,handleCallNodeTransformShortcut:ap,updateBottomBoxContentsAndMaybeOpen:tp,onTableViewOptionsChange:e=>ep("calltree",e)},component:gA});var bA=n(5609),CA={};CA.styleTagTransform=M(),CA.setAttributes=B(),CA.insert=T().bind(null,"head"),CA.domAPI=k(),CA.insertStyleElement=N(),w()(bA.A,CA),bA.A&&bA.A.locals&&bA.A.locals;class vA extends J.PureComponent{constructor(e){super(e),this._timeout=null,this._previouslyNotifiedValue=void 0,this._input=null,this._takeInputRef=e=>this._input=e,this._onSearchFieldFocus=e=>{e.currentTarget.select(),this.props.onFocus&&this.props.onFocus()},this._onSearchFieldBlur=e=>{this.props.onBlur&&this.props.onBlur(e.relatedTarget)},this._onSearchFieldChange=e=>{this.setState({value:e.currentTarget.value}),this._timeout&&clearTimeout(this._timeout),this._timeout=setTimeout(this._onTimeout,this.props.idlePeriod)},this._onTimeout=()=>{this._timeout=null,this._notifyIfChanged(this.state.value)},this._onClearButtonClick=()=>{this._input&&this._input.focus(),null!==this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.setState({value:""}),this._notifyIfChanged("")},this.state={value:e.defaultValue||"",previousDefaultValue:e.defaultValue||""},this._previouslyNotifiedValue=this.state.value}_notifyIfChanged(e){e!==this._previouslyNotifiedValue&&(this._previouslyNotifiedValue=e,this.props.onIdleAfterChange(e))}_onFormSubmit(e){e.preventDefault()}static getDerivedStateFromProps(e,t){return e.defaultValue!==t.previousDefaultValue?{previousDefaultValue:e.defaultValue||"",value:e.defaultValue||""}:null}render(){const{className:e,title:t}=this.props;return J.createElement("form",{className:ug()("idleSearchField",e),onSubmit:this._onFormSubmit},J.createElement(de,{id:"IdleSearchField--search-input",attrs:{placeholder:!0}},J.createElement("input",{type:"search",name:"search",placeholder:"Enter filter terms",className:"idleSearchFieldInput photon-input",required:"required",title:t,value:this.state.value,onChange:this._onSearchFieldChange,onFocus:this._onSearchFieldFocus,onBlur:this._onSearchFieldBlur,ref:this._takeInputRef})),J.createElement("input",{type:"reset",className:"idleSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}var yA=n(489),wA={};wA.styleTagTransform=M(),wA.setAttributes=B(),wA.insert=T().bind(null,"head"),wA.domAPI=k(),wA.insertStyleElement=N(),w()(yA.A,wA),yA.A&&yA.A.locals&&yA.A.locals;class EA extends J.PureComponent{constructor(...e){super(...e),this.state={searchFieldFocused:!1},this._onSearchFieldIdleAfterChange=e=>{this.props.onSearch(e)},this._onSearchFieldFocus=()=>{this.setState({searchFieldFocused:!0})},this._onSearchFieldBlur=()=>{this.setState((()=>({searchFieldFocused:!1})))}}render(){const{label:e,title:t,currentSearchString:n,className:r}=this.props,{searchFieldFocused:o}=this.state,a=o&&n&&!n.includes(",");return J.createElement("div",{className:ug()("panelSearchField",r)},J.createElement("label",{className:"panelSearchFieldLabel"},e+" ",J.createElement(vA,{className:"panelSearchFieldInput",title:t,idlePeriod:200,defaultValue:n,onIdleAfterChange:this._onSearchFieldIdleAfterChange,onBlur:this._onSearchFieldBlur,onFocus:this._onSearchFieldFocus})),J.createElement("div",{className:ug()("panelSearchFieldIntroduction",{isHidden:!a,isDisplayed:a})},J.createElement(de,{id:"PanelSearch--search-field-hint"},"Did you know you can use the comma (,) to search using several terms?")))}}var kA=n(6098),xA={};xA.styleTagTransform=M(),xA.setAttributes=B(),xA.insert=T().bind(null,"head"),xA.domAPI=k(),xA.insertStyleElement=N(),w()(kA.A,xA),kA.A&&kA.A.locals&&kA.A.locals;var TA=n(8585),SA={};SA.styleTagTransform=M(),SA.setAttributes=B(),SA.insert=T().bind(null,"head"),SA.domAPI=k(),SA.insertStyleElement=N(),w()(TA.A,SA),TA.A&&TA.A.locals&&TA.A.locals;class BA extends J.PureComponent{constructor(...e){super(...e),this._onImplementationFilterChange=e=>{this.props.changeImplementationFilter((0,bn.Cn)(e.currentTarget.value))}}_renderImplementationRadioButton(e,t){const n=`implementation-radio-${t}`;return J.createElement(J.Fragment,null,J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("input",{type:"radio",className:"photon-radio photon-radio-micro",value:t,id:n,onChange:this._onImplementationFilterChange,checked:this.props.implementationFilter===t})),J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding",htmlFor:n})))}render(){const{labelL10nId:e}=this.props;return J.createElement(J.Fragment,null,e?J.createElement("span",{className:"stackImplementationSettingLabel"},J.createElement(de,{id:e})):null,this._renderImplementationRadioButton("StackSettings--implementation-all-frames","combined"),this._renderImplementationRadioButton("StackSettings--implementation-javascript2","js"),this._renderImplementationRadioButton("StackSettings--implementation-native2","cpp"))}}const IA=at({mapStateToProps:e=>({implementationFilter:wo(e)}),mapDispatchToProps:{changeImplementationFilter:Uh},component:BA});class _A extends J.PureComponent{constructor(...e){super(...e),this._onCallTreeSummaryStrategyChange=e=>{this.props.changeCallTreeSummaryStrategy((0,bn.pZ)(e.currentTarget.value))}}_renderCallTreeStrategyOption(e,t){return J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("option",{key:t,value:t}))}render(){const{hasUsefulTimingSamples:e,hasUsefulJsAllocations:t,hasUsefulNativeAllocations:n,canShowRetainedMemory:r,callTreeSummaryStrategy:o}=this.props;return J.createElement(J.Fragment,null,J.createElement("label",null,J.createElement(de,{id:"StackSettings--use-data-source-label"})," ",J.createElement("select",{className:"stackSettingsSelect",onChange:this._onCallTreeSummaryStrategyChange,value:o},e?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-timing","timing"):null,t?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-js-allocations","js-allocations"):null,r?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-retained-allocations","native-retained-allocations"):null,n?this._renderCallTreeStrategyOption("StackSettings--call-tree-native-allocations","native-allocations"):null,r?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-deallocations-memory","native-deallocations-memory"):null,n?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-deallocations-sites","native-deallocations-sites"):null)))}}const NA=at({mapStateToProps:e=>({hasUsefulTimingSamples:Pd.getHasUsefulTimingSamples(e),hasUsefulJsAllocations:Pd.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Pd.getHasUsefulNativeAllocations(e),canShowRetainedMemory:Pd.getCanShowRetainedMemory(e),callTreeSummaryStrategy:Pd.getCallTreeSummaryStrategy(e)}),mapDispatchToProps:{changeCallTreeSummaryStrategy:zh},component:_A});var PA=n(976),MA={};MA.styleTagTransform=M(),MA.setAttributes=B(),MA.insert=T().bind(null,"head"),MA.domAPI=k(),MA.insertStyleElement=N(),w()(PA.A,MA),PA.A&&PA.A.locals&&PA.A.locals;class FA extends J.PureComponent{constructor(...e){super(...e),this._onInvertCallstackClick=e=>{this.props.changeInvertCallstack(e.currentTarget.checked)},this._onShowUserTimingsClick=e=>{this.props.changeShowUserTimings(e.currentTarget.checked)},this._onSearch=e=>{this.props.changeCallTreeSearchString(e)}}render(){const{allowSwitchingStackType:e,invertCallstack:t,selectedTab:n,showUserTimings:r,hideInvertCallstack:o,currentSearchString:a,hasUsefulJsAllocations:i,hasUsefulNativeAllocations:s}=this.props,l=i||s;return J.createElement("div",{className:"stackSettings"},J.createElement("ul",{className:"panelSettingsList"},e?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(IA,null)):null,l?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(NA,null)):null,o&&"stack-chart"!==n?null:J.createElement("li",{className:"panelSettingsListItem"},o?null:J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onInvertCallstackClick,checked:t}),J.createElement(de,{id:"StackSettings--invert-call-stack",attrs:{title:!0}},J.createElement("span",null,"Invert call stack"))),"stack-chart"!==n?null:J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onShowUserTimingsClick,checked:r}),J.createElement(de,{id:"StackSettings--show-user-timing"},"Show user timing")))),J.createElement(de,{id:"StackSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(EA,{className:"stackSettingsSearchField",label:"Filter stacks:",title:"Only display stacks which contain a function whose name matches this substring",currentSearchString:a,onSearch:this._onSearch})))}}const RA=at({mapStateToProps:e=>({allowSwitchingStackType:Ns(e),invertCallstack:Lo(e),selectedTab:Do(e),showUserTimings:ko(e),currentSearchString:Mo(e),hasUsefulJsAllocations:Pd.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Pd.getHasUsefulNativeAllocations(e)}),mapDispatchToProps:{changeInvertCallstack:Gh,changeCallTreeSearchString:_h,changeShowUserTimings:Wh},component:FA});function DA(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function LA(){return LA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},LA.apply(null,arguments)}function OA(e,t){return OA=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},OA(e,t)}function UA(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,OA(e,t)}const zA=J.createContext(null);function GA(e,t){var n=Object.create(null);return e&&J.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,J.isValidElement)(e)?t(e):e}(e)})),n}function WA(e,t,n){return null!=n[t]?n[t]:e.props[t]}function HA(e,t,n){var r=GA(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,o=Object.create(null),a=[];for(var i in e)i in t?a.length&&(o[i]=a,a=[]):a.push(i);var s={};for(var l in t){if(o[l])for(r=0;r<o[l].length;r++){var c=o[l][r];s[o[l][r]]=n(c)}s[l]=n(l)}for(r=0;r<a.length;r++)s[a[r]]=n(a[r]);return s}(t,r);return Object.keys(o).forEach((function(a){var i=o[a];if((0,J.isValidElement)(i)){var s=a in t,l=a in r,c=t[a],d=(0,J.isValidElement)(c)&&!c.props.in;!l||s&&!d?l||!s||d?l&&s&&(0,J.isValidElement)(c)&&(o[a]=(0,J.cloneElement)(i,{onExited:n.bind(null,i),in:c.props.in,exit:WA(i,"exit",e),enter:WA(i,"enter",e)})):o[a]=(0,J.cloneElement)(i,{in:!1}):o[a]=(0,J.cloneElement)(i,{onExited:n.bind(null,i),in:!0,exit:WA(i,"exit",e),enter:WA(i,"enter",e)})}})),o}var VA=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},jA=function(e){function t(t,n){var r,o=(r=e.call(this,t,n)||this).handleExited.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r));return r.state={contextValue:{isMounting:!0},handleExited:o,firstRender:!0},r}UA(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,r,o=t.children,a=t.handleExited;return{children:t.firstRender?(n=e,r=a,GA(n.children,(function(e){return(0,J.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:WA(e,"appear",n),enter:WA(e,"enter",n),exit:WA(e,"exit",n)})}))):HA(e,o,a),firstRender:!1}},n.handleExited=function(e,t){var n=GA(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=LA({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=DA(e,["component","childFactory"]),o=this.state.contextValue,a=VA(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?J.createElement(zA.Provider,{value:o},a):J.createElement(zA.Provider,{value:o},J.createElement(t,r,a))},t}(J.Component);jA.propTypes={},jA.defaultProps={component:"div",childFactory:function(e){return e}};const $A=jA;function KA(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var YA=function(e){return e.scrollTop},qA="unmounted",ZA="exited",XA="entering",JA="entered",QA="exiting",eb=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,a=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?a?(o=ZA,r.appearStatus=XA):o=JA:o=t.unmountOnExit||t.mountOnEnter?qA:ZA,r.state={status:o},r.nextCallback=null,r}UA(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===qA?{status:ZA}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==XA&&n!==JA&&(t=XA):n!==XA&&n!==JA||(t=QA)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===XA){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Eg.findDOMNode(this);n&&YA(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===ZA&&this.setState({status:qA})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[Eg.findDOMNode(this),r],a=o[0],i=o[1],s=this.getTimeouts(),l=r?s.appear:s.enter;e||n?(this.props.onEnter(a,i),this.safeSetState({status:XA},(function(){t.props.onEntering(a,i),t.onTransitionEnd(l,(function(){t.safeSetState({status:JA},(function(){t.props.onEntered(a,i)}))}))}))):this.safeSetState({status:JA},(function(){t.props.onEntered(a)}))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Eg.findDOMNode(this);t?(this.props.onExit(r),this.safeSetState({status:QA},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:ZA},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:ZA},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Eg.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],a=o[0],i=o[1];this.props.addEndListener(a,i)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===qA)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,DA(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return J.createElement(zA.Provider,{value:null},"function"==typeof n?n(e,r):J.cloneElement(J.Children.only(n),r))},t}(J.Component);function tb(){}eb.contextType=zA,eb.propTypes={},eb.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:tb,onEntering:tb,onEntered:tb,onExit:tb,onExiting:tb,onExited:tb},eb.UNMOUNTED=qA,eb.EXITED=ZA,eb.ENTERING=XA,eb.ENTERED=JA,eb.EXITING=QA;const nb=eb;var rb=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.remove(r):"string"==typeof n.className?n.className=KA(n.className,r):n.setAttribute("class",KA(n.className&&n.className.baseVal||"",r)));var n,r}))},ob=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1];t.removeClasses(o,"exit"),t.addClass(o,a?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1]?"appear":"enter";t.addClass(o,a,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1]?"appear":"enter";t.removeClasses(o,a),t.addClass(o,a,"done"),t.props.onEntered&&t.props.onEntered(e,n)},t.onExit=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"appear"),t.removeClasses(n,"enter"),t.addClass(n,"exit","base"),t.props.onExit&&t.props.onExit(e)},t.onExiting=function(e){var n=t.resolveArguments(e)[0];t.addClass(n,"exit","active"),t.props.onExiting&&t.props.onExiting(e)},t.onExited=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"exit"),t.addClass(n,"exit","done"),t.props.onExited&&t.props.onExited(e)},t.resolveArguments=function(e,n){return t.props.nodeRef?[t.props.nodeRef.current,e]:[e,n]},t.getClassNames=function(e){var n=t.props.classNames,r="string"==typeof n,o=r?(r&&n?n+"-":"")+e:n[e];return{baseClassName:o,activeClassName:r?o+"-active":n[e+"Active"],doneClassName:r?o+"-done":n[e+"Done"]}},t}UA(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var r=this.getClassNames(t)[n+"ClassName"],o=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&o&&(r+=" "+o),"active"===n&&e&&YA(e),r&&(this.appliedClasses[t][n]=r,function(e,t){e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.add(r):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,r)||("string"==typeof n.className?n.className=n.className+" "+r:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+r)));var n,r}))}(e,r))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],r=n.base,o=n.active,a=n.done;this.appliedClasses[t]={},r&&rb(e,r),o&&rb(e,o),a&&rb(e,a)},n.render=function(){var e=this.props,t=(e.classNames,DA(e,["classNames"]));return J.createElement(nb,LA({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(J.Component);ob.defaultProps={classNames:""},ob.propTypes={};const ab=ob;var ib=n(2971),sb={};sb.styleTagTransform=M(),sb.setAttributes=B(),sb.insert=T().bind(null,"head"),sb.domAPI=k(),sb.insertStyleElement=N(),w()(ib.A,sb),ib.A&&ib.A.locals&&ib.A.locals;class lb extends J.PureComponent{constructor(...e){super(...e),this._onClick=()=>{const{index:e,onClick:t}=this.props;t&&t(e)}}render(){const{isFirstItem:e,isLastItem:t,isSelectedItem:n,children:r,additionalClassName:o,onClick:a,title:i}=this.props;return J.createElement("li",{className:ug()("filterNavigatorBarItem",o,{filterNavigatorBarRootItem:e,filterNavigatorBarSelectedItem:n,filterNavigatorBarLeafItem:t}),title:i,onClick:a?this._onClick:null},a?J.createElement("button",{type:"button",className:"filterNavigatorBarItemContent"},r):J.createElement("span",{className:"filterNavigatorBarItemContent"},r))}}class cb extends J.PureComponent{render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o}=this.props;return J.createElement($A,{component:"ol",className:ug()("filterNavigatorBar",e)},t.map(((e,a)=>J.createElement(ab,{key:a,classNames:"filterNavigatorBarTransition",timeout:250},J.createElement(lb,{index:a,onClick:a!==t.length-1||r?o:null,isFirstItem:0===a,isLastItem:a===t.length-1,isSelectedItem:a===n},e)))),r?J.createElement(ab,{key:t.length,classNames:"filterNavigatorBarUncommittedTransition",timeout:0},J.createElement(lb,{index:t.length,isFirstItem:!1,isLastItem:!0,isSelectedItem:!1,additionalClassName:"filterNavigatorBarUncommittedItem",title:r},r)):null)}}var db=n(5800),ub={};ub.styleTagTransform=M(),ub.setAttributes=B(),ub.insert=T().bind(null,"head"),ub.domAPI=k(),ub.insertStyleElement=N(),w()(db.A,ub),db.A&&db.A.locals&&db.A.locals;const hb=at({mapStateToProps:e=>{const t=Pd.getLocalizedTransformLabels(e);return{className:"calltreeTransformNavigator",items:t,selectedItem:t.length-1}},mapDispatchToProps:{onPop:qh},component:cb}),pb=()=>J.createElement("div",{className:"treeAndSidebarWrapper",id:"calltree-tab",role:"tabpanel","aria-labelledby":"calltree-tab-button"},J.createElement(RA,null),J.createElement(hb,null),J.createElement(AA,null));class mb extends J.PureComponent{render(){const{isMarkerTableEmptyInFullRange:e,threadName:t}=this.props;return J.createElement(sA,{threadName:t,reason:e?"This thread contains no markers for this table.":"All markers were filtered out by the current selection or search term.",viewName:"marker table"})}}const fb=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e),isMarkerTableEmptyInFullRange:Pd.getAreMarkerPanelsEmptyInFullRange(e)}),component:mb});var gb=n(291),Ab={};Ab.styleTagTransform=M(),Ab.setAttributes=B(),Ab.insert=T().bind(null,"head"),Ab.domAPI=k(),Ab.insertStyleElement=N(),w()(gb.A,Ab),gb.A&&gb.A.locals&&gb.A.locals;class bb extends J.PureComponent{constructor(...e){super(...e),this._contextMenu=null,this._takeContextMenuRef=e=>{this._contextMenu=e}}_mouseDownHandler(e){e.preventDefault()}componentDidMount(){if(this._contextMenu){const e=Eg.findDOMNode(this._contextMenu);e&&e.addEventListener("mousedown",this._mouseDownHandler)}}componentWillUnmount(){const e=Eg.findDOMNode(this._contextMenu);e&&e.removeEventListener("mousedown",this._mouseDownHandler)}render(){return J.createElement(Yg,{ref:this._takeContextMenuRef,...this.props},this.props.children?this.props.children:J.createElement("div",null))}}class Cb extends J.PureComponent{constructor(...e){super(...e),this.filterSamplesByMarker=()=>{const{searchString:e,threadsKey:t,addTransformToStack:n}=this.props;n(t,{type:"filter-samples",filterType:"marker-search",filter:e})}}render(){const{searchString:e,onShow:t,onHide:n}=this.props;return J.createElement(bb,{id:"MarkerFiltersContextMenu",className:"markerFiltersContextMenu",onShow:t,onHide:n},J.createElement(Vg,{onClick:this.filterSamplesByMarker},J.createElement(de,{id:"MarkerFiltersContextMenu--drop-samples-outside-of-markers-matching",vars:{filter:e},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Drop samples outside of markers matching “",J.createElement("strong",null,"$",e),"”"))))}}const vb=at({mapStateToProps:e=>({searchString:Fo(e),threadsKey:zo(e)}),mapDispatchToProps:{addTransformToStack:Kh},component:Cb});var yb=n(8734),wb={};wb.styleTagTransform=M(),wb.setAttributes=B(),wb.insert=T().bind(null,"head"),wb.domAPI=k(),wb.insertStyleElement=N(),w()(yb.A,wb),yb.A&&yb.A.locals&&yb.A.locals;class Eb extends J.PureComponent{constructor(...e){super(...e),this.state={isMarkerFiltersMenuVisible:!1,isFilterMenuVisibleOnMouseDown:!1},this._onSearch=e=>{this.props.changeMarkersSearchString(e)},this._onClickToggleFilterButton=e=>{const{isFilterMenuVisibleOnMouseDown:t}=this.state;if(t)return;const n=e.currentTarget.getBoundingClientRect();zg({data:null,id:"MarkerFiltersContextMenu",position:{x:n.right>window.innerWidth-250?n.right:n.left,y:n.bottom},target:e.target})},this._onShowFiltersContextMenu=()=>{this.setState({isMarkerFiltersMenuVisible:!0})},this._onHideFiltersContextMenu=()=>{this.setState({isMarkerFiltersMenuVisible:!1})},this._onMouseDownToggleFilterButton=()=>{this.setState((e=>({isFilterMenuVisibleOnMouseDown:e.isMarkerFiltersMenuVisible})))}}render(){const{searchString:e,allowSwitchingStackType:t}=this.props,{isMarkerFiltersMenuVisible:n}=this.state;return J.createElement("div",{className:"markerSettings"},J.createElement("ul",{className:"panelSettingsList"},t?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(IA,{labelL10nId:"StackSettings--stack-implementation-label"})):null),J.createElement(de,{id:"MarkerSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(EA,{className:"markerSettingsSearchField",label:"Filter Markers:",title:"Only display markers that match a certain name",currentSearchString:e,onSearch:this._onSearch})),J.createElement(de,{id:"MarkerSettings--marker-filters",attrs:{title:!0}},J.createElement("button",{className:ug()("filterMarkersButton","photon-button","photon-button-ghost",{"photon-button-ghost--checked":n}),title:"Marker filters",type:"button",onClick:this._onClickToggleFilterButton,onMouseDown:this._onMouseDownToggleFilterButton,disabled:!e})),J.createElement(vb,{onShow:this._onShowFiltersContextMenu,onHide:this._onHideFiltersContextMenu}))}}const kb=at({mapStateToProps:e=>({searchString:Fo(e),allowSwitchingStackType:Ns(e)}),mapDispatchToProps:{changeMarkersSearchString:Lh},component:Eb});var xb=n(3769),Tb={};Tb.styleTagTransform=M(),Tb.setAttributes=B(),Tb.insert=T().bind(null,"head"),Tb.domAPI=k(),Tb.insertStyleElement=N(),w()(xb.A,Tb),xb.A&&xb.A.locals&&xb.A.locals;class Sb{constructor(e,t,n,r,o){this._getMarker=void 0,this._markerIndexes=void 0,this._zeroAt=void 0,this._displayDataByIndex=void 0,this._markerSchemaByName=void 0,this._getMarkerLabel=void 0,this._getMarker=e,this._markerIndexes=t,this._zeroAt=n,this._displayDataByIndex=new Map,this._markerSchemaByName=r,this._getMarkerLabel=o}getRoots(){return this._markerIndexes}getChildren(e){return-1===e?this.getRoots():[]}hasChildren(e){return!1}getAllDescendants(){return new Set}getParent(){return-1}getDepth(){return 0}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){const o=this._getMarker(e);let a=this._getMarkerLabel(e);a.length>500&&(a=a.substring(0,500)+"…");let i=null;o.incomplete?i="unknown":null!==o.end&&(i=tn(o.end-o.start)),t={start:(n=o.start,r=this._zeroAt,Jt(n-r)),duration:i,name:o.name,details:a},this._displayDataByIndex.set(e,t)}var n,r;return t}}class Bb extends J.PureComponent{constructor(...e){super(...e),this._fixedColumns=[{propName:"start",titleL10nId:"MarkerTable--start",minWidth:30,initialWidth:90,resizable:!0},{propName:"duration",titleL10nId:"MarkerTable--duration",minWidth:30,initialWidth:80,resizable:!0},{propName:"name",titleL10nId:"MarkerTable--name",minWidth:30,initialWidth:150,resizable:!0}],this._mainColumn={propName:"details",titleL10nId:"MarkerTable--details"},this._expandedNodeIds=[],this._onExpandedNodeIdsChange=()=>{},this._treeView=void 0,this._takeTreeViewRef=e=>this._treeView=e,this.getMarkerTree=Lt()(((...e)=>new Sb(...e)),{limit:1}),this._onSelectionChange=(e,t)=>{const{threadsKey:n,changeSelectedMarker:r}=this.props;r(n,e,t)},this._onRightClickSelection=e=>{const{threadsKey:t,changeRightClickedMarker:n}=this.props;n(t,e)}}componentDidMount(){this.focus(),this._treeView&&this._treeView.scrollSelectionIntoView()}componentDidUpdate(e){this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this._treeView&&this._treeView.scrollSelectionIntoView()}focus(){const e=this._treeView;e&&e.focus()}render(){const{getMarker:e,markerIndexes:t,zeroAt:n,selectedMarker:r,rightClickedMarkerIndex:o,markerSchemaByName:a,getMarkerLabel:i}=this.props,s=this.getMarkerTree(e,t,n,a,i);return J.createElement("div",{className:"markerTable",id:"marker-table-tab",role:"tabpanel","aria-labelledby":"marker-table-tab-button"},J.createElement(kb,null),0===t.length?J.createElement(fb,null):J.createElement(oA,{maxNodeDepth:0,tree:s,fixedColumns:this._fixedColumns,mainColumn:this._mainColumn,onSelectionChange:this._onSelectionChange,onRightClickSelection:this._onRightClickSelection,onExpandedNodesChange:this._onExpandedNodeIdsChange,selectedNodeId:r,rightClickedNodeId:o,expandedNodeIds:this._expandedNodeIds,ref:this._takeTreeViewRef,contextMenuId:"MarkerContextMenu",rowHeight:16,indentWidth:10,viewOptions:this.props.tableViewOptions,onViewOptionsChange:this.props.onTableViewOptionsChange}))}}const Ib=at({mapStateToProps:e=>({threadsKey:zo(e),scrollToSelectionGeneration:oi(e),getMarker:Pd.getMarkerGetter(e),markerIndexes:Pd.getMarkerTableMarkerIndexes(e),selectedMarker:Pd.getSelectedMarkerIndex(e),rightClickedMarkerIndex:Pd.getRightClickedMarkerIndex(e),zeroAt:ii(e),markerSchemaByName:Di(e),getMarkerLabel:Pd.getMarkerTableLabelGetter(e),tableViewOptions:ti(e)}),mapDispatchToProps:{changeSelectedMarker:Mh,changeRightClickedMarker:Dh,onTableViewOptionsChange:e=>ep("marker-table",e)},component:Bb});var _b=n(3631),Nb=n(4194),Pb={};Pb.styleTagTransform=M(),Pb.setAttributes=B(),Pb.insert=T().bind(null,"head"),Pb.domAPI=k(),Pb.insertStyleElement=N(),w()(Nb.A,Pb),Nb.A&&Nb.A.locals&&Nb.A.locals;const{DOM_DELTA_PAGE:Mb,DOM_DELTA_LINE:Fb}="object"==typeof window&&window.WheelEvent?new WheelEvent("mouse"):{DOM_DELTA_LINE:1,DOM_DELTA_PAGE:2},Rb={KeyQ:"zoomIn",KeyY:"zoomIn",KeyE:"zoomOut",KeyU:"zoomOut",KeyW:"up",KeyK:"up",KeyS:"down",KeyJ:"down",KeyA:"left",KeyH:"left",KeyD:"right",KeyL:"right"},Db={ArrowUp:"zoomIn",ArrowDown:"zoomOut"},Lb=e=>{class t extends J.PureComponent{constructor(e){super(e),this.zoomScrollId=0,this._pendingPreviewSelectionUpdates=[],this._container=null,this._takeContainerRef=e=>{this.props.viewportProps.containerRef&&this.props.viewportProps.containerRef(e),this._container=e},this._lastKeyboardNavigationFrame=0,this._keysDown=new Set,this._deltaToZoomFactor=e=>Math.pow(1.003,e),this._dragX=0,this._dragY=0,this._setSize=()=>{if(this._container){const e=this._container.getBoundingClientRect(),{startsAtBottom:t}=this.props.viewportProps;this.state.containerWidth===e.width&&this.state.containerHeight===e.height||this.setState((n=>({containerWidth:e.width,containerHeight:e.height,containerLeft:e.left,viewportBottom:t?n.viewportBottom:n.viewportTop+e.height,viewportTop:t?n.viewportBottom-e.height:n.viewportTop,isSizeSet:!0})))}},this._setSizeNextFrame=()=>{requestAnimationFrame(this._setSize)},this._mouseWheelListener=e=>{e.preventDefault();const{disableHorizontalMovement:t}=this.props.viewportProps;if(e.ctrlKey||e.shiftKey){if(!t){const t=e.ctrlKey?3:1;this.zoomWithMouseWheel(e,t)}return}t||this.showScrollingHint();const{containerHeight:n}=this.state;this.moveViewport(-zb(e,n,"deltaX"),-zb(e,n,"deltaY"))},this.zoomRangeSelection=(e,t)=>{const{disableHorizontalMovement:n,maximumZoom:r}=this.props.viewportProps;n||this._addBatchedPreviewSelectionUpdate((({viewportLeft:n,viewportRight:o})=>{const a=o-n,i=Ob(r,1,a*t),s=i-a,l=Ob(0,1-i,n-s*e),c=Ob(i,1,o+s*(1-e)),{viewportProps:{timeRange:d}}=this.props;if(0===l&&1===c)return{hasSelection:!1,isModifying:!1};const u=d.end-d.start;return{hasSelection:!0,isModifying:!1,selectionStart:d.start+u*l,selectionEnd:d.start+u*c}}))},this._mouseDownListener=e=>{e.preventDefault(),this._container&&this._container.focus(),window.addEventListener("mousemove",this._mouseMoveListener,!0),window.addEventListener("mouseup",this._mouseUpListener,!0)},this._mouseMoveListener=e=>{e.preventDefault();let{_dragX:t,_dragY:n}=this;this.state.isDragging||(t=e.clientX,n=e.clientY);const r=e.clientX-t,o=e.clientY-n;this._dragX=e.clientX,this._dragY=e.clientY,this.setState({isDragging:!0}),this.moveViewport(r,o)},this._keyDownListener=e=>{let t;e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?e.ctrlKey&&(t=Db[e.nativeEvent.code]):t=Rb[e.nativeEvent.code],void 0!==t&&(0===this._keysDown.size&&(requestAnimationFrame(this._keyboardNavigation),this._lastKeyboardNavigationFrame=performance.now()),this._keysDown.add(t),e.preventDefault())},this._keyUpListener=e=>{if(!e.ctrlKey)for(const e of(0,ut.rj)(Db))this._keysDown.delete(e);this._keysDown.delete(Db[e.nativeEvent.code]),this._keysDown.delete(Rb[e.nativeEvent.code])},this._onBlur=()=>{this._keysDown.clear()},this._keyboardNavigation=e=>{if(0===this._keysDown.size)return;const t=Math.min(2e3*(e-this._lastKeyboardNavigationFrame)*.001,500);this._lastKeyboardNavigationFrame=e;for(const e of this._keysDown.values())switch(e){case"zoomIn":this.zoomRangeSelection(.5,this._deltaToZoomFactor(-t));break;case"zoomOut":this.zoomRangeSelection(.5,this._deltaToZoomFactor(t));break;case"up":this.moveViewport(0,t);break;case"down":this.moveViewport(0,-t);break;case"left":this.moveViewport(t,0);break;case"right":this.moveViewport(-t,0);break;default:throw(0,ut.lC)(e)}requestAnimationFrame(this._keyboardNavigation)},this.moveViewport=(e,t)=>{const{viewportProps:{maxViewportHeight:n,timeRange:r,startsAtBottom:o,disableHorizontalMovement:a,marginLeft:i,marginRight:s}}=this.props,{containerWidth:l,containerHeight:c,viewportTop:d,isSizeSet:u}=this.state;if(!u)return;let h=d-t,p=h+c;n<c?o?(h=n-c,p=n):(h=0,p=c):p>n?(h=n-c,p=n):h<0&&(h=0,p=c),h!==d&&this.setState({viewportTop:h,viewportBottom:p}),a||this._addBatchedPreviewSelectionUpdate((({viewportLeft:t,viewportRight:n})=>{const o=n-t;if(o>=1)return{hasSelection:!1,isModifying:!1};const a=e*(o/(l-i-s));let c=t-a,d=n-a;c<0&&(c=0,d=o),d>1&&(c=1-o,d=1);const u=r.end-r.start;return{hasSelection:!0,isModifying:!1,selectionStart:r.start+u*c,selectionEnd:r.start+u*d}}))},this._mouseUpListener=e=>{e.preventDefault(),window.removeEventListener("mousemove",this._mouseMoveListener,!0),window.removeEventListener("mouseup",this._mouseUpListener,!0),this.setState({isDragging:!1})},this.state=this.getDefaultState(e)}getHorizontalViewport(e,t){if(e.hasSelection){const{selectionStart:n,selectionEnd:r}=e,o=t.end-t.start;return{viewportLeft:(n-t.start)/o,viewportRight:(r-t.start)/o}}return{viewportLeft:0,viewportRight:1}}getDefaultState(e){const{previewSelection:t,timeRange:n}=e.viewportProps,r=this.getHorizontalViewport(t,n),{startsAtBottom:o,maxViewportHeight:a}=e.viewportProps;return{containerWidth:0,containerHeight:0,containerLeft:0,viewportTop:0,viewportBottom:o?a:0,horizontalViewport:r,isDragging:!1,isScrollHintVisible:!1,isSizeSet:!1}}showScrollingHint(){if(this.props.hasZoomedViaMousewheel)return;const e=++this.zoomScrollId;this.state.isScrollHintVisible||this.setState({isScrollHintVisible:!0}),setTimeout((()=>{e===this.zoomScrollId&&this.setState({isScrollHintVisible:!1})}),1e3)}UNSAFE_componentWillReceiveProps(e){if(this.props.viewportProps.viewportNeedsUpdate(this.props.chartProps,e.chartProps))this.setState(this.getDefaultState(e)),this._setSizeNextFrame();else if(this.props.viewportProps.previewSelection!==e.viewportProps.previewSelection||this.props.viewportProps.timeRange!==e.viewportProps.timeRange){const{previewSelection:t,timeRange:n}=e.viewportProps,r=this.getHorizontalViewport(t,n);this.setState({horizontalViewport:r})}else this.props.panelLayoutGeneration!==e.panelLayoutGeneration&&this._setSizeNextFrame()}_addBatchedPreviewSelectionUpdate(e){0===this._pendingPreviewSelectionUpdates.length&&requestAnimationFrame((()=>this._flushPendingPreviewSelectionUpdates())),this._pendingPreviewSelectionUpdates.push(e)}_flushPendingPreviewSelectionUpdates(){if(0!==this._pendingPreviewSelectionUpdates.length){const e=this._pendingPreviewSelectionUpdates;this._pendingPreviewSelectionUpdates=[];const{updatePreviewSelection:t,viewportProps:{previewSelection:n,timeRange:r}}=this.props;let o=n;for(const t of e)o=t(this.getHorizontalViewport(o,r));t(o)}}zoomWithMouseWheel(e,t=1){const{hasZoomedViaMousewheel:n,setHasZoomedViaMousewheel:r,viewportProps:{marginLeft:o,marginRight:a}}=this.props;!n&&r&&r();const i=zb(e,this.state.containerHeight,0===e.deltaY?"deltaX":"deltaY"),s=this._deltaToZoomFactor(i*t),l=e.clientX,{containerLeft:c,containerWidth:d}=this.state,u=(l-c-o)/(d-o-a);this.zoomRangeSelection(u,s)}componentDidMount(){if(this._setSize(),this._setSizeNextFrame(),this._container){const e=this._container;bg().subscribe(e,this._setSize),e.addEventListener("wheel",this._mouseWheelListener,{passive:!1})}}componentWillUnmount(){window.removeEventListener("resize",this._setSizeNextFrame,!1),window.removeEventListener("mousemove",this._mouseMoveListener,!0),window.removeEventListener("mouseup",this._mouseUpListener,!0);const e=this._container;e&&(bg().unsubscribe(e,this._setSize),e.removeEventListener("wheel",this._mouseWheelListener,{passive:!1}))}render(){const{chartProps:t,hasZoomedViaMousewheel:n,viewportProps:{className:r}}=this.props,{containerWidth:o,containerHeight:a,viewportTop:i,viewportBottom:s,horizontalViewport:{viewportLeft:l,viewportRight:c},isDragging:d,isScrollHintVisible:u,isSizeSet:h}=this.state,p=ug()({chartViewport:!0,dragging:d},r),m=ug()({chartViewportScroll:!0,hidden:n||!u}),f={containerWidth:o,containerHeight:a,viewportLeft:l,viewportRight:c,viewportTop:i,viewportBottom:s,isDragging:d,moveViewport:this.moveViewport,isSizeSet:h};return J.createElement("div",{className:p,onMouseDown:this._mouseDownListener,onKeyDown:this._keyDownListener,onKeyUp:this._keyUpListener,onBlur:this._onBlur,ref:this._takeContainerRef,tabIndex:0},J.createElement(e,{...t,viewport:f}),J.createElement("div",{className:m},"Zoom Chart:",J.createElement("kbd",{className:"chartViewportScrollKbd"},"Ctrl + Scroll"),"or",J.createElement("kbd",{className:"chartViewportScrollKbd"},"Shift + Scroll")))}}return at({mapStateToProps:e=>({panelLayoutGeneration:Zs(e),hasZoomedViaMousewheel:Ys(e)}),mapDispatchToProps:{setHasZoomedViaMousewheel:pm,updatePreviewSelection:Vh},component:t})};function Ob(e,t,n){return Math.max(e,Math.min(t,n))}const Ub=15;function zb(e,t,n){const r="deltaY"===n?e.deltaY:e.deltaX;switch(e.deltaMode){case Mb:return r*t;case Fb:return r*Ub}return r}var Gb=n(4004),Wb={};Wb.styleTagTransform=M(),Wb.setAttributes=B(),Wb.insert=T().bind(null,"head"),Wb.domAPI=k(),Wb.insertStyleElement=N(),w()(Gb.A,Wb),Gb.A&&Gb.A.locals&&Gb.A.locals;const Hb=11;class Vb extends J.PureComponent{constructor(...e){super(...e),this._interiorElementRef=J.createRef(),this._previousPosition={horizontal:"after-mouse",vertical:"after-mouse"},this._overlayElement=(0,ut.Nn)(document.querySelector("#root-overlay"),"Expected to find a root overlay element."),this._mouseDownListener=e=>{e.stopPropagation()}}_computeNewPosition({mousePosition:e,elementSize:t,windowSize:n,previousPosition:r}){const o=[];let a,i;switch(e+Hb+t<n&&o.push("after-mouse"),e-Hb-t>=0&&o.push("before-mouse"),o.length){case 0:a="window-edge";break;case 1:a=o[0];break;case 2:a="window-edge"!==r?r:"before-mouse";break;default:throw new Error(`We got more than 2 possible positions ${o.length}, which shouldn't happen.`)}switch(a){case"after-mouse":i=e+Hb;break;case"before-mouse":i=e-t-Hb;break;case"window-edge":i=8;break;default:throw(0,ut.lC)(a)}return{position:a,style:i}}setPositioningStyle(){const{mouseX:e,mouseY:t}=this.props,n=this._interiorElementRef.current;if(!n)return;const r=this._computeNewPosition({mousePosition:e,elementSize:n.offsetWidth,windowSize:window.innerWidth,previousPosition:this._previousPosition.horizontal}),o=this._computeNewPosition({mousePosition:t,elementSize:n.offsetHeight,windowSize:window.innerHeight,previousPosition:this._previousPosition.vertical});n.style.left=r.style+"px",n.style.top=o.style+"px",this._previousPosition={horizontal:r.position,vertical:o.position}}componentDidMount(){this.setPositioningStyle()}componentDidUpdate(){this.setPositioningStyle()}render(){return Eg.createPortal(J.createElement("div",{className:ug()("tooltip",this.props.className),onMouseDown:this._mouseDownListener,"data-testid":"tooltip",style:{left:0,top:0},ref:this._interiorElementRef},this.props.children),this._overlayElement)}}var jb=n(1172),$b={};$b.styleTagTransform=M(),$b.setAttributes=B(),$b.insert=T().bind(null,"head"),$b.domAPI=k(),$b.insertStyleElement=N(),w()(jb.A,$b),jb.A&&jb.A.locals&&jb.A.locals;class Kb extends J.Component{constructor(...e){super(...e),this._devicePixelRatio=1,this._offsetX=0,this._offsetY=0,this._mouseDownOffsetX=0,this._mouseDownOffsetY=0,this._mouseMovedWhileClicked=!1,this._ctx=void 0,this._canvas=null,this._isDrawScheduled=!1,this.state={hoveredItem:null,selectedItem:null,pageX:0,pageY:0},this._onMouseDown=e=>{0===e.button&&(this._mouseDownOffsetX=e.nativeEvent.offsetX,this._mouseDownOffsetY=e.nativeEvent.offsetY,this._mouseMovedWhileClicked=!1),2===e.button&&this.props.onRightClick&&this.props.onRightClick(this.state.hoveredItem)},this._onClick=e=>{if(this._mouseMovedWhileClicked)return;const{onSelectItem:t}=this.props;0===e.button&&t&&(this.props.stickyTooltips&&this.setState((t=>({selectedItem:t.hoveredItem,pageX:e.pageX,pageY:e.pageY}))),t(this.state.hoveredItem))},this._onMouseLeave=e=>{this.props.onMouseLeave&&this.props.onMouseLeave(e)},this._onMouseMove=e=>{if(!this._canvas)return;this.props.onMouseMove&&this.props.onMouseMove(e),this._offsetX=e.nativeEvent.offsetX,this._offsetY=e.nativeEvent.offsetY;const t=!!(1&e.buttons);!this._mouseMovedWhileClicked&&t&&(Math.abs(this._offsetX-this._mouseDownOffsetX)>5||Math.abs(this._offsetY-this._mouseDownOffsetY)>5)&&(this._mouseMovedWhileClicked=!0);const n=this.props.hitTest(this._offsetX,this._offsetY);null!==n?null===this.state.selectedItem?this.setState({hoveredItem:n,pageX:e.pageX,pageY:e.pageY}):this.setState({hoveredItem:n}):null===this.state.hoveredItem||window.persistTooltips||this.setState({hoveredItem:null})},this._onMouseOut=()=>{null===this.state.hoveredItem||window.persistTooltips||this.setState({hoveredItem:null})},this._onDoubleClick=()=>{this.props.onDoubleClickItem(this.state.hoveredItem)},this._getHoveredItemInfo=()=>{const{hoveredItem:e,selectedItem:t}=this.state;return null!==t?this.props.getHoveredItemInfo(t):null===e?null:this.props.getHoveredItemInfo(e)},this._takeCanvasRef=e=>{this._canvas=e}}_scheduleDraw(e=!1,t=null){const{drawCanvasAfterRaf:n}=this.props;!1!==n?this._isDrawScheduled||(this._isDrawScheduled=!0,window.requestAnimationFrame((()=>{this._isDrawScheduled=!1,this._doDrawCanvas(e,t)}))):this._doDrawCanvas(e,t)}_prepCanvas(){const e=this._canvas,{containerWidth:t,containerHeight:n,scaleCtxToCssPixels:r}=this.props,{devicePixelRatio:o}=window;if(!e)return;let a=this._ctx;a||(a=e.getContext("2d",{alpha:!1}),this._ctx=a);const i=Math.floor(t*o),s=Math.floor(n*o);if(e.width===i&&e.height===s||(e.width=i,e.height=s,e.style.width=e.width/o+"px",e.style.height=e.height/o+"px",r&&a.scale(this._devicePixelRatio,this._devicePixelRatio)),this._devicePixelRatio!==o){if(r){const e=1/this._devicePixelRatio*o;a.scale(e,e)}this._devicePixelRatio=o}}_doDrawCanvas(e=!1,t=null){const{className:n,drawCanvas:r,scaleCtxToCssPixels:o}=this.props,{hoveredItem:a}=this.state;this._canvas&&(0,Cn.l)(`${n} render`,(()=>{this._prepCanvas();const n=this._devicePixelRatio;r(this._ctx,{cssToDeviceScale:n,cssToUserScale:o?1:n},{hoveredItem:a,prevHoveredItem:t,isHoveredOnlyDifferent:e})}))}UNSAFE_componentWillReceiveProps(){const{hoveredItem:e}=this.state;null===e||Yb(this.props.hitTest(this._offsetX,this._offsetY),e)||this.setState({hoveredItem:null})}componentDidUpdate(e,t){e!==this.props?(null!==this.state.selectedItem&&t.selectedItem===this.state.selectedItem&&this.setState({selectedItem:null}),this._scheduleDraw()):Yb(t.hoveredItem,this.state.hoveredItem)||this._scheduleDraw(!0,t.hoveredItem)}render(){const{isDragging:e}=this.props,{hoveredItem:t,pageX:n,pageY:r}=this.state,o=ug()({chartCanvas:!0,[this.props.className]:!0,hover:null!==t}),a=this._getHoveredItemInfo();return J.createElement("div",null,J.createElement("canvas",{className:o,ref:this._takeCanvasRef,onMouseDown:this._onMouseDown,onClick:this._onClick,onMouseLeave:this._onMouseLeave,onMouseMove:this._onMouseMove,onMouseOut:this._onMouseOut,onDoubleClick:this._onDoubleClick}),!e&&a?J.createElement(Vb,{mouseX:n,mouseY:r,className:ug()({clickable:null!==this.state.selectedItem})},a):null)}}function Yb(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.length!==t.length)return!1;let n=!0;for(const r in e){let o=!1;for(const n in t)if(r===n){if(e[r]!==t[n])return!1;o=!0;break}if(n=n&&o,!n)return!1}return!0}return e===t}const qb=class{constructor(e){this._ctx=void 0,this._cache=void 0,this._averageCharWidth=void 0,this.overflowChar=void 0,this.minWidth=void 0,this._ctx=e,this._cache={},this._averageCharWidth=this._calcAverageCharWidth(),this.overflowChar="…",this.minWidth=this.getTextWidth(this.overflowChar)}_calcAverageCharWidth(){return this.getTextWidth("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.()< /:-_")/61}getTextWidth(e){const t=this._cache[e];if(void 0!==t)return t;const n=this._ctx.measureText(e);return this._cache[e]=n.width,n.width}getFittedText(e,t){if(this.getTextWidth(e)<t)return e;const n=t=>this.getTextWidth(e.substring(0,t)),r=e=>Math.round((o-n(e))/this._averageCharWidth),o=t-this.minWidth,a=o/this._averageCharWidth;let i=Math.floor(a);if(i<1)return"";i+=r(i);const s=r(i);for(s>=1&&(i+=s);n(i)>o;)--i;return e.substring(0,i)+this.overflowChar}},Zb="#ed00b5",Xb="#6200a4",Jb="#45a1ff",Qb="#0060df",eC="#30e60b",tC="#12bc00",nC="#d70022",rC="#a4000f",oC="#ff9400",aC="#a44900",iC="#d7d7db",sC="#b1b1b3",lC="#737373",cC={selectedFillStyle:sC,unselectedFillStyle:sC+"60",selectedTextColor:"#000",gravity:10},dC={selectedFillStyle:lC,unselectedFillStyle:lC+"60",selectedTextColor:"#fff",gravity:11},uC={transparent:{selectedFillStyle:"transparent",unselectedFillStyle:"transparent",selectedTextColor:"#000",gravity:0},lightblue:{selectedFillStyle:Jb,unselectedFillStyle:Jb+"60",selectedTextColor:"#000",gravity:1},red:{selectedFillStyle:nC,unselectedFillStyle:nC+"60",selectedTextColor:"#fff",gravity:1},lightred:{selectedFillStyle:rC+"60",unselectedFillStyle:rC+"30",selectedTextColor:"#000",gravity:1},orange:{selectedFillStyle:oC,unselectedFillStyle:oC+"60",selectedTextColor:"#fff",gravity:2},blue:{selectedFillStyle:Qb,unselectedFillStyle:Qb+"60",selectedTextColor:"#fff",gravity:3},green:{selectedFillStyle:tC,unselectedFillStyle:tC+"60",selectedTextColor:"#fff",gravity:4},purple:{selectedFillStyle:Xb,unselectedFillStyle:Xb+"60",selectedTextColor:"#fff",gravity:5},yellow:{selectedFillStyle:"#ffe129",unselectedFillStyle:"#ffe90070",selectedTextColor:"#000",gravity:6},brown:{selectedFillStyle:aC,unselectedFillStyle:aC+"60",selectedTextColor:"#fff",gravity:7},magenta:{selectedFillStyle:Zb,unselectedFillStyle:Zb+"60",selectedTextColor:"#fff",gravity:8},lightgreen:{selectedFillStyle:eC,unselectedFillStyle:eC+"60",selectedTextColor:"#fff",gravity:9},gray:cC,grey:cC,darkgray:dC,darkgrey:dC};function hC(e){const t=uC[e];return void 0!==t?t:(console.error(`Unknown color name '${e}' encountered. Consider updating this code to handle it.`),cC)}function pC(e){return"transparent"===e?{selectedFillStyle:iC,unselectedFillStyle:iC+"60",selectedTextColor:"#000",gravity:8}:hC(e)}var mC=n(561),fC=n(797),gC={};function AC({additionalClassName:e,max:t,value:n,color:r,ariaLabel:o}){const a=n/t*100+"%",i=r?`var(--category-color-${r})`:"var(--blue-40)";return J.createElement("div",{className:`tooltipCallNodeGraphMeter ${e}`,role:"meter","aria-label":o,"aria-valuemax":t,"aria-valuemin":0,"aria-valuenow":n},n>0?J.createElement("div",{className:"tooltipCallNodeGraphMeterBar",style:{width:a,background:i}}):null)}function bC({isHeader:e,max:t,self:n,total:r,color:o,labelQualifier:a}){return J.createElement("div",{className:ug()("tooltipCallNodeGraph",{tooltipCategoryRowHeader:e})},J.createElement(AC,{additionalClassName:"tooltipCallNodeGraphMeterTotal",max:t,value:r,color:o,ariaLabel:`Total samples ${a}`}),J.createElement(AC,{additionalClassName:"tooltipCallNodeGraphMeterSelf",max:t,value:n,color:o,ariaLabel:`Self samples ${a}`}))}gC.styleTagTransform=M(),gC.setAttributes=B(),gC.insert=T().bind(null,"head"),gC.domAPI=k(),gC.insertStyleElement=N(),w()(fC.A,gC),fC.A&&fC.A.locals&&fC.A.locals;class CC extends J.PureComponent{_renderOneSubCategoryLine(e,t,n,r,o,a,i,s){const{categories:l,weightType:c}=this.props,d=l[t].color;return J.createElement(J.Fragment,{key:`${t}-${n}`},J.createElement("div",{className:ug()({tooltipCallNodeName:!0,tooltipLabel:!0,tooltipCategoryRowHeader:s})},e),J.createElement(bC,{self:r,total:o,max:a,labelQualifier:`for ${e}`,color:d,isHeader:s}),J.createElement("div",{className:ug()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},Ht(c,i,o)),J.createElement("div",{className:ug()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},0===r?"—":Ht(c,i,r)))}_maybeRenderOneCategoryGroup({selfTime:e,totalTime:t},n,r){if(null===t.breakdownByCategory)return null;const{entireCategoryValue:o,subcategoryBreakdown:a}=t.breakdownByCategory[n];if(0===o)return null;const{categories:i}=this.props,s=e.breakdownByCategory?e.breakdownByCategory[n].entireCategoryValue:0,l=[];if(function(e){let t=0;for(let n=0;n<e.length;n++)e[n]>0&&t++;return t}(a)<=1){const e=a.findIndex((e=>e>0));return l.push(this._renderOneSubCategoryLine((0,bn.LU)(i,n,e),n,e,s,o,t.value,r,!0)),l}const c=i[n].name;l.push(this._renderOneSubCategoryLine(c,n,-1,s,o,t.value,r,!0));const d=o=>{const s=a[o];if(0===s)return;const c=e.breakdownByCategory?e.breakdownByCategory[n].subcategoryBreakdown[o]:0;l.push(this._renderOneSubCategoryLine(i[n].subcategories[o],n,o,c,s,t.value,r,!1))};for(let e=1;e<a.length;e++)d(e);return d(0),l}_renderCategoryTimings(e){if(!e)return null;const{totalTime:t,selfTime:n}=e.forPath,r=t.breakdownByCategory;if(!r)return null;const{thread:o,weightType:a}=this.props,i=Boolean(o.isJsTracer);return J.createElement("div",{className:"tooltipCallNodeCategory"},J.createElement("div",null),J.createElement("div",{className:"tooltipCallNodeHeader"}),J.createElement("div",{className:"tooltipCallNodeHeader"},J.createElement("span",{className:"tooltipCallNodeHeaderSwatchRunning"}),"Running"),J.createElement("div",{className:"tooltipCallNodeHeader"},J.createElement("span",{className:"tooltipCallNodeHeaderSwatchSelf"}),"Self"),J.createElement("div",{className:"tooltipLabel tooltipCategoryLabel tooltipCategoryRowHeader"},"Overall"),J.createElement(bC,{self:n.value,total:t.value,max:t.value,labelQualifier:"overall",isHeader:!0}),J.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},Ht(a,i,t.value)),J.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},0===n.value?"—":Ht(a,i,n.value)),r.map(((e,r)=>this._maybeRenderOneCategoryGroup({totalTime:t,selfTime:n},r,i))))}render(){const{callNodeIndex:e,thread:t,durationText:n,categories:r,displayData:o,timings:a,callTreeSummaryStrategy:i,innerWindowIDToPageMap:s,callNodeInfo:l,displayStackType:c}=this.props,d=l.categoryForNode(e),u=r[d].color,h=l.subcategoryForNode(e),p=l.funcForNode(e),m=l.innerWindowIDForNode(e),f=t.funcTable.name[p],g=t.stringTable.getString(f);let A=null;const b=t.funcTable.fileName[p];if(null!==b){let e=t.stringTable.getString(b);e=(0,mC.o)(e).path;const n=t.funcTable.lineNumber[p];if(null!==n){e+=":"+n;const r=t.funcTable.columnNumber[p];null!==r&&(e+=":"+r)}A=[J.createElement("div",{className:"tooltipLabel",key:"file"},"File:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"fileVal"},e)]}let C=null;const v=t.funcTable.resource[p];if(-1!==v){const e=t.resourceTable.name[v];C=[J.createElement("div",{className:"tooltipLabel",key:"resource"},"Resource:"),t.stringTable.getString(e)]}let y;if(s){const e=s.get(m);if(e)if(0!==e.embedderInnerWindowID){y=[J.createElement("div",{className:"tooltipLabel",key:"iframe"},"iframe URL:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"iframeVal"},e.url)];const t=s.get(e.embedderInnerWindowID);t&&y.push(J.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),J.createElement("div",{key:"pageVal"},t.url,t.isPrivateBrowsing?" (private)":null))}else y=[J.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"pageVal"},e.url,e.isPrivateBrowsing?" (private)":null)]}const w=function(e,t){return vr.cpp(e,t)?"native":vr.js(e,t)?"js":"unsymbolicated"}(t,p);let E;switch(w){case"native":E="Native";break;case"js":E="Ruby";break;case"unsymbolicated":E=t.funcTable.isJS[p]?"Unsymbolicated native":"Unsymbolicated or generated JIT instructions";break;default:throw new Error(`Unknown stack type case "${w}".`)}return J.createElement("div",{className:"tooltipCallNode"},J.createElement("div",{className:"tooltipOneLine tooltipHeader"},J.createElement("div",{className:"tooltipTiming"},n),J.createElement("div",{className:"tooltipTitle"},g),J.createElement("div",{className:"tooltipIcon"},o&&o.icon?J.createElement(pA,{displayData:o}):null)),J.createElement("div",{className:"tooltipCallNodeDetails"},"timing"!==i&&o?J.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},J.createElement("div",{className:"tooltipLabel"},"Total Bytes:"),J.createElement("div",null,o.totalWithUnit),J.createElement("div",{className:"tooltipLabel"},"Self Bytes:"),J.createElement("div",null,o.selfWithUnit)):null,J.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},c?J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},"Stack Type:"),J.createElement("div",null,E)):null,J.createElement("div",{className:"tooltipLabel"},"Category:"),J.createElement("div",null,J.createElement("span",{className:`colored-square category-color-${u}`}),(0,bn.LU)(r,d,h)),y,A,C),this._renderCategoryTimings(a)))}}function vC({label:e,children:t}){return null==t||""===t?null:J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},e,":"),t)}function yC(){return J.createElement("div",{className:"tooltipDetailSeparator"})}function wC({children:e}){return J.createElement("div",{className:"tooltipDetails"},e)}var EC=n(9525),kC={};kC.styleTagTransform=M(),kC.setAttributes=B(),kC.insert=T().bind(null,"head"),kC.domAPI=k(),kC.insertStyleElement=N(),w()(EC.A,kC),EC.A&&EC.A.locals&&EC.A.locals;const xC=["domainLookupStart","domainLookupEnd","connectStart","tcpConnectEnd","secureConnectionStart","connectEnd"],TC=["startTime",...xC,"requestStart","responseStart","responseEnd","endTime"],SC=TC.slice();SC.splice(1,xC.length);const BC={startTime:"Waiting for socket thread",domainLookupStart:"DNS request",domainLookupEnd:"After DNS request",connectStart:"TCP connection",tcpConnectEnd:"After TCP connection",secureConnectionStart:"Establishing TLS session",connectEnd:"Waiting for HTTP request",requestStart:"HTTP request and waiting for response",responseStart:"HTTP response",responseEnd:"Waiting to transmit the response",endTime:"End"},IC={startTime:0,domainLookupStart:.5,domainLookupEnd:.5,connectStart:.5,tcpConnectEnd:.5,secureConnectionStart:.5,connectEnd:.5,requestStart:.75,responseStart:1,responseEnd:0,endTime:0};class _C extends J.PureComponent{render(){const{startPosition:e,dur:t,propertyName:n,phaseDuration:r}=this.props,o=e/t*100,a=Math.max(.3,r/t*100),i=IC[n];return J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},BC[n],":"),J.createElement("div",{"aria-label":`Starting at ${Gt(e)} milliseconds, duration is ${Gt(r)} milliseconds`},Xt(r)),J.createElement("div",{className:ug()("tooltipNetworkPhase",{tooltipNetworkPhaseEmpty:0===i}),"aria-hidden":"true",style:{marginLeft:o+"%",marginRight:100-o-a+"%",opacity:0===i?null:i}}))}}class NC extends J.PureComponent{_getPhasesForProperties(e,t,n){if(e.length<2)return console.error("Only 1 preconnect property has been found, this should not happen."),null;const{payload:r}=this.props,o=[];for(let a=1;a<e.length;a++){const i=e[a],s=e[a-1],l=+r[s],c=+r[i]-l,d=l-n;o.push(J.createElement(_C,{key:s,propertyName:s,startPosition:d,phaseDuration:c,dur:t}))}return o}_getLatestPreconnectValue(){const{payload:e}=this.props;return"number"==typeof e.connectEnd?e.connectEnd:"number"==typeof e.domainLookupEnd?e.domainLookupEnd:null}_renderPreconnectPhases(){const{payload:e,zeroAt:t}=this.props,n=e.domainLookupStart;if("number"!=typeof n)return null;const r=this._getLatestPreconnectValue();if(null===r)return null;if(!(r<e.startTime))return null;const o=xC.filter((t=>"number"==typeof e[t])),a=r-n,i=this._getPhasesForProperties(o,a,n);return J.createElement(J.Fragment,null,J.createElement("h3",{className:"tooltipNetworkTitle3"},"Preconnect (starting at ",Xt(n-t),")"),i)}render(){const{payload:e}=this.props,t=nr(e.contentType||tr(e));if("STATUS_START"===e.status)return null;const n=this._renderPreconnectPhases(),r=(n?SC:TC).filter((t=>"number"==typeof e[t]));if(0===r.length||1===r.length)return null;const o=e.endTime-e.startTime;if(2===r.length)return J.createElement("div",{className:`tooltipNetworkPhases ${t}`},J.createElement(_C,{propertyName:"responseStart",startPosition:0,phaseDuration:o,dur:o}));const a=this._getPhasesForProperties(r,o,e.startTime);return J.createElement("div",{className:`tooltipNetworkPhases ${t}`},n?J.createElement(J.Fragment,null,n,J.createElement("h3",{className:"tooltipNetworkTitle3"},"Actual request")):null,a)}}var PC=n(6455),MC={};function FC(e){const{stackIndex:t,thread:n,implementationFilter:r,maxStacks:o,categories:a}=e,i=wr(n,r,(0,bn.dQ)(n,t)),s=(0,bn.RM)(i,n).reverse();return s.length?J.createElement("ul",{className:"backtrace"},s.slice(0,o).map((({funcName:e,origin:t,isFrameLabel:n,category:r},o)=>J.createElement("li",{key:o,className:ug()("backtraceStackFrame",{backtraceStackFrame_isFrameLabel:n})},J.createElement("span",{className:`colored-border category-color-${a[r].color}`,title:a[r].name}),e,J.createElement("em",{className:"backtraceStackFrameOrigin"},t)))),s.length>o?[J.createElement("span",{key:s.length,className:"colored-border ellipsis"}),"…"]:null):J.createElement("div",{className:"backtrace"},"(The stack is empty because all of its frames are filtered out by the implementation filter. Switch the implementation filter in the call tree to see more frames.)")}function RC(e){return J.createElement(vC,{key:"GC Phase - "+e.name,label:"Phase "+e.name},Xt(e.time/1e3))}function DC(e){const t=[];for(const n in e)"Total"!==n&&t.push({name:n,time:e[n]});return t}function LC(e,t,n){const r=t.shift();if(void 0===r)return;const o={name:"(temp)",time:0};let a=e.get(r);if(!a){const t={...o};a={branches:new Map,leaf:!1,value:t},e.set(r,a)}if(t.length>0)a.leaf=!1,LC(a.branches,t,n);else{if(a.value.name!==o.name)return void console.error(`Duplicate phase ${n.name} in _treeInsert in MarkerTooltipContents.js`);a.value=n,a.leaf=!0}}function OC(e){const t=[];for(const{branches:n,leaf:r,value:o}of e.values())r?t.push(o):t.push(...OC(n));return t}function UC(e,t){for(const n of e.values())t(n),UC(n.branches,t)}function zC(e,t){const n=DC(e),r=" (self-time)",o=new Map;for(const e of n)LC(o,e.name.split("."),e);UC(o,(({leaf:e,branches:t,value:{time:n,name:o}})=>{if(!e){let e=n;for(const{value:n}of t.values())e-=n.time;const a={name:o+r,time:e};t.set(o,{branches:new Map,leaf:!0,value:a})}}));const a=OC(o).sort(((e,t)=>t.time-e.time)).slice(0,t).filter((e=>e.time>0)),i={};let s=0;for(const{name:e}of n)i[e]=s++,i[e+r]=s++;return a.sort(((e,t)=>i[e.name]-i[t.name]))}MC.styleTagTransform=M(),MC.setAttributes=B(),MC.insert=T().bind(null,"head"),MC.domAPI=k(),MC.insertStyleElement=N(),w()(PC.A,MC),PC.A&&PC.A.locals&&PC.A.locals;var GC=n(5887),WC={};function HC(e,t){return void 0!==e&&void 0!==t?Xt(t-e):"unknown"}WC.styleTagTransform=M(),WC.setAttributes=B(),WC.insert=T().bind(null,"head"),WC.domAPI=k(),WC.insertStyleElement=N(),w()(GC.A,WC),GC.A&&GC.A.locals&&GC.A.locals;class VC extends J.PureComponent{constructor(...e){super(...e),this._maybeRenderPageUrl=()=>{const{pages:e,innerWindowIDToPageMap:t,marker:n}=this.props;if(!(e&&t&&n.data&&n.data.innerWindowID))return null;const r=n.data.innerWindowID,o=t.get(r);if(o){let t=null;e.filter((e=>e.url===o.url)).length>1&&(t=" (id: "+r+")");try{const{host:e}=new URL(o.url),n=o.url.indexOf(e);if(-1===n)throw new Error("Unable to find the host in the URL. This is a programming error.");const r=o.url.slice(0,n),a=o.url.slice(n+e.length);return J.createElement(vC,{label:"Page"},J.createElement("div",{className:"tooltipDetailsUrl"},J.createElement("span",{className:"tooltipDetailsDim"},r),e,J.createElement("span",{className:"tooltipDetailsDim"},a),t,o.isPrivateBrowsing?" (private)":null))}catch(e){let n=o.url;return t&&(n+=t),o.isPrivateBrowsing&&(n+=" (private)"),J.createElement(vC,{label:"Page"},n)}}return null}}_renderThreadDetails(){const{marker:e,threadIdToNameMap:t}=this.props,n=e.data,r=null!==e.threadId?t.get(e.threadId):this.props.threadName;if(n&&void 0!==n.threadId){const e=n.threadId,o=t.get(e);return[J.createElement(vC,{label:"Recording Thread",key:"recording"},r),o?J.createElement(vC,{label:"Occurring Thread",key:"occurring"},`${o} (TID: ${e})`):J.createElement(vC,{label:"Occurring Thread ID",key:"occurring"},e)]}return[J.createElement(vC,{label:"Track",key:"thread"},r)]}_renderMarkerDetails(){const{marker:e,markerSchemaByName:t,thread:n,threadIdToNameMap:r,processIdToNameMap:o}=this.props,a=e.data,i=[];if(a){const s=Pn(t,e.data);if(s){for(const e of s.fields){if(e.hidden)continue;const{key:t,label:l,format:c}=e,d=a[t];null!=d&&i.push(J.createElement(vC,{key:s.name+"-"+t,label:l||t},On(s.name,c,d,n.stringTable,r,o)))}if(s.description){const e=s.name+"-description";i.push(J.createElement(vC,{key:e,label:"Description"},J.createElement("div",{className:"tooltipDetailsDescription"},s.description)))}}switch(a.type){case"GCMinor":i.push(...function(e){const t=[];if(e.nursery){const r=e.nursery;switch(r.status){case"complete":{const e=r.phase_times.CollectToFP?(n=r.phase_times,["TraceValues","TraceCells","TraceSlots","TraceWholeCells","TraceGenericEntries","MarkRuntime","MarkDebugger","CollectToFP"].map((e=>n[e]?n[e]:0)).reduce(((e,t)=>e+t),0)):void 0;t.push(J.createElement(vC,{label:"Reason",key:"GCMinor-Reason"},r.reason),J.createElement(vC,{label:"Bytes tenured",key:"GCMinor-Bytes tenured"},nn(r.bytes_tenured,r.bytes_used,Kt))),r.cells_tenured&&r.cells_allocated_nursery&&t.push(J.createElement(vC,{label:"Cells tenured",key:"GCMinor-Cells tenured"},nn(r.cells_tenured,r.cells_allocated_nursery,Yt))),r.cur_capacity&&t.push(J.createElement(vC,{label:"Bytes used",key:"GCMinor-Bytes used"},nn(r.bytes_used,r.cur_capacity,Kt))),r.new_capacity&&t.push(J.createElement(vC,{label:"New nursery size",key:"GCMinor-New nursery size"},Kt(r.new_capacity))),r.lazy_capacity&&t.push(J.createElement(vC,{label:"Lazy-allocated size",key:"GCMinor-Lazy-allocated size"},Kt(r.lazy_capacity))),r.cells_allocated_nursery&&r.cells_allocated_tenured&&t.push(J.createElement(vC,{label:"Nursery allocations since last minor GC",key:"GCMinor-Nursery allocations since last minor GC"},nn(r.cells_allocated_nursery,r.cells_allocated_nursery+r.cells_allocated_tenured,Yt))),e&&(t.push(J.createElement(vC,{label:"Tenuring allocation rate",key:"GCMinor-bytes_tenured"},Kt(r.bytes_tenured/(e/1e6))+"/s")),r.cells_tenured&&t.push(J.createElement(vC,{label:"Tenuring allocation rate",key:"GCMinor-cells_tenured"},Yt(r.cells_tenured/(e/1e7))+"/s")),r.strings_tenured&&r.strings_deduplicated&&t.push(J.createElement(vC,{label:"Strings deduplicated when tenuring",key:"GCMinor-strings_deduped"},nn(r.strings_deduplicated,r.strings_deduplicated+r.strings_tenured,Yt)))),r.chunk_alloc_us&&t.push(J.createElement(vC,{label:"Time spent allocating chunks in mutator",key:"GCMinor-Time spent allocating chunks in mutator"},Zt(r.chunk_alloc_us))),r.groups_pretenured&&t.push(J.createElement(vC,{label:"Number of groups to pretenure",key:"GCMinor-Number of groups to pretenure"},Gt(r.groups_pretenured,2,0))),t.push(...DC(r.phase_times).filter((e=>e.time>250)).map(RC));break}case"nursery disabled":t.push(J.createElement(vC,{label:"Status",key:"GCMinor-Status"},"Nursery disabled"));break;case"nursery empty":t.push(J.createElement(vC,{label:"Status",key:"GCMinor-nursery empty"},"Nursery empty"))}}var n;return t}(a));break;case"GCMajor":i.push(...function(e){const t=[],n=e.timings;switch(n.status){case"aborted":t.push(J.createElement(vC,{label:"Status",key:"GMajor-Status"},"Aborted (OOM)"));break;case"completed":{let e=null;n.nonincremental_reason&&"None"!==n.nonincremental_reason&&(e=J.createElement(vC,{label:"Non-incremental reason",key:"GMajor-Non-incremental reason"},n.nonincremental_reason));const r=zC(n.phase_times,6);let o;const a=n.post_heap_size;o=void 0!==a?J.createElement(vC,{label:"GC heap size (pre - post)",key:"GMajor-GC heap size (pre - post)"},Kt(n.allocated_bytes)+" - "+Kt(a)):J.createElement(vC,{label:"GC heap size (pre)",key:"GMajor-GC heap size (pre)"},Kt(n.allocated_bytes)),t.push(e,J.createElement(vC,{label:"Reason",key:"GCMajor-reason"},n.reason),J.createElement(vC,{label:"Total slice times",key:"GMajor-Total slice times"},Xt(n.total_time,3,2)),J.createElement(vC,{label:"Max Pause",key:"GMajor-Make Pause"},Xt(n.max_pause,3,2)),o);const i=n.pre_malloc_heap_size,s=n.post_malloc_heap_size;void 0!==i&&void 0!==s&&t.push(J.createElement(vC,{label:"Malloc heap size (pre - post)",key:"GMajor-Malloc heap size (pre - post)"},Kt(i)+" - "+Kt(s))),t.push(J.createElement(vC,{label:"MMU 20ms",key:"GMajor-MMU 20ms"},Vt(n.mmu_20ms)),J.createElement(vC,{label:"MMU 50ms",key:"GMajor-MMU 50s"},Vt(n.mmu_50ms)),J.createElement(vC,{label:"Minor GCs",key:"GMajor-Minor GCs"},n.minor_gcs),J.createElement(vC,{label:"Slices",key:"GMajor-Slices"},n.slices),J.createElement(vC,{label:"Zones",key:"GMajor-Zones"},nn(n.zones_collected,n.total_zones,String)),J.createElement(vC,{label:"Compartments",key:"GMajor-Compartments"},n.total_compartments),...r.map(RC));break}}return t}(a));break;case"GCSlice":i.push(...function(e){const t=[],n=e.timings;let r=null;n.trigger_amount&&n.trigger_threshold&&(r=J.createElement(vC,{label:"Trigger (amt/trig)",key:"GSlice-Trigger (amt/trig)"},nn(n.trigger_amount,n.trigger_threshold,Kt,!1)));const o=zC(n.phase_times,6);return t.push(J.createElement(vC,{label:"Reason",key:"GSlice-Reason"},n.reason),J.createElement(vC,{label:"Budget",key:"GSlice-Budget"},n.budget),J.createElement(vC,{label:"States (pre - post)",key:"GSlice-States (pre - post)"},n.initial_state+" – "+n.final_state),r,J.createElement(vC,{label:"Page faults",key:"GSlice-Page faults"},n.page_faults),...o.map(RC)),t}(a));break;case"Network":i.push(...function(e){let t=e.contentType,n="MIME type";null==t&&(t=tr(e),n="Guessed MIME type");const r=nr(t),o=[];return o.push(J.createElement(vC,{label:"Status",key:"Network-Status"},function(e){switch(e){case"STATUS_START":return"Waiting for response";case"STATUS_STOP":return"Response received";case"STATUS_REDIRECT":return"Redirecting request";case"STATUS_CANCEL":return"Request was canceled";default:throw(0,ut.lC)(e)}}(e.status))),void 0!==e.redirectType&&o.push(J.createElement(vC,{label:"Redirection type",key:"Redirection-Type"},e.redirectType+(e.isHttpToHttpsRedirect?" (HTTP to HTTPS)":""))),o.push(J.createElement(vC,{label:"Cache",key:"Network-Cache"},e.cache),J.createElement(vC,{label:"URL",key:"Network-URL"},J.createElement("span",{className:"tooltipDetailsUrl"},e.URI))),e.RedirectURI&&o.push(J.createElement(vC,{label:"Redirect URL",key:"Network-Redirect URL"},J.createElement("span",{className:"tooltipDetailsUrl"},e.RedirectURI))),o.push(J.createElement(vC,{label:"Priority",key:"Network-Priority"},function(e){if("number"!=typeof e)return null;let t=null;return e<-10?t="Highest":e>=-10&&e<0?t="High":0===e?t="Normal":e<=10&&e>0?t="Low":e>10&&(t="Lowest"),t?t+"("+e+")":null}(e.pri))),t&&o.push(J.createElement(vC,{label:n,key:"Network-"+n},J.createElement("div",{className:"tooltipNetworkMimeType"},J.createElement("span",{className:`tooltipNetworkMimeTypeSwatch colored-square ${r}`,title:t}),t))),e.isPrivateBrowsing&&o.push(J.createElement(vC,{label:"Private Browsing",key:"Network-Private Browsing"},"Yes")),"number"==typeof e.count&&o.push(J.createElement(vC,{label:"Requested bytes",key:"Network-Requested Bytes"},Kt(e.count))),e.httpVersion&&o.push(J.createElement(vC,{label:"HTTP Version",key:"Network-HTTP Version"},function(e){switch(e){case"h3":return"3";case"h2":return"2";case"http/1.0":return"1.0";case"http/1.1":return"1.1";default:throw(0,ut.lC)(e,`Unknown received HTTP version ${e}`)}}(e.httpVersion))),e.classOfService&&o.push(J.createElement(vC,{label:"Class of Service",key:"Network-Class of Service"},e.classOfService)),e.requestStatus&&o.push(J.createElement(vC,{label:"Request Status",key:"Network-Request Status"},e.requestStatus)),e.responseStatus&&o.push(J.createElement(vC,{label:"Response Status Code",key:"Network-Response Status"},e.responseStatus)),o}(a));break;case"IPC":i.push(J.createElement(vC,{label:"Send Thread Latency",key:"IPC-Send Thread Latency"},HC(a.startTime,a.sendStartTime)),J.createElement(vC,{label:"IPC Send Duration",key:"IPC-IPC Send Duration"},HC(a.sendStartTime,a.sendEndTime)),J.createElement(vC,{label:"IPC Recv Latency",key:"IPC-IPC Recv Latency"},HC(a.sendEndTime,a.recvEndTime)),J.createElement(vC,{label:"Recv Thread Latency",key:"IPC-Recv Thread Latency"},HC(a.recvEndTime,a.endTime)));break;case"CompositorScreenshot":if(void 0!==a.url){const{width:e,height:t}=dr(a,350);i.push(J.createElement(vC,{label:"Image",key:"CompositorScreenshot-image"},J.createElement("img",{className:"tooltipScreenshotImg",src:n.stringTable.getString(a.url),style:{width:e,height:t}})),J.createElement(vC,{label:"Window Size",key:"CompositorScreenshot-window size"},J.createElement(J.Fragment,null,a.windowWidth,"px × ",a.windowHeight,"px")),J.createElement(vC,{label:"Description",key:"CompositorScreenshot-description"},"This marker spans the time between each composite of a window and shows the window contents during that time."),J.createElement(vC,{label:"Window ID",key:"CompositorScreenshot-window id"},a.windowID))}else"CompositorScreenshotWindowDestroyed"===e.name&&i.push(J.createElement(vC,{label:"Description",key:"CompositorScreenshot-description"},"This marker shows the moment a window has been destroyed."),J.createElement(vC,{label:"Window ID",key:"CompositorScreenshot-window id"},a.windowID))}}return i}_maybeRenderMarkerDuration(){const{marker:e}=this.props;if(null===e.end)return null;const t=e.incomplete?"unknown duration":tn(e.end-e.start,3,1);return J.createElement("div",{className:"tooltipTiming"},t)}_maybeRenderBacktrace(){const{marker:e,thread:t,implementationFilter:n,restrictHeightWidth:r,categories:o}=this.props,{data:a,start:i}=e;if(a&&"cause"in a&&a.cause){const{cause:s}=a,l=void 0!==s.time?i-s.time:0;return[J.createElement(yC,{key:"backtrace-separator"}),J.createElement(vC,{label:"Stack",key:"backtrace"},J.createElement("div",{className:"tooltipDetailsBackTrace"},l>0?J.createElement("h2",{className:"tooltipBackTraceTitle"},"Styles"===a.type||"Reflow"===e.name?`First invalidated ${tn(l)} before the flush, at:`:`Triggered ${tn(l)} ago, at:`):null,J.createElement(FC,{maxStacks:r?20:1/0,stackIndex:s.stack,thread:t,implementationFilter:n,categories:o})))]}return null}_maybeRenderNetworkPhases(){const{marker:{data:e},zeroAt:t}=this.props;return e&&"Network"===e.type?J.createElement(NC,{payload:e,zeroAt:t}):null}_renderTitle(){const{markerIndex:e,getMarkerLabel:t}=this.props;return t(e)}render(){const{className:e}=this.props;return J.createElement("div",{className:ug()("tooltipMarker",e)},J.createElement("div",{className:"tooltipHeader"},J.createElement("div",{className:"tooltipOneLine"},this._maybeRenderMarkerDuration(),J.createElement("div",{className:"tooltipTitle"},this._renderTitle()))),J.createElement(wC,null,this._renderMarkerDetails(),this._renderThreadDetails(),this._maybeRenderPageUrl(),this._maybeRenderBacktrace()),this._maybeRenderNetworkPhases())}}const jC=at({mapStateToProps:(e,t)=>{const n=_d(t.threadsKey);return{threadName:n.getFriendlyThreadName(e),thread:n.getThread(e),implementationFilter:wo(e),pages:Ai(e),innerWindowIDToPageMap:Gi(e),zeroAt:ii(e),threadIdToNameMap:Ts(e),processIdToNameMap:Ss(e),markerSchemaByName:Di(e),getMarkerLabel:n.getMarkerTooltipLabelGetter(e),categories:Mi(e)}},component:VC});var $C=n(2487),KC={};KC.styleTagTransform=M(),KC.setAttributes=B(),KC.insert=T().bind(null,"head"),KC.domAPI=k(),KC.insertStyleElement=N(),w()($C.A,KC),$C.A&&$C.A.locals&&$C.A.locals;class YC extends J.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,callNodeInfo:t}=this.props;if(null===e)return;const n=16*t.depthForNode(e);n<this.props.viewport.viewportTop?this.props.viewport.moveViewport(0,this.props.viewport.viewportTop-n):n+16>this.props.viewport.viewportBottom&&this.props.viewport.moveViewport(0,this.props.viewport.viewportBottom-(n+16))},this._drawCanvas=(e,t,n)=>{const{thread:r,rangeStart:o,rangeEnd:a,combinedTimingRows:i,stackFrameHeight:s,selectedCallNodeIndex:l,categories:c,callNodeInfo:d,getMarker:u,marginLeft:h,viewport:{containerWidth:p,containerHeight:m,viewportLeft:f,viewportRight:g,viewportTop:A,viewportBottom:b}}=this.props,{hoveredItem:C}=n,v=new Eu(e),{cssToDeviceScale:y,cssToUserScale:w}=t;if(y!==w)throw new Error("StackChartCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");e.font=10*y+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===y||(this._textMeasurement=new qb(e),this._textMeasurementCssToDeviceScale=y);const E=this._textMeasurement,k=p*y,x=m*y;v.set("#ffffff"),e.fillRect(0,0,k,x);const T=A*y,S=Math.floor(A/s),B=Math.ceil(b/s),I=g-f,_=a-o,N=_*I,P=p-h-In.OI,M=P*y,F=N/P,R=o+_*f-F*h,D=o+_*g+F*In.OI,L=e=>y*(h+(e-f)*P/I),O=16*y,U=1*y,z=3*y,G=11*y;let W=c.findIndex((e=>"JavaScript"===e.name));-1===W&&(W=0);const H=d.getNonInvertedCallNodeTable();for(let t=S;t<B;t++){const n=i[t];if(!n)continue;let a=0;for(let i=0;i<n.length;i++)if(n.end[i]>R&&n.start[i]<D){const s=(n.start[i]-o)/_,d=(n.end[i]-o)/_,h=L(s),p=(d-s)*M/I-1;let m=h,f=p,g=!0;if(h>=a?g=!1:h+p>a&&(f=p-(a-h),m=a,g=!1),g)continue;const A=Math.floor(m),b=Math.round(t*O-T),y=Math.ceil(Math.max(1,f)),w=Math.round(O-U);let k,x,S;if(n.callNode){const e=n.callNode[i],t=H.func[e],o=r.funcTable.name[t];k=r.stringTable.getString(o),x=c[H.category[e]],S=l===e}else{const e=n.index[i];k=u(e).data.name,x=c[W],S=l===e}const B=C&&t===C.depth&&i===C.stackTimingIndex,N=pC(x.color);v.set(B||S?N.selectedFillStyle:N.unselectedFillStyle),e.fillRect(A,b,y+.4,w),a=A+y+1;const P=Math.max(h,0)+z,F=Math.max(0,p-(P-h));if(F>E.minWidth){const t=E.getFittedText(k,F);t&&(v.set(B||S?N.selectedTextColor:"#000000"),e.fillText(t,P,b+G))}}}v.set(_b.wZ),e.fillRect(L(0),0,U,x),e.fillRect(L(1),0,U,x)},this._getHoveredStackInfo=({depth:e,stackTimingIndex:t})=>{const{thread:n,weightType:r,threadsKey:o,combinedTimingRows:a,categories:i,callNodeInfo:s,getMarker:l,shouldDisplayTooltips:c,interval:d,innerWindowIDToPageMap:u,displayStackType:h}=this.props;if(!c())return null;const p=a[e];if(!p)return null;if(p.index){const e=p.index[t];return J.createElement(jC,{markerIndex:e,marker:l(e),threadsKey:o,restrictHeightWidth:!0})}const m=p.callNode[t];if(void 0===m)return null;const f=p.end[t]-p.start[t];return J.createElement(CC,{thread:n,weightType:r,innerWindowIDToPageMap:u,interval:d,callNodeIndex:m,callNodeInfo:s,categories:i,callTreeSummaryStrategy:"timing",durationText:Xt(f),displayStackType:h})},this._onDoubleClickStack=e=>{if(null===e)return;const{depth:t,stackTimingIndex:n}=e,{combinedTimingRows:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:r[t].start[n],selectionEnd:r[t].end[n]})},this._onSelectItem=e=>{const t=this._getCallNodeIndexOrMarkerIndexFromHoveredItem(e);t||this.props.onSelectionChange(null),t&&"call-node"===t.type&&this.props.onSelectionChange(t.index)},this._onRightClick=e=>{const t=this._getCallNodeIndexOrMarkerIndexFromHoveredItem(e);t&&"call-node"===t.type&&this.props.onRightClick(t.index)},this._hitTest=(e,t)=>{const{rangeStart:n,rangeEnd:r,combinedTimingRows:o,marginLeft:a,viewport:{viewportLeft:i,viewportRight:s,viewportTop:l,containerWidth:c}}=this.props,d=n+(i+(s-i)*((e-a)/(c-a-In.OI)))*(r-n),u=Math.floor((t+l)/16),h=o[u];if(!h)return null;for(let e=0;e<h.length;e++){const t=h.start[e],n=h.end[e];if(t<d&&n>d)return{depth:u,stackTimingIndex:e}}return null},this.onMouseMove=e=>{const{changeMouseTimePosition:t,rangeStart:n,rangeEnd:r,marginLeft:o,viewport:{viewportLeft:a,viewportRight:i,containerWidth:s}}=this.props,l=s-o-In.OI,c=r-n,d=a+(i-a)*((e.nativeEvent.offsetX-o)/l);t(d<0||d>1?null:n+d*c)},this.onMouseLeave=()=>{this.props.changeMouseTimePosition(null)}}componentDidUpdate(e){this.props.viewport.isSizeSet&&(!e.viewport.isSizeSet||this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration)&&this._scrollSelectionIntoView()}_getCallNodeIndexOrMarkerIndexFromHoveredItem(e){if(null===e)return null;const{depth:t,stackTimingIndex:n}=e,{combinedTimingRows:r}=this.props;return r[t].callNode?{index:r[t].callNode[n],type:"call-node"}:{index:r[t].index[n],type:"marker"}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return J.createElement(Kb,{scaleCtxToCssPixels:!1,className:"stackChartCanvas",containerWidth:e,containerHeight:t,isDragging:n,onDoubleClickItem:this._onDoubleClickStack,getHoveredItemInfo:this._getHoveredStackInfo,drawCanvas:this._drawCanvas,hitTest:this._hitTest,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,onSelectItem:this._onSelectItem,onRightClick:this._onRightClick})}}const qC=Lb(YC);class ZC extends J.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":_n.TN`
|
116
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
117
|
+
to view samples.
|
118
|
+
`,J.createElement(sA,{threadName:n,reason:r,viewName:"stack chart"})}}const XC=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e),thread:Pd.getThread(e),rangeFilteredThread:Pd.getRangeFilteredThread(e)}),component:ZC});var JC=n(7559),QC={};QC.styleTagTransform=M(),QC.setAttributes=B(),QC.insert=T().bind(null,"head"),QC.domAPI=k(),QC.insertStyleElement=N(),w()(JC.A,QC),JC.A&&JC.A.locals&&JC.A.locals;class ev extends J.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._shouldDisplayTooltips=()=>null===this.props.rightClickedCallNodeIndex,this._takeViewportRef=e=>{this._viewport=e},this._focusViewport=()=>{this._viewport&&this._viewport.focus()},this._handleKeyDown=e=>{const{threadsKey:t,thread:n,callNodeInfo:r,selectedCallNodeIndex:o,rightClickedCallNodeIndex:a,handleCallNodeTransformShortcut:i,updateBottomBoxContentsAndMaybeOpen:s}=this.props,l=null!==a?a:o;null!==l&&("Enter"!==e.key?i(e,t,l):s("stack-chart",(0,bn.ae)(l,r,n)))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:t,selectedCallNodeIndex:n,thread:r}=this.props;if(null!==n){const o=t.funcForNode(n),a=r.stringTable.getString(r.funcTable.name[o]);e.clipboardData.setData("text/plain",a)}}}}getMaximumZoom(){const{timeRange:{start:e,end:t},interval:n,thread:r}=this.props;return(r.jsTracer?In.cs:n)/(t-e)}componentDidMount(){document.addEventListener("copy",this._onCopy,!1),this._focusViewport()}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1)}render(){const{thread:e,threadsKey:t,combinedTimingRows:n,timeRange:r,interval:o,previewSelection:a,updatePreviewSelection:i,changeMouseTimePosition:s,callNodeInfo:l,categories:c,selectedCallNodeIndex:d,scrollToSelectionGeneration:u,innerWindowIDToPageMap:h,getMarker:p,userTimings:m,weightType:f,timelineMarginLeft:g,displayStackType:A,hasFilteredCtssSamples:b}=this.props,C=16*n.length;return J.createElement("div",{className:"stackChart",id:"stack-chart-tab",role:"tabpanel","aria-labelledby":"stack-chart-tab-button"},J.createElement(RA,{hideInvertCallstack:!0}),J.createElement(hb,null),b||0!==m.length?J.createElement(Zg,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement("div",{className:"stackChartContent",onKeyDown:this._handleKeyDown},J.createElement(qC,{viewportProps:{previewSelection:a,timeRange:r,maxViewportHeight:C,viewportNeedsUpdate:nv,marginLeft:g,marginRight:In.OI,maximumZoom:this.getMaximumZoom(),containerRef:this._takeViewportRef},chartProps:{interval:o,thread:e,weightType:f,innerWindowIDToPageMap:h,threadsKey:t,combinedTimingRows:n,getMarker:p,updatePreviewSelection:i,changeMouseTimePosition:s,rangeStart:r.start,rangeEnd:r.end,stackFrameHeight:16,callNodeInfo:l,categories:c,selectedCallNodeIndex:d,onSelectionChange:this._onSelectedCallNodeChange,onRightClick:this._onRightClickedCallNodeChange,shouldDisplayTooltips:this._shouldDisplayTooltips,scrollToSelectionGeneration:u,marginLeft:g,displayStackType:A}}))):J.createElement(XC,null))}}const tv=at({mapStateToProps:e=>{const t=ko(e)?Pd.getCombinedTimingRows(e):Pd.getStackTimingByDepth(e);return{thread:Pd.getFilteredThread(e),weightType:Pd.getSamplesWeightType(e),combinedTimingRows:t,timeRange:li(e),interval:gi(e),previewSelection:hi(e),threadsKey:zo(e),callNodeInfo:Pd.getCallNodeInfo(e),categories:Mi(e),selectedCallNodeIndex:Pd.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Pd.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:oi(e),innerWindowIDToPageMap:Gi(e),getMarker:Pd.getMarkerGetter(e),userTimings:Pd.getUserTimingMarkerIndexes(e),timelineMarginLeft:hl(e),displayStackType:Ns(e),hasFilteredCtssSamples:Pd.getHasFilteredCtssSamples(e)}},mapDispatchToProps:{changeSelectedCallNode:th,changeRightClickedCallNode:nh,updatePreviewSelection:Vh,handleCallNodeTransformShortcut:ap,updateBottomBoxContentsAndMaybeOpen:tp,changeMouseTimePosition:Qh},component:ev});function nv(e,t){return e.combinedTimingRows!==t.combinedTimingRows}const rv="#2c77d1";class ov extends J.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this.drawCanvas=(e,t,n)=>{const{rowHeight:r,markerTimingAndBuckets:o,rightClickedMarkerIndex:a,timelineTrackOrganization:i,viewport:{viewportTop:s,viewportBottom:l,containerWidth:c,containerHeight:d}}=this.props;let u=null,h=null,p=null,m=null;const{hoveredItem:f,prevHoveredItem:g,isHoveredOnlyDifferent:A}=n;f&&(u=f.markerIndex,h=f.rowIndexOfLabel),g&&(p=g.markerIndex,m=g.rowIndexOfLabel);const{cssToUserScale:b}=t;if(1!==b)throw new Error("StackChartCanvasImpl sets scaleCtxToCssPixels={true}, so canvas user space units should be equal to CSS pixels.");const C=Math.floor(s/r),v=Math.min(Math.ceil(l/r),o.length),y=this._getMarkerIndexToTimingRow(o),w=null===a?void 0:y[a];let E=null===u?void 0:y[u];if("active-tab"===i.type&&void 0===E&&null!==h&&(E=h),e.lineWidth=1,A){let t=null===p?void 0:y[p];"active-tab"===i.type&&void 0===t&&null!==m&&(t=m),void 0!==E&&(this.clearRow(e,E),this.highlightRow(e,E),this.drawMarkers(e,u,E,E+1),null===h&&this.drawSeparatorsAndLabels(e,E,E+1,!0)),void 0!==t&&t!==E&&(t!==w&&this.clearRow(e,t),this.drawMarkers(e,u,t,t+1),this.drawSeparatorsAndLabels(e,t,t+1))}else e.fillStyle="#ffffff",e.fillRect(0,0,c,d),void 0!==w?this.highlightRow(e,w):void 0!==E&&this.highlightRow(e,E),this.drawMarkers(e,u,C,v),this.drawSeparatorsAndLabels(e,C,v)},this.highlightRow=(e,t)=>{const{rowHeight:n,viewport:{viewportTop:r,containerWidth:o}}=this.props;e.fillStyle="rgba(40, 122, 169, 0.2)",e.fillRect(0,t*n-r,o,n-1)},this._getMarkerIndexToTimingRow=Lt()((e=>{const t=new Uint32Array(this.props.markerListLength);for(let n=0;n<e.length;n++){const r=e[n];if("string"!=typeof r)for(let e=0;e<r.length;e++)t[r.index[e]]=n}return t}),{cache:new WeakMap}),this.hitTest=(e,t)=>{const{rangeStart:n,rangeEnd:r,markerTimingAndBuckets:o,rowHeight:a,marginLeft:i,marginRight:s,timelineTrackOrganization:l,viewport:{viewportLeft:c,viewportRight:d,viewportTop:u,containerWidth:h}}=this.props,p=.25*a;if(e<i-p)return null;let m=null,f=null;const g=h-i-s,A=r-n,b=d-c,C=p/g*b*A,v=n+(c+b*((e-i)/g))*A,y=Math.floor((t+u)/a),w=o[y];if(!w||"string"==typeof w||!w.length)return null;const E=e=>w.start[e]<v+C&&w.end[e]>v-C,k=(0,Rc.lV)(w.start,v);if(k>0&&k<w.length){const e=k-1,t=w.start[k]-v,n=v-w.end[e]<t?e:k;E(n)&&(m=w.index[n])}else 0===k?E(k)&&(m=w.index[k]):E(k-1)&&(m=w.index[k-1]);return"active-tab"===l.type&&o[y-1].name!==w.name&&this._textMeasurement&&e<this._textMeasurement.getTextWidth(w.name)+10&&(f=y),null===m&&null===f?null:{markerIndex:m,rowIndexOfLabel:f}},this.onMouseMove=e=>{const{changeMouseTimePosition:t,rangeStart:n,rangeEnd:r,marginLeft:o,marginRight:a,viewport:{viewportLeft:i,viewportRight:s,containerWidth:l}}=this.props,c=l-o-a,d=i+(s-i)*((e.nativeEvent.offsetX-o)/c);t(d<0||d>1?null:n+d*(r-n))},this.onMouseLeave=()=>{this.props.changeMouseTimePosition(null)},this.onDoubleClickMarker=e=>{const t=null===e?null:e.markerIndex;if(null===t)return;const{getMarker:n,updatePreviewSelection:r,rangeStart:o,rangeEnd:a}=this.props,i=n(t),{start:s,end:l}=ku(o,a,i);r({hasSelection:!0,isModifying:!1,selectionStart:s,selectionEnd:l})},this.onSelectItem=e=>{const t=null===e?null:e.markerIndex,{changeSelectedMarker:n,threadsKey:r}=this.props;n(r,t,{source:"pointer"})},this.onRightClickMarker=e=>{const t=null===e?null:e.markerIndex,{changeRightClickedMarker:n,threadsKey:r}=this.props;n(r,t)},this.getHoveredMarkerInfo=({markerIndex:e})=>{if(!this.props.shouldDisplayTooltips()||null===e)return null;const t=this.props.getMarker(e);return J.createElement(jC,{markerIndex:e,marker:t,threadsKey:this.props.threadsKey,restrictHeightWidth:!0})}}drawOneMarker(e,t,n,r,o,a,i,s=!1){a?this.drawOneInstantMarker(e,t,n,o,s):this.drawOneIntervalMarker(e,t,n,r,o,i,s)}drawOneIntervalMarker(e,t,n,r,o,a,i){const{marginLeft:s,getMarkerLabel:l}=this.props;if(r<=2)e.fillStyle=i?_b.AW:rv,r=Math.max(r,1),e.fillRect(t,n+1,r,o-2);else{const c=this._getTextMeasurement(e);e.fillStyle=i?_b.Qr:"#8ac4ff",e.strokeStyle=i?_b.AW:rv,e.beginPath(),e.rect(t+.5,n+1+.5,r-1,o-2-1),e.fill(),e.stroke();const d=t<s?s+3:t+3,u=(t<s?r-s+t:r)-6;if(u>c.minWidth){const t=c.getFittedText(l(a),u);t&&(e.fillStyle=i?"white":"black",e.fillText(t,d,n+11))}}}drawOneInstantMarker(e,t,n,r,o){e.fillStyle=o?_b.Qr:"#8ac4ff",e.strokeStyle=o?_b.AW:rv,e.beginPath(),e.moveTo(t-r/4,n+r/2),e.lineTo(t,n+1.5),e.lineTo(t+r/4,n+r/2),e.lineTo(t,n+r-1.5),e.closePath(),e.fill(),e.stroke()}drawMarkers(e,t,n,r){const{rangeStart:o,rangeEnd:a,markerTimingAndBuckets:i,rowHeight:s,marginLeft:l,marginRight:c,rightClickedMarkerIndex:d,selectedMarkerIndex:u,viewport:{containerWidth:h,containerHeight:p,viewportLeft:m,viewportRight:f,viewportTop:g}}=this.props,{devicePixelRatio:A}=window,b=h-l-c,C=a-o,v=f-m,y=o+C*m,w=o+C*f+c*(v*C/b),E=[];e.save(),e.beginPath(),e.rect(l,0,b,p),e.clip();for(let a=n;a<r;a++){const n=i[a];if(!n||"string"==typeof n)continue;let r=null;for(let i=0;i<n.length;i++){const c=n.start[i],h=n.end[i],p=c===h;if(h>=y&&c<w){const f=(c-o)/C;let y=(f-m)*b/v+l;const w=a*s-g;let k=((h-o)/C-f)*b/v;const x=s-1;y=Math.round(y*A)/A,k=Math.round(k*A)/A;const T=n.index[i];d===T||t===T||u===T?E.push({x:y,y:w,w:k,h:x,isInstantMarker:p,markerIndex:T}):(k>1||y!==r)&&(r=y,this.drawOneMarker(e,y,w,k,x,p,T))}}}E.forEach((t=>{this.drawOneMarker(e,t.x,t.y,t.w,t.h,t.isInstantMarker,t.markerIndex,!0)})),e.restore()}clearRow(e,t){const{rowHeight:n,viewport:{viewportTop:r,containerWidth:o}}=this.props;e.fillStyle="#fff",e.fillRect(0,t*n-r,o,n-1)}_getTextMeasurement(e){return this._textMeasurement||(this._textMeasurement=new qb(e)),this._textMeasurement}countMarkersInBucketStartingAtRow(e){const{rangeStart:t,rangeEnd:n,markerTimingAndBuckets:r,marginLeft:o,marginRight:a,viewport:{containerWidth:i,viewportLeft:s,viewportRight:l}}=this.props,c=n-t,d=t+c*s,u=t+c*l+a*((l-s)*c/(i-o-a)),h=r[e];if("string"==typeof h)return 0;const{name:p}=h;function m(e){let t=0;for(let n=0;n<e.length;n++)e.end[n]>=d&&e.start[n]<u&&++t;return t}let f=m(h);for(let t=e+1;t<r.length;++t){const e=r[t];if("string"==typeof e||e.name!==p)break;f+=m(e)}return f}drawSeparatorsAndLabels(e,t,n,r=!1){const{markerTimingAndBuckets:o,rowHeight:a,marginLeft:i,marginRight:s,timelineTrackOrganization:l,viewport:{viewportTop:c,containerWidth:d,containerHeight:u}}=this.props,h=d-s;e.fillStyle=_b.LT,"active-tab"!==l.type&&e.fillRect(i-1,0,1,u);for(let r=t;r<n;r++){const t=(r+1)*a-c-1;e.fillRect(0,t,h,1)}const p=this._getTextMeasurement(e);e.fillStyle="#000000";for(let i=t;i<n;i++){const t=o[i];if("string"==typeof t)continue;const{name:n}=t;if(i>0&&n===o[i-1].name)continue;const s=i*a-c,d=r?` (${this.countMarkersInBucketStartingAtRow(i)})`:"",u=p.getFittedText(n,In.RD-5-(d?p.getTextWidth(d):0))+d;if("active-tab"===l.type){e.fillStyle="#ffffffbf";const t=p.getTextWidth(u);e.fillRect(0,s,t+10,a),e.fillStyle="#000000"}e.fillText(u,5,s+11)}for(let r=t;r<n;r++){const t=o[r];if("string"!=typeof t)continue;const n=r*a-c;e.fillStyle=_b.LT,e.fillRect(0,n-1,h,a),e.fillStyle=_b.wZ,e.fillRect(0,n-1,h,1),e.fillRect(0,n+a-1,h,1),e.fillStyle="#000000",e.fillText(t,5+i,n+11)}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return J.createElement(Kb,{className:"markerChartCanvas",containerWidth:e,containerHeight:t,isDragging:n,scaleCtxToCssPixels:!0,onSelectItem:this.onSelectItem,onDoubleClickItem:this.onDoubleClickMarker,onRightClick:this.onRightClickMarker,getHoveredItemInfo:this.getHoveredMarkerInfo,drawCanvas:this.drawCanvas,hitTest:this.hitTest,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,stickyTooltips:!0})}}const av=Lb(ov);class iv extends J.PureComponent{render(){const{isMarkerChartEmptyInFullRange:e,threadName:t}=this.props;return J.createElement(sA,{threadName:t,reason:e?"This thread contains no markers for this chart.":"All markers were filtered out by the current selection or search term.",viewName:"marker chart"})}}const sv=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e),isMarkerChartEmptyInFullRange:Pd.getAreMarkerPanelsEmptyInFullRange(e)}),component:iv});var lv=n(4753),cv={};cv.styleTagTransform=M(),cv.setAttributes=B(),cv.insert=T().bind(null,"head"),cv.domAPI=k(),cv.insertStyleElement=N(),w()(lv.A,cv),lv.A&&lv.A.locals&&lv.A.locals;class dv extends J.PureComponent{constructor(...e){super(...e),this._viewport=null,this._shouldDisplayTooltips=()=>null===this.props.rightClickedMarkerIndex,this._takeViewportRef=e=>{this._viewport=e},this._focusViewport=()=>{this._viewport&&this._viewport.focus()}}getMaximumZoom(){const{timeRange:{start:e,end:t}}=this.props;return 1e-6/(t-e)}componentDidMount(){this._focusViewport()}render(){const{maxMarkerRows:e,markerListLength:t,timeRange:n,threadsKey:r,markerTimingAndBuckets:o,getMarker:a,getMarkerLabel:i,previewSelection:s,updatePreviewSelection:l,changeMouseTimePosition:c,changeRightClickedMarker:d,rightClickedMarkerIndex:u,selectedMarkerIndex:h,changeSelectedMarker:p,timelineMarginLeft:m,timelineTrackOrganization:f}=this.props,g=16*e;return J.createElement("div",{className:"markerChart",id:"marker-chart-tab",role:"tabpanel","aria-labelledby":"marker-chart-tab-button"},J.createElement(kb,null),0===e?J.createElement(sv,null):J.createElement(Zg,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(av,{key:r,viewportProps:{timeRange:n,previewSelection:s,maxViewportHeight:g,viewportNeedsUpdate:uv,maximumZoom:this.getMaximumZoom(),marginLeft:m,marginRight:In.OI,containerRef:this._takeViewportRef},chartProps:{markerTimingAndBuckets:o,getMarker:a,getMarkerLabel:i,markerListLength:t,updatePreviewSelection:l,changeMouseTimePosition:c,changeRightClickedMarker:d,rangeStart:n.start,rangeEnd:n.end,rowHeight:16,threadsKey:r,marginLeft:m,marginRight:In.OI,changeSelectedMarker:p,selectedMarkerIndex:h,rightClickedMarkerIndex:u,shouldDisplayTooltips:this._shouldDisplayTooltips,timelineTrackOrganization:f}})))}}function uv(e,t){return e.markerTimingAndBuckets!==t.markerTimingAndBuckets}const hv=at({mapStateToProps:e=>{const t=Pd.getMarkerChartTimingAndBuckets(e);return{getMarker:Pd.getMarkerGetter(e),getMarkerLabel:Pd.getMarkerChartLabelGetter(e),markerTimingAndBuckets:t,maxMarkerRows:t.length,markerListLength:Pd.getMarkerListLength(e),timeRange:li(e),threadsKey:zo(e),previewSelection:hi(e),rightClickedMarkerIndex:Pd.getRightClickedMarkerIndex(e),selectedMarkerIndex:Pd.getSelectedMarkerIndex(e),timelineMarginLeft:hl(e),timelineTrackOrganization:No(e)}},mapDispatchToProps:{updatePreviewSelection:Vh,changeMouseTimePosition:Qh,changeRightClickedMarker:Dh,changeSelectedMarker:Mh},component:dv});var pv=n(226),mv={};mv.styleTagTransform=M(),mv.setAttributes=B(),mv.insert=T().bind(null,"head"),mv.domAPI=k(),mv.insertStyleElement=N(),w()(pv.A,mv),pv.A&&pv.A.locals&&pv.A.locals;class fv extends J.PureComponent{constructor(...e){super(...e),this._onSearch=e=>{this.props.changeNetworkSearchString(e)}}render(){const{searchString:e}=this.props;return J.createElement("div",{className:"networkSettings"},J.createElement("div",{className:"networkSettingsSpacer"}),J.createElement(de,{id:"NetworkSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(EA,{className:"networkSettingsSearchField",label:"Filter Networks:",title:"Only display network requests that match a certain name",currentSearchString:e,onSearch:this._onSearch})))}}const gv=at({mapStateToProps:e=>({searchString:Ro(e)}),mapDispatchToProps:{changeNetworkSearchString:Oh},component:fv});function Av(e){return class extends J.PureComponent{constructor(...e){super(...e),this.state={width:0,height:0},this._container=void 0,this._resizeListener=e=>{const t=this._container;t&&this._updateSize(t,e)}}componentDidMount(){const e=(0,Eg.findDOMNode)(this);if(!e)throw new Error("Unable to find the DOMNode");this._container=e,bg().subscribe(e,this._resizeListener)}componentWillUnmount(){const e=this._container;e&&bg().unsubscribe(e,this._resizeListener),this._container=null}_updateSize(e,t){this.setState({width:t.width,height:t.height})}render(){return J.createElement(e,{...this.props,...this.state})}}}class bv extends J.PureComponent{render(){const{threadName:e}=this.props;return J.createElement(sA,{threadName:e,reason:_n.TN`
|
119
|
+
All network requests were filtered out by the current selection or search
|
120
|
+
term. Try changing the search term, or zooming out.
|
121
|
+
`,viewName:"network chart"})}}const Cv=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e)}),component:bv}),vv=/(.*)(\/[^/]+\/?)$/,yv=["domainLookupStart","requestStart","responseStart","responseEnd"],wv=yv.reduce(((e,t,n,{length:r})=>(e[t]=r>1?n/(r-1):0,e)),{});function Ev({name:e,previousName:t,value:n,duration:r,style:o}){return J.createElement("div",{className:"networkChartRowItemBarPhase",key:e,"data-name":e,"data-value":n,style:o,"aria-label":`${t} to ${e}: ${Gt(r)} milliseconds`})}class kv extends J.PureComponent{_timeToCssPixels(e){const{timeRange:t,width:n}=this.props,r=t.end-t.start,o=n-In.RD-In.OI;return(e-t.start)/r*o+In.RD}_getLatestPreconnectEndProperty(){const{networkPayload:e}=this.props;return"number"==typeof e.connectEnd?"connectEnd":"number"==typeof e.domainLookupEnd?"domainLookupEnd":null}_preconnectComponent(){const{networkPayload:e,marker:t}=this.props,n=e.domainLookupStart;if("number"!=typeof n)return null;const r=this._getLatestPreconnectEndProperty();if(!r)return null;const o=+e[r];if(!(o<t.start))return null;const a=o-n,i=this._timeToCssPixels(n),s=this._timeToCssPixels(o)-i,l={name:r,previousName:"domainLookupStart",value:o,duration:a,style:{left:0,width:"100%",opacity:wv.requestStart}};return J.createElement("div",{className:"networkChartRowItemBar",style:{width:s,left:i}},Ev(l))}render(){const{marker:e,networkPayload:t}=this.props,n=e.start,r=(0,ut.Nn)(e.end,"Network markers are assumed to have an end time."),o=r-e.start,a=this._timeToCssPixels(n);let i=this._timeToCssPixels(r)-a;i<1&&(i=2.5);const s=this._preconnectComponent(),l=(s?yv.slice(1):yv).filter((e=>"number"==typeof t[e])),c=[];let d=n,u="startTime";return l.forEach(((e,r)=>{const a=+t[e];c.push({name:e,previousName:u,value:a,duration:a-d,style:{left:(d-n)/o*i,width:Math.max((a-d)/o*i,1),opacity:0===r?0:wv[e]}}),d=a,u=e})),c.push({name:"endTime",previousName:u,value:n+o,duration:n+o-d,style:{left:(d-n)/o*i,width:(n+o-d)/o*i,opacity:c.length?0:1}}),J.createElement(J.Fragment,null,s,J.createElement("div",{className:"networkChartRowItemBar",style:{width:i,left:a}},c.map((e=>J.createElement(Ev,{key:e.name,...e})))))}}class xv extends J.PureComponent{constructor(...e){super(...e),this.state={pageX:0,pageY:0,hovered:!1},this._hoverIn=e=>{const t=e.pageX,n=e.pageY;this.setState({pageX:t,pageY:n,hovered:!0}),this.props.onHover&&this.props.onHover(this.props.markerIndex)},this._hoverOut=()=>{window.persistTooltips||this.setState({hovered:!1})},this._onMouseDown=e=>{const{markerIndex:t,onLeftClick:n,onRightClick:r}=this.props;0===e.button?n&&n(t):2===e.button&&r&&r(t)}}_findIndexOfLoadid(e){const t=e.search(/[:]/g);return-1===t?null:t}_cropNameToUrl(e){return e.slice(this._findIndexOfLoadid(e)+2)}_extractURI(e){try{return new URL(this._cropNameToUrl(e))}catch(e){return null}}_splitsURI(e){const t=this._extractURI(e);if(null!==t){let e=t.pathname,n="";const r=vv.exec(t.pathname);return r&&([,n,e]=r),J.createElement(J.Fragment,null,J.createElement("span",{className:"networkChartRowItemUriOptional"},t.protocol+"//"),J.createElement("span",{className:"networkChartRowItemUriRequired"},t.host),n?J.createElement("span",{className:"networkChartRowItemUriOptional"},n):null,e?J.createElement("span",{className:"networkChartRowItemUriRequired"},e):null,t.search?J.createElement("span",{className:"networkChartRowItemUriOptional"},t.search):null,t.hash?J.createElement("span",{className:"networkChartRowItemUriOptional"},t.hash):null)}return e}_getClassNameTypeForMarker(){const{networkPayload:e}=this.props;return nr(void 0===e.contentType||null===e.contentType?tr(e):e.contentType)}render(){const{index:e,markerIndex:t,marker:n,networkPayload:r,width:o,timeRange:a,isRightClicked:i,shouldDisplayTooltips:s,isSelected:l,isHoveredFromState:c}=this.props;if(null===r)return null;const d=ug()("networkChartRowItem",this._getClassNameTypeForMarker(),{odd:e%2==1,isRightClicked:i,isSelected:l,isHovered:c});return J.createElement("div",{className:d,onMouseEnter:this._hoverIn,onMouseLeave:this._hoverOut,onMouseDown:this._onMouseDown,"aria-selected":l,"aria-label":n.name,role:"option",id:`networkChartRowItem-${t}`},J.createElement("div",{className:"networkChartRowItemLabel"},this._splitsURI(n.name)),J.createElement(kv,{marker:n,networkPayload:r,width:o,timeRange:a}),s()&&this.state.hovered?J.createElement(Vb,{mouseX:this.state.pageX,mouseY:this.state.pageY+5},J.createElement(jC,{className:"tooltipNetwork",markerIndex:t,marker:n,threadsKey:this.props.threadsKey,restrictHeightWidth:!0})):null)}}var Tv=n(6169),Sv={};Sv.styleTagTransform=M(),Sv.setAttributes=B(),Sv.insert=T().bind(null,"head"),Sv.domAPI=k(),Sv.insertStyleElement=N(),w()(Tv.A,Sv),Tv.A&&Tv.A.locals&&Tv.A.locals;class Bv extends J.PureComponent{constructor(...e){super(...e),this._virtualListRef=J.createRef(),this._memoizedGetSpecialItems=Lt()(((e,t,n)=>{const r=[void 0,void 0,void 0];return null!==e&&(r[0]=e),null!==t&&(r[1]=t),null!==n&&(r[2]=n),r}),{limit:1}),this._getSpecialItems=()=>{const{selectedNetworkMarkerIndex:e,rightClickedMarkerIndex:t,hoveredMarkerIndexFromState:n}=this.props;return this._memoizedGetSpecialItems(e,t,n)},this._onCopy=e=>{},this._onKeyDown=e=>{const t=e.ctrlKey||e.altKey,n=e.key.startsWith("Arrow")||e.key.startsWith("Page")||"Home"===e.key||"End"===e.key,r="*"===e.key,o="Enter"===e.key;if(t||!n&&!r&&!o)return;e.stopPropagation(),e.preventDefault();const a=this.props.selectedNetworkMarkerIndex,i=this.props.markerIndexes,s=i.findIndex((e=>e===a));if(null!==a&&-1!==s){if(n)switch(e.key){case"ArrowUp":if(e.metaKey){this._selectWithKeyboard(i[0]);break}s>0&&this._selectWithKeyboard(i[s-1]);break;case"ArrowDown":if(e.metaKey){this._selectWithKeyboard(i[i.length-1]);break}s<i.length-1&&this._selectWithKeyboard(i[s+1]);break;case"PageUp":if(s>0){const e=Math.max(0,s-16);this._selectWithKeyboard(i[e])}break;case"PageDown":if(s<i.length-1){const e=Math.min(i.length-1,s+16);this._selectWithKeyboard(i[e])}break;case"Home":this._selectWithKeyboard(i[0]);break;case"End":this._selectWithKeyboard(i[i.length-1]);break;default:throw new Error("Unhandled navigation key.")}}else this._selectWithKeyboard(i[0])},this._onRightClick=e=>{const{threadsKey:t,changeRightClickedMarker:n}=this.props;n(t,e)},this._onLeftClick=e=>{this._onSelectionChange(e,{source:"pointer"})},this._onSelectionChange=(e,t)=>{const{threadsKey:n,changeSelectedNetworkMarker:r}=this.props;r(n,e,t)},this._onRowHovered=e=>{const{threadsKey:t,changeHoveredMarker:n}=this.props;n(t,e)},this._onMouseLeaveRenderedList=()=>{const{threadsKey:e,changeHoveredMarker:t}=this.props;t(e,null)},this._shouldDisplayTooltips=()=>null===this.props.rightClickedMarkerIndex,this._renderRow=(e,t)=>{const{threadsKey:n,getMarker:r,rightClickedMarkerIndex:o,selectedNetworkMarkerIndex:a,hoveredMarkerIndexFromState:i,timeRange:s,width:l}=this.props,c=r(e),d=function(e){return e.data&&"Network"===e.data.type?e.data:null}(c);if(null===d)throw new Error(_n.TN`
|
122
|
+
The NetworkChart is supposed to only receive Network markers, but some other
|
123
|
+
kind of marker payload was passed in.
|
124
|
+
`);return J.createElement(xv,{index:t,marker:c,markerIndex:e,networkPayload:d,threadsKey:n,timeRange:s,width:l,shouldDisplayTooltips:this._shouldDisplayTooltips,isRightClicked:o===e,isHoveredFromState:i===e,onRightClick:this._onRightClick,isSelected:a===e,onLeftClick:this._onLeftClick,onHover:this._onRowHovered})}}componentDidMount(){this.focus(),this.scrollSelectionIntoView()}componentDidUpdate(e){this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this.scrollSelectionIntoView()}focus(){this._virtualListRef.current&&this._virtualListRef.current.focus()}scrollSelectionIntoView(){const{selectedNetworkMarkerIndex:e,markerIndexes:t}=this.props,n=this._virtualListRef.current;if(n&&null!==e){const r=t.findIndex((t=>t===e));n.scrollItemIntoView(r,0)}}_selectWithKeyboard(e){this._onSelectionChange(e,{source:"keyboard"})}render(){const{selectedNetworkMarkerIndex:e,markerIndexes:t,width:n,timeRange:r,disableOverscan:o}=this.props,a=`${r.start}-${r.end}-${n}`;return J.createElement("div",{className:"networkChart",id:"network-chart-tab",role:"tabpanel","aria-labelledby":"network-chart-tab-button"},J.createElement(gv,null),0===t.length?J.createElement(Cv,null):J.createElement(Zg,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(wg,{className:"treeViewBody",ariaRole:"listbox",ariaLabel:"List of all network markers",ariaActiveDescendant:null!==e?`networkChartRowItem-${e}`:null,items:t,renderItem:this._renderRow,itemHeight:16,columnCount:1,focusable:!0,specialItems:this._getSpecialItems(),containerWidth:n,forceRender:a,disableOverscan:o,onCopy:this._onCopy,onKeyDown:this._onKeyDown,ref:this._virtualListRef,onMouseLeaveRenderedList:this._onMouseLeaveRenderedList})))}}const Iv=Av(at({mapStateToProps:e=>({markerIndexes:Pd.getSearchFilteredNetworkMarkerIndexes(e),scrollToSelectionGeneration:oi(e),getMarker:Pd.getMarkerGetter(e),selectedNetworkMarkerIndex:Pd.getSelectedNetworkMarkerIndex(e),rightClickedMarkerIndex:Pd.getRightClickedMarkerIndex(e),hoveredMarkerIndexFromState:Pd.getHoveredMarkerIndex(e),timeRange:pi(e),disableOverscan:hi(e).isModifying,threadsKey:zo(e)}),mapDispatchToProps:{changeSelectedNetworkMarker:Fh,changeRightClickedMarker:Dh,changeHoveredMarker:Rh},component:Bv}));class _v extends J.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":_n.TN`
|
125
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
126
|
+
to view samples.
|
127
|
+
`,J.createElement(sA,{threadName:n,reason:r,viewName:"flame graph"})}}const Nv=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e),thread:Pd.getThread(e),rangeFilteredThread:Pd.getRangeFilteredThread(e)}),component:_v});var Pv=n(0),Mv={};Mv.styleTagTransform=M(),Mv.setAttributes=B(),Mv.insert=T().bind(null,"head"),Mv.domAPI=k(),Mv.insertStyleElement=N(),w()(Pv.A,Mv),Pv.A&&Pv.A.locals&&Pv.A.locals;const Fv=16;function Rv(e){return Math.floor(e+.5)}function Dv(e,t){return Rv(e/t)*t}class Lv extends J.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,maxStackDepthPlusOne:t,callNodeInfo:n}=this.props;if(null===e)return;const r=(t-n.getNonInvertedCallNodeTable().depth[e]-1)*Fv;r<this.props.viewport.viewportTop?this.props.viewport.moveViewport(0,this.props.viewport.viewportTop-r):r+Fv>this.props.viewport.viewportBottom&&this.props.viewport.moveViewport(0,this.props.viewport.viewportBottom-(r+Fv))},this._drawCanvas=(e,t,n)=>{const{thread:r,flameGraphTiming:o,callNodeInfo:a,stackFrameHeight:i,maxStackDepthPlusOne:s,rightClickedCallNodeIndex:l,selectedCallNodeIndex:c,categories:d,viewport:{containerWidth:u,containerHeight:h,viewportTop:p,viewportBottom:m}}=this.props,{hoveredItem:f}=n,{cssToDeviceScale:g,cssToUserScale:A}=t;if(g!==A)throw new Error("FlameGraphCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");const b=u*g,C=h*g;e.font=10*g+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===g||(this._textMeasurement=new qb(e),this._textMeasurementCssToDeviceScale=g);const v=this._textMeasurement,y=new Eu(e),w=Math.round(3*g);y.set("#ffffff"),e.fillRect(0,0,b,C);const E=a.getNonInvertedCallNodeTable(),k=Math.floor(s-m/i),x=Math.ceil(s-p/i);for(let t=k;t<x;t++){const n=o[t];if(!n)continue;const a=(s-t)*Fv-p,i=Rv(((s-t-1)*Fv-p)*g),u=Rv(a*g)-1-i,h=i+Rv(11*g);for(let o=0;o<n.length;o++){const a=n.start[o],s=n.end[o]*b,p=Dv(a*b,2),m=Dv(s,2)-.8,g=m-p;if(g<=0)continue;const A=n.callNode[o],C=c===A,k=l===A,x=f&&t===f.depth&&o===f.flameGraphTimingIndex,T=C||k||x,S=pC(d[E.category[A]].color),B=T?S.selectedFillStyle:S.unselectedFillStyle;y.set(B),e.fillRect(p,i,g,u);const I=p+w,_=m-I;if(_>v.minWidth){const t=E.func[A],n=r.stringTable.getString(r.funcTable.name[t]),o=v.getFittedText(n,_);if(o){const t=T?S.selectedTextColor:"#000";y.set(t),e.fillText(o,I,h)}}}}},this._getTimingsForCallNodeIndex=Lt()(bn.rs,{cache:new(Qc())}),this._getHoveredStackInfo=({depth:e,flameGraphTimingIndex:t})=>{const{thread:n,unfilteredThread:r,ctssSampleIndexOffset:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,shouldDisplayTooltips:l,categories:c,interval:d,callTreeSummaryStrategy:u,innerWindowIDToPageMap:h,weightType:p,ctssSamples:m,unfilteredCtssSamples:f,tracedTiming:g,displayStackType:A}=this.props;if(!l())return null;const b=a[e];if(!b)return null;const C=b.callNode[t];if(void 0===C)return null;let v=Vt(b.end[t]-b.start[t]);g&&(v=`${Ht("tracing-ms",!1,g.total[C])} (${v})`);const y=!n.isJsTracer&&"timing"===u;return J.createElement(CC,{thread:n,weightType:p,innerWindowIDToPageMap:h,interval:d,callNodeIndex:C,callNodeInfo:s,categories:c,durationText:v,displayData:i.getDisplayData(C),callTreeSummaryStrategy:u,timings:y?this._getTimingsForCallNodeIndex(C,s,d,r,o,c,m,f):void 0,displayStackType:A})},this._onSelectItem=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onSelectionChange(t)},this._onRightClick=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onRightClick(t)},this._onDoubleClick=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onDoubleClick(t)},this._hitTest=(e,t)=>{const{flameGraphTiming:n,maxStackDepthPlusOne:r,viewport:{viewportTop:o,containerWidth:a}}=this.props,i=e/a,s=Math.floor(r-(t+o)/Fv),l=n[s];if(!l)return null;for(let e=0;e<l.length;e++){const t=l.start[e],n=l.end[e];if(t<i&&n>i)return{depth:s,flameGraphTimingIndex:e}}return null}}componentDidUpdate(e){e.maxStackDepthPlusOne!==this.props.maxStackDepthPlusOne&&this.props.viewport.moveViewport(0,(e.maxStackDepthPlusOne-this.props.maxStackDepthPlusOne)*Fv),(!e.viewport.isSizeSet&&this.props.viewport.isSizeSet||this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration)&&this._scrollSelectionIntoView()}_getCallNodeIndexFromHoveredItem(e){if(null===e)return null;const{depth:t,flameGraphTimingIndex:n}=e,{flameGraphTiming:r}=this.props;return r[t].callNode[n]}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return J.createElement(Kb,{className:"flameGraphCanvas",containerWidth:e,containerHeight:t,isDragging:n,scaleCtxToCssPixels:!1,onDoubleClickItem:this._onDoubleClick,getHoveredItemInfo:this._getHoveredStackInfo,drawCanvas:this._drawCanvas,hitTest:this._hitTest,onSelectItem:this._onSelectItem,onRightClick:this._onRightClick,drawCanvasAfterRaf:!1})}}const Ov=Lb(Lv);var Uv=n(2591),zv={};zv.styleTagTransform=M(),zv.setAttributes=B(),zv.insert=T().bind(null,"head"),zv.domAPI=k(),zv.insertStyleElement=N(),w()(Uv.A,zv),Uv.A&&Uv.A.locals&&Uv.A.locals;class Gv extends J.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onCallNodeEnterOrDoubleClick=e=>{if(null===e)return;const{callTree:t,updateBottomBoxContentsAndMaybeOpen:n}=this.props;n("flame-graph",t.getBottomBoxInfoForCallNode(e))},this._shouldDisplayTooltips=()=>null===this.props.rightClickedCallNodeIndex,this._takeViewportRef=e=>{this._viewport=e},this.focus=()=>{this._viewport&&this._viewport.focus()},this._wideEnough=e=>{const{flameGraphTiming:t,callNodeInfo:n}=this.props,r=t[n.getNonInvertedCallNodeTable().depth[e]],o=r.callNode.indexOf(e);return r.end[o]-r.start[o]>.001},this._nextSelectableInRow=(e,t)=>{const{flameGraphTiming:n,callNodeInfo:r}=this.props;let o=e;const a=n[r.getNonInvertedCallNodeTable().depth[o]];let i=a.callNode.indexOf(o);do{if(i+=t,o=a.callNode[i],a.end[i]-a.start[i]>.001)break}while(void 0!==o);return o},this._handleKeyDown=e=>{const{threadsKey:t,callTree:n,callNodeInfo:r,selectedCallNodeIndex:o,rightClickedCallNodeIndex:a,changeSelectedCallNode:i,handleCallNodeTransformShortcut:s}=this.props,l=r.getNonInvertedCallNodeTable();if(["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(e.key)){if(null===o)return void i(t,r.getCallNodePathFromIndex(0));switch(e.key){case"ArrowDown":{const e=l.prefix[o];-1!==e&&i(t,r.getCallNodePathFromIndex(e));break}case"ArrowUp":{const[e]=n.getChildren(o);void 0!==e&&this._wideEnough(e)&&i(t,r.getCallNodePathFromIndex(e));break}case"ArrowLeft":case"ArrowRight":{const n=this._nextSelectableInRow(o,"ArrowLeft"===e.key?-1:1);void 0!==n&&i(t,r.getCallNodePathFromIndex(n));break}default:console.error(`An unknown key "${e.key}" was pressed, this shouldn't happen.`)}return}const c=null!==a?a:o;null!==c&&("Enter"!==e.key?s(e,t,c):this._onCallNodeEnterOrDoubleClick(c))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:t,selectedCallNodeIndex:n,thread:r}=this.props,o=t.getNonInvertedCallNodeTable();if(null!==n){const t=o.func[n],a=r.stringTable.getString(r.funcTable.name[t]);e.clipboardData.setData("text/plain",a)}}}}componentDidMount(){document.addEventListener("copy",this._onCopy,!1)}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1)}render(){const{thread:e,unfilteredThread:t,ctssSampleIndexOffset:n,threadsKey:r,maxStackDepthPlusOne:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,timeRange:l,previewSelection:c,rightClickedCallNodeIndex:d,selectedCallNodeIndex:u,scrollToSelectionGeneration:h,callTreeSummaryStrategy:p,categories:m,interval:f,isInverted:g,innerWindowIDToPageMap:A,weightType:b,ctssSamples:C,unfilteredCtssSamples:v,tracedTiming:y,displayStackType:w}=this.props,E=null!==y?(0,ut.Nn)("NON_INVERTED"===(k=y).type?k.timings:null,"The flame graph should only ever see non-inverted timings, see UrlState.getInvertCallstack"):null;var k;const x=16*o;return J.createElement("div",{className:"flameGraphContent",onKeyDown:this._handleKeyDown},J.createElement(Zg,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(Ov,{key:r,viewportProps:{timeRange:l,maxViewportHeight:x,maximumZoom:1,previewSelection:c,startsAtBottom:!0,disableHorizontalMovement:!0,viewportNeedsUpdate:Wv,marginLeft:0,marginRight:0,containerRef:this._takeViewportRef},chartProps:{thread:e,innerWindowIDToPageMap:A,weightType:b,unfilteredThread:t,ctssSampleIndexOffset:n,maxStackDepthPlusOne:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,categories:m,selectedCallNodeIndex:u,rightClickedCallNodeIndex:d,scrollToSelectionGeneration:h,callTreeSummaryStrategy:p,stackFrameHeight:16,onSelectionChange:this._onSelectedCallNodeChange,onRightClick:this._onRightClickedCallNodeChange,onDoubleClick:this._onCallNodeEnterOrDoubleClick,shouldDisplayTooltips:this._shouldDisplayTooltips,interval:f,isInverted:g,ctssSamples:C,unfilteredCtssSamples:v,tracedTiming:E,displayStackType:w}})))}}function Wv(){return!1}const Hv=at({mapStateToProps:e=>({thread:Pd.getFilteredThread(e),unfilteredThread:Pd.getThread(e),weightType:Pd.getWeightTypeForCallTree(e),maxStackDepthPlusOne:Pd.getFilteredCallNodeMaxDepthPlusOne(e),flameGraphTiming:Pd.getFlameGraphTiming(e),callTree:Pd.getCallTree(e),timeRange:li(e),previewSelection:hi(e),callNodeInfo:Pd.getCallNodeInfo(e),categories:Mi(e),threadsKey:zo(e),selectedCallNodeIndex:Pd.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Pd.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:oi(e),interval:gi(e),isInverted:Lo(e),callTreeSummaryStrategy:Pd.getCallTreeSummaryStrategy(e),innerWindowIDToPageMap:Gi(e),ctssSamples:Pd.getPreviewFilteredCtssSamples(e),ctssSampleIndexOffset:Pd.getPreviewFilteredCtssSampleIndexOffset(e),unfilteredCtssSamples:Pd.getUnfilteredCtssSamples(e),tracedTiming:Pd.getTracedTiming(e),displayStackType:Ns(e)}),mapDispatchToProps:{changeSelectedCallNode:th,changeRightClickedCallNode:nh,handleCallNodeTransformShortcut:ap,updateBottomBoxContentsAndMaybeOpen:tp},options:{forwardRef:!0},component:Gv});var Vv=n(5133),jv={};jv.styleTagTransform=M(),jv.setAttributes=B(),jv.insert=T().bind(null,"head"),jv.domAPI=k(),jv.insertStyleElement=N(),w()(Vv.A,jv),Vv.A&&Vv.A.locals&&Vv.A.locals;class $v extends J.PureComponent{constructor(...e){super(...e),this._flameGraph=J.createRef(),this._onSwitchToNormalCallstackClick=()=>{this.props.changeInvertCallstack(!1)}}componentDidMount(){const e=this._flameGraph.current;e&&e.focus()}render(){const{isPreviewSelectionEmpty:e,invertCallstack:t}=this.props;return e?J.createElement(Nv,null):t?J.createElement("div",{className:"flameGraphDisabledMessage"},J.createElement("h3",null,"The Flame Graph is not available for inverted call stacks"),J.createElement("p",null,J.createElement("button",{type:"button",onClick:this._onSwitchToNormalCallstackClick},"Switch to the normal call stack")," ","to show the Flame Graph.")):J.createElement(Hv,{ref:this._flameGraph})}}const Kv=at({mapStateToProps:e=>({invertCallstack:Lo(e),isPreviewSelectionEmpty:!Pd.getHasPreviewFilteredCtssSamples(e)}),mapDispatchToProps:{changeInvertCallstack:Gh},component:$v}),Yv=()=>J.createElement("div",{className:"flameGraph",id:"flame-graph-tab",role:"tabpanel","aria-labelledby":"flame-graph-tab-button"},J.createElement(RA,{hideInvertCallstack:!0}),J.createElement(hb,null),J.createElement(Kv,null));class qv extends J.PureComponent{constructor(...e){super(...e),this.state={hasFirstDraw:!1},this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this.drawCanvas=(e,t,n)=>{const{rowHeight:r,jsTracerTimingRows:o,viewport:{viewportTop:a,viewportBottom:i,containerWidth:s,containerHeight:l}}=this.props,{hoveredItem:c}=n,{cssToDeviceScale:d,cssToUserScale:u}=t;if(d!==u)throw new Error("JsTracerCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");e.font=10*d+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===d||(this._textMeasurement=new qb(e),this._textMeasurementCssToDeviceScale=d);const h={ctx:e,textMeasurement:this._textMeasurement,fastFillStyle:new Eu(e),startRow:Math.floor(a/r),endRow:Math.min(Math.ceil(i/r),o.length),devicePixels:{containerWidth:s*d,innerContainerWidth:(s-In.RD-In.OI)*d,containerHeight:l*d,textOffsetStart:3*d,textOffsetTop:11*d,rowHeight:r*d,viewportTop:a*d,timelineMarginLeft:In.RD*d,timelineMarginRight:In.OI*d,oneCssPixel:d,rowLabelOffsetLeft:5*d}};{const{fastFillStyle:t,devicePixels:n}=h;t.set("#ffffff"),e.fillRect(0,0,n.containerWidth,n.containerHeight)}this.drawEvents(h,c),this.drawSeparatorsAndLabels(h),this.setState((e=>e.hasFirstDraw?null:{hasFirstDraw:!0}))},this.hitTest=(e,t)=>{if(e<In.RD)return null;const{rangeStart:n,rangeEnd:r,jsTracerTimingRows:o,rowHeight:a,viewport:{viewportLeft:i,viewportRight:s,viewportTop:l,containerWidth:c}}=this.props,d=c-In.RD-In.OI,u=r-n,h=s-i,p=n+(i+h*((e-In.RD)/d))*u,m=o[Math.floor((t+l)/a)],f=u*h/d;if(!m)return null;for(let e=0;e<m.length;e++){const t=m.start[e],n=Math.max(t+f,m.end[e]);if(t<=p&&p<n)return m.index[e]}return null},this.onDoubleClickEvent=e=>{},this.getHoveredItemInfo=e=>null}drawOneEvent(e,t,n,r,o,a,i,s){const{ctx:l,textMeasurement:c,fastFillStyle:d,devicePixels:u}=e,h=s?"Highlight":Jb,p=s?"HighlightText":"white";if(d.set(h),a>=1){l.fillRect(t,n+1,r,o-2);const e=t+u.textOffsetStart,a=Math.max(0,r-u.textOffsetStart);if(a>c.minWidth){const t=c.getFittedText(i,a);t&&(d.set(p),l.fillText(t,e,n+u.textOffsetTop))}}else{const e=.9*r+.1;l.fillRect(t,n+2,e,o-4)}}drawEvents(e,t){const{startRow:n,endRow:r,devicePixels:o}=e,{rangeStart:a,rangeEnd:i,jsTracerTimingRows:s,viewport:{viewportLeft:l,viewportRight:c}}=this.props,d=i-a,u=c-l;for(let i=n;i<r;i++){const n=s[i];if(!n)continue;const r=a+d*l,h=a+d*c+o.timelineMarginRight*(u*d/o.containerWidth),p=o.rowHeight-o.oneCssPixel,m=i*o.rowHeight-o.viewportTop;let f=o.timelineMarginLeft,g=f+1,A=0;const b=t=>{A>0&&(this.drawOneEvent(e,f,t,A,p,A,"",!1),f++,g++,A=0)};for(let i=0;i<n.length;i++){const s=n.start[i],c=n.end[i];if(c>r&&s<h){const r=(s-a)/d,h=(c-a)/d;let C=(r-l)*o.innerContainerWidth/u+o.timelineMarginLeft;const v=(h-r)*o.innerContainerWidth/u,y=n.label[i],w=t===n.index[i];if(0===v)continue;if(C+v<o.timelineMarginLeft)continue;if(C>o.containerWidth-o.timelineMarginRight)continue;let E=v;C<o.timelineMarginLeft&&(E-=o.timelineMarginLeft-C,C=o.timelineMarginLeft);const k=Math.ceil(C);if(C+E<=k){C>=g&&(b(m),f=Math.floor(C),g=f+1),A+=E;continue}C>g&&(b(m),f=k-1,g=k),C=k,A+=k-C,b(m);const x=Math.floor(E);this.drawOneEvent(e,C,m,x,p,v,y,w),f=C+x,g=C+x+1,A=E-x}b(m)}}}drawSeparatorsAndLabels(e){const{ctx:t,textMeasurement:n,fastFillStyle:r,startRow:o,endRow:a,devicePixels:i}=e,{jsTracerTimingRows:s}=this.props;r.set(_b.LT),t.fillRect(i.timelineMarginLeft-i.oneCssPixel,0,i.oneCssPixel,i.containerHeight);for(let e=o;e<a;e++){const n=(e+1)*i.rowHeight-i.viewportTop-i.oneCssPixel;t.fillRect(0,n,i.containerWidth,i.oneCssPixel)}r.set("#000000");for(let e=o;e<a;e++){const{name:r}=s[e];if(e>0&&r===s[e-1].name)continue;const o=n.getFittedText(r,i.timelineMarginLeft),a=e*i.rowHeight-i.viewportTop;t.fillText(o,i.rowLabelOffsetLeft,a+i.textOffsetTop)}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return J.createElement(Kb,{className:ug()({jsTracerCanvasFadeIn:this.props.doFadeIn,jsTracerCanvas:!0,jsTracerCanvasDrawn:this.state.hasFirstDraw}),containerWidth:e,containerHeight:t,isDragging:n,onDoubleClickItem:this.onDoubleClickEvent,getHoveredItemInfo:this.getHoveredItemInfo,drawCanvas:this.drawCanvas,hitTest:this.hitTest,scaleCtxToCssPixels:!1})}}const Zv=Lb(qv);var Xv=n(4909),Jv={};Jv.styleTagTransform=M(),Jv.setAttributes=B(),Jv.insert=T().bind(null,"head"),Jv.domAPI=k(),Jv.insertStyleElement=N(),w()(Xv.A,Jv),Xv.A&&Xv.A.locals&&Xv.A.locals;class Qv extends J.PureComponent{getMaximumZoom(){const{timeRange:{start:e,end:t}}=this.props;return In.cs/(t-e)}render(){const{timeRange:e,threadsKey:t,jsTracerTable:n,jsTracerTimingRows:r,previewSelection:o,updatePreviewSelection:a,doFadeIn:i}=this.props,s=16*r.length;return J.createElement(Zv,{key:t,viewportProps:{timeRange:e,previewSelection:o,maxViewportHeight:s,viewportNeedsUpdate:ey,maximumZoom:this.getMaximumZoom(),marginLeft:In.RD,marginRight:In.OI},chartProps:{jsTracerTimingRows:r,jsTracerTable:n,updatePreviewSelection:a,rangeStart:e.start,rangeEnd:e.end,rowHeight:16,threadsKey:t,doFadeIn:i}})}}function ey(e,t){return e.jsTracerTimingRows!==t.jsTracerTimingRows}const ty=at({mapStateToProps:(e,t)=>({timeRange:li(e),stringTable:Pd.getStringTable(e),threadsKey:zo(e),previewSelection:hi(e),jsTracerTimingRows:(0,ut.Nn)(t.showJsTracerSummary?Pd.getExpensiveJsTracerLeafTiming(e):Pd.getExpensiveJsTracerTiming(e),"The JS tracer information must exist when mounting this component")}),mapDispatchToProps:{updatePreviewSelection:Vh},component:Qv}),ny=new WeakMap;class ry extends J.PureComponent{constructor(e){super(e),this.state={readyToRenderExpensiveChart:!1},this._doFadeIn=!1;let t=ny.get(e.profile);void 0===t&&(t=new Set,ny.set(e.profile,t)),t.has(e.keyString)||(this._doFadeIn=!0,t.add(e.keyString))}componentDidMount(){this._doFadeIn&&requestAnimationFrame((()=>{requestAnimationFrame((()=>{this.setState({readyToRenderExpensiveChart:!0})}))}))}render(){const{jsTracerTable:e,showJsTracerSummary:t}=this.props;return this.state.readyToRenderExpensiveChart||!this._doFadeIn?J.createElement(ty,{doFadeIn:this._doFadeIn,jsTracerTable:e,showJsTracerSummary:t}):J.createElement("div",{className:"jsTracerLoader"},"Re-constructing tracing information from"," ",this.props.jsTracerTable.events.length.toLocaleString()," events. This might take a moment.")}}class oy extends J.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props,o=`${r}-${n?"true":"false"}`;return J.createElement(ry,{key:o,keyString:o,jsTracerTable:t,showJsTracerSummary:n,profile:e})}}var ay=n(5682),iy={};iy.styleTagTransform=M(),iy.setAttributes=B(),iy.insert=T().bind(null,"head"),iy.domAPI=k(),iy.insertStyleElement=N(),w()(ay.A,iy),ay.A&&ay.A.locals&&ay.A.locals;class sy extends J.PureComponent{constructor(...e){super(...e),this._onCheckboxChange=()=>{this.props.changeShowJsTracerSummary(!this.props.showJsTracerSummary)}}render(){const{showJsTracerSummary:e}=this.props;return J.createElement("div",{className:"jsTracerSettings"},J.createElement("ul",{className:"jsTracerSettingsList"},J.createElement("li",{className:"jsTracerSettingsListItem"},J.createElement("label",{className:"jsTracerSettingsLabel"},J.createElement("input",{type:"checkbox",className:"jsTracerSettingsCheckbox",onChange:this._onCheckboxChange,checked:e}),J.createElement(de,{id:"JsTracerSettings--show-only-self-time",attrs:{title:!0}},J.createElement("span",null,"Show only self time"))))))}}const ly=at({mapStateToProps:e=>({showJsTracerSummary:_o(e)}),mapDispatchToProps:{changeShowJsTracerSummary:Hh},component:sy});class cy extends J.PureComponent{render(){const{threadName:e}=this.props;return J.createElement(sA,{threadName:e,reason:"This thread contains no JS tracer information.",viewName:"js-tracer"})}}const dy=at({mapStateToProps:e=>({threadName:Pd.getFriendlyThreadName(e)}),component:cy});class uy extends J.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props;return J.createElement("div",{className:"jsTracer"},null===t||0===t.events.length?J.createElement(dy,null):J.createElement(J.Fragment,null,J.createElement(ly,null),J.createElement(oy,{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r})))}}const hy=at({mapStateToProps:e=>({profile:fi(e),threadsKey:zo(e),jsTracerTable:Pd.getJsTracerTable(e),showJsTracerSummary:_o(e)}),mapDispatchToProps:{updatePreviewSelection:Vh},component:uy});class py extends J.PureComponent{_selectContent(e){const t=e.currentTarget;t.focus(),t.select()}_unselectContent(e){e.currentTarget.setSelectionRange(0,0)}render(){const{tagName:e,content:t,className:n}=this.props,r=e||"div";return J.createElement(r,{className:ug()(n,"can-select-content"),title:`${t}\n(click to select)`},J.createElement("input",{value:t,className:"can-select-content-input",onFocus:this._selectContent,onBlur:this._unselectContent,readOnly:!0}))}}function my({label:e,value:t,percentage:n,indent:r}){return J.createElement(J.Fragment,null,J.createElement("div",{className:ug()({"sidebar-label":!0,"sidebar-label-indent":r})},e),J.createElement("div",{className:"sidebar-percentage"},n),J.createElement("div",{className:"sidebar-value"},t))}class fy extends J.PureComponent{constructor(...e){super(...e),this._toggleCategory=e=>{const{toggleOpenCategoryInSidebar:t,kind:n}=this.props,{categoryIndex:r}=e.target.dataset;t(n,parseInt(r,10))}}render(){const{breakdown:e,categoryList:t,number:n,sidebarOpenCategories:r,kind:o}=this.props,a=e.map(((e,n)=>{const r=t[n];return{categoryIndex:n,category:r,value:e.entireCategoryValue||0,subcategories:r.subcategories.map(((t,n)=>({index:n,name:t,value:e.subcategoryBreakdown[n]}))).sort((({value:e},{value:t})=>t-e)).filter((({value:e})=>e))}})).sort((({value:e},{value:t})=>t-e)).filter((({value:e})=>e)),i=a.reduce(((e,{value:t})=>e+Math.abs(t)),0);return J.createElement(J.Fragment,null,a.map((({category:e,value:t,subcategories:a,categoryIndex:s})=>{const l=(0,bn.V8)(e),c=r.get(o),d=void 0!==c&&c.has(s);return J.createElement(J.Fragment,{key:`category-${s}`},J.createElement(my,{label:l?J.createElement("button",{type:"button","data-category-index":s,onClick:this._toggleCategory,className:ug()({"sidebar-toggle":!0,expanded:d})},e.name):e.name,value:n(t),percentage:Vt(t/i)}),J.createElement("div",{className:"sidebar-histogram-bar"},J.createElement("div",{className:`sidebar-histogram-bar-color category-color-${e.color}`,style:{width:(u=t/i,(100*u).toFixed(4)+"%")}})),l&&d?a.map((({index:e,name:t,value:r})=>J.createElement(my,{key:`subcategory-${e}`,label:t,value:n(r),percentage:Vt(r/i),indent:!0}))):null);var u})))}}const gy=at({mapStateToProps:e=>({sidebarOpenCategories:pl(e)}),mapDispatchToProps:{toggleOpenCategoryInSidebar:Im},component:fy});function Ay(e){switch(e){case"tracing-ms":return"CallTreeSidebar--running-milliseconds";case"samples":return"CallTreeSidebar--running-sample-count";case"bytes":return"CallTreeSidebar--running-bytes";default:throw(0,ut.lC)(e,"Unhandled WeightType.")}}function by(e){switch(e){case"tracing-ms":return"CallTreeSidebar--self-milliseconds";case"samples":return"CallTreeSidebar--self-sample-count";case"bytes":return"CallTreeSidebar--self-bytes";default:throw(0,ut.lC)(e,"Unhandled WeightType.")}}class Cy extends J.PureComponent{constructor(...e){super(...e),this._getWeightTypeDetails=Lt()((e=>{switch(e){case"tracing-ms":return{runningL10nId:"CallTreeSidebar--running-time",selfL10nId:"CallTreeSidebar--self-time",number:e=>Xt(e,3,1)};case"samples":return{runningL10nId:"CallTreeSidebar--running-samples",selfL10nId:"CallTreeSidebar--self-samples",number:e=>Gt(e,0)};case"bytes":return{runningL10nId:"CallTreeSidebar--running-size",selfL10nId:"CallTreeSidebar--self-size",number:e=>Kt(e)};default:throw(0,ut.lC)(e,"Unhandled WeightType.")}}),{cache:new Map})}render(){const{selectedNodeIndex:e,name:t,lib:n,timings:r,categoryList:o,weightType:a,selectedNodeTracedSelfAndTotal:i}=this.props,{forPath:{selfTime:s,totalTime:l},rootTime:c}=r;if(null===e)return J.createElement("div",{className:"sidebar sidebar-calltree"},J.createElement(de,{id:"CallTreeSidebar--select-a-node"},J.createElement("div",{className:"sidebar-contents-wrapper"},"Select a node to display some information about it.")));const{number:d,runningL10nId:u,selfL10nId:h}=this._getWeightTypeDetails(a),p=Math.round(l.value/c*100),m=Math.round(s.value/c*100),f=l.breakdownByCategory,g=s.breakdownByCategory;return J.createElement("aside",{className:"sidebar sidebar-calltree"},J.createElement("div",{className:"sidebar-contents-wrapper"},J.createElement("header",{className:"sidebar-titlegroup"},J.createElement(py,{tagName:"h2",className:"sidebar-title",content:t}),n?J.createElement(py,{tagName:"p",className:"sidebar-subtitle",content:n}):null),J.createElement("h4",{className:"sidebar-title3"},J.createElement(de,{id:"CallTreeSidebar--call-node-details"},J.createElement("div",null,"Call node details"))),i?J.createElement(de,{id:"CallTreeSidebar--traced-running-time",attrs:{label:!0}},J.createElement(my,{label:"Traced running time",value:Xt(i.total,3,1)})):null,i?J.createElement(de,{id:"CallTreeSidebar--traced-self-time",attrs:{label:!0}},J.createElement(my,{label:"Traced self time",value:0===i.self?"—":Xt(i.self,3,1)})):null,J.createElement(de,{id:u,attrs:{label:!0}},J.createElement(my,{label:"",value:l.value?`${d(l.value)}`:"—",percentage:p?p+"%":"—"})),J.createElement(de,{id:h,attrs:{label:!0}},J.createElement(my,{label:"",value:s.value?`${d(s.value)}`:"—",percentage:m?m+"%":"—"})),f?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--categories"},J.createElement("div",{className:"sidebar-title-label-left"},"Categories")),J.createElement(de,{id:Ay(a)},J.createElement("div",{className:"sidebar-title-label-right"}))),J.createElement(gy,{kind:"total",breakdown:f,categoryList:o,number:d})):null,g?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--categories"},J.createElement("div",{className:"sidebar-title-label-left"},"Categories")),J.createElement(de,{id:by(a)},J.createElement("div",{className:"sidebar-title-label-right"}))),J.createElement(gy,{kind:"self",breakdown:g,categoryList:o,number:d})):null))}}const vy=at({mapStateToProps:e=>({selectedNodeIndex:Pd.getSelectedCallNodeIndex(e),selectedThreadsKey:zo(e),name:hr(Md.getName(e)),lib:Md.getLib(e),timings:Md.getTimingsForSidebar(e),categoryList:Mi(e),weightType:Pd.getWeightTypeForCallTree(e),selectedNodeTracedSelfAndTotal:Pd.getTracedSelfAndTotalForSelectedCallNode(e)}),component:Cy});class yy extends J.PureComponent{render(){const{marker:e,markerIndex:t,selectedThreadsKey:n}=this.props;return null===e||null===t?J.createElement("div",{className:"sidebar sidebar-marker-table"},J.createElement(de,{id:"MarkerSidebar--select-a-marker"},J.createElement("div",{className:"sidebar-contents-wrapper"},"Select a marker to display some information about it."))):J.createElement("aside",{className:"sidebar sidebar-marker-table"},J.createElement("div",{className:"sidebar-contents-wrapper"},J.createElement(jC,{markerIndex:t,marker:e,threadsKey:n,restrictHeightWidth:!1})))}}const wy=at({mapStateToProps:e=>({marker:Pd.getSelectedMarker(e),markerIndex:Pd.getSelectedMarkerIndex(e),selectedThreadsKey:zo(e)}),component:yy});var Ey=n(5592),ky={};function xy(e){return{calltree:vy,"flame-graph":vy,"stack-chart":null,"marker-chart":null,"marker-table":wy,"network-chart":null,"js-tracer":null}[e]}ky.styleTagTransform=M(),ky.setAttributes=B(),ky.insert=T().bind(null,"head"),ky.domAPI=k(),ky.insertStyleElement=N(),w()(Ey.A,ky),Ey.A&&Ey.A.locals&&Ey.A.locals;var Ty=n(7965),Sy=n.n(Ty),By=n(8479),Iy={};Iy.styleTagTransform=M(),Iy.setAttributes=B(),Iy.insert=T().bind(null,"head"),Iy.domAPI=k(),Iy.insertStyleElement=N(),w()(By.A,Iy),By.A&&By.A.locals&&By.A.locals;class _y extends J.PureComponent{constructor(...e){super(...e),this._hidingTimeout=null,this._onShow=()=>{clearTimeout(this._hidingTimeout),this.props.setContextMenuVisibility(!0)},this._onHide=()=>{this._hidingTimeout=setTimeout((()=>{this._hidingTimeout=null,this.props.setContextMenuVisibility(!1)}))},this._handleClick=(e,t)=>{const{type:n}=t,r=(0,ut.DO)(n);if(r)this.addTransformToStack(r);else switch(n){case"show-file":this.showFile();break;case"searchfox":this.lookupFunctionOnSearchfox();break;case"copy-function-name":this.copyFunctionName();break;case"copy-url":this.copyUrl();break;case"copy-stack":this.copyStack();break;case"expand-all":this.expandAll();break;case"show-function-in-devtools":this.showFunctionInDevtools();break;default:throw new Error(`Unknown type ${n}`)}}}_getFunctionName(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{stringTable:n,funcTable:r},callNodeInfo:o}=e,a=o.funcForNode(t),i=r.isJS[a],s=r.name[a],l=n.getString(s);return i?l:hr(l)}lookupFunctionOnSearchfox(){const e=this._getFunctionName();window.open(`https://searchfox.org/mozilla-central/search?q=${encodeURIComponent(e)}`,"_blank")}copyFunctionName(){Sy()(this._getFunctionName())}_getFilePath(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{stringTable:n,funcTable:r},callNodeInfo:o}=e,a=o.funcForNode(t),i=r.fileName[a];return null===i?null:n.getString(i)}_getFileLineColumn(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{funcTable:n},callNodeInfo:r}=e,o=r.funcForNode(t);return{line:n.lineNumber[o],column:n.columnNumber[o]}}showFile(){const{updateBottomBoxContentsAndMaybeOpen:e,selectedTab:t}=this.props,n=this.getRightClickedCallNodeInfo();if(null===n)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:r,thread:o,callNodeInfo:a}=n;e(t,(0,bn.ae)(r,a,o))}copyUrl(){const e=this._getFilePath();e&&Sy()(e)}copyStack(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{funcTable:n,resourceTable:r,stringTable:o},callNodeInfo:a}=e,i=a.getCallNodePathFromIndex(t).reverse().map((e=>{const t=n.name[e],a=o.getString(t),i=(0,bn.Bu)(e,n,r,o);return a+(i?` [${i}]`:"")})).join("\n");Sy()(i)}addTransformToStack(e){const{addTransformToStack:t,addCollapseResourceTransformToStack:n,implementation:r,inverted:o}=this.props,a=this.getRightClickedCallNodeInfo();if(null===a)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{threadsKey:i,callNodePath:s,thread:l,callNodeIndex:c,callNodeInfo:d}=a,u=s[s.length-1],h=d.categoryForNode(c);switch(e){case"focus-subtree":t(i,{type:"focus-subtree",callNodePath:s,implementation:r,inverted:o});break;case"focus-function":t(i,{type:"focus-function",funcIndex:u});break;case"merge-call-node":t(i,{type:"merge-call-node",callNodePath:s,implementation:r});break;case"merge-function":t(i,{type:"merge-function",funcIndex:u});break;case"drop-function":t(i,{type:"drop-function",funcIndex:u});break;case"collapse-resource":{const{funcTable:e}=l;n(i,e.resource[u],r);break}case"collapse-direct-recursion":t(i,{type:"collapse-direct-recursion",funcIndex:u,implementation:r});break;case"collapse-recursion":t(i,{type:"collapse-recursion",funcIndex:u});break;case"collapse-function-subtree":t(i,{type:"collapse-function-subtree",funcIndex:u});break;case"focus-category":t(i,{type:"focus-category",category:h});break;case"filter-samples":throw new Error("Filter samples transform can't be applied from the call node context menu.");default:(0,ut.lC)(e)}}expandAll(){const{expandAllCallNodeDescendants:e}=this.props,t=this.getRightClickedCallNodeInfo();if(null===t)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{threadsKey:n,callNodeIndex:r,callNodeInfo:o}=t;e(n,r,o)}_getTabID(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeInfo:t,callNodeIndex:n}=e,{innerWindowIDToPageMap:r}=this.props,o=t.innerWindowIDForNode(n);if(o&&r){const e=r.get(o);if(e)return e.tabID}return null}showFunctionInDevtools(){const{browserConnectionStatus:e}=this.props;if("ESTABLISHED"!==e.status)return;const t=this._getTabID(),n=this._getFilePath(),{line:r,column:o}=this._getFileLineColumn();if(!t||!n||"self-hosted"===n)return;const{browserConnection:a}=e;a.showFunctionInDevtools(t,n,r,o)}getNameForSelectedResource(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodePath:t,thread:{funcTable:n,stringTable:r,resourceTable:o}}=e,a=t[t.length-1];if(void 0===a)return null;if(n.isJS[a]){const e=n.fileName[a];return null===e?null:r.getString(e)}const i=n.resource[a];if(-1===i)return null;const s=o.name[i];return r.getString(s)}getRightClickedCallNodeInfo(){const{thread:e,threadsKey:t,callNodeInfo:n,rightClickedCallNodePath:r,rightClickedCallNodeIndex:o}=this.props;return e&&null!==t&&n&&r&&"number"==typeof o?{thread:e,threadsKey:t,callNodeInfo:n,callNodePath:r,callNodeIndex:o}:null}renderContextMenuContents(){const{inverted:e,selectedTab:t,displaySearchfox:n,categories:r,browserConnectionStatus:o}=this.props,a=this.getRightClickedCallNodeInfo();if(null===a)return console.error("The context menu assumes there is a selected call node and there wasn't one."),J.createElement("div",null);const{callNodeIndex:i,thread:{funcTable:s},callNodeInfo:l}=a,c=l.categoryForNode(i),d=l.funcForNode(i),u=s.isJS[d],h=-1!==c,p=this.getNameForSelectedResource(),m=h?r[c].name:"",f="calltree"===t,g=this._getFilePath(),A=u&&g,b=g&&(0,mC.o)(g).path.match(/[^\\/]+$/)?.[0],C=l.getNonInvertedCallNodeTable(),v=u&&g&&"self-hosted"!==g&&"ESTABLISHED"===o.status&&this._getTabID();return J.createElement(J.Fragment,null,b?J.createElement(J.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--show-file",l10nProps:{vars:{fileName:b},elems:{strong:J.createElement("strong",null)}},onClick:this._handleClick,data:{type:"show-file"},shortcut:"⏎",content:`Show <strong>${b}</strong>`}),J.createElement("div",{className:"react-contextmenu-separator"})):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-merge-function",shortcut:"m",icon:"Merge",onClick:this._handleClick,transform:"merge-function",title:"",content:"Merge function"}),e?null:this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-merge-call-node",shortcut:"M",icon:"Merge",onClick:this._handleClick,transform:"merge-call-node",title:"",content:"Merge node only"}),this.renderTransformMenuItem({l10nId:e?"CallNodeContextMenu--transform-focus-function-inverted":"CallNodeContextMenu--transform-focus-function",shortcut:"f",icon:"Focus",onClick:this._handleClick,transform:"focus-function",title:"",content:e?"Focus on function (inverted)":"Focus on function"}),this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-focus-subtree",shortcut:"F",icon:"Focus",onClick:this._handleClick,transform:"focus-subtree",title:"",content:"Focus on subtree only"}),h?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-focus-category",l10nProps:{vars:{categoryName:m},elems:{strong:J.createElement("strong",null)}},shortcut:"g",icon:"Focus",onClick:this._handleClick,transform:"focus-category",title:"",content:"Focus on category"}):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-function-subtree",shortcut:"c",icon:"Collapse",onClick:this._handleClick,transform:"collapse-function-subtree",title:"",content:"Collapse function"}),p?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-resource",l10nProps:{vars:{nameForResource:p},elems:{strong:J.createElement("strong",null)}},shortcut:"C",icon:"Collapse",onClick:this._handleClick,transform:"collapse-resource",title:"",content:`Collapse <strong>${p}</strong>`}):null,kr(C,d)?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-recursion",shortcut:"r",icon:"Collapse",onClick:this._handleClick,transform:"collapse-recursion",title:"",content:"Collapse recursion"}):null,Er(C,d)?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-direct-recursion-only",shortcut:"R",icon:"Collapse",onClick:this._handleClick,transform:"collapse-direct-recursion",title:"",content:"Collapse direct recursion only"}):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-drop-function",shortcut:"d",icon:"Drop",onClick:this._handleClick,transform:"drop-function",title:"",content:"Drop samples with this function"}),J.createElement("div",{className:"react-contextmenu-separator"}),f?J.createElement(J.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--expand-all",onClick:this._handleClick,data:{type:"expand-all"},shortcut:"*",content:"Expand all"}),J.createElement("div",{className:"react-contextmenu-separator"})):null,n?J.createElement(de,{id:"CallNodeContextMenu--searchfox"},J.createElement(Vg,{onClick:this._handleClick,data:{type:"searchfox"}},"Look up the function name on Searchfox")):null,J.createElement(de,{id:"CallNodeContextMenu--copy-function-name"},J.createElement(Vg,{onClick:this._handleClick,data:{type:"copy-function-name"}},"Copy function name")),A?J.createElement(de,{id:"CallNodeContextMenu--copy-script-url"},J.createElement(Vg,{onClick:this._handleClick,data:{type:"copy-url"}},"Copy script URL")):null,J.createElement(de,{id:"CallNodeContextMenu--copy-stack"},J.createElement(Vg,{onClick:this._handleClick,data:{type:"copy-stack"}},"Copy stack")),v?J.createElement(de,{id:"CallNodeContextMenu--show-the-function-in-devtools"},J.createElement(Vg,{onClick:this._handleClick,data:{type:"show-function-in-devtools"}},"Show the function in DevTools")):null)}renderTransformMenuItem(e){return J.createElement(Vg,{onClick:e.onClick,data:{type:e.transform}},J.createElement("span",{className:`react-contextmenu-icon callNodeContextMenuIcon${e.icon}`}),J.createElement(de,{id:e.l10nId,attrs:{title:!0},...e.l10nProps},J.createElement(Py,{className:"react-contextmenu-item-content",title:e.title},e.content)),J.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}renderMenuItemWithShortcut(e){return J.createElement(Vg,{onClick:e.onClick,data:{type:e.data.type}},J.createElement(de,{id:e.l10nId,...e.l10nProps},J.createElement("div",{className:"react-contextmenu-item-content"},e.content)),J.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}render(){return null===this.getRightClickedCallNodeInfo()?null:J.createElement(bb,{id:"CallNodeContextMenu",className:"callNodeContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderContextMenuContents())}}const Ny=at({mapStateToProps:e=>{const t=vd(e);let n=null,r=null,o=null,a=null,i=null;if(null!==t){const s=_d(t.threadsKey);n=s.getFilteredThread(e),r=t.threadsKey,o=s.getCallNodeInfo(e),a=t.callNodePath,i=s.getRightClickedCallNodeIndex(e)}return{thread:n,threadsKey:r,categories:Mi(e),callNodeInfo:o,rightClickedCallNodePath:a,rightClickedCallNodeIndex:i,implementation:wo(e),inverted:Lo(e),selectedTab:Do(e),displaySearchfox:_s(e),browserConnectionStatus:tl(e),innerWindowIDToPageMap:Gi(e)}},mapDispatchToProps:{addTransformToStack:Kh,addCollapseResourceTransformToStack:Yh,expandAllCallNodeDescendants:Nh,updateBottomBoxContentsAndMaybeOpen:tp,setContextMenuVisibility:hh},component:_y});function Py(e){return J.createElement("div",{className:e.className,title:_n.TN`${e.title}`},e.children)}var My=n(9306),Fy={};Fy.styleTagTransform=M(),Fy.setAttributes=B(),Fy.insert=T().bind(null,"head"),Fy.domAPI=k(),Fy.insertStyleElement=N(),w()(My.A,Fy),My.A&&My.A.locals&&My.A.locals;class Ry extends J.PureComponent{constructor(...e){super(...e),this._setStartRange=e=>{const{updatePreviewSelection:t,previewSelection:n,committedRange:r}=this.props;t({hasSelection:!0,isModifying:!1,selectionStart:e,selectionEnd:n.hasSelection?n.selectionEnd:r.end})},this._setEndRange=e=>{const{updatePreviewSelection:t,committedRange:n,previewSelection:r}=this.props,o=r.hasSelection?r.selectionStart:n.start;e===o&&(e+=1e-4),t({hasSelection:!0,isModifying:!1,selectionStart:o,selectionEnd:e})},this.setStartRangeFromMarkerStart=()=>{const{marker:e}=this.props;this._setStartRange(e.start)},this.setStartRangeFromMarkerEnd=()=>{const{marker:e}=this.props;this._setStartRange(e.end||e.start)},this.setEndRangeFromMarkerStart=()=>{const{marker:e}=this.props;this._setEndRange(e.start)},this.setEndRangeFromMarkerEnd=()=>{const{marker:e}=this.props;this._setEndRange(e.end||e.start)},this.setRangeByDuration=()=>{const{marker:e,updatePreviewSelection:t}=this.props;null!==e.end&&t({hasSelection:!0,isModifying:!1,selectionStart:e.start,selectionEnd:e.end})},this.copyMarkerJSON=()=>{Sy()(JSON.stringify(this.props.marker,null,2))},this.copyMarkerDescription=()=>{const{markerIndex:e,getMarkerLabelToCopy:t}=this.props;Sy()(t(e))},this.copyMarkerCause=()=>{const{marker:e}=this.props;if(e.data&&e.data.cause){const t=this._convertStackToString(e.data.cause.stack);t?Sy()(t):Sy()("The stack is empty because all of its frames are filtered out by the implementation filter. Switch the implementation filter in the call tree to see more frames.")}},this.copyUrl=()=>{const{marker:e}=this.props;e.data&&"Network"===e.data.type&&Sy()(e.data.URI)},this.copyPageUrl=()=>{const{marker:e,innerWindowIDToPageMap:t}=this.props,{data:n}=e;if(!n||!n.innerWindowID||!t)return;const r=t.get(n.innerWindowID);r&&Sy()(r.url)},this.selectOtherThreadForIPCMarkers=()=>{const{marker:e,selectTrackFromTid:t}=this.props;if(!e.data||"IPC"!==e.data.type)return;const{data:n}=e,r="sending"===n.direction?n.recvTid:n.sendTid;r?t(r):console.warn("Unable to find the other tid for IPC marker")},this._hidingTimeout=null,this._onHide=()=>{this._hidingTimeout=setTimeout((()=>{this._hidingTimeout=null,this.props.setContextMenuVisibility(!1)}))},this._onShow=()=>{clearTimeout(this._hidingTimeout),this.props.setContextMenuVisibility(!0)}}_isZeroDurationMarker(e){return!e||null===e.end}_convertStackToString(e){const{thread:t,implementationFilter:n}=this.props;if(null===t)return"";const r=wr(t,n,(0,bn.dQ)(t,e));return(0,bn.RM)(r,t).map((({funcName:e,origin:t})=>`${e} [${t}]`)).join("\n")}maybeRenderIPCMarkerMenuItem(){const{marker:e,profiledThreadIds:t}=this.props,{data:n}=e;if(!n||"IPC"!==n.type)return null;let r;switch(n.direction){case"sending":if(!n.recvTid)return console.warn("Unable to find the receiver tid for IPC marker"),null;if(!t.has(n.recvTid))return console.warn("Unable to find the receiver thread for IPC marker"),null;r=J.createElement(de,{id:"MarkerContextMenu--select-the-receiver-thread",vars:{threadName:n.recvThreadName},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Select the receiver thread “",J.createElement("strong",null,n.recvThreadName),"”"));break;case"receiving":if(!n.sendTid)return console.warn("Unable to find the sender tid for IPC marker"),null;if(!t.has(n.sendTid))return console.warn("Unable to find the sender thread for IPC marker"),null;r=J.createElement(de,{id:"MarkerContextMenu--select-the-sender-thread",vars:{threadName:n.sendThreadName},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Select the sender thread “",J.createElement("strong",null,n.sendThreadName),"”"));break;default:throw(0,ut.lC)(n.direction,"Unhandled IPC marker direction type.")}return J.createElement(Vg,{onClick:this.selectOtherThreadForIPCMarkers},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuSelectThread"}),r)}maybeRenderCopyPageUrlItem(){const{marker:e,innerWindowIDToPageMap:t}=this.props,{data:n}=e;return n&&n.innerWindowID&&t&&t.get(n.innerWindowID)?J.createElement(Vg,{onClick:this.copyPageUrl},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),J.createElement(de,{id:"MarkerContextMenu--copy-page-url"},"Copy page URL")):null}render(){const{marker:e,previewSelection:t,committedRange:n}=this.props,{data:r}=e,o=t.hasSelection?t.selectionEnd:n.end,a=t.hasSelection?t.selectionStart:n.start,i=e.end||e.start,s=e.start;return J.createElement(bb,{id:"MarkerContextMenu",className:"markerContextMenu",onShow:this._onShow,onHide:this._onHide},J.createElement(Vg,{onClick:this.setRangeByDuration,disabled:this._isZeroDurationMarker(e)},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconSetSelectionFromMarker"}),J.createElement(de,{id:"MarkerContextMenu--set-selection-from-duration"},"Set selection from marker’s duration")),J.createElement("div",{className:"react-contextmenu-separator"}),this._isZeroDurationMarker(e)?J.createElement(J.Fragment,null,J.createElement(Vg,{onClick:this.setStartRangeFromMarkerStart},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionHere"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-here"},"Start selection here")),J.createElement(Vg,{onClick:this.setEndRangeFromMarkerEnd},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionHere"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-here"},"End selection here"))):J.createElement(J.Fragment,null,J.createElement(Vg,{onClick:this.setStartRangeFromMarkerStart},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerStart"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-at-marker-start",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",J.createElement("strong",null,"start")))),J.createElement(Vg,{onClick:this.setStartRangeFromMarkerEnd,disabled:i>o},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerEnd"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-at-marker-end",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",J.createElement("strong",null,"end")))),J.createElement("div",{className:"react-contextmenu-separator"}),J.createElement(Vg,{onClick:this.setEndRangeFromMarkerStart,disabled:a>s},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerStart"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-at-marker-start",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",J.createElement("strong",null,"start")))),J.createElement(Vg,{onClick:this.setEndRangeFromMarkerEnd},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerEnd"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-at-marker-end",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",J.createElement("strong",null,"end"))))),J.createElement("div",{className:"react-contextmenu-separator"}),J.createElement(Vg,{onClick:this.copyMarkerDescription},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyDescription"}),J.createElement(de,{id:"MarkerContextMenu--copy-description"},"Copy description")),r&&r.cause?J.createElement(Vg,{onClick:this.copyMarkerCause},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyStack"}),J.createElement(de,{id:"MarkerContextMenu--copy-call-stack"},"Copy call stack")):null,r&&"Network"===r.type?J.createElement(Vg,{onClick:this.copyUrl},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),J.createElement(de,{id:"MarkerContextMenu--copy-url"},"Copy URL")):null,this.maybeRenderCopyPageUrlItem(),J.createElement(Vg,{onClick:this.copyMarkerJSON},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyPayload"}),J.createElement(de,{id:"MarkerContextMenu--copy-as-json"},"Copy as JSON")),this.maybeRenderIPCMarkerMenuItem())}}const Dy=at({mapStateToProps:(e,t)=>{const{threadsKey:n,markerIndex:r}=t.rightClickedMarkerInfo,o=_d(n);return{markerIndex:r,marker:o.getMarkerGetter(e)(r),previewSelection:hi(e),committedRange:li(e),implementationFilter:wo(e),thread:o.getThread(e),getMarkerLabelToCopy:o.getMarkerLabelToCopyGetter(e),profiledThreadIds:Is(e),innerWindowIDToPageMap:Gi(e)}},mapDispatchToProps:{updatePreviewSelection:Vh,setContextMenuVisibility:hh,selectTrackFromTid:lh},component:Ry});class Ly extends J.PureComponent{render(){const{rightClickedMarkerInfo:e}=this.props;return null===e?null:J.createElement(Dy,{rightClickedMarkerInfo:e})}}const Oy=at({mapStateToProps:e=>({rightClickedMarkerInfo:fd(e)}),component:Ly});var Uy=n(8303),zy={};zy.styleTagTransform=M(),zy.setAttributes=B(),zy.insert=T().bind(null,"head"),zy.domAPI=k(),zy.insertStyleElement=N(),w()(Uy.A,zy),Uy.A&&Uy.A.locals&&Uy.A.locals;class Gy extends J.PureComponent{constructor(...e){super(...e),this._onSelectTab=e=>{const{changeSelectedTab:t}=this.props,n=(0,ut.q3)(e);if(!n)throw new Error("Attempted to change to a tab that does not exist.");t(n)},this._onClickSidebarButton=()=>{const{selectedTab:e,isSidebarOpen:t,changeSidebarOpenState:n}=this.props;n(e,!t)}}render(){const{visibleTabs:e,selectedTab:t,isSidebarOpen:n}=this.props,r=null!==xy(t);return J.createElement("div",{className:"Details"},J.createElement("div",{className:"Details-top-bar"},J.createElement(mg,{selectedTabSlug:t,visibleTabs:e,onSelectTab:this._onSelectTab}),r?J.createElement(de,{id:n?"Details--close-sidebar-button":"Details--open-sidebar-button",attrs:{title:!0},vars:{isSidebarOpen:n}},J.createElement("button",{className:ug()("sidebar-open-close-button","photon-button","photon-button-ghost",{"sidebar-open-close-button-isopen":n,"sidebar-open-close-button-isclosed":!n}),title:n?"Close the sidebar":"Open the sidebar",type:"button",onClick:this._onClickSidebarButton})):null),J.createElement(de,{id:"Details--error-boundary-message",attrs:{message:!0}},J.createElement(sg,{key:t,message:"Uh oh, some unknown error happened in this panel"},{calltree:J.createElement(pb,null),"flame-graph":J.createElement(Yv,null),"stack-chart":J.createElement(tv,null),"marker-chart":J.createElement(hv,null),"marker-table":J.createElement(Ib,null),"network-chart":J.createElement(Iv,null),"js-tracer":J.createElement(hy,null)}[t])),J.createElement(Ny,null),J.createElement(Oy,null))}}const Wy=at({mapStateToProps:e=>({visibleTabs:Pd.getUsefulTabs(e),selectedTab:Do(e),isSidebarOpen:qs(e)}),mapDispatchToProps:{changeSelectedTab:im,changeSidebarOpenState:um},component:Gy});var Hy=n(6830),Vy={};Vy.styleTagTransform=M(),Vy.setAttributes=B(),Vy.insert=T().bind(null,"head"),Vy.domAPI=k(),Vy.insertStyleElement=N(),w()(Hy.A,Vy),Hy.A&&Hy.A.locals&&Hy.A.locals;const jy=at({mapStateToProps:e=>({selectedTab:Do(e),isSidebarOpen:qs(e)}),mapDispatchToProps:{invalidatePanelLayout:hm},component:function({selectedTab:e,isSidebarOpen:t,invalidatePanelLayout:n}){const r=xy(e);return J.createElement(cg(),{customClassName:"DetailsContainer",percentage:!0,secondaryInitialSize:20,onDragEnd:n},J.createElement(Wy,null),r&&t?J.createElement(r,null):null)}});function $y(e,t){return{type:"SOURCE_CODE_LOADING_BEGIN_URL",file:e,url:t}}function Ky(e){return{type:"SOURCE_CODE_LOADING_BEGIN_BROWSER_CONNECTION",file:e}}function Yy(e,t){return{type:"SOURCE_CODE_LOADING_SUCCESS",file:e,code:t}}function qy(e,t){return{type:"SOURCE_CODE_LOADING_ERROR",file:e,errors:t}}function Zy(e,t){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_URL",nativeSymbolKey:e,url:t}}function Xy(e){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_BROWSER_CONNECTION",nativeSymbolKey:e}}function Jy(e,t){return{type:"ASSEMBLY_CODE_LOADING_SUCCESS",nativeSymbolKey:e,instructions:t}}function Qy(e,t){return{type:"ASSEMBLY_CODE_LOADING_ERROR",nativeSymbolKey:e,errors:t}}class ew{constructor(e){this._uint8Array=void 0,this._bufferView=void 0,this._position=0,this._asciiDecoder=new TextDecoder("ascii",{fatal:!0}),this._uint8Array=new Uint8Array(e),this._bufferView=new DataView(e)}readString(e){const t=this.readBuffer(e),n=t.indexOf(0);return-1===n?this._asciiDecoder.decode(t):this._asciiDecoder.decode(t.subarray(0,n))}readBuffer(e){const t=this._uint8Array.subarray(this.position(),this.position()+e);return this.seekBy(e),t}seekBy(e){this._position+=e}seekTo(e){this._position=e}peekUint32(){return this._bufferView.getUint32(this.position(),!0)}position(){return this._position}size(){return this._bufferView.byteLength}}function tw(e,t){const n=parseInt(e,t);if(isNaN(n))throw new Error("Parsing number failed");return n}function nw(e,t){return""===e?null:tw(e,t)}class rw{static parse(e){let t=new Uint8Array(e);const n=[],r=new TextDecoder("utf-8",{fatal:!0});for(;t.length>0;){const e=t.indexOf(32);if(-1===e)throw new Error("Expected space character");const o=tw(r.decode(t.subarray(0,e)),10),a=r.decode(t.subarray(0,o)).match(/^\d+ ([^=]+)=(.*)\n$/);if(null===a)throw new Error("Invalid PAX header data format.");const i=a[1];let s=a[2];0===s.length?s=null:/^\d+$/.test(s)&&(s=tw(s,10));const l={name:i,value:s};n.push(l),t=t.subarray(o)}return new rw(n)}constructor(e){this._fields=void 0,this._fields=e}applyHeader(e){for(const t of this._fields){let n=t.name;const r=t.value;"path"===n?(n="name",void 0!==e.namePrefix&&delete e.namePrefix):"linkpath"===n&&(n="linkname"),null===r?delete e[n]:e[n]=r}}}class ow{constructor(e){this._reader=void 0,this._globalPaxHeader=null,this._reader=new ew(e)}hasNext(){return this._reader.position()+4<this._reader.size()&&0!==this._reader.peekUint32()}next(){return this._readNextFile()}_readNextFile(){const e=this._reader,t=e.position();let n=e.readString(100);const r=e.readString(8),o=nw(e.readString(8),8),a=nw(e.readString(8),8),i=tw(e.readString(12),8),s=nw(e.readString(12),8),l=nw(e.readString(8),10),c=e.readString(1),d=e.readString(100),u=e.readString(6);let h=null,p=null,m=null,f=null,g=null,A=null;u.indexOf("ustar")>-1&&(h=e.readString(2),p=e.readString(32),m=e.readString(32),f=nw(e.readString(8),10),g=nw(e.readString(8),10),A=e.readString(155),A.length>0&&(n=A+"/"+n));const b=t+512,C=b+(1+(i-1|511));if(e.seekTo(b),"g"===c)return this._globalPaxHeader=rw.parse(e.readBuffer(i)),e.seekTo(C),this._readNextFile();if("x"===c){const t=rw.parse(e.readBuffer(i));e.seekTo(C);const n=this._readNextFile();return t.applyHeader(n),n}const v="0"===c||""===c||"7"===c?e.readBuffer(i):null;e.seekTo(C);const y={name:n,type:c,buffer:v,mode:r,uid:o,gid:a,size:i,mtime:s,checksum:l,linkname:d,ustarFormat:u,version:h,uname:p,gname:m,devmajor:f,devminor:g,namePrefix:A};return null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(y),y}}async function aw(e,t,n,r,o){const a=[];try{const n=await r.queryBrowserSymbolicationApi(e,t);try{const e=JSON.parse(n);if(!e.error)return{type:"SUCCESS",convertedResponse:o(e)};a.push({type:"BROWSER_API_ERROR",apiErrorMessage:e.error})}catch(e){a.push({type:"BROWSER_API_MALFORMED_RESPONSE",errorMessage:e.toString()})}}catch(e){a.push({type:"BROWSER_CONNECTION_ERROR",browserConnectionErrorMessage:e.toString()})}if(null!==n){const i=n+e;try{const e=await r.fetchUrlResponse(i,t),n=await e.text();try{const e=JSON.parse(n);if(!e.error)return{type:"SUCCESS",convertedResponse:o(e)};a.push({type:"SYMBOL_SERVER_API_ERROR",apiErrorMessage:e.error})}catch(e){a.push({type:"SYMBOL_SERVER_API_MALFORMED_RESPONSE",errorMessage:e.toString()})}}catch(e){a.push({type:"NETWORK_ERROR",url:i,networkErrorMessage:e.toString()})}}return{type:"ERROR",errors:a}}class iw{constructor(e,t){this._browserConnection=void 0,this._callbacks=void 0,this._browserConnection=e,this._callbacks=t}async fetchUrlResponse(e,t){this._callbacks.onBeginUrlRequest(e);const n=void 0!==t?{body:t,method:"POST",mode:"cors",credentials:"omit"}:e.startsWith("/")?{}:{credentials:"omit"},r=await fetch(e,n);if(200!==r.status)throw new Error(`The request to ${e} returned HTTP status ${r.status}`);return r}async queryBrowserSymbolicationApi(e,t){const n=this._browserConnection;if(null===n)throw new Error("No connection to the browser.");return this._callbacks.onBeginBrowserConnectionQuery(),n.querySymbolicationApi(e,t)}}function sw(e){if(!("source"in e)||"string"!=typeof e.source)throw new Error('No string "source" property on API response');return e.source}class lw extends J.PureComponent{constructor(...e){super(...e),this._archiveCache=new Map}componentDidMount(){this._triggerSourceLoadingIfNeeded()}componentDidUpdate(){this._triggerSourceLoadingIfNeeded()}_triggerSourceLoadingIfNeeded(){const{sourceViewFile:e,sourceViewCode:t}=this.props;e&&!t&&this._fetchSourceForFile(e)}async _fetchSourceForFile(e){const{beginLoadingSourceCodeFromUrl:t,beginLoadingSourceCodeFromBrowserConnection:n,finishLoadingSourceCode:r,failLoadingSourceCode:o,symbolServerUrl:a,profile:i,browserConnection:s}=this.props,l=null!==i?(0,bn.$7)(i,e):null,c=new iw(s,{onBeginUrlRequest:n=>{t(e,n)},onBeginBrowserConnectionQuery:()=>{n(e)}}),d=await async function(e,t,n,r,o){const a=[];if(null!==n){const r=function(e){return qr(e)}(t)?t:null,{debugName:i,breakpadId:s,address:l}=n,c=await aw("/source/v1",JSON.stringify({debugName:i,debugId:s,moduleOffset:`0x${l.toString(16)}`,file:e}),r,o,sw);switch(c.type){case"SUCCESS":return{type:"SUCCESS",source:c.convertedResponse};case"ERROR":a.push(...c.errors);break;default:throw(0,ut.lC)(c.type)}}const i=(0,mC.o)(e),s=(0,mC.J)(i);switch(s.type){case"CORS_ENABLED_SINGLE_FILE":{const{url:e}=s;try{const t=await o.fetchUrlResponse(e);return{type:"SUCCESS",source:await t.text()}}catch(t){a.push({type:"NETWORK_ERROR",url:e,networkErrorMessage:t.toString()})}break}case"CORS_ENABLED_ARCHIVE":{const{archiveUrl:e,pathInArchive:t}=s;let n=r.get(e);void 0===n&&(n=(async()=>{const t=await o.fetchUrlResponse(e),n=new Uint8Array(await t.arrayBuffer());return dc(n)?cc(n):n})(),r.set(e,n));try{const r=await n,o=new ow(r.buffer),i=new TextDecoder;for(;o.hasNext();){const e=o.next();if(e.name===t&&null!==e.buffer)return{type:"SUCCESS",source:i.decode(e.buffer)}}a.push({type:"NOT_PRESENT_IN_ARCHIVE",url:e,pathInArchive:t})}catch(t){a.push({type:"ARCHIVE_PARSING_ERROR",url:e,parsingErrorMessage:t.toString()})}break}case"NO_KNOWN_CORS_URL":a.push({type:"NO_KNOWN_CORS_URL"});break;default:throw(0,ut.lC)(s.type)}return{type:"ERROR",errors:a}}(e,a,l,this._archiveCache,c);switch(d.type){case"SUCCESS":r(e,d.source);break;case"ERROR":o(e,d.errors);break;default:throw(0,ut.lC)(d.type)}}render(){return null}}const cw=at({mapStateToProps:e=>({sourceViewFile:xo(e),sourceViewCode:su(e),symbolServerUrl:ma(e),profile:mi(e),browserConnection:nl(e)}),mapDispatchToProps:{beginLoadingSourceCodeFromUrl:$y,beginLoadingSourceCodeFromBrowserConnection:Ky,finishLoadingSourceCode:Yy,failLoadingSourceCode:qy},component:lw});function dw(e){if(!e.startAddress)throw new Error("Missing startAddress field in asm response");if(!e.instructions)throw new Error("Missing instructions field in asm response");if(!Array.isArray(e.instructions))throw new Error("The instructions field in asm response is not an array");const{startAddress:t,instructions:n}=e,r=parseInt(t,16);if(isNaN(r))throw new Error("Invalid startAddress value in asm response");return n.map((e=>{if(!Array.isArray(e))throw new Error("Invalid instruction data (not an array)");if(e.length<2)throw new Error("Invalid instruction data (< 2 elements)");const[t,n]=e;if("number"!=typeof t)throw new Error("Invalid instruction offset");if("string"!=typeof n)throw new Error("Invalid instruction decodedString value");return{address:r+t,decodedString:n}}))}class uw extends J.PureComponent{componentDidMount(){this._triggerAssemblyLoadingIfNeeded()}componentDidUpdate(){this._triggerAssemblyLoadingIfNeeded()}_triggerAssemblyLoadingIfNeeded(){const{assemblyViewIsOpen:e,assemblyViewNativeSymbol:t,assemblyViewCode:n}=this.props;e&&t&&!n&&this._fetchAssemblyForNativeSymbol(t)}async _fetchAssemblyForNativeSymbol(e){const{beginLoadingAssemblyCodeFromUrl:t,beginLoadingAssemblyCodeFromBrowserConnection:n,finishLoadingAssemblyCode:r,failLoadingAssemblyCode:o,symbolServerUrl:a,profile:i,browserConnection:s}=this.props;if(null===i)return;const l=i.libs[e.libIndex],{debugName:c,breakpadId:d}=l,u=`${c}/${d}/${e.address.toString(16)}`,h=new iw(s,{onBeginUrlRequest:e=>{t(u,e)},onBeginBrowserConnectionQuery:()=>{n(u)}}),p=await async function(e,t,n,r){const o=function(e){return qr(e)}(n)?n:null,{debugName:a,breakpadId:i,name:s,codeId:l}=t,{address:c}=e,d=await aw("/asm/v1",JSON.stringify({debugName:a,debugId:i,name:s,codeId:l,startAddress:`0x${c.toString(16)}`,size:`0x${e.functionSize.toString(16)}`,continueUntilFunctionEnd:!e.functionSizeIsKnown}),o,r,dw);switch(d.type){case"SUCCESS":return{type:"SUCCESS",instructions:d.convertedResponse};case"ERROR":return{type:"ERROR",errors:d.errors};default:throw(0,ut.lC)(d.type)}}(e,l,a,h);switch(p.type){case"SUCCESS":r(u,p.instructions);break;case"ERROR":o(u,p.errors);break;default:throw(0,ut.lC)(p.type)}}render(){return null}}const hw=at({mapStateToProps:e=>({assemblyViewNativeSymbol:Bo(e),assemblyViewCode:du(e),assemblyViewIsOpen:So(e),symbolServerUrl:ma(e),profile:mi(e),browserConnection:nl(e)}),mapDispatchToProps:{beginLoadingAssemblyCodeFromUrl:Zy,beginLoadingAssemblyCodeFromBrowserConnection:Xy,finishLoadingAssemblyCode:Jy,failLoadingAssemblyCode:Qy},component:uw});var pw=n(135),mw={};mw.styleTagTransform=M(),mw.setAttributes=B(),mw.insert=T().bind(null,"head"),mw.domAPI=k(),mw.insertStyleElement=N(),w()(pw.A,mw),pw.A&&pw.A.locals&&pw.A.locals;const fw=()=>J.createElement("div",{className:"codeViewHeader"},J.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn total",title:"The “total” sample count includes a summary of every sample where this\nline was observed to be on the stack. This includes the time where the\nline was actually running, and the time spent in the callers from this\nline."},"Total"),J.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn self",title:"The “self” sample count only includes the samples where the line was\nthe end of the stack. If this line called into other functions,\nthen the “other” functions’ counts are not included. The “self” count is useful\nfor understanding where time was actually spent in a program."},"Self"),J.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn source"}));let gw=null;class Aw extends J.PureComponent{constructor(...e){super(...e),this._ref=J.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Tu(e.totalLineHits)??Tu(this.props.timings.totalLineHits);void 0!==t&&this._scrollToLine(t-5)}_scrollToLine(e){this._editor&&this._editor.scrollToLine(e)}_getMaxLineNumber(){const{sourceCode:e,timings:t}=this.props;let n=e.split("\n").length;return n<=1&&(n=Math.max(1,...t.totalLineHits.keys())+10),n}_getSourceCodeOrFallback(){const{sourceCode:e}=this.props;return""!==e?e:"\n".repeat(this._getMaxLineNumber())}render(){return J.createElement("div",{className:"sourceView codeView"},J.createElement(fw,null),J.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===gw&&(gw=Promise.all([n.e(874),n.e(280),n.e(171)]).then(n.bind(n,3171))),(async()=>{const e=(0,ut.Nn)(gw),t=await e,n=this._ref.current;if(!n)return;const{SourceViewEditor:r}=t,o=new r(this._getSourceCodeOrFallback(),this.props.filePath,this.props.timings,n);this._editor=o,this._scrollToHotSpot(this.props.hotSpotTimings)})()}componentDidUpdate(e){if(!this._editor)return;this.props.filePath!==e.filePath&&this._editor.updateLanguageForFilePath(this.props.filePath);let t=!1;(this.props.sourceCode!==e.sourceCode||""===this.props.sourceCode&&""===e.sourceCode&&this.props.timings!==e.timings)&&(this._editor.setContents(this._getSourceCodeOrFallback()),t=!0),(t||this.props.scrollToHotSpotGeneration!==e.scrollToHotSpotGeneration)&&this._scrollToHotSpot(this.props.hotSpotTimings),this.props.timings!==e.timings&&this._editor.setTimings(this.props.timings)}}const bw=()=>J.createElement("div",{className:"codeViewHeader"},J.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn total",title:"The “total” sample count includes a summary of every sample where this\nline was observed to be on the stack. This includes the time where the\nline was actually running, and the time spent in the callers from this\nline."},"Total"),J.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn self",title:"The “self” sample count only includes the samples where the line was\nthe end of the stack. If this line called into other functions,\nthen the “other” functions’ counts are not included. The “self” count is useful\nfor understanding where time was actually spent in a program."},"Self"),J.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn assembly"}));let Cw=null;class vw extends J.PureComponent{constructor(...e){super(...e),this._ref=J.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Tu(e.totalAddressHits)??Tu(this.props.timings.totalAddressHits);void 0!==t&&this._scrollToAddressWithSpaceOnTop(t,5)}_scrollToAddressWithSpaceOnTop(e,t){this._editor&&this._editor.scrollToAddressWithSpaceOnTop(e,t)}_getAssemblyCodeOrFallback(){const{assemblyCode:e}=this.props;if(0!==e.length)return e;const{timings:t,nativeSymbol:n}=this.props,r=[...t.totalAddressHits.keys()];return null===n||t.totalAddressHits.has(n.address)||r.push(n.address),r.sort(((e,t)=>e-t)),r.map((e=>({address:e,decodedString:""})))}render(){return J.createElement("div",{className:"assemblyView codeView"},J.createElement(bw,null),J.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===Cw&&(Cw=Promise.all([n.e(874),n.e(136)]).then(n.bind(n,136))),(async()=>{const e=(0,ut.Nn)(Cw),t=await e,n=this._ref.current;if(!n)return;const{AssemblyViewEditor:r}=t,o=new r(this._getAssemblyCodeOrFallback(),this.props.nativeSymbol,this.props.timings,n);this._editor=o,this._scrollToHotSpot(this.props.hotSpotTimings)})()}componentDidUpdate(e){if(!this._editor)return;let t=!1;(this.props.assemblyCode!==e.assemblyCode||0===this.props.assemblyCode.length&&0===e.assemblyCode.length&&this.props.timings!==e.timings)&&(this._editor.setContents(this._getAssemblyCodeOrFallback()),t=!0),(t||this.props.scrollToHotSpotGeneration!==e.scrollToHotSpotGeneration)&&this._scrollToHotSpot(this.props.hotSpotTimings),this.props.timings!==e.timings&&this._editor.setTimings(this.props.timings)}}class yw extends J.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.props.assemblyViewIsOpen?this.props.closeAssemblyView():this.props.openAssemblyView()}}render(){const{assemblyViewIsOpen:e}=this.props;return e?J.createElement(de,{id:"AssemblyView--hide-button",attrs:{title:!0}},J.createElement("button",{className:ug()("bottom-assembly-button","photon-button","photon-button-ghost","photon-button-ghost--checked"),title:"Hide the assembly view",type:"button",onClick:this._onClick})):J.createElement(de,{id:"AssemblyView--show-button",attrs:{title:!0}},J.createElement("button",{className:ug()("bottom-assembly-button","photon-button","photon-button-ghost"),title:"Show the assembly view",type:"button",onClick:this._onClick}))}}const ww=at({mapStateToProps:e=>({assemblyViewIsOpen:So(e)}),mapDispatchToProps:{openAssemblyView:np,closeAssemblyView:rp},component:yw});function Ew({source:e}){switch(e.type){case"URL":{const{url:t}=e;let n;try{n=new URL(t).host}catch(e){n=t}return J.createElement(de,{id:"SourceView--loading-url",vars:{host:n}},J.createElement("div",{className:"codeLoadingOverlay"},`Waiting for ${n}…`))}case"BROWSER_CONNECTION":return J.createElement(de,{id:"SourceView--loading-browser-connection"},J.createElement("div",{className:"codeLoadingOverlay"},"Waiting for browser…"));default:throw(0,ut.lC)(e.type)}}function kw({errors:e}){return J.createElement("ul",{className:"codeErrorOverlay"},e.map(((e,t)=>{switch(e.type){case"NO_KNOWN_CORS_URL":return J.createElement(de,{key:t,id:"SourceView--no-known-cors-url"},J.createElement("li",null,"No known cross-origin-accessible URL."));case"NETWORK_ERROR":{const{url:n,networkErrorMessage:r}=e;return J.createElement(de,{key:t,id:"SourceView--network-error-when-obtaining-source",vars:{url:n,networkErrorMessage:r}},J.createElement("li",null,`There was a network error when fetching the URL ${n}: ${r}`))}case"BROWSER_CONNECTION_ERROR":{const{browserConnectionErrorMessage:n}=e;return J.createElement(de,{key:t,id:"SourceView--browser-connection-error-when-obtaining-source",vars:{browserConnectionErrorMessage:n}},J.createElement("li",null,`Could not query the browser’s symbolication API: ${n}`))}case"BROWSER_API_ERROR":{const{apiErrorMessage:t}=e;return J.createElement(de,{id:"SourceView--browser-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},J.createElement("li",null,`The browser’s symbolication API returned an error: ${t}`))}case"SYMBOL_SERVER_API_ERROR":{const{apiErrorMessage:t}=e;return J.createElement(de,{id:"SourceView--local-symbol-server-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},J.createElement("li",null,`The local symbol server’s symbolication API returned an error: ${t}`))}case"BROWSER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return J.createElement(de,{id:"SourceView--browser-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},J.createElement("li",null,`The browser’s symbolication API returned a malformed response: ${t}`))}case"SYMBOL_SERVER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return J.createElement(de,{id:"SourceView--local-symbol-server-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},J.createElement("li",null,`The local symbol server’s symbolication API returned a malformed response: ${t}`))}case"NOT_PRESENT_IN_ARCHIVE":{const{url:t,pathInArchive:n}=e;return J.createElement(de,{id:"SourceView--not-in-archive-error-when-obtaining-source",vars:{url:t,pathInArchive:n}},J.createElement("li",null,`The file ${n} was not found in the archive from ${t}.`))}case"ARCHIVE_PARSING_ERROR":{const{url:t,parsingErrorMessage:n}=e;return J.createElement(de,{id:"SourceView--archive-parsing-error-when-obtaining-source",vars:{url:t,parsingErrorMessage:n}},J.createElement("li",null,`The archive at ${t} could not be parsed: ${n}`))}default:throw(0,ut.lC)(e.type)}})))}var xw=n(8785),Tw={};function Sw({errors:e}){return J.createElement("div",{className:"sourceCodeErrorOverlay"},J.createElement("div",null,J.createElement(de,{id:"BottomBox--source-code-not-available-title"},J.createElement("h3",null,"Source code not available")),J.createElement(de,{id:"SourceView--source-not-available-text",elems:{a:J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"})}},J.createElement("p",null,"See",J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"},"issue #3741"),"for supported scenarios and planned improvements.")),J.createElement(kw,{errors:e})))}function Bw({errors:e}){return J.createElement("div",{className:"assemblyCodeErrorOverlay"},J.createElement("div",null,J.createElement(de,{id:"BottomBox--assembly-code-not-available-title"},J.createElement("h3",null,"Assembly code not available")),J.createElement(de,{id:"BottomBox--assembly-code-not-available-text",elems:{a:J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"})}},J.createElement("p",null,"See",J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"},"issue #4520"),"for supported scenarios and planned improvements.")),J.createElement(kw,{errors:e})))}Tw.styleTagTransform=M(),Tw.setAttributes=B(),Tw.insert=T().bind(null,"head"),Tw.domAPI=k(),Tw.insertStyleElement=N(),w()(xw.A,Tw),xw.A&&xw.A.locals&&xw.A.locals;class Iw extends J.PureComponent{constructor(...e){super(...e),this._sourceView=J.createRef(),this._assemblyView=J.createRef(),this._onClickCloseButton=()=>{this.props.closeBottomBox()}}render(){const{sourceViewFile:e,sourceViewCode:t,globalLineTimings:n,disableOverscan:r,sourceViewScrollGeneration:o,selectedCallNodeLineTimings:a,assemblyViewIsOpen:i,assemblyViewScrollGeneration:s,assemblyViewNativeSymbol:l,assemblyViewCode:c,globalAddressTimings:d,selectedCallNodeAddressTimings:u}=this.props,h=t&&"AVAILABLE"===t.type?t.code:"",p=null!==e?(0,mC.o)(e).path:null,m=c&&"AVAILABLE"===c.type?c.instructions:[],f=J.createElement("div",{className:"bottom-box-header-trailing-buttons"},J.createElement(ww,null),J.createElement(de,{id:"SourceView--close-button",attrs:{title:!0}},J.createElement("button",{className:ug()("bottom-close-button","photon-button","photon-button-ghost"),title:"Close the source view",type:"button",onClick:this._onClickCloseButton})));return J.createElement("div",{className:"bottom-box"},J.createElement(cg(),{customClassName:"bottom-box",percentage:!0},J.createElement("div",{className:"bottom-box-pane"},J.createElement("div",{className:"bottom-box-bar"},J.createElement("h3",{className:"bottom-box-title"},p??"(no source file)"),i?null:f),J.createElement("div",{className:"bottom-sourceview-wrapper"},null!==e?J.createElement(Aw,{disableOverscan:r,timings:n,sourceCode:h,filePath:p,scrollToHotSpotGeneration:o,hotSpotTimings:a,ref:this._sourceView}):null,void 0!==t&&"LOADING"===t.type?J.createElement(Ew,{source:t.source}):null,void 0!==t&&"ERROR"===t.type?J.createElement(Sw,{errors:t.errors}):null)),i?J.createElement("div",{className:"bottom-box-pane"},J.createElement("div",{className:"bottom-box-bar"},J.createElement("h3",{className:"bottom-box-title"},null!==l?l.name:"(no native symbol)"),f),J.createElement("div",{className:"bottom-assemblyview-wrapper"},null!==l?J.createElement(vw,{disableOverscan:r,timings:d,assemblyCode:m,nativeSymbol:l,scrollToHotSpotGeneration:s,hotSpotTimings:u,ref:this._assemblyView}):null,void 0!==c&&"LOADING"===c.type?J.createElement(Ew,{source:c.source}):null,void 0!==c&&"ERROR"===c.type?J.createElement(Bw,{errors:(g=c.errors,g.map((e=>e)))}):null)):null));var g}}const _w=at({mapStateToProps:e=>({sourceViewFile:xo(e),sourceViewCode:su(e),globalLineTimings:Pd.getSourceViewLineTimings(e),selectedCallNodeLineTimings:Md.getSourceViewLineTimings(e),sourceViewScrollGeneration:To(e),assemblyViewNativeSymbol:Bo(e),assemblyViewCode:du(e),globalAddressTimings:Pd.getAssemblyViewAddressTimings(e),selectedCallNodeAddressTimings:Md.getAssemblyViewAddressTimings(e),assemblyViewScrollGeneration:Io(e),assemblyViewIsOpen:So(e),disableOverscan:hi(e).isModifying}),mapDispatchToProps:{closeBottomBox:op},component:Iw});var Nw=n(1652),Pw={};Pw.styleTagTransform=M(),Pw.setAttributes=B(),Pw.insert=T().bind(null,"head"),Pw.domAPI=k(),Pw.insertStyleElement=N(),w()(Nw.A,Pw),Nw.A&&Nw.A.locals&&Nw.A.locals;class Mw extends J.PureComponent{constructor(...e){super(...e),this._handleClick=(e,t)=>{this.props.changeTabFilter(t.id)}}renderTabSelectorMenuContents(){const{sortedPageData:e,tabFilter:t}=this.props;return e&&0!==e.length?J.createElement(J.Fragment,null,J.createElement(Vg,{onClick:this._handleClick,data:{id:null},attributes:{className:ug()("tabSelectorMenuItem",{checkable:!0,checked:null===t}),"aria-checked":null===t?"false":"true"}},J.createElement(de,{id:"TabSelectorMenu--all-tabs-and-windows"},"All tabs and windows")),e.map((({tabID:e,pageData:n})=>J.createElement(Vg,{key:e,onClick:this._handleClick,data:{id:e},attributes:{className:ug()("tabSelectorMenuItem",{checkable:!0,checked:t===e}),"aria-checked":t===e?"false":"true"}},J.createElement(pA,{iconUrl:n.favicon}),n.hostname)))):null}render(){return J.createElement(bb,{id:"TabSelectorMenu",className:"TabSelectorMenu"},this.renderTabSelectorMenuContents())}}const Fw=at({mapStateToProps:e=>({tabFilter:qo(e),sortedPageData:ks(e)}),mapDispatchToProps:{changeTabFilter:am},component:Mw});var Rw=n(4821),Dw={};Dw.styleTagTransform=M(),Dw.setAttributes=B(),Dw.insert=T().bind(null,"head"),Dw.domAPI=k(),Dw.insertStyleElement=N(),w()(Rw.A,Dw),Rw.A&&Rw.A.locals&&Rw.A.locals;class Lw extends J.PureComponent{constructor(...e){super(...e),this._getItemsWithFirstElement=Lt()(((e,t)=>[e,...t]),{limit:1}),this._showTabSelectorMenu=e=>{if(this.props.items.length>0||this.props.uncommittedItem)return;const t=e.currentTarget.getBoundingClientRect();zg({data:null,id:"TabSelectorMenu",position:{x:t.left,y:t.bottom},target:e.target})}}render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o,rootRange:a,filterPageDataForActiveTab:i,pageDataByTabID:s,tabFilter:l,profileTimelineUnit:c}=this.props;let d;if(i)d=J.createElement(J.Fragment,null,i.favicon?J.createElement(pA,{iconUrl:i.favicon}):null,J.createElement("span",{title:i.origin},i.hostname," (",ln(a.end-a.start,c),")"));else if(s&&s.size>0){const e=null!==l?s.get(l):null,n=e?J.createElement(J.Fragment,null,e.favicon?J.createElement(pA,{iconUrl:e.favicon}):null,J.createElement("span",{title:e.origin},e.hostname," (",ln(a.end-a.start,c),")")):J.createElement(de,{id:"ProfileFilterNavigator--full-range-with-duration",vars:{fullRangeDuration:ln(a.end-a.start,c)}},"Full Range");d=0!==t.length||r?J.createElement("span",{className:ug()("filterNavigatorBarItemContent","profileFilterNavigator--tab-selector")},n):J.createElement("button",{type:"button",onClick:this._showTabSelectorMenu,className:ug()("filterNavigatorBarItemContent","profileFilterNavigator--tab-selector")},n)}else d=J.createElement(de,{id:"ProfileFilterNavigator--full-range-with-duration",vars:{fullRangeDuration:ln(a.end-a.start,c)}},"Full Range");const u=this._getItemsWithFirstElement(d,t);return J.createElement(J.Fragment,null,J.createElement(cb,{className:e,items:u,selectedItem:n,uncommittedItem:r,onPop:o}),s&&s.size>0?J.createElement(Fw,null):null)}}const Ow=at({mapStateToProps:e=>{const t=ci(e),n=hi(e),r=si(e),o=n.hasSelection?ln(n.selectionEnd-n.selectionStart,r):void 0,a=xs(e),i=Es(e),s=qo(e),l=ni(e);return{className:"profileFilterNavigator",items:t,selectedItem:t.length,uncommittedItem:o,filterPageDataForActiveTab:a,pageDataByTabID:i,tabFilter:s,rootRange:l,profileTimelineUnit:r}},mapDispatchToProps:{onPop:$h},component:Lw});var Uw=n(4620),zw={};zw.styleTagTransform=M(),zw.setAttributes=B(),zw.insert=T().bind(null,"head"),zw.domAPI=k(),zw.insertStyleElement=N(),w()(Uw.A,zw),Uw.A&&Uw.A.locals&&Uw.A.locals;var Gw=n(218),Ww={};Ww.styleTagTransform=M(),Ww.setAttributes=B(),Ww.insert=T().bind(null,"head"),Ww.domAPI=k(),Ww.insertStyleElement=N(),w()(Gw.A,Ww),Gw.A&&Gw.A.locals&&Gw.A.locals;class Hw extends J.PureComponent{constructor(...e){super(...e),this.closeTimeout=null,this.state={open:!1,isClosing:!1,openGeneration:0},this._onArrowPanelClick=e=>{"arrowPanelArrow"!==e.target.className&&e.stopPropagation()}}open(){this.state.open||this.setState({open:!0})}close(){this.setState((e=>{if(!e.open)return null;const t=e.openGeneration+1;return clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(this._onCloseAnimationFinish(t),400),{open:!1,isClosing:!0,openGeneration:t}}))}_onCloseAnimationFinish(e){return()=>{this.setState((t=>t.openGeneration===e?{isClosing:!1}:null))}}componentDidUpdate(e,t){!t.open&&this.state.open&&this.props.onOpen(),this.state.open||!t.isClosing||this.state.isClosing||this.props.onClose()}componentWillUnmount(){clearTimeout(this.closeTimeout)}render(){const{className:e,children:t}=this.props,{open:n,isClosing:r}=this.state;return n||r?J.createElement("div",{className:"arrowPanelAnchor"},J.createElement("div",{className:ug()("arrowPanel",{open:n},e),onClick:this._onArrowPanelClick},J.createElement("div",{className:"arrowPanelArrow"}),J.createElement("div",{className:"arrowPanelContent"},t))):null}}var Vw=n(3062),jw={};jw.styleTagTransform=M(),jw.setAttributes=B(),jw.insert=T().bind(null,"head"),jw.domAPI=k(),jw.insertStyleElement=N(),w()(Vw.A,jw),Vw.A&&Vw.A.locals&&Vw.A.locals;class $w extends J.PureComponent{constructor(e){super(e),this._panel=null,this._buttonRef=J.createRef(),this._wrapperRef=J.createRef(),this._onPanelOpen=()=>{this.setState({open:!0}),this.props.onPanelOpen&&this.props.onPanelOpen()},this._onPanelClose=()=>{this.setState({open:!1}),this.isFocusWithin()&&this.focus(),this.props.onPanelClose&&this.props.onPanelClose()},this._takePanelRef=e=>{this._panel=e},this._onWindowClick=()=>{this.closePanel()},this._onButtonClick=()=>{this.state.open||setTimeout((()=>this.openPanel()))},this._onKeyDown=e=>{"Escape"===e.key&&this.closePanel()},this.state={open:!!e.initialOpen}}componentDidMount(){window.addEventListener("click",this._onWindowClick),window.addEventListener("keydown",this._onKeyDown),this.state.open&&this.openPanel()}componentWillUnmount(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("click",this._onWindowClick)}openPanel(){this._panel&&this._panel.open()}closePanel(){this._panel&&this.state.open&&this._panel.close()}focus(){this._buttonRef.current&&this._buttonRef.current.focus()}isFocusWithin(){try{if(this._wrapperRef.current)return this._wrapperRef.current.matches(":focus-within")}catch{}return!1}render(){const{className:e,label:t,panelContent:n,panelClassName:r,buttonClassName:o,title:a}=this.props,{open:i}=this.state;return J.createElement("div",{className:ug()("buttonWithPanel",e,{open:i}),ref:this._wrapperRef},J.createElement("button",{type:"button",className:ug()("buttonWithPanelButton",o),"aria-expanded":String(i),title:i?null:a,onClick:this._onButtonClick,ref:this._buttonRef},t),J.createElement(Hw,{className:r,onOpen:this._onPanelOpen,onClose:this._onPanelClose,ref:this._takePanelRef},n))}}var Kw=n(6444),Yw={};Yw.styleTagTransform=M(),Yw.setAttributes=B(),Yw.insert=T().bind(null,"head"),Yw.domAPI=k(),Yw.insertStyleElement=N(),w()(Kw.A,Yw),Kw.A&&Kw.A.locals&&Kw.A.locals;class qw extends J.PureComponent{render(){const{profilerOverhead:e}=this.props,t=new Map;let n=0,r=0,o=0,a=0;const i=["Overhead","Cleaning","Counter","Interval","Lockings"],s={Overhead:"MenuButtons--metaOverheadStatistics-statkeys-overhead",Cleaning:"MenuButtons--metaOverheadStatistics-statkeys-cleaning",Counter:"MenuButtons--metaOverheadStatistics-statkeys-counter",Interval:"MenuButtons--metaOverheadStatistics-statkeys-interval",Lockings:"MenuButtons--metaOverheadStatistics-statkeys-lockings"};for(const s of e){const{statistics:e}=s;if(void 0===e)continue;const{samplingCount:l}=e;n+=e.overheadDurations*l,r+=e.overheadPercentage*l,o+=e.profiledDuration*l,a+=l;for(const n of i){const r=e["max"+n],o=e["mean"+n],a=e["min"+n];let i=t.get(n);void 0===i&&(i=new Zw,t.set(n,i)),i.accumulate(a,r,o,l)}}return t.size>0?J.createElement("details",null,J.createElement("summary",{className:"arrowPanelSubTitle"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-subtitle"},"Profiler overhead")),J.createElement("div",{className:"arrowPanelSection"},J.createElement("div",{className:"metaInfoGrid"},J.createElement("div",null),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-mean"},"Mean")),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-max"},"Max")),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-min"},"Min")),[...t].map((([e,t])=>J.createElement(J.Fragment,{key:e},J.createElement(de,{id:s[e],attrs:{title:!0}},J.createElement("div",null)),J.createElement("div",null,Zt(t.mean)),J.createElement("div",null,Zt(t.max)),J.createElement("div",null,Zt(t.min)))))),0!==n?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-overhead-duration"},"Overhead Durations:")),J.createElement("span",{className:"metaInfoValueRight"},Zt(n/a))):null,0!==r?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-overhead-percentage"},"Overhead Percentage:")),J.createElement("span",{className:"metaInfoValueRight"},Vt(r/a))):null,0!==o?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-profiled-duration"},"Profiled Duration:")),J.createElement("span",{className:"metaInfoValueRight"},Zt(o/a))):null)):null}}class Zw{constructor(){this._accumulatedMax=0,this._accumulatedMin=0,this._accumulatedMean=0,this._accumulatedWeight=0}accumulate(e,t,n,r){this._accumulatedWeight+=r,this._accumulatedMin+=e*r,this._accumulatedMax+=t*r,this._accumulatedMean+=n*r}get min(){return this._accumulatedMin/this._accumulatedWeight}get max(){return this._accumulatedMax/this._accumulatedWeight}get mean(){return this._accumulatedMean/this._accumulatedWeight}}var Xw=n(5617),Jw={};Jw.styleTagTransform=M(),Jw.setAttributes=B(),Jw.insert=T().bind(null,"head"),Jw.domAPI=k(),Jw.insertStyleElement=N(),w()(Xw.A,Jw),Xw.A&&Xw.A.locals&&Xw.A.locals;class Qw extends J.PureComponent{constructor(...e){super(...e),this.state={showsMoreInfo:!1},this._handleMoreInfoButtonClick=e=>{e.preventDefault(),this.setState((e=>({showsMoreInfo:!e.showsMoreInfo})))}}renderSymbolication(){const{profile:e,symbolicationStatus:t,resymbolicateProfile:n}=this.props,r=e.meta.symbolicated;if(!0===e.meta.symbolicationNotSupported)return null;switch(t){case"DONE":return J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),J.createElement(de,{id:r?"MenuButtons--metaInfo--profile-symbolicated":"MenuButtons--metaInfo--profile-not-symbolicated"})),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"}),J.createElement("button",{onClick:n,type:"button",className:"photon-button photon-button-micro"},J.createElement(de,{id:r?"MenuButtons--metaInfo--resymbolicate-profile":"MenuButtons--metaInfo--symbolicate-profile"}))));case"SYMBOLICATING":return J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),J.createElement(de,{id:r?"MenuButtons--metaInfo--attempting-resymbolicate":"MenuButtons--metaInfo--currently-symbolicating"}));default:throw(0,ut.lC)(t,"Unhandled SymbolicationStatus.")}}_renderMoreInfoSection(e){return J.createElement("div",{key:e.label},J.createElement("h2",{className:"metaInfoSubTitle"},e.label),J.createElement("div",{className:"metaInfoSection"},e.entries.map((({label:e,format:t,value:n})=>J.createElement("div",{className:"moreInfoRow",key:e},J.createElement("span",{className:"metaInfoWideLabel"},e),J.createElement("div",{className:"moreInfoValue"},Dn("moreInfo",t,n,Bn.M.withBackingArray([]))))))))}_renderMoreInfo(){return J.createElement("details",{className:"metaInfoRow",open:this.state.showsMoreInfo},J.createElement("summary",{className:"moreInfoSummary photon-button photon-button-default photon-button-micro",onClick:this._handleMoreInfoButtonClick},J.createElement(de,{id:this.state.showsMoreInfo?"MenuButtons--index--hide-moreInfo-button":"MenuButtons--index--show-moreInfo-button"},this.state.showsMoreInfo?"Show Less":"Show More")),J.createElement("div",{className:"moreInfoPart"},this.props.profileExtraInfo.map(this._renderMoreInfoSection)))}render(){const{meta:e,profilerOverhead:t}=this.props.profile,{configuration:n}=e,r=uo(e);let o=null;return e.physicalCPUs&&e.logicalCPUs?o=J.createElement(de,{id:"MenuButtons--metaInfo--physical-and-logical-cpu",vars:{physicalCPUs:e.physicalCPUs,logicalCPUs:e.logicalCPUs}}):e.physicalCPUs?o=J.createElement(de,{id:"MenuButtons--metaInfo--physical-cpu",vars:{physicalCPUs:e.physicalCPUs}}):e.logicalCPUs&&(o=J.createElement(de,{id:"MenuButtons--metaInfo--logical-cpu",vars:{logicalCPUs:e.logicalCPUs}})),J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoSection"},void 0!==e.profilingStartTime&&e.startTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--profiling-started"},"Recording started:")),tE(e.startTime+e.profilingStartTime)):null,void 0!==e.profilingStartTime&&e.profilingEndTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--profiling-session"},"Recording length:")),tn(e.profilingEndTime-e.profilingStartTime)):null,void 0===e.profilingStartTime&&e.startTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-process-started"},"Main process started:")),tE(e.startTime)):null,e.endTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-process-ended"},"Main process ended:")),tE(e.endTime)):null,e.interval?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--interval"},"Interval:")),tn(e.interval,4,1)):null,n?J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--buffer-capacity"},"Buffer capacity:")),Kt(8*n.capacity,0)),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration"},"Buffer duration:")),n.duration?J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration-seconds",vars:{configurationDuration:n.duration}},"{$configurationDuration} seconds"):J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration-unlimited"},"Unlimited")),J.createElement("div",{className:"metaInfoSection"},eE("MenuButtons--metaInfo-renderRowOfList-label-features",n.features),eE("MenuButtons--metaInfo-renderRowOfList-label-threads-filter",n.threads))):null,this.renderSymbolication()),J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--application"},"Application")),J.createElement("div",{className:"metaInfoSection"},e.product?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--name-and-version"},"Name and version:")),co(e)):null,e.profilingStartTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--application-uptime"},"Uptime:")),tn(e.profilingStartTime)):null,e.updateChannel?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--update-channel"},"Update channel:")),e.updateChannel):null,e.appBuildID?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--build-id"},"Build ID:")),e.sourceURL&&/^https?:\/\//i.test(e.sourceURL)?J.createElement("a",{href:e.sourceURL,title:e.sourceURL,target:"_blank",rel:"noopener noreferrer"},e.appBuildID):e.appBuildID):null,void 0!==e.debug?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--build-type"},"Build type:")),J.createElement(de,{id:e.debug?"MenuButtons--metaInfo--build-type-debug":"MenuButtons--metaInfo--build-type-opt"})):null,e.extensions?eE("MenuButtons--metaInfo-renderRowOfList-label-extensions",Array.from(e.extensions.name).sort()):null,e.arguments?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--arguments"},"Arguments:")),J.createElement("div",{className:"metaInfoLargeContent"},e.arguments)):null),J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--platform"},"Platform")),J.createElement("div",{className:"metaInfoSection"},e.device?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--device"},"Device:")),e.device):null,r?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--os"},"OS:")),r):null,e.abi?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--abi"},"ABI:")),e.abi):null,e.CPUName?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--cpu-model"},"CPU model:")),e.CPUName):null,o?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--cpu-cores"},"CPU cores:")),o):null,e.mainMemory?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-memory"},"Main memory:")),Kt(e.mainMemory)):null),e.visualMetrics?J.createElement(J.Fragment,null,J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--visual-metrics"},"Visual metrics")),J.createElement("div",{className:"metaInfoSection"},J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--speed-index"},"Speed Index:")),e.visualMetrics.SpeedIndex),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--perceptual-speed-index"},"Perceptual Speed Index:")),e.visualMetrics.PerceptualSpeedIndex),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--contentful-speed-Index"},"Contentful Speed Index:")),e.visualMetrics.ContentfulSpeedIndex))):null,t?J.createElement(qw,{profilerOverhead:t}):null,0!==this.props.profileExtraInfo.length?this._renderMoreInfo():null)}}function eE(e,t){return t.length?J.createElement("div",{className:"metaInfoRow metaInfoListRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:e})),J.createElement("ul",{className:"metaInfoList"},t.map((e=>J.createElement("li",{className:"metaInfoListItem",key:e},e))))):null}function tE(e){return new Date(e).toLocaleString(void 0,{month:"short",year:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"})}const nE=at({mapStateToProps:e=>({profile:fi(e),symbolicationStatus:ri(e),profileExtraInfo:Ps(e)}),mapDispatchToProps:{resymbolicateProfile:kp},component:Qw}),rE=`${In.HT}/compressed-store`,oE="application/vnd.firefox-profiler+json;version=1.0";class aE extends Error{constructor(...e){super(...e),this.name="UploadAbortedError"}}const iE=/^(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+$/;function sE(e){return iE.test(e)}function lE(e){return{type:"TOGGLE_CHECKED_SHARING_OPTION",slug:e}}function cE(e){return{type:"UPLOAD_COMPRESSION_STARTED",abortFunction:e}}function dE(){return{type:"UPLOAD_STARTED"}}function uE(e){return{type:"UPDATE_UPLOAD_PROGRESS",uploadProgress:e}}function hE(e){return{type:"UPLOAD_FAILED",error:e}}function pE(){return async(e,t)=>{try{(0,ml.H)({hitType:"event",eventCategory:"profile upload",eventAction:"start"});const n=t(),r=pa(n),o=Yd(n),{abortUpload:a,startUpload:i}=function(){const e=new XMLHttpRequest;let t=!1;return{abortUpload:()=>{t=!0,e.abort()},startUpload:(n,r)=>new Promise(((o,a)=>{t?a(new aE("The request was already aborted.")):(e.onload=()=>{413===e.status?a(new Error(_n.TN`
|
128
|
+
The profile size is too large.
|
129
|
+
You can try enabling some of the privacy features to trim its size down.
|
130
|
+
`)):e.status>=200&&e.status<=299?o(e.responseText):a(new Error(`xhr onload with status != 200, xhr.statusText: ${e.statusText}`))},e.onerror=()=>{console.error("There was an XHR network error in uploadBinaryProfileData()",e);let t="Unable to make a connection to publish the profile.";e.statusText&&(t+=` The error response was: ${e.statusText}`),a(new Error(t))},e.onabort=()=>{a(new aE("The error has been aborted by the user."))},e.upload.onprogress=e=>{r&&e.lengthComputable&&r(e.loaded/e.total)},e.open("POST",rE),e.setRequestHeader("Accept",oE),e.send(n))}))}}(),s=()=>{e({type:"UPLOAD_ABORTED"}),a()};e(cE(s));const l=Vd(n),c=await jd(n);if(o!==Yd(t()))return!1;e({type:"UPLOAD_STARTED"});const d=await i(c,(t=>{e(uE(t))})),u=function(e){if(sE(e)){const t=function(e){if(!sE(e))return console.error("The token is an invalid JWT token."),null;try{const t=function(e){const t=e.replace(/[-_]/g,(e=>{switch(e){case"-":return"+";case"_":return"/";default:throw new Error(`Unexpected match ${e}`)}}));return atob(t)}(e.split(".")[1]);return JSON.parse(t)}catch(t){return console.error(`We got an unexpected error when trying to decode the JWT token '${e}':`,t),null}}(e);if(!t)throw new Error("The JWT token that's been returned by the server is incorrect.");const{profileToken:n}=t;if(!n)throw new Error("The JWT token returned by the server doesn't contain a profile token.");return n}return e}(d);if(await async function(e,t,n,r){const o=ii(r),a=e=>({start:e.start-o,end:e.end-o}),i=pa(r),s=la(r);let l;const c=Gd(r);if(c){const{committedRanges:t,oldThreadIndexToNew:r}=n;l=s(fE(e,t,r,i,null))}else l=s(gE(e,i,null));const d=fi(r).meta,u=xs(r);try{await Qu({profileToken:e,jwtToken:t,publishedDate:new Date,name:i,originHostname:u?u.hostname:null,preset:null,meta:{product:d.product,abi:d.abi,platform:d.platform,toolkit:d.toolkit,misc:d.misc,oscpu:d.oscpu,updateChannel:d.updateChannel,appBuildID:d.appBuildID},urlPath:l,publishedRange:c&&c.shouldFilterToCommittedRange?a(c.shouldFilterToCommittedRange):a(li(r))})}catch(e){"InvalidStateError"===e.name?console.error(_n.dx`
|
131
|
+
A DOMException 'InvalidStateError' was thrown when storing the profile data to a local indexedDB.
|
132
|
+
Are you in private mode?
|
133
|
+
We'll ignore the error, but you won't be able to act on this profile's data in the future.
|
134
|
+
`):console.error("An error was thrown while storing the profile data to a local indexedDB.",e)}}(u,d===u?null:d,l,n),o!==Yd(t()))return!1;if(Gd(n)){const{committedRanges:t,oldThreadIndexToNew:o,profile:a}=l;await e(bE()),e(fE(u,t,o,r,n)),Fr((()=>{e(xp(a))}))}else{const t=go(n);e(gE(u,r,"unpublished"===t||"from-browser"===t||"from-post-message"===t?null:n))}(0,ml.H)({hitType:"event",eventCategory:"profile upload",eventAction:"succeeded"})}catch(t){return"UploadAbortedError"===t.name?(0,ml.H)({hitType:"event",eventCategory:"profile upload",eventAction:"aborted"}):(e(hE(t)),(0,ml.H)({hitType:"event",eventCategory:"profile upload",eventAction:"failed"})),!1}return!0}}function mE(){return{type:"UPLOAD_RESET"}}function fE(e,t,n,r,o){return{type:"SANITIZED_PROFILE_PUBLISHED",hash:e,committedRanges:t,oldThreadIndexToNew:n,profileName:r,prePublishedState:o}}function gE(e,t,n){return{type:"PROFILE_PUBLISHED",hash:e,profileName:t,prePublishedState:n}}function AE(){return async(e,t)=>{const n=(0,ut.Nn)(eu(t()),"Expected to find an original profile when reverting to it.");await e(bE()),e({type:"REVERT_TO_PRE_PUBLISHED_STATE",prePublishedState:n})}}function bE(){return e=>(e({type:"HIDE_STALE_PROFILE"}),new Promise((e=>{setTimeout(e,300)})))}class CE extends J.PureComponent{constructor(...e){super(...e),this.state={url:"",prevBlob:null}}static getDerivedStateFromProps(e,t){return e.blob===t.prevBlob?null:(t.prevBlob&&URL.revokeObjectURL(t.url),{url:URL.createObjectURL(e.blob),prevBlob:e.blob})}componentWillUnmount(){URL.revokeObjectURL(this.state.url)}render(){const{blob:e,children:t,...n}=this.props;return J.createElement("a",{href:this.state.url,...n},t)}}const vE=["B","kB","MB","GB","TB","PB","EB","ZB","YB"];var yE=n(1563),wE=n(3453),EE={};EE.styleTagTransform=M(),EE.setAttributes=B(),EE.insert=T().bind(null,"head"),EE.domAPI=k(),EE.insertStyleElement=N(),w()(wE.A,EE),wE.A&&wE.A.locals&&wE.A.locals;class kE extends J.PureComponent{constructor(...e){super(...e),this.state={compressError:null,prevCompressedPromise:null},this._toggles={includeHiddenThreads:()=>this.props.toggleCheckedSharingOptions("includeHiddenThreads"),includeAllTabs:()=>this.props.toggleCheckedSharingOptions("includeAllTabs"),includeFullTimeRange:()=>this.props.toggleCheckedSharingOptions("includeFullTimeRange"),includeScreenshots:()=>this.props.toggleCheckedSharingOptions("includeScreenshots"),includeUrls:()=>this.props.toggleCheckedSharingOptions("includeUrls"),includeExtension:()=>this.props.toggleCheckedSharingOptions("includeExtension"),includePreferenceValues:()=>this.props.toggleCheckedSharingOptions("includePreferenceValues"),includePrivateBrowsingData:()=>this.props.toggleCheckedSharingOptions("includePrivateBrowsingData")},this._onCompressError=e=>{this.setState({compressError:e})}}_renderCheckbox(e,t,n){const{checkedSharingOptions:r}=this.props,o=this._toggles[e];return J.createElement("label",{className:"photon-label menuButtonsPublishDataChoicesLabel"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-default",name:e,onChange:o,checked:r[e]}),J.createElement(de,{id:t}),n)}static getDerivedStateFromProps(e,t){return t.prevCompressedPromise!==e.sanitizedProfileDataPromise?{prevCompressedPromise:e.sanitizedProfileDataPromise,compressError:null}:null}_renderPublishPanel(){const{shouldShowPreferenceOption:e,profileContainsPrivateBrowsingInformation:t,sanitizedProfileDataPromise:n,attemptToPublish:r,downloadFileName:o,shouldSanitizeByDefault:a,isRepublish:i,timelineTrackOrganizationType:s}=this.props,l="active-tab"===s;return J.createElement("div",{"data-testid":"MenuButtonsPublish-container"},J.createElement("form",{className:"menuButtonsPublishContent photon-body-10",onSubmit:r},J.createElement("h1",{className:"menuButtonsPublishTitle photon-title-40"},i?J.createElement(de,{id:"MenuButtons--publish--reupload-performance-profile"},"Re-upload Performance Profile"):J.createElement(de,{id:"MenuButtons--publish--share-performance-profile"},"Share Performance Profile")),J.createElement("p",{className:"menuButtonsPublishInfoDescription"},J.createElement(de,{id:"MenuButtons--publish--info-description"},"Upload your profile and make it accessible to anyone with the link.")," ",a?J.createElement(de,{id:"MenuButtons--publish--info-description-default"},"By default, your personal data is removed."):J.createElement(de,{id:"MenuButtons--publish--info-description-firefox-nightly2"},"This profile is from Firefox Nightly, so by default most information is included.")),J.createElement("h3",{className:"photon-title-10"},J.createElement(de,{id:"MenuButtons--publish--include-additional-data"},"Include additional data that may be identifiable")),J.createElement("div",{className:"menuButtonsPublishDataChoices"},l?this._renderCheckbox("includeAllTabs","MenuButtons--publish--renderCheckbox-label-include-other-tabs"):this._renderCheckbox("includeHiddenThreads","MenuButtons--publish--renderCheckbox-label-hidden-threads"),this._renderCheckbox("includeFullTimeRange","MenuButtons--publish--renderCheckbox-label-hidden-time"),this._renderCheckbox("includeScreenshots","MenuButtons--publish--renderCheckbox-label-include-screenshots"),this._renderCheckbox("includeUrls","MenuButtons--publish--renderCheckbox-label-resource"),this._renderCheckbox("includeExtension","MenuButtons--publish--renderCheckbox-label-extension"),e?this._renderCheckbox("includePreferenceValues","MenuButtons--publish--renderCheckbox-label-preference"):null,t?this._renderCheckbox("includePrivateBrowsingData","MenuButtons--publish--renderCheckbox-label-private-browsing",J.createElement(de,{id:"MenuButtons--publish--renderCheckbox-label-private-browsing-warning-image",attrs:{title:!0}},J.createElement("img",{className:"menuButtonsPublishDataChoicesIndicator",src:yE,title:"This profile contains private browsing data"}))):null),this.state.compressError?J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"MenuButtons--publish--error-while-compressing"},"Error while compressing, try unchecking some checkboxes to reduce the profile size."))):null,J.createElement("div",{className:"menuButtonsPublishButtons"},J.createElement(TE,{downloadFileName:o,sanitizedProfileDataPromise:n,onCompressError:this._onCompressError}),J.createElement("button",{type:"submit",className:"photon-button photon-button-primary menuButtonsPublishButton menuButtonsPublishButtonsUpload",disabled:this.state.compressError},J.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgUpload"}),J.createElement(de,{id:"MenuButtons--publish--button-upload"},"Upload")))))}_renderUploadPanel(){const{uploadProgress:e,uploadProgressString:t,abortFunction:n,downloadFileName:r,sanitizedProfileDataPromise:o}=this.props;return J.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},J.createElement("div",{className:"menuButtonsPublishUploadTop"},J.createElement("div",{className:"menuButtonsPublishUploadTitle photon-title-20"},J.createElement(de,{id:"MenuButtons--publish--upload-title"},"Uploading profile…")),J.createElement("div",{className:"menuButtonsPublishUploadPercentage"},t),J.createElement("div",{className:"menuButtonsPublishUploadBar"},J.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*e+"%"}}))),J.createElement("div",{className:"menuButtonsPublishButtons"},J.createElement(TE,{downloadFileName:r,sanitizedProfileDataPromise:o,onCompressError:this._onCompressError}),J.createElement("button",{type:"button",className:"photon-button photon-button-default menuButtonsPublishButton menuButtonsPublishButtonsCancelUpload",onClick:n},J.createElement(de,{id:"MenuButtons--publish--cancel-upload"},"Cancel Upload"))))}_renderErrorPanel(){const{uploadError:e,resetUploadState:t}=this.props;let n="There was an unknown error when trying to upload the profile.";return e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?n=e.message:"string"==typeof e&&(n=e),J.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"MenuButtons--publish--message-something-went-wrong"},"Uh oh, something went wrong when uploading the profile.")),J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:t},J.createElement(de,{id:"MenuButtons--publish--message-try-again"},"Try again"))),J.createElement("div",{className:"menuButtonsPublishError"},n))}render(){const{uploadPhase:e}=this.props;switch(e){case"error":return this._renderErrorPanel();case"local":case"uploaded":return this._renderPublishPanel();case"uploading":case"compressing":return this._renderUploadPanel();default:throw(0,ut.lC)(e)}}}const xE=at({mapStateToProps:e=>({profile:fi(e),rootRange:ni(e),shouldShowPreferenceOption:$i(e),profileContainsPrivateBrowsingInformation:Bs(e),checkedSharingOptions:Ud(e),downloadFileName:zd(e),sanitizedProfileDataPromise:jd(e),uploadPhase:Kd(e),uploadProgress:qd(e),uploadProgressString:Xd(e),uploadError:Zd(e),shouldSanitizeByDefault:Qd(e),abortFunction:Jd(e),timelineTrackOrganizationType:No(e).type}),mapDispatchToProps:{toggleCheckedSharingOptions:lE,attemptToPublish:pE,resetUploadState:mE},component:kE});class TE extends J.PureComponent{constructor(...e){super(...e),this._isMounted=!1,this.state={sanitizedProfileData:null,prevPromise:null,error:null}}static getDerivedStateFromProps(e,t){return t.prevPromise!==e.sanitizedProfileDataPromise?{sanitizedProfileData:null,prevPromise:e.sanitizedProfileDataPromise,error:null}:null}_unwrapPromise(){const{sanitizedProfileDataPromise:e}=this.props;e.then((e=>{this._isMounted&&this.setState({sanitizedProfileData:e,error:null})}),(e=>{this._isMounted&&(this.props.onCompressError(e),console.error("Error while compressing the profile data",e),this.setState({sanitizedProfileData:null,error:e}))}))}componentDidMount(){this._isMounted=!0,this._unwrapPromise()}componentDidUpdate(e){e.sanitizedProfileDataPromise!==this.props.sanitizedProfileDataPromise&&this._unwrapPromise()}componentWillUnmount(){this._isMounted=!1}render(){const{downloadFileName:e}=this.props,{sanitizedProfileData:t,error:n}=this.state,r="photon-button menuButtonsPublishButton menuButtonsPublishButtonsDownload";if(t){const n=new Blob([t],{type:"application/octet-binary"});return J.createElement(CE,{blob:n,download:`${e}.gz`,className:r},J.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgDownload"}),J.createElement(de,{id:"MenuButtons--publish--download"},"Download")," ",J.createElement("span",{className:"menuButtonsDownloadSize"},"(",(e=>{if(!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);const t=e<0;if(t&&(e=-e),e<1)return(t?"-":"")+e+" B";const n=Math.min(Math.floor(Math.log10(e)/3),vE.length-1);return(t?"-":"")+Number((e/Math.pow(1e3,n)).toPrecision(3))+" "+vE[n]})(n.size),")"))}return n?J.createElement("button",{type:"button",className:r,disabled:!0},J.createElement(de,{id:"MenuButtons--publish--download"},"Download")):J.createElement("button",{type:"button",className:ug()(r,"menuButtonsPublishButtonDisabled")},J.createElement(de,{id:"MenuButtons--publish--compressing"},"Compressing…"))}}var SE=n(9131),BE={};BE.styleTagTransform=M(),BE.setAttributes=B(),BE.insert=T().bind(null,"head"),BE.domAPI=k(),BE.insertStyleElement=N(),w()(SE.A,BE),SE.A&&SE.A.locals&&SE.A.locals;class IE extends J.PureComponent{constructor(...e){super(...e),this._permalinkTextField=void 0,this._takePermalinkTextFieldRef=e=>{this._permalinkTextField=e},this.state={fullUrl:"",shortUrl:""},this._shortenUrlAndFocusTextFieldOnCompletion=async()=>{const{fullUrl:e}=this.state,t=window.location.href;if(e!==t){const e=this.props.injectedUrlShortener||Zc;try{const n=await e(t);(0,Eg.flushSync)((()=>{this.setState({shortUrl:n,fullUrl:t})}))}catch(e){console.warn("Unable to shorten the URL.",e),(0,Eg.flushSync)((()=>{this.setState({shortUrl:t,fullUrl:""})}))}}const n=this._permalinkTextField;n&&(n.focus(),n.select())},this._onPermalinkPanelClose=()=>{this._permalinkTextField&&this._permalinkTextField.blur()}}render(){return J.createElement(de,{id:"MenuButtons--permalink--button",attrs:{label:!0}},J.createElement($w,{buttonClassName:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsPermalinkButtonButton",label:"Permalink",initialOpen:this.props.isNewlyPublished,onPanelOpen:this._shortenUrlAndFocusTextFieldOnCompletion,onPanelClose:this._onPermalinkPanelClose,panelClassName:"menuButtonsPermalinkPanel",panelContent:J.createElement("input",{"data-testid":"MenuButtonsPermalink-input",type:"text",className:"menuButtonsPermalinkTextField photon-input",value:this.state.shortUrl,readOnly:"readOnly",ref:this._takePermalinkTextFieldRef})}))}}var _E=n(3951),NE={};NE.styleTagTransform=M(),NE.setAttributes=B(),NE.insert=T().bind(null,"head"),NE.domAPI=k(),NE.insertStyleElement=N(),w()(_E.A,NE),_E.A&&_E.A.locals&&_E.A.locals;class PE extends J.PureComponent{constructor(...e){super(...e),this._hasBeenDeleted=!1,this._componentDeleteButtonRef=J.createRef(),this.onCloseConfirmDialog=()=>{this._hasBeenDeleted&&this.props.onCloseSuccessMessage(),this.props.onCloseConfirmDialog()},this.onProfileDeleted=()=>{this._hasBeenDeleted=!0},this.onProfileDeleteCanceled=()=>{this._componentDeleteButtonRef.current&&this._componentDeleteButtonRef.current.closePanel()}}render(){const{profileName:e,smallProfileName:t,buttonClassName:n,jwtToken:r,profileToken:o}=this.props;return J.createElement(de,{id:"ProfileDeleteButton--delete-button",attrs:{label:!0,title:!0},vars:{smallProfileName:t}},J.createElement($w,{ref:this._componentDeleteButtonRef,buttonClassName:ug()(n,"photon-button","photon-button-default"),panelClassName:"profileDeletePanel",label:"Delete",title:`Click here to delete the profile ${t}`,onPanelOpen:this.props.onOpenConfirmDialog,onPanelClose:this.onCloseConfirmDialog,panelContent:J.createElement(ME,{profileName:e,profileToken:o,jwtToken:r,onProfileDeleted:this.onProfileDeleted,onProfileDeleteCanceled:this.onProfileDeleteCanceled})}))}}class ME extends J.PureComponent{constructor(...e){super(...e),this.state={error:null,status:"idle"},this.onConfirmDeletion=async()=>{const{profileToken:e,jwtToken:t}=this.props;this.setState({status:"working"});try{if(!t)throw new Error("We have no JWT token for this profile, so we can't delete it. This shouldn't happen.");await async function({profileToken:e,jwtToken:t}){const n=`${In.HT}/profile/${e}`,r=await fetch(n,{method:"DELETE",headers:{Accept:oE,"Content-Type":"application/json",Authorization:`Bearer ${t}`}});if(!r.ok)throw new Error(`An error happened while deleting the profile with the token "${e}": ${r.statusText} (${r.status})`)}({profileToken:e,jwtToken:t}),await async function(e){return(await Ju()).delete(Zu,e)}(e),this.setState({status:"deleted"}),this.props.onProfileDeleted()}catch(e){this.setState({error:e,status:"idle"}),console.error("An error was triggered when we tried to delete a profile.",e)}}}preventClick(e){e.preventDefault()}_renderPossibleErrorMessage(){const{error:e}=this.state;return e?J.createElement(de,{id:"ProfileDeletePanel--delete-error",elems:{a:J.createElement("a",{href:"#",title:e.message,onClick:this.preventClick})}},J.createElement("p",{className:"profileDeleteButtonError"},"An error happened while deleting this profile."," ",J.createElement("a",null,"Hover to know more."))):null}render(){const{profileName:e}=this.props,{status:t}=this.state;return"deleted"===t?J.createElement(FE,null):J.createElement("div",{className:"confirmDialog"},J.createElement(de,{id:"ProfileDeletePanel--dialog-title",vars:{profileName:e}},J.createElement("h2",{className:"confirmDialogTitle"},"Delete ",e)),J.createElement("div",{className:"confirmDialogContent"},J.createElement(de,{id:"ProfileDeletePanel--dialog-confirmation-question"},"Are you sure you want to delete uploaded data for this profile? Links that were previously shared will no longer work."),this._renderPossibleErrorMessage()),J.createElement("div",{className:"confirmDialogButtons"},J.createElement(de,{id:"ProfileDeletePanel--dialog-cancel-button",attrs:{value:!0}},J.createElement("input",{type:"button",className:"photon-button photon-button-default",value:"Cancel",disabled:"working"===t,onClick:this.props.onProfileDeleteCanceled})),J.createElement(de,{id:"working"===t?"ProfileDeletePanel--dialog-deleting-button":"ProfileDeletePanel--dialog-delete-button",attrs:{value:!0}},J.createElement("input",{type:"button",className:"photon-button photon-button-destructive",value:"working"===t?"Deleting…":"Delete",disabled:"working"===t,onClick:this.onConfirmDeletion}))))}}function FE(e){return J.createElement(de,{id:"ProfileDeletePanel--message-success"},J.createElement("p",{className:"profileDeleteButtonSuccess"},"The uploaded data was successfully deleted."))}class RE extends J.PureComponent{constructor(...e){super(...e),this.state={metaInfoPanelState:"initial"},this._deleteThisProfileOnServer=()=>{this.setState({metaInfoPanelState:"delete-confirmation"})},this._onProfileDeleted=()=>{this.props.profileRemotelyDeleted()},this._resetMetaInfoState=()=>{this.setState({metaInfoPanelState:"initial"})},this._changeTimelineTrackOrganizationToFull=()=>{this.props.changeTimelineTrackOrganization({type:"full"})}}componentDidMount(){this.props.dismissNewlyPublished()}_getUploadedStatus(e,t){switch(e){case"public":case"compare":return"uploaded";case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"local":return"local";case"from-url":return qr(t)?"local":"uploaded";case"none":case"uploaded-recordings":throw new Error(`The datasource ${e} shouldn't happen here.`);default:throw(0,ut.lC)(e)}}_renderUploadedProfileActions(e){return J.createElement("div",{className:"profileInfoUploadedActions"},J.createElement("div",{className:"profileInfoUploadedDate"},J.createElement("span",{className:"profileInfoUploadedLabel"},J.createElement(de,{id:"MenuButtons--index--profile-info-uploaded-label"},"Uploaded:")),e.publishedDate.toLocaleString(void 0,{month:"short",year:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"})),J.createElement("div",{className:"profileInfoUploadedActionsButtons"},J.createElement("button",{type:"button",className:"photon-button photon-button-default photon-button-micro",onClick:this._deleteThisProfileOnServer,title:null===e.jwtToken?"This profile cannot be deleted because we lack the authorization information.":null,disabled:null===e.jwtToken},J.createElement(de,{id:"MenuButtons--index--profile-info-uploaded-actions"},"Delete"))))}_renderMetaInfoPanel(){const{currentProfileUploadedInformation:e}=this.props,{metaInfoPanelState:t}=this.state;switch(t){case"initial":return J.createElement(J.Fragment,null,J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--index--metaInfo-subtitle"},"Profile Information")),e?this._renderUploadedProfileActions(e):null,J.createElement(nE,null));case"delete-confirmation":if(e){const{name:t,profileToken:n,jwtToken:r}=e;if(!r)throw new Error("We're in the state \"delete-confirmation\" but there's no JWT token for this profile, this should not happen.");const o=n.slice(0,6),a=t||`Profile #${o}`;return J.createElement(ME,{profileName:a,profileToken:n,jwtToken:r,onProfileDeleted:this._onProfileDeleted,onProfileDeleteCanceled:this._resetMetaInfoState})}return J.createElement(FE,null);default:throw(0,ut.lC)(t)}}_renderMetaInfoButton(){return J.createElement(de,{id:"MenuButtons--index--metaInfo-button",attrs:{label:!0}},J.createElement($w,{buttonClassName:"menuButtonsButton menuButtonsMetaInfoButtonButton menuButtonsButton-hasIcon",label:"",onPanelClose:this._resetMetaInfoState,panelClassName:"metaInfoPanel",panelContent:this._renderMetaInfoPanel()}))}_renderFullViewButtonForActiveTab(){const{timelineTrackOrganization:e}=this.props;return"active-tab"!==e.type?null:J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertToFullView",onClick:this._changeTimelineTrackOrganizationToFull},J.createElement(de,{id:"MenuButtons--index--full-view"},"Full View"))}_renderPublishPanel(){const{uploadPhase:e,dataSource:t,abortFunction:n,profileUrl:r}=this.props;if("uploading"===e||"compressing"===e)return J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon menuButtonsShareButtonButton-uploading",onClick:n},J.createElement(de,{id:"MenuButtons--index--cancel-upload"},"Cancel Upload"));const o="uploaded"===this._getUploadedStatus(t,r),a="error"===e;let i="MenuButtons--index--share-upload";return o&&(i="MenuButtons--index--share-re-upload"),a&&(i="MenuButtons--index--share-error-uploading"),J.createElement(de,{id:i,attrs:{label:!0}},J.createElement($w,{buttonClassName:ug()("menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon",{menuButtonsShareButtonError:a}),panelClassName:"menuButtonsPublishPanel",label:"",panelContent:J.createElement(xE,{isRepublish:o})}))}_renderPermalink(){const{dataSource:e,isNewlyPublished:t,injectedUrlShortener:n,profileUrl:r}=this.props;return"uploaded"===this._getUploadedStatus(e,r)?J.createElement(IE,{isNewlyPublished:t,injectedUrlShortener:n}):null}_renderRevertProfile(){const{hasPrePublishedState:e,revertToPrePublishedState:t}=this.props;return e?J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertButton",onClick:t},J.createElement(de,{id:"MenuButtons--index--revert"},"Revert to Original Profile")):null}render(){return J.createElement(J.Fragment,null,this._renderFullViewButtonForActiveTab(),this._renderRevertProfile(),this._renderMetaInfoButton(),this._renderPublishPanel(),this._renderPermalink(),J.createElement("a",{href:"/docs/",target:"_blank",className:"menuButtonsButton menuButtonsButton-hasLeftBorder",title:"Open the documentation in a new window"},J.createElement(de,{id:"MenuButtons--index--docs"},"Docs"),J.createElement("i",{className:"open-in-new"})))}}const DE=at({mapStateToProps:e=>({rootRange:ni(e),dataSource:go(e),profileUrl:bo(e),isNewlyPublished:Qs(e),uploadPhase:Kd(e),hasPrePublishedState:tu(e),abortFunction:Jd(e),timelineTrackOrganization:No(e),currentProfileUploadedInformation:ll(e)}),mapDispatchToProps:{dismissNewlyPublished:Am,revertToPrePublishedState:AE,changeTimelineTrackOrganization:Ep,profileRemotelyDeleted:Sm},component:RE});class LE extends J.PureComponent{async updateCurrentProfileInformationState(){const{hash:e,setCurrentProfileUploadedInformation:t}=this.props,n=await eh(e);this.props.hash===e&&t(n||null)}componentDidMount(){this.updateCurrentProfileInformationState()}componentDidUpdate(){this.updateCurrentProfileInformationState()}render(){return null}}const OE=at({mapStateToProps:e=>({hash:Ao(e)}),mapDispatchToProps:{setCurrentProfileUploadedInformation:Tm},component:LE});var UE=n(1758),zE={};zE.styleTagTransform=M(),zE.setAttributes=B(),zE.insert=T().bind(null,"head"),zE.domAPI=k(),zE.insertStyleElement=N(),w()(UE.A,zE),UE.A&&UE.A.locals&&UE.A.locals;class GE extends J.PureComponent{render(){const{symbolicationStatus:e,waitingForLibs:t}=this.props;if("SYMBOLICATING"===e){if(t.size>0){const e=Array.from(t.values()).map((e=>e.debugName));return J.createElement("div",{className:"symbolicationStatusOverlay"},J.createElement("span",{className:"symbolicationStatusOverlayThrobber"}),`Waiting for symbols for ${n=e.length,1===n?"library":"libraries"} ${function(e){switch(e.length){case 0:return"";case 1:return e[0];default:return e.slice(0,e.length-1).join(", ")+" and "+e[e.length-1]}}(e)}...`)}return J.createElement("div",{className:"symbolicationStatusOverlay"},J.createElement("span",{className:"symbolicationStatusOverlayThrobber"}),"Symbolicating call stacks...")}var n;return J.createElement("div",{className:"symbolicationStatusOverlay hidden"})}}const WE=at({mapStateToProps:e=>({symbolicationStatus:ri(e),waitingForLibs:ei(e).waitingForLibs}),component:GE});var HE=n(1683),VE={};VE.styleTagTransform=M(),VE.setAttributes=B(),VE.insert=T().bind(null,"head"),VE.domAPI=k(),VE.insertStyleElement=N(),w()(HE.A,VE),HE.A&&HE.A.locals&&HE.A.locals;class jE extends J.PureComponent{constructor(...e){super(...e),this.state={focusedWithKey:null,focusGeneration:0},this.inputRef=J.createRef(),this.changeProfileNameIfChanged=e=>{const{changeProfileName:t,profileNameWithDefault:n}=this.props,r=e.currentTarget.value.trim();this.blurInput(),r!==n&&t(r||null)},this.blurOnEscapeOrEnter=e=>{switch(e.key){case"Escape":this.blurInput();break;case"Enter":this.changeProfileNameIfChanged(e)}},this.handleButtonFocus=()=>{this.setState({focusedWithKey:this.getKey()});const e=this.inputRef.current;e&&requestAnimationFrame((()=>{e.focus(),e.select()}))}}blurInput(){this.setState((e=>({focusedWithKey:null,focusGeneration:e.focusGeneration+1})))}getKey(){return`${this.props.profileNameWithDefault}-${this.state.focusGeneration}`}render(){const{focusedWithKey:e}=this.state,{profileNameWithDefault:t}=this.props,n=this.getKey(),r=e===n;return J.createElement(J.Fragment,null,J.createElement(de,{id:"ProfileName--edit-profile-name-button",attrs:{title:!0}},J.createElement("button",{type:"button",style:{display:r?"none":null},title:"Edit the profile name",className:"profileNameButton menuButtonsButton menuButtonsButton-hasRightBorder menuButtonsButton-hasIcon",onFocus:this.handleButtonFocus,onClick:this.handleButtonFocus},t)),J.createElement(de,{id:"ProfileName--edit-profile-name-input",attrs:{title:!0,"aria-label":!0}},J.createElement("input",{key:n,className:"profileNameInput",style:{display:r?null:"none"},defaultValue:t,"aria-label":"Profile name",title:"Edit the profile name",onBlur:this.changeProfileNameIfChanged,ref:this.inputRef,onKeyDown:this.blurOnEscapeOrEnter})))}}const $E=at({mapStateToProps:e=>({profileNameWithDefault:ha(e)}),mapDispatchToProps:{changeProfileName:Xh},component:jE});class KE extends J.PureComponent{constructor(...e){super(...e),this.handleUnload=e=>{e.preventDefault(),e.returnValue="Are you sure you want to close while uploading?"}}manageBeforeUnloadListener(){const{isUploading:e}=this.props;e?window.addEventListener("beforeunload",this.handleUnload):window.removeEventListener("beforeunload",this.handleUnload)}componentDidMount(){this.manageBeforeUnloadListener()}componentDidUpdate(){this.manageBeforeUnloadListener()}componentWillUnmount(){window.removeEventListener("beforeunload",this.handleUnload)}render(){return!1}}const YE=at({mapStateToProps:e=>({isUploading:"uploading"===Kd(e)}),component:KE});var qE=n(5944),ZE={};ZE.styleTagTransform=M(),ZE.setAttributes=B(),ZE.insert=T().bind(null,"head"),ZE.domAPI=k(),ZE.insertStyleElement=N(),w()(qE.A,ZE),qE.A&&qE.A.locals&&qE.A.locals;class XE extends J.PureComponent{constructor(...e){super(...e),this.state={isOpen:!1,focusAfterClosed:null},this._focusArea=J.createRef(),this._open=e=>{if(e.isOpen)return{};const t=document.activeElement;return this._trapFocus(),this._focus(),{isOpen:!0,focusAfterClosed:t}},this._close=e=>{const{focusAfterClosed:t,isOpen:n}=e;return n?(this._untrapFocus(),t&&requestAnimationFrame((()=>{t.focus()})),{isOpen:!1,focusAfterClosed:null}):{}},this._handleCloseClick=()=>{this.setState(this._close)},this._handleKeyPress=e=>{const t=(0,ut.au)(e.target);switch(e.key){case"?":if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||t.isContentEditable)return;this.setState((e=>e.isOpen?this._close(e):this._open(e)));break;case"Escape":this.setState(this._close)}},this._trapFocusHandler=e=>{const t=this._focusArea.current;t&&(t.contains((0,ut.au)(e.target))||t.focus())}}componentDidMount(){window.addEventListener("keydown",this._handleKeyPress)}_focus(){requestAnimationFrame((()=>{const e=this._focusArea.current;e&&e.focus()}))}componentWillUnmount(){window.removeEventListener("keydown",this._handleKeyPress),this._untrapFocus()}_trapFocus(){document.addEventListener("focus",this._trapFocusHandler,!0)}_untrapFocus(){document.removeEventListener("focus",this._trapFocusHandler,!0)}maybeRenderShortcuts(){return this.state.isOpen?J.createElement(J.Fragment,null,J.createElement("div",{className:"appKeyboardShortcutsHeader"},J.createElement("div",{className:"appKeyboardShortcutsHeaderTitle",id:"AppKeyboardShortcutsHeaderTitle"},"Keyboard shortcuts"),J.createElement("button",{type:"button",className:"appKeyboardShortcutsHeaderClose",onClick:this._handleCloseClick},"Close")),J.createElement("div",{className:"appKeyboardShortcutsContent"},J.createElement("div",{className:"appKeyboardShortcutsColumn"},J.createElement("h2",null,"Call Tree"),J.createElement(JE,{label:"Close call node",shortcut:"ArrowLeft"}),J.createElement(JE,{label:"Open call node",shortcut:"ArrowRight"}),J.createElement(JE,{label:"Open all child call nodes",shortcut:"*"}),J.createElement(JE,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),J.createElement("h2",null,"Flame Graph"),J.createElement(JE,{label:"Move view up",shortcut:"w"}),J.createElement(JE,{label:"Move view down",shortcut:"s"}),J.createElement(JE,{label:"Move selection up",shortcut:"ArrowUp"}),J.createElement(JE,{label:"Move selection down",shortcut:"ArrowDown"}),J.createElement(JE,{label:"Move selection left",shortcut:"ArrowLeft"}),J.createElement(JE,{label:"Move selection right",shortcut:"ArrowRight"}),J.createElement(JE,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),J.createElement("h2",null,"Marker Table"),J.createElement(JE,{label:"Copy marker label",shortcut:"ctrl,c",macShortcut:"cmd,c"})),J.createElement("div",{className:"appKeyboardShortcutsColumn"},J.createElement("h2",null,"Timeline"),J.createElement(JE,{label:"Select multiple threads",shortcut:"ctrl,click",macShortcut:"cmd,click"}),J.createElement("h2",null,"Call Tree Transforms"),J.createElement(JE,{label:"Merge function",shortcut:"m"}),J.createElement(JE,{label:"Merge node only",shortcut:"M"}),J.createElement(JE,{label:"Focus on function",shortcut:"f"}),J.createElement(JE,{label:"Focus on subtree only",shortcut:"F"}),J.createElement(JE,{label:"Collapse function",shortcut:"c"}),J.createElement(JE,{label:"Collapse library",shortcut:"C"}),J.createElement(JE,{label:"Drop samples with this function",shortcut:"d"})))):null}render(){const{wrapperClassName:e,children:t}=this.props,{isOpen:n}=this.state;return J.createElement(J.Fragment,null,J.createElement("div",{className:ug()(e,{appKeyboardShortcutsNoInteract:n})},t),J.createElement("div",{className:ug()({appKeyboardShortcuts:!0,open:n})},J.createElement("div",{className:"appKeyboardShortcutsBox",ref:this._focusArea,tabIndex:"0",role:"dialog","aria-modal":"true","aria-labelledby":"AppKeyboardShortcutsHeaderTitle"},this.maybeRenderShortcuts())))}}function JE(e){let t=e.shortcut;return e.macShortcut&&window.navigator.platform.includes("Mac")&&(t=e.macShortcut),J.createElement("div",{className:"appKeyboardShortcutsRow"},J.createElement("div",{className:"appKeyboardShortcutsLabel"},e.label),t.split(",").map(((e,t)=>J.createElement("kbd",{key:t,className:"appKeyboardShortcutsShortcut"},e))))}function QE(e){return{type:"CHANGE_SELECTED_ZIP_FILE",selectedZipFileIndex:e}}function ek(e){return{type:"CHANGE_EXPANDED_ZIP_FILES",expandedZipFileIndexes:e}}function tk(e,t=!1){return async(n,r)=>{const o=Gs(r()),a=o.path[e],i=o.file[e];if(!i)throw new Error("Attempted to load an archive that did not exist or was a directory.");n({type:"PROCESS_PROFILE_FROM_ZIP_FILE",pathInZipFile:a});try{const e=await Mc(await i.async("string"),a),o=Ds(r());o.pathInZipFile===a&&"PROCESS_PROFILE_FROM_ZIP_FILE"===o.phase&&await n(Ap(e,{pathInZipFile:a},t))}catch(e){console.error("Failed to process the profile in the archive with the following error:"),console.error(e),n({type:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",error:e})}}}function nk(e){return(t,n)=>{const r=Gs(n()).path.indexOf(e);return-1===r?(t(ok(e)),Promise.resolve()):t(tk(r))}}function rk(){return{type:"RETURN_TO_ZIP_FILE_LIST"}}function ok(e){return{type:"FILE_NOT_FOUND_IN_ZIP_FILE",pathInZipFile:e}}var ak=n(348),ik={};ik.styleTagTransform=M(),ik.setAttributes=B(),ik.insert=T().bind(null,"head"),ik.domAPI=k(),ik.insertStyleElement=N(),w()(ak.A,ik),ak.A&&ak.A.locals&&ak.A.locals;var sk=n(5605),lk={};lk.styleTagTransform=M(),lk.setAttributes=B(),lk.insert=T().bind(null,"head"),lk.domAPI=k(),lk.insertStyleElement=N(),w()(sk.A,lk),sk.A&&sk.A.locals&&sk.A.locals;class ck extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._takeCanvasRef=e=>this._canvas=e,this._resizeListener=()=>this.forceUpdate(),this._onClick=e=>{const t=this._canvas;if(t){const{rangeStart:n,rangeEnd:r,thread:o,interval:a}=this.props,i=t.getBoundingClientRect(),s=n+(e.pageX-i.left)/i.width*(r-n),l=(0,bn.cL)(o.samples,s,a);if(null===o.samples.stack[l])return;this.props.onSampleClick(e,l)}}}_renderCanvas(){const e=this._canvas;null!==e&&(0,Cn.l)("ThreadHeightGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){window.addEventListener("resize",this._resizeListener),this.forceUpdate()}componentWillUnmount(){window.removeEventListener("resize",this._resizeListener)}drawCanvas(e){const{thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,categories:i,stacksGrowFromCeiling:s,maxValue:l,heightFunc:c}=this.props,d=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1,u=e.getBoundingClientRect();e.width=Math.round(u.width*d),e.height=Math.round(u.height*d);const h=e.getContext("2d"),p=[o,a],m=p[1]-p[0],f=e.width/m,g=e.height/l,A=r*f,b=A<2?1.2:1,C=Math.max(.8,A*b),v=p[0]-C/f,y=p[1],w=(0,Rc.lV)(t.samples.time,v),E=(0,Rc.lV)(t.samples.time,y,w),k={height:[],xPos:[]},x={height:[],xPos:[]},T={height:[],xPos:[]},S=.25/f;let B=-1/0;for(let e=w;e<E;e++){const r=t.samples.time[e];if(r<B)continue;const o=c(e);if(null===o)continue;const a=o*g,s=(r-p[0])*f;let l;if(null!==n&&"SELECTED"===n[e])l=T;else{const n=(0,ut.Nn)(t.samples.stack[e],"A stack must exist for this sample, since a callNodeIndex exists.");l="Idle"===i[t.stackTable.category[n]].name?x:k}l.height.push(a),l.xPos.push(s),B=r+S}function I(t,n){if(0!==t.xPos.length){h.fillStyle=n;for(let n=0;n<t.height.length;n++){const r=t.height[n],o=s?0:e.height-r,a=t.xPos[n];h.fillRect(a,o,C,r)}}}I(k,_b.Gr),I(T,_b.Tn),I(x,"#c5e1fe")}render(){this._renderCanvas();const{className:e,trackName:t}=this.props;return J.createElement("div",{className:e},J.createElement("canvas",{className:ug()(`${this.props.className}Canvas`,"threadHeightGraphCanvas"),ref:this._takeCanvasRef,onClick:this._onClick},J.createElement("h2",null,"Stack Graph for ",t),J.createElement("p",null,"This graph charts the stack height of each sample.")))}}class dk extends J.PureComponent{constructor(...e){super(...e),this._heightFunction=e=>{const{callNodeInfo:t,sampleNonInvertedCallNodes:n}=this.props,r=n[e];return null===r?null:t.getNonInvertedCallNodeTable().depth[r]}}render(){const{className:e,thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,categories:s,trackName:l,onSampleClick:c}=this.props,d=i.getNonInvertedCallNodeTable();let u=0;for(let e=0;e<d.depth.length;e++)d.depth[e]>u&&(u=d.depth[e]);return J.createElement(ck,{heightFunc:this._heightFunction,maxValue:u,className:e,trackName:l,interval:r,thread:t,samplesSelectedStates:n,rangeStart:o,rangeEnd:a,categories:s,onSampleClick:c})}}class uk extends J.PureComponent{constructor(...e){super(...e),this._heightFunction=e=>{const{thread:t}=this.props,{samples:n}=t;return e>=n.length-1?0:(0,ut.Nn)(n.threadCPURatio)[e+1]||0}}render(){const{className:e,thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,categories:i,trackName:s,onSampleClick:l}=this.props;return J.createElement(ck,{heightFunc:this._heightFunction,maxValue:1,className:e,trackName:s,interval:r,thread:t,samplesSelectedStates:n,rangeStart:o,rangeEnd:a,categories:i,onSampleClick:l})}}var hk=Object.defineProperty,pk=(e,t,n)=>((e,t,n)=>t in e?hk(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),mk=new Map,fk=new WeakMap,gk=0;function Ak(e,t,n={},r=undefined){if(void 0===window.IntersectionObserver&&void 0!==r){const o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),()=>{}}const{id:o,observer:a,elements:i}=function(e){const t=function(e){return Object.keys(e).sort().filter((t=>void 0!==e[t])).map((t=>{return`${t}_${"root"===t?(n=e.root,n?(fk.has(n)||(gk+=1,fk.set(n,gk.toString())),fk.get(n)):"0"):e[t]}`;var n})).toString()}(e);let n=mk.get(t);if(!n){const r=new Map;let o;const a=new IntersectionObserver((t=>{t.forEach((t=>{var n;const a=t.isIntersecting&&o.some((e=>t.intersectionRatio>=e));e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=a),null==(n=r.get(t.target))||n.forEach((e=>{e(a,t)}))}))}),e);o=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:a,elements:r},mk.set(t,n)}return n}(n),s=i.get(e)||[];return i.has(e)||i.set(e,s),s.push(t),a.observe(e),function(){s.splice(s.indexOf(t),1),0===s.length&&(i.delete(e),a.unobserve(e)),0===i.size&&(a.disconnect(),mk.delete(o))}}var bk=class extends J.Component{constructor(e){super(e),pk(this,"node",null),pk(this,"_unobserveCb",null),pk(this,"handleNode",(e=>{this.node&&(this.unobserve(),e||this.props.triggerOnce||this.props.skip||this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=e||null,this.observeNode()})),pk(this,"handleChange",((e,t)=>{e&&this.props.triggerOnce&&this.unobserve(),function(e){return"function"!=typeof e.children}(this.props)||this.setState({inView:e,entry:t}),this.props.onChange&&this.props.onChange(e,t)})),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:o,fallbackInView:a}=this.props;this._unobserveCb=Ak(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:o},a)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if("function"==typeof e){const{inView:t,entry:n}=this.state;return e({inView:t,entry:n,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:o,rootMargin:a,onChange:i,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:u,...h}=this.props;return J.createElement(t||"div",{ref:this.handleNode,...h},e)}};class Ck extends J.PureComponent{render(){const{cpuRatio:e,timeRange:t}=this.props,n=`${Vt(e)} (average over ${Xt(t)})`;return J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"CPU:"),J.createElement("div",null,n))}}class vk extends J.PureComponent{render(){const{sampleIndex:e,rangeFilteredThread:t,categories:n,implementationFilter:r}=this.props,{samples:o,stackTable:a}=t,i=o.stack[e];if(null===i)return"No stack information";const s=a.category[i],l=a.subcategory[i],c=n[s].color;return J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"Category:"),J.createElement("div",null,J.createElement("span",{className:`colored-square category-color-${c}`}),(0,bn.LU)(n,s,l))),J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"Stack:")),J.createElement(FC,{maxStacks:20,stackIndex:i,thread:t,implementationFilter:r,categories:n}))}}class yk extends J.PureComponent{render(){const{cpuRatioInTimeRange:e,sampleIndex:t,rangeFilteredThread:n,categories:r,implementationFilter:o,zeroAt:a,profileTimelineUnit:i,interval:s}=this.props;let l=!1,c=null;if(null!==t){const{samples:e,stackTable:r}=n,o=e.time[t],d=e.stack[t];if(e.length>0&&r.length>1){const e=(0,bn.RM)((0,bn.dQ)(n,(0,ut.Nn)(d)),n);l=e.length>1||"(root)"!==e[0].funcName}c=ln(o-a,i,s/10)}return J.createElement(J.Fragment,null,null!==c?J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"Sampled at:"),J.createElement("div",null,c)):null,null===e?null:J.createElement(Ck,{cpuRatio:e.cpuRatio,timeRange:e.timeRange}),l&&null!==e?J.createElement(yC,null):null,l&&null!==t?J.createElement(vk,{sampleIndex:t,rangeFilteredThread:n,categories:r,implementationFilter:o}):null)}}var wk=n(7408),Ek={};Ek.styleTagTransform=M(),Ek.setAttributes=B(),Ek.insert=T().bind(null,"head"),Ek.domAPI=k(),Ek.insertStyleElement=N(),w()(wk.A,Ek),wk.A&&wk.A.locals&&wk.A.locals;class kk extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._takeCanvasRef=e=>this._canvas=e,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas;null!==e&&(0,Cn.l)("ThreadSampleGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){this._renderCanvas()}componentDidUpdate(){this._renderCanvas()}drawCanvas(e){const{thread:t,interval:n,rangeStart:r,rangeEnd:o,samplesSelectedStates:a,categories:i,width:s,height:l}=this.props,c=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1;e.width=Math.round(s*c),e.height=Math.round(l*c);const d=e.getContext("2d"),u=o-r,h=e.width/u,p=n*h,m=p<2?1.2:1,f=Math.max(.8,p*m),g=Math.min(f,10),A=r-f/h,b=o,C=(0,Rc.lV)(t.samples.time,A),v=(0,Rc.lV)(t.samples.time,b,C),y=[],w=[],E=[],k=.25/h;let x=-1/0;for(let e=C;e<v;e++){const n=t.samples.time[e];if(n<x)continue;const o=t.samples.stack[e];if(null===o)continue;const s=(n-r)*h-g/2;let l;l=null!==a&&"SELECTED"===a[e]?E:"Idle"===i[t.stackTable.category[o]].name?w:y,l.push(s),x=n+k}function T(t,n){if(0!==t.length){d.fillStyle=n;for(let n=0;n<t.length;n++){const r=0,o=t[n];d.fillRect(o,r,g,e.height)}}}T(y,_b.Gr),T(E,_b.Tn),T(w,"#c5e1fe")}render(){const{trackName:e}=this.props;return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:ug()(`${this.props.className}Canvas`,"threadSampleGraphCanvas"),ref:this._takeCanvasRef},J.createElement("h2",null,"Stack Graph for ",e),J.createElement("p",null,"This graph charts the stack height of each sample.")))}}class xk extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredPixelState:null,mouseX:0,mouseY:0},this._onClick=e=>{const t=this._getSampleAtMouseEvent(e);this.props.onSampleClick(e,t?.sample??null)},this._onMouseLeave=()=>{this.setState({hoveredPixelState:null})},this._onMouseMove=e=>{const t=e.currentTarget;if(!t)return;const n=t.getBoundingClientRect();this.setState({hoveredPixelState:this._getSampleAtMouseEvent(e),mouseX:e.pageX,mouseY:n.bottom-Hb})}}_getSampleAtMouseEvent(e){const t=e.currentTarget;if(!t)return null;const{rangeStart:n,rangeEnd:r,thread:o,interval:a}=this.props,i=t.getBoundingClientRect(),s=n+e.nativeEvent.offsetX/i.width*(r-n),l=r-n,c=a*(i.width/l),d=c<2?1.2:1,u=Math.max(.8,c*d),h=Math.min(u,10)/2/2/i.width*l,p=(0,bn.UI)(o.samples,s,h);return null===p||null===o.samples.stack[p]?null:{sample:p,cpuRatioInTimeRange:null}}render(){const{className:e,trackName:t,timelineType:n,categories:r,implementationFilter:o,thread:a,interval:i,rangeStart:s,rangeEnd:l,samplesSelectedStates:c,width:d,height:u,zeroAt:h,profileTimelineUnit:p}=this.props,{hoveredPixelState:m,mouseX:f,mouseY:g}=this.state;return J.createElement("div",{className:e,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave,onClick:this._onClick},J.createElement(kk,{className:e,trackName:t,interval:i,thread:a,rangeStart:s,rangeEnd:l,samplesSelectedStates:c,categories:r,width:d,height:u}),null===m?null:J.createElement(Vb,{mouseX:f,mouseY:g},J.createElement(yk,{sampleIndex:m.sample,cpuRatioInTimeRange:"cpu-category"===n?m.cpuRatioInTimeRange:null,rangeFilteredThread:a,categories:r,implementationFilter:o,zeroAt:h,profileTimelineUnit:p,interval:i})))}}const Tk=Av(xk);var Sk=n(6503),Bk={};Bk.styleTagTransform=M(),Bk.setAttributes=B(),Bk.insert=T().bind(null,"head"),Bk.domAPI=k(),Bk.insertStyleElement=N(),w()(Sk.A,Bk),Sk.A&&Sk.A.locals&&Sk.A.locals;const Ik=[3,2,2],_k=function(e,t){const n=new Float32Array(15);return n[7]=1,Rk(n,t),n}(0,Ik);class Nk{constructor(e,t,n){this.renderedComponentSettings=void 0,this.mutablePercentageBuffers=void 0,this.mutableFills=void 0,this.renderedComponentSettings=e,this.mutablePercentageBuffers=t,this.mutableFills=n}run(){this._accumulateSampleCategories();const e=this._accumulateUpperEdge().slice();for(const e of this.mutableFills)Rk(e.perPixelContribution,Ik);return{averageCPUPerPixel:e,upperGraphEdge:this._accumulateUpperEdge()}}_accumulateUpperEdge(){const{mutableFills:e}=this;{const{accumulatedUpperEdge:t,perPixelContribution:n}=e[0];for(let e=0;e<n.length;e++)t[e]=n[e]}let t=e[0].accumulatedUpperEdge;for(const{perPixelContribution:n,accumulatedUpperEdge:r}of e.slice(1)){for(let e=0;e<n.length;e++)r[e]=t[e]+n[e];t=r}return t}_accumulateSampleCategories(){const{fullThread:e,rangeFilteredThread:{samples:t,stackTable:n},interval:r,greyCategoryIndex:o,enableCPUUsage:a,sampleIndexOffset:i}=this.renderedComponentSettings;if(0===t.length)return;let s=t.time[0]-r,l=t.time[0];i>0&&(s=e.samples.time[i-1]);const{threadCPURatio:c}=t;for(let e=0;e<t.length-1;e++){const r=t.time[e+1],i=t.stack[e],d=null===i?o:n.category[i];let u=1,h=1;a&&c&&(u=c[e],h=c[e+1]),this._accumulateInCategory(d,e,s,l,r,u,h),s=l,l=r}const d=t.length-1,u=t.stack[d],h=null!==u?n.category[u]:o;let p=1,m=1;if(a&&c){p=c[d];const t=i+d+1;m=t<e.samples.length?(0,ut.Nn)(e.samples.threadCPURatio)[t]:p}this._accumulateInCategory(h,t.length-1,s,l,l+r,p,m)}_accumulateInCategory(e,t,n,r,o,a,i){const{rangeEnd:s,rangeStart:l,categoryDrawStyles:c}=this.renderedComponentSettings;if(r<l||r>=s)return;const d=c[e],u=this.mutablePercentageBuffers[e];"transparent"!==d.selectedFillStyle&&Mk(this._pickPercentageBuffer(u,t),this.renderedComponentSettings,n,r,o,a,i,l)}_pickPercentageBuffer(e,t){const{samplesSelectedStates:n}=this.renderedComponentSettings;if(!n)return e.selectedPercentageAtPixel;switch(n[t]){case"FILTERED_OUT_BY_TRANSFORM":return e.filteredOutByTransformPercentageAtPixel;case"FILTERED_OUT_BY_ACTIVE_TAB":return e.filteredOutByTabPercentageAtPixel;case"UNSELECTED_ORDERED_BEFORE_SELECTED":return e.beforeSelectedPercentageAtPixel;case"SELECTED":return e.selectedPercentageAtPixel;case"UNSELECTED_ORDERED_AFTER_SELECTED":return e.afterSelectedPercentageAtPixel;default:throw new Error("Unexpected samplesSelectedStates value")}}}class Pk{constructor(e,t,n,r){this.renderedComponentSettings=void 0,this.fills=void 0,this.averageCPUPerPixel=void 0,this.upperGraphEdge=void 0,this.renderedComponentSettings=e,this.fills=t,this.averageCPUPerPixel=n,this.upperGraphEdge=r}getSampleAndCpuRatioAtClick(e,t,n){const{rangeFilteredThread:{samples:r,stackTable:o},canvasPixelWidth:a,canvasPixelHeight:i}=this.renderedComponentSettings,{devicePixelRatio:s}=window,l=Math.floor(e*s),c=Math.floor(t*s);if(l<0||l>=a||c<0||c>=i)return null;const d=this._categoryAtDevicePixel(l,c),u=this._getSamplesAtTime(n),h=this._getCPURatioAtX(l,u);if(null===d)return null===h?null:{sample:null,cpuRatioInTimeRange:h};const{category:p,categoryLowerEdge:m,yPercentage:f}=d;let g=m;for(const{sample:e,contribution:t}of u){const n=r.stack[e];if(null===n){console.error(`Stack index was null for sample index ${e}, this shouldn't happen normally, please fix your source of data.`);continue}if(o.category[n]!==p)continue;const a=g+t;if(f<=a)return{sample:e,cpuRatioInTimeRange:h};g=a}return null}_getCPURatioAtX(e,t){const{rangeFilteredThread:{samples:n},interval:r}=this.renderedComponentSettings;if(0===t.length)return null;if(!n.threadCPURatio)return null;const o=this.averageCPUPerPixel[e];let a=0;for(const{sample:e}of t)a+=0===e?r:n.time[e]-n.time[e-1];return{cpuRatio:o,timeRange:a}}_categoryAtDevicePixel(e,t){const{canvasPixelHeight:n}=this.renderedComponentSettings,r=1-t/n;let o=null,a=0,i=0;for(const{category:t,accumulatedUpperEdge:n}of this.fills){const s=n[e];if(t!==o&&(o=t,a=i),s!==i){if(r<=s)return{category:t,categoryLowerEdge:a,yPercentage:r};i=s}}return null}_getSamplesAtTime(e){const{rangeStart:t,treeOrderSampleComparator:n,xPixelsPerMs:r}=this.renderedComponentSettings,o=(e-t)*r|0,[a,i]=this._getSampleRangeContributingToPixelWhenSmoothed(o),s=[];for(let e=a;e<i;e++){const t=this._getSmoothedContributionFromSampleToPixel(o,e);t>0&&s.push({sample:e,contribution:t})}return n&&s.sort(((e,t)=>{const r=e.sample,o=t.sample;return n(r,o)})),s}_getSampleRangeContributingToPixelWhenSmoothed(e){const{rangeFilteredThread:{samples:t},rangeStart:n,xPixelsPerMs:r}=this.renderedComponentSettings,o=n+(e-7)/r,a=n+(e+7)/r,i=(0,Rc.lV)(t.time,o),s=(0,Rc.lV)(t.time,a);return[Math.max(0,i-1),Math.min(t.length-1,s)+1]}_getSmoothedContributionFromSampleToPixel(e,t){const{rangeFilteredThread:{samples:n},enableCPUUsage:r,interval:o,sampleIndexOffset:a,fullThread:i,xPixelsPerMs:s,rangeStart:l}=this.renderedComponentSettings,c=e-7,d=new Float32Array(_k.length),u=n.time[t],h=t+a,p=h>0?i.samples.time[h-1]:u-o,m=h+1<i.samples.length?i.samples.time[h+1]:u+o;let f=1,g=1;const{threadCPURatio:A}=n;if(r&&A){f=A[t];const e=(0,ut.Nn)(i.samples.threadCPURatio);g=h+1<e.length?e[h+1]:f}const b=l+c/s;Mk(d,this.renderedComponentSettings,p,u,m,f,g,b);let C=0;for(let e=0;e<_k.length;e++)C+=_k[e]*d[e];return C}}function Mk(e,t,n,r,o,a,i,s){const{xPixelsPerMs:l}=t;let c=((n+r)/2-s)*l,d=((r+o)/2-s)*l;c<0&&(c=0),d>e.length-1&&(d=e.length-1);const u=(r-s)*l,h=0|c,p=0|d,m=0|u;for(let t=h;t<=m;t++)e[t]+=a;e[h]-=a*(c-h),e[m]-=a*(1-(u-m));for(let t=m;t<=p;t++)e[t]+=i;e[m]-=i*(u-m),e[p]-=i*(1-(d-p))}function Fk(e,t,n){if(e.length<n)return void t.set(e);let r=0;for(let t=0;t<=n;++t)r+=e[t];t[0]=r/(2*n+1);for(let o=1;o<n+1;++o)r+=e[o+n],t[o]=r/(2*n+1);for(let o=n+1;o<e.length-n;++o)r-=e[o-n-1],r+=e[o+n],t[o]=r/(2*n+1);for(let o=e.length-n;o<e.length;++o)r-=e[o-n-1],t[o]=r/(2*n+1)}function Rk(e,t){let n=e,r=new Float32Array(e.length);for(const e of t)Fk(n,r,e),[r,n]=[n,r];if(r===e)for(let t=0;t<e.length;t++)e[t]=n[t]}class Dk extends J.PureComponent{constructor(...e){super(...e),this._canvas=J.createRef(),this._categoryDrawStyles=null,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas.current;null!==e&&(0,Cn.l)("ThreadActivityGraph render",(()=>{this.drawCanvas(e)}))}_getCategoryDrawStyles(e){return null===this._categoryDrawStyles&&(this._categoryDrawStyles=this.props.categories.map((({color:t},n)=>{const r=hC(t);return{...r,category:n,filteredOutByTransformFillStyle:Lk(e,r.unselectedFillStyle)}}))),this._categoryDrawStyles}componentDidMount(){this._renderCanvas()}componentDidUpdate(){this._renderCanvas()}drawCanvas(e){const{fullThread:t,rangeFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,sampleIndexOffset:i,samplesSelectedStates:s,treeOrderSampleComparator:l,categories:c,enableCPUUsage:d,width:u,height:h}=this.props,p=e.getContext("2d"),m=Math.round(u*window.devicePixelRatio),f=Math.round(h*window.devicePixelRatio);e.width=m,e.height=f;const{fills:g,fillsQuerier:A}=function(e){const t=function({categoryDrawStyles:e,canvasPixelWidth:t}){return e.map((()=>({beforeSelectedPercentageAtPixel:new Float32Array(t),selectedPercentageAtPixel:new Float32Array(t),afterSelectedPercentageAtPixel:new Float32Array(t),filteredOutByTransformPercentageAtPixel:new Float32Array(t),filteredOutByTabPercentageAtPixel:new Float32Array(t)})))}(e),n=function(e,t){const n=e.map(((e,t)=>t)).sort(((t,n)=>e[n].gravity-e[t].gravity)),r=n.map((n=>{const r=e[n],o=t[n];return[{category:r.category,fillStyle:r.unselectedFillStyle,perPixelContribution:o.beforeSelectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.selectedFillStyle,perPixelContribution:o.selectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.unselectedFillStyle,perPixelContribution:o.afterSelectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.filteredOutByTransformFillStyle,perPixelContribution:o.filteredOutByTransformPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)}]}));return[].concat(...r)}(e.categoryDrawStyles,t),r=new Nk(e,t,n),{averageCPUPerPixel:o,upperGraphEdge:a}=r.run();return{fills:n,fillsQuerier:new Pk(e,n,o,a)}}({canvasPixelWidth:m,canvasPixelHeight:f,fullThread:t,rangeFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,sampleIndexOffset:i,samplesSelectedStates:s,enableCPUUsage:d,xPixelsPerMs:m/(a-o),treeOrderSampleComparator:l,greyCategoryIndex:c.findIndex((e=>"grey"===e.color))||0,categoryDrawStyles:this._getCategoryDrawStyles(p)});this.props.passFillsQuerier(A),p.globalCompositeOperation="lighter";let b=new Float32Array(m);for(const{fillStyle:e,accumulatedUpperEdge:t}of g){p.fillStyle=e;let n=0;for(;n<m;){const e=Ok(t,b,n);if(e>=m)break;let r=m;p.beginPath(),p.moveTo(e,(1-b[e])*f);for(let n=e+1;n<m;n++){const e=b[n],o=t[n];if(p.lineTo(n,(1-e)*f),e===o){r=n;break}}for(let n=r-1;n>=e;n--)p.lineTo(n,(1-t[n])*f);p.closePath(),p.fill(),n=r}b=t}}render(){const{className:e,trackName:t,onClick:n}=this.props;return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:e,ref:this._canvas,onClick:n},J.createElement("h2",null,"Activity Graph for ",t),J.createElement("p",null,"This graph shows a visual chart of thread activity.")))}}function Lk(e,t){const n=document.createElement("canvas"),r=Math.round(window.devicePixelRatio);n.width=4*r,n.height=4*r;const o=n.getContext("2d");o.scale(r,r);const a=o.createLinearGradient(0,0,4,4);return a.addColorStop(0,t),a.addColorStop(.25,t),a.addColorStop(.25,"transparent"),a.addColorStop(.5,"transparent"),a.addColorStop(.5,t),a.addColorStop(.75,t),a.addColorStop(.75,"transparent"),a.addColorStop(1,"transparent"),o.fillStyle=a,o.fillRect(0,0,4,4),e.createPattern(n,"repeat")}function Ok(e,t,n){for(let r=n;r<e.length;r++)if(e[r]!==t[r])return r;return e.length}function Uk(e){e.stopPropagation()}class zk extends J.PureComponent{constructor(...e){super(...e),this._fillsQuerier=null,this._container=null,this.state={hoveredPixelState:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredPixelState:null})},this._onMouseMove=e=>{const t=e.currentTarget;if(!t)return;const n=t.getBoundingClientRect();this.setState({hoveredPixelState:this._getSampleAtMouseEvent(e),mouseX:e.pageX,mouseY:n.bottom-Hb})},this._setFillsQuerier=e=>{this._fillsQuerier=e},this._onClick=e=>{const t=this._getSampleAtMouseEvent(e);this.props.onSampleClick(e,t?t.sample:null)},this._takeContainerRef=e=>{this._container=e}}componentDidMount(){const e=this._container;null!==e&&e.addEventListener("transitionend",Uk)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Uk)}_getSampleAtMouseEvent(e){const{width:t}=this.props,n=this._fillsQuerier;if(!e.currentTarget||!n)return null;const{rangeStart:r,rangeEnd:o}=this.props,a=e.nativeEvent.offsetX,i=e.nativeEvent.offsetY,s=r+a/t*(o-r);return n.getSampleAndCpuRatioAtClick(a,i,s)}render(){const{fullThread:e,rangeFilteredThread:t,categories:n,trackName:r,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,samplesSelectedStates:l,treeOrderSampleComparator:c,enableCPUUsage:d,implementationFilter:u,width:h,height:p,timelineType:m,zeroAt:f,profileTimelineUnit:g}=this.props,{hoveredPixelState:A,mouseX:b,mouseY:C}=this.state;return J.createElement("div",{className:this.props.className,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave,ref:this._takeContainerRef},J.createElement(Dk,{className:ug()(`${this.props.className}Canvas`,"threadActivityGraphCanvas"),trackName:r,fullThread:e,rangeFilteredThread:t,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,samplesSelectedStates:l,treeOrderSampleComparator:c,categories:n,passFillsQuerier:this._setFillsQuerier,onClick:this._onClick,enableCPUUsage:d,width:h,height:p}),null===A?null:J.createElement(Vb,{mouseX:b,mouseY:C},J.createElement(yk,{sampleIndex:A.sample,cpuRatioInTimeRange:"cpu-category"===m?A.cpuRatioInTimeRange:null,rangeFilteredThread:t,categories:n,implementationFilter:u,zeroAt:f,profileTimelineUnit:g,interval:o})))}}const Gk=Av(zk),Wk={top:0,height:6,background:"black",squareCorners:!1,borderLeft:null,borderRight:null},Hk={...Wk,top:6,background:_b.LD},Vk={...Hk,background:"#ffc600"};function jk(e){const{data:t,name:n}=e;return n in $k?$k[n]:t&&t.type in $k?$k[t.type]:$k.default}const $k={default:Wk,RefreshDriverTick:{...Wk,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},RD:{...Wk,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},Scripts:{...Wk,background:_b.rS,top:6},"requestAnimationFrame callbacks":{...Wk,background:_b.rS,top:6},Styles:{...Wk,background:_b.FC,top:7},FireScrollEvent:{...Wk,background:_b.rS,top:7},Reflow:{...Wk,background:_b.Jn,top:7},DispatchSynthMouseMove:{...Wk,background:_b.rS,top:8},DisplayList:{...Wk,background:_b.$7,top:9},LayerBuilding:{...Wk,background:_b.LD,top:9},Rasterize:{...Wk,background:_b.eq,top:10},ForwardTransaction:{...Wk,background:_b.Qy,top:11},NotifyDidPaint:{...Wk,background:_b.bw,top:12},LayerTransaction:{...Wk,background:_b.Qy},Composite:{...Wk,background:_b.Jn},Vsync:{...Wk,background:"rgb(255, 128, 0)"},LayerContentGPU:{...Wk,background:"rgba(0,200,0,0.5)"},LayerCompositorGPU:{...Wk,background:"rgba(0,200,0,0.5)"},LayerOther:{...Wk,background:"rgb(200,0,0)"},Jank:{...Wk,background:"hsl(347, 100%, 60%)",borderLeft:_b.w1,borderRight:_b.w1,squareCorners:!0},"BHR-detected hang":{...Wk,background:"hsl(347, 100%, 60%)",borderLeft:_b.w1,borderRight:_b.w1,squareCorners:!0},GCMajor:{...Hk,squareCorners:!0,top:0},GCSlice:Hk,GCMinor:Hk,"GC Interrupt":Hk,CC:{...Vk,squareCorners:!0,top:0},CCSlice:Vk,ForgetSkippable:Vk,IdleCCSlice:Vk,IdleForgetSkippable:Vk,FileIO:{...Wk,background:_b.Jn},IPCOut:{...Wk,background:_b.Jn,top:2},SyncIPCOut:{...Wk,background:_b.Tn,top:6},IPCIn:{...Wk,background:_b.y2,top:13},SyncIPCIn:{...Wk,background:_b.Hk,top:17}},Kk={HOVERED:"hsla(0,0%,100%,0.3)",PRESSED:"rgba(0,0,0,0.3)"};var Yk=n(8132),qk={};function Zk(e){e.stopPropagation()}function Xk(e,t,n,r,o,a){const i=Math.min(r/2,Math.min(o/2,a)),s=n+o;e.fillRect(t+i,n,r-2*i,i),e.fillRect(t,n+i,r,o-2*i),e.fillRect(t+i,s-i,r-2*i,i)}qk.styleTagTransform=M(),qk.setAttributes=B(),qk.insert=T().bind(null,"head"),qk.domAPI=k(),qk.insertStyleElement=N(),w()(Yk.A,qk),Yk.A&&Yk.A.locals&&Yk.A.locals;class Jk extends J.PureComponent{constructor(...e){super(...e),this._canvas=J.createRef(),this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}_getMarkerState(e){const{hoveredMarker:t,mouseDownMarker:n,rightClickedMarker:r}=this.props;return r===e?"PRESSED":null!==n?e===n&&e===t?"PRESSED":"NONE":e===t?"HOVERED":"NONE"}drawCanvas(e){const{rangeStart:t,rangeEnd:n,width:r,height:o,getMarker:a,markerIndexes:i}=this.props;if(0===o||0===r)return;const s=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1,l=Math.round(r*s),c=Math.round(o*s);e.width===l&&e.height===c||(e.width=l,e.height=c);const d=e.getContext("2d");if(null==d)return;d.clearRect(0,0,l,c),d.scale(s,s);let u=null;for(const e of i){const o=a(e),{start:i,end:l}=o,c=null===l?0:l-i;let h=(i-t)/(n-t)*r;if(h=Math.round(h*s)/s,u===h&&0===c)continue;u=h;const p=Number.isFinite(c)?Math.max(c/(n-t)*r,.3/s):Number.MAX_SAFE_INTEGER,m=jk(o);d.fillStyle=m.background,m.squareCorners?d.fillRect(h,m.top,p,m.height):Xk(d,h,m.top,p,m.height,1/s),null!==m.borderLeft&&(d.fillStyle=m.borderLeft,d.fillRect(h,m.top,1,m.height)),null!==m.borderRight&&(d.fillStyle=m.borderRight,d.fillRect(h+p-1,m.top,1,m.height));const f=this._getMarkerState(o);"HOVERED"!==f&&"PRESSED"!==f||(d.fillStyle=Kk[f],m.squareCorners?d.fillRect(h,m.top,p,m.height):Xk(d,h,m.top,p,m.height,1/s))}d.scale(1/s,1/s)}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas.current;e&&(0,Cn.l)("TimelineMarkersImplementation render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineMarkersCanvas",ref:this._canvas,onMouseDown:this.props.onMouseDown,onMouseMove:this.props.onMouseMove,onMouseUp:this.props.onMouseUp,onMouseOut:this.props.onMouseOut}))}}class Qk extends J.PureComponent{constructor(...e){super(...e),this._container=null,this.state={hoveredMarkerIndex:null,mouseDownMarker:null,mouseX:0,mouseY:0},this._onMouseMove=e=>{const t=this._hitTest(e);null!==t?this.setState({hoveredMarkerIndex:t,mouseX:e.pageX,mouseY:e.pageY}):null===this.state.hoveredMarkerIndex||window.persistTooltips||this.setState({hoveredMarkerIndex:null})},this._onMouseDown=e=>{const t=this._hitTest(e),{changeRightClickedMarker:n,threadsKey:r,getMarker:o}=this.props;if(2===e.button)n(r,t);else{const n=null!==t?o(t):null;if(this.setState({mouseDownMarker:n}),null!==n){const t=e.currentTarget;t.setCapture&&t.setCapture()}}},this._onMouseUp=e=>{const{mouseDownMarker:t}=this.state;if(null!==t){const n=this._hitTest(e),r=null===n?null:this.props.getMarker(n);if(t===r&&null!==r){e.stopPropagation();const{onSelect:t,rangeStart:n,rangeEnd:o}=this.props,{start:a,end:i}=ku(n,o,r);t(a,i)}this.setState({hoveredMarkerIndex:n,mouseDownMarker:null})}},this._onMouseOut=()=>{window.persistTooltips||this.setState({hoveredMarkerIndex:null})},this._takeContainerRef=e=>{this._container=e}}_hitTest(e){const t=e.currentTarget.getBoundingClientRect(),{width:n,rangeStart:r,rangeEnd:o,getMarker:a,markerIndexes:i}=this.props,s=e.pageX-t.left,l=e.pageY-t.top,c=o-r,d=r+s/n*c,u=c/n*window.devicePixelRatio;for(let e=i.length-1;e>=0;e--){const t=i[e],n=a(t),{start:r,end:o}=n,s=null===o?0:o-r,c=Math.max(s,u);if(d<r||d>=r+c)continue;const h=jk(n);if(l>=h.top&&l<h.top+h.height)return t}return null}componentDidMount(){const e=this._container;null!==e&&e.addEventListener("transitionend",Zk)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Zk)}render(){const{additionalClassName:e,isSelected:t,isModifyingSelection:n,threadsKey:r,testId:o,rightClickedMarker:a,getMarker:i}=this.props,{mouseDownMarker:s,hoveredMarkerIndex:l,mouseX:c,mouseY:d}=this.state,u=!n&&!s&&!a,h=null===l?null:i(l);return J.createElement("div",{"data-testid":o,className:ug()("timelineMarkers",e,t?"selected":null),ref:this._takeContainerRef},J.createElement(Zg,{id:"MarkerContextMenu"},J.createElement(Jk,{width:this.props.width,height:this.props.height,rangeStart:this.props.rangeStart,rangeEnd:this.props.rangeEnd,getMarker:this.props.getMarker,markerIndexes:this.props.markerIndexes,hoveredMarker:h,mouseDownMarker:s,rightClickedMarker:a,onMouseDown:this._onMouseDown,onMouseMove:this._onMouseMove,onMouseUp:this._onMouseUp,onMouseOut:this._onMouseOut})),u&&null!==l&&h?J.createElement(Vb,{mouseX:c,mouseY:d},J.createElement(jC,{markerIndex:l,marker:h,threadsKey:r,restrictHeightWidth:!0})):null)}}const ex=Av(Qk),tx=Lt()(((e,t)=>(0,bn.dr)(e,t)),{limit:1}),nx=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineJankMarkerIndexes(e),isSelected:tx(o,n),isModifyingSelection:hi(e).isModifying,testId:"TimelineMarkersJank",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh},component:ex}),rx=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e);return{additionalClassName:r.getThread(e).isMainThread?"timelineMarkersGeckoMain":null,getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineOverviewMarkerIndexes(e),isSelected:tx(o,n),isModifyingSelection:hi(e).isModifying,testId:"TimelineMarkersOverview",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh},component:ex}),ox=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineFileIoMarkerIndexes(e),isSelected:tx(o,n),isModifyingSelection:hi(e).isModifying,testId:"TimelineMarkersFileIo",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh},component:ex}),ax=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineMemoryMarkerIndexes(e),isSelected:tx(o,n),isModifyingSelection:hi(e).isModifying,additionalClassName:"timelineMarkersMemory",testId:"TimelineMarkersMemory",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh},component:ex}),ix=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineIPCMarkerIndexes(e),isSelected:tx(o,n),isModifyingSelection:hi(e).isModifying,additionalClassName:"timelineMarkersIPC",testId:"TimelineMarkersIPC",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh},component:ex});class sx extends J.PureComponent{constructor(...e){super(...e),this.state={isMouseOver:!1,mouseX:0,mouseY:0},this._onMouseEnter=()=>{this.setState({isMouseOver:!0}),document.addEventListener("mousemove",this._onMouseMove,!1)},this._onMouseLeave=()=>{window.persistTooltips||this.setState({isMouseOver:!1}),document.removeEventListener("mousemove",this._onMouseMove,!1)},this._onMouseMove=e=>{this.setState({mouseX:e.pageX,mouseY:e.pageY})}}componentWillUnmount(){document.removeEventListener("mousemove",this._onMouseMove,!1)}render(){const{children:e,tooltip:t,...n}=this.props,{mouseX:r,mouseY:o,isMouseOver:a}=this.state,i=a;return J.createElement("div",{onMouseEnter:this._onMouseEnter,onMouseLeave:this._onMouseLeave,...n},e,i&&t?J.createElement(Vb,{mouseX:r,mouseY:o},t):null)}}var lx=n(9659),cx={};cx.styleTagTransform=M(),cx.setAttributes=B(),cx.insert=T().bind(null,"head"),cx.domAPI=k(),cx.insertStyleElement=N(),w()(lx.A,cx),lx.A&&lx.A.locals&&lx.A.locals;class dx extends J.PureComponent{render(){const e=function(e){const{rangeStart:t,rangeEnd:n,width:r,unfilteredSamplesRange:o,interval:a,thread:{processShutdownTime:i,registerTime:s,unregisterTime:l}}=e,c=r/(n-t),d=null===l?i:l;let u=null;s>t&&(u={left:0,width:Math.min(r,(s-t)*c)});let h=null;null!==d&&d<n&&(h={right:0,width:Math.min(r,(n-d)*c)});let p=null;return null!==o&&o.start>=t+a&&s<n&&(p={left:Math.max(0,s-t)*c,width:Math.min(r,(o.start-Math.max(s,t))*c)}),{startup:u,shutdown:h,emptyBufferStart:p}}(this.props);return J.createElement("div",{className:"timelineEmptyThreadIndicator"},e.startup?J.createElement(sx,{style:e.startup,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorStartup",tooltip:"This thread hasn't started yet"}):null,e.shutdown?J.createElement(sx,{style:e.shutdown,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorShutdown",tooltip:"This thread has shut down here"}):null,e.emptyBufferStart?J.createElement(sx,{style:e.emptyBufferStart,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorEmptyBuffer",tooltip:J.createElement("span",{className:"timelineEmptyThreadIndicatorLongTooltip"},_n.TN`
|
135
|
+
This buffer was empty. Either the profiler was still initializing for
|
136
|
+
a new thread, or the profiling buffer was full. Increase your buffer
|
137
|
+
size before recording to potentially include more samples.
|
138
|
+
`)}):null)}}const ux=Av(dx);var hx=n(6648),px={};px.styleTagTransform=M(),px.setAttributes=B(),px.insert=T().bind(null,"head"),px.domAPI=k(),px.insertStyleElement=N(),w()(hx.A,px),hx.A&&hx.A.locals&&hx.A.locals;class mx extends J.PureComponent{constructor(...e){super(...e),this._onSampleClick=(e,t)=>{const n=xu(e);if(n.ctrlOrMeta||n.shift)return;const{threadsKey:r,selectSelfCallNode:o,focusCallTree:a,selectedThreadIndexes:i,callTreeVisible:s}=this.props;1===i.size&&(o(r,t),null!==t&&s&&a()),"number"==typeof r&&i.has(r)&&e.stopPropagation()},this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}componentDidUpdate(){const{threadsKey:e,height:t,reportTrackThreadHeight:n}=this.props;n(e,t)}render(){const{fullThread:e,filteredThread:t,rangeFilteredThread:n,threadsKey:r,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,callNodeInfo:l,unfilteredSamplesRange:c,categories:d,timelineType:u,hasFileIoMarkers:h,showMemoryMarkers:p,sampleNonInvertedCallNodes:m,samplesSelectedStates:f,treeOrderSampleComparator:g,trackType:A,trackName:b,enableCPUUsage:C,isExperimentalCPUGraphsEnabled:v,implementationFilter:y,zeroAt:w,profileTimelineUnit:E}=this.props,k=t.processType,x="plugin"!==k,T=(t.showMarkersInTimeline||"GeckoMain"===t.name||"Compositor"===t.name||"Renderer"===t.name||"AndroidUI (JVM)"===t.name||"CrRendererMain"===t.name||"Merged thread"===t.name||t.name.startsWith("MediaDecoderStateMachine"))&&"plugin"!==k;return J.createElement("div",{className:ug()("timelineTrackThread",A)},"expanded"===A&&p?J.createElement(ax,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"expanded"===A&&h?J.createElement(ox,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,x?J.createElement(nx,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"expanded"===A&&T?J.createElement(rx,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"category"!==u&&"cpu-category"!==u||t.isJsTracer?J.createElement(dk,{className:"threadStackGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,callNodeInfo:l,sampleNonInvertedCallNodes:m,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick}):J.createElement(J.Fragment,null,J.createElement(Gk,{className:"threadActivityGraph",trackName:b,interval:o,fullThread:e,rangeFilteredThread:n,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,onSampleClick:this._onSampleClick,categories:d,samplesSelectedStates:f,treeOrderSampleComparator:g,enableCPUUsage:C,implementationFilter:y,timelineType:u,zeroAt:w,profileTimelineUnit:E}),"expanded"===A?J.createElement(Tk,{className:"threadSampleGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick,timelineType:u,implementationFilter:y,zeroAt:w,profileTimelineUnit:E}):null,v&&void 0!==n.samples.threadCPURatio?J.createElement(uk,{className:"threadCPUGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,callNodeInfo:l,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick}):null),J.createElement(ux,{thread:t,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:c}))}}const fx=at({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=_d(n),o=Uo(e),a=li(e),i=r.getThread(e),s=Wo(e),l="cpu-category"===s&&void 0!==i.samples.threadCPURatio;return{fullThread:i,filteredThread:r.getFilteredThread(e),rangeFilteredThread:r.getRangeFilteredThread(e),callNodeInfo:r.getCallNodeInfo(e),sampleNonInvertedCallNodes:r.getSampleIndexToNonInvertedCallNodeIndexForFilteredThread(e),unfilteredSamplesRange:r.unfilteredSamplesRange(e),interval:gi(e),rangeStart:a.start,rangeEnd:a.end,sampleIndexOffset:r.getFilteredSampleIndexOffset(e),categories:Mi(e),timelineType:s,hasFileIoMarkers:0!==r.getTimelineFileIoMarkerIndexes(e).length,samplesSelectedStates:r.getSamplesSelectedStatesInFilteredThread(e),treeOrderSampleComparator:r.getTreeOrderComparatorInFilteredThread(e),selectedThreadIndexes:o,enableCPUUsage:l,isExperimentalCPUGraphsEnabled:ol(e),implementationFilter:wo(e),callTreeVisible:r.getUsefulTabs(e).includes("calltree"),zeroAt:ii(e),profileTimelineUnit:si(e)}},mapDispatchToProps:{updatePreviewSelection:Vh,changeSelectedCallNode:th,focusCallTree:dh,selectSelfCallNode:rh,reportTrackThreadHeight:gm},component:Av(mx)});var gx=n(4557),Ax={};Ax.styleTagTransform=M(),Ax.setAttributes=B(),Ax.insert=T().bind(null,"head"),Ax.domAPI=k(),Ax.insertStyleElement=N(),w()(gx.A,Ax),gx.A&&gx.A.locals&&gx.A.locals;class bx extends J.PureComponent{constructor(...e){super(...e),this.state={offsetX:null,pageX:null,containerTop:null},this._handleMouseLeave=()=>{this.setState({offsetX:null,pageX:null,containerTop:null})},this._handleMouseMove=e=>{const{top:t,left:n}=e.currentTarget.getBoundingClientRect();this.setState({pageX:e.pageX,offsetX:e.pageX-n,containerTop:t})},this._selectScreenshotOnClick=e=>{const{screenshots:t,updatePreviewSelection:n,isMakingPreviewSelection:r}=this.props;if(r)return;const{left:o}=e.currentTarget.getBoundingClientRect(),a=e.pageX-o,i=this.findScreenshotAtMouse(a);if(null===i)return;const{start:s,end:l}=t[i];null!==l&&n({hasSelection:!0,isModifying:!1,selectionStart:s,selectionEnd:l})}}findScreenshotAtMouse(e){const{width:t,rangeStart:n,rangeEnd:r,screenshots:o}=this.props,a=e/t*(r-n)+n;for(let e=o.length-1;e>=0;e--)if(a>=o[e].start)return a>(o[e].end||1/0)?null:e;return null}render(){const{screenshots:e,thread:t,isMakingPreviewSelection:n,width:r,rangeStart:o,rangeEnd:a,trackHeight:i}=this.props,{pageX:s,offsetX:l,containerTop:c}=this.state;let d=null;if(null!==l){const t=this.findScreenshotAtMouse(l);null!==t&&(d=e[t].data)}return J.createElement("div",{className:"timelineTrackScreenshot",style:{height:i},onMouseLeave:this._handleMouseLeave,onMouseMove:this._handleMouseMove,onClick:this._selectScreenshotOnClick},J.createElement(wx,{thread:t,width:r,rangeStart:o,rangeEnd:a,screenshots:e,trackHeight:i}),d?J.createElement(yx,{thread:t,isMakingPreviewSelection:n,width:r,pageX:s,offsetX:l,containerTop:c,rangeEnd:a,rangeStart:o,trackHeight:i,payload:d}):null)}}const Cx=[],vx=at({mapStateToProps:(e,t)=>{const{threadIndex:n,windowId:r}=t,o=Id(n),{start:a,end:i}=li(e),s=hi(e);return{thread:o.getRangeFilteredThread(e),screenshots:o.getRangeFilteredScreenshotsById(e).get(r)||Cx,threadName:o.getFriendlyThreadName(e),rangeStart:a,rangeEnd:i,isMakingPreviewSelection:s.hasSelection&&s.isModifying,trackHeight:cl(e)}},mapDispatchToProps:{updatePreviewSelection:Vh},component:Av(bx)});class yx extends J.PureComponent{constructor(...e){super(...e),this._overlayElement=(0,ut.Nn)(document.querySelector("#root-overlay"),"Expected to find a root overlay element.")}render(){const{thread:e,isMakingPreviewSelection:t,width:n,pageX:r,offsetX:o,containerTop:a,trackHeight:i,payload:s}=this.props;if(null===o||null===r)return null;if(void 0===s.url)return null;const{url:l}=s,c=t?100:350,{width:d,height:u}=dr(s,c);let h=a+.5*(i-u);h=Math.floor(h),h<0&&(h=0);let p=r-.5*d;const m=r-o;return p<0?p=0:p+d>n+m&&(p=m+n-d),p=Math.floor(p),(0,Eg.createPortal)(J.createElement("div",{className:"timelineTrackScreenshotHover",style:{left:p,top:h}},J.createElement("img",{className:"timelineTrackScreenshotHoverImg",src:e.stringTable.getString(l),style:{height:u,width:d}})),this._overlayElement)}}class wx extends J.PureComponent{render(){const{thread:e,width:t,rangeStart:n,rangeEnd:r,screenshots:o,trackHeight:a}=this.props;if(0===o.length)return null;const i=[],s=r-n,l=.75*a,c=e=>t*(e-n)/s,d=Math.max(c(o[0].start),0),u=Math.min(c(o[o.length-1].end||1/0),t);let h=0;for(let t=d;t<u;t+=l){for(let e=h;e<o.length&&c(o[e].start)<=t;e++)h=e;const n=o[h].data;if(void 0===n.url)continue;const{url:r,windowWidth:s,windowHeight:d}=n,p=a*s/d;i.push(J.createElement("div",{className:"timelineTrackScreenshotImgContainer",style:{left:t,width:Math.min(l,u-t)},key:t},J.createElement("img",{className:"timelineTrackScreenshotImg",src:e.stringTable.getString(r),style:{width:p,height:a}})))}return i.length>0?i:null}}var Ex=n(3989),kx={};kx.styleTagTransform=M(),kx.setAttributes=B(),kx.insert=T().bind(null,"head"),kx.domAPI=k(),kx.insertStyleElement=N(),w()(Ex.A,kx),Ex.A&&Ex.A.locals&&Ex.A.locals;class xx extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,height:r,width:o,lineWidth:a,interval:i,thread:s,eventDelays:l}=this.props;if(0===o)return;const c=e.getContext("2d"),d=window.devicePixelRatio,u=o*d,h=r*d,p=a*d,m=.5*p,f=h-p,g=n-t,A=u/g,b=i*A;e.width=Math.round(u),e.height=Math.round(h),c.clearRect(0,0,u,h);const{samples:C}=s;if(0===C.length)return;const{delayRange:v}=l;{c.lineWidth=p,c.lineJoin="bevel",c.strokeStyle="rgba(255, 0, 57, 0.7)",c.fillStyle="rgba(255, 0, 57, 0.3)",c.beginPath();let e=0,n=0;for(let r=0;r<C.length;r++)e=(C.time[r]-t)*A,n=f-f*(l.eventDelays[r]/v)+m,0===r?c.moveTo(e,n):c.lineTo(e,n);c.lineTo(e+b,n),c.stroke(),c.lineTo(e+b,h),c.lineTo(u*(C.time[0]-t)/g+i,h),c.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),J.createElement("canvas",{className:"timelineTrackEventDelayCanvas",ref:this._takeCanvasRef})}}class Tx extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredDelay:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredDelay:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,interval:s,thread:l}=this.props,c=a+(t-r)/o*(i-a),{samples:d}=l;if(c<d.time[0]||c>d.time[d.length-1]+s)this.setState({hoveredDelay:null});else{let e;const r=(0,Rc.lV)(d.time,c);e=r>0&&r<d.time.length&&c-d.time[r-1]<d.time[r]-c?r-1:r,e===d.length&&(e=d.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredDelay:e})}}}_renderTooltip(e){const{eventDelays:t}=this.props.eventDelays,{delayRange:n}=this.props.eventDelays;return J.createElement("div",{className:"timelineTrackEventDelayTooltip"},J.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},J.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Xt(t[e]))," event delay"),J.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},J.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Xt(n))," delay range in graph"))}_renderEventDelayDot(e){const{rangeStart:t,rangeEnd:n,graphHeight:r,width:o,lineWidth:a,thread:i,eventDelays:s}=this.props,{samples:l}=i,c=n-t,{delayRange:d}=s,u=o*(l.time[e]-t)/c,h=r-a/2,p=h-s.eventDelays[e]/d*h+a/2;return J.createElement("div",{style:{left:u,top:p},className:"timelineTrackEventDelayGraphDot"})}render(){const{hoveredDelay:e,mouseX:t,mouseY:n}=this.state,{filteredThread:r,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:s,graphHeight:l,width:c,lineWidth:d,eventDelays:u,thread:h}=this.props;return J.createElement("div",{className:"timelineTrackEventDelayGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(xx,{rangeStart:a,rangeEnd:i,height:l,width:c,lineWidth:d,interval:o,eventDelays:u,thread:h}),null===e?null:J.createElement(J.Fragment,null,this._renderEventDelayDot(e),J.createElement(Vb,{mouseX:t,mouseY:n},this._renderTooltip(e))),J.createElement(ux,{thread:r,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:s}))}}const Sx=at({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,{start:r,end:o}=li(e),a=Id(n);return{threadIndex:n,rangeStart:r,rangeEnd:o,interval:gi(e),thread:a.getThread(e),filteredThread:a.getFilteredThread(e),unfilteredSamplesRange:a.unfilteredSamplesRange(e),eventDelays:a.getProcessedEventDelays(e)}},component:Av(Tx)});class Bx extends J.PureComponent{render(){const{threadIndex:e}=this.props,t=In.ZB;return J.createElement("div",{className:"timelineTrackEventDelay",style:{height:t,"--graph-height":`${t}px`,"--markers-height":"0px"}},J.createElement(Sx,{threadIndex:e,lineWidth:In.Dp,graphHeight:t}))}}var Ix=n(7721),_x={};_x.styleTagTransform=M(),_x.setAttributes=B(),_x.insert=T().bind(null,"head"),_x.domAPI=k(),_x.insertStyleElement=N(),w()(Ix.A,_x),Ix.A&&Ix.A.locals&&Ix.A.locals;class Nx extends J.PureComponent{constructor(...e){super(...e),this._onMouseDown=e=>{2===e.button&&this.props.onRightClick&&e.currentTarget&&this.props.onRightClick(parseInt(e.currentTarget.dataset.markerIndex)),e.stopPropagation()}}render(){const{getMarker:e,verticalMarkerIndexes:t,innerWindowIDToPageMap:n,rangeStart:r,rangeEnd:o,zeroAt:a,width:i,shouldShowTooltip:s}=this.props;return t.map((t=>{const l=e(t);let c="#000";switch(l.name){case"Navigation::Start":c="var(--grey-40)";break;case"Load":c="var(--red-60)";break;case"DOMContentLoaded":c="var(--blue-50)";break;case"FirstContentfulPaint":case"FirstContentfulComposite":case"LargestContentfulPaint":c="var(--magenta-60)";break;default:c="#000"}const d=i/(o-r),u=null!==l.end?l.end:l.start,h=(u-r)*d;let p=null;const{data:m}=l;if(n&&m&&"tracing"===m.type&&"Navigation"===m.category&&m.innerWindowID){const e=n.get(m.innerWindowID);e&&(p=J.createElement("div",{className:"timelineVerticalIndicatorsUrl"},(f=e.url).length<200?f:`${f.slice(0,150)}...${f.slice(-20)}`))}var f;return J.createElement(sx,{key:t,"data-testid":"vertical-indicator-line",style:{"--vertical-indicator-color":c,left:h},className:"timelineVerticalIndicatorsLine",onMouseDown:this._onMouseDown,"data-marker-index":t,tooltip:s?J.createElement(J.Fragment,null,J.createElement("div",null,J.createElement("span",{className:"timelineVerticalIndicatorsSwatch",style:{backgroundColor:c}})," ",l.name,J.createElement("span",{className:"timelineVerticalIndicatorsDim"}," at "),J.createElement("span",{className:"timelineVerticalIndicatorsTime"},Jt(u-a))," "),p):null})}))}}var Px=n(1228),Mx={};Mx.styleTagTransform=M(),Mx.setAttributes=B(),Mx.insert=T().bind(null,"head"),Mx.domAPI=k(),Mx.insertStyleElement=N(),w()(Px.A,Mx),Px.A&&Px.A.locals&&Px.A.locals;class Fx extends J.PureComponent{constructor(...e){super(...e),this._requestedAnimationFrame=!1,this._canvas=J.createRef(),this._onMouseLeave=()=>{this.props.onHoveredMarkerChange(null)},this._onMouseMove=e=>{const t=this._hitTest(e);this.props.onHoveredMarkerChange(t,e.pageX,e.pageY)}}_hitTest(e){const{rangeStart:t,rangeEnd:n,networkTiming:r,width:o}=this.props,{offsetX:a,offsetY:i}=e.nativeEvent,s=n-t,l=t+a/o*s,c=5/o*s;let d=null,u=-1/0;for(let e=Math.floor(i/In.E5);e<r.length;e+=In.O_){const t=r[e],n=(0,Rc.lV)(t.start,l)-1;if(n<0)continue;const o=t.start[n];let a=t.end[n];a-o<c&&(a=o+c),a<l||o>u&&(u=o,d=t.index[n])}return d}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas.current;e&&this.drawCanvas(e)})))}drawCanvas(e){const{rangeStart:t,rangeEnd:n,networkTiming:r,hoveredMarkerIndex:o,rightClickedMarkerIndex:a,selectedNetworkMarkerIndex:i,width:s}=this.props,l=n-t,c=window.devicePixelRatio,d=In.E5*c;e.width=Math.round(s*c),e.height=Math.round(In.LT*c);const u=e.getContext("2d");u.clearRect(0,0,e.width,e.height),u.strokeStyle="rgba(0, 127, 255, 0.3)",u.lineCap="round",u.lineWidth=.75*d;let h=null,p=null,m=null;for(let n=0;n<r.length;n++){const s=r[n];for(let r=0;r<s.length;r++){const c=e.width/l*(s.start[r]-t),f=e.width/l*(s.end[r]-t),g=n%In.O_*d+.5*d,A=new Path2D;switch(A.moveTo(c,g),A.lineTo(f,g),s.index[r]){case a:p=A;break;case o:h=A;break;case i:m=A;break;default:u.stroke(A)}}}(h||p||m)&&(u.strokeStyle="#0069aa",h&&u.stroke(h),p&&u.stroke(p),m&&u.stroke(m))}render(){return this._scheduleDraw(),J.createElement("canvas",{className:"timelineTrackNetworkCanvas",ref:this._canvas,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave})}}class Rx extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredMarkerIndex:null,mouseX:0,mouseY:0},this._onHoveredMarkerChange=(e,t,n)=>{const{threadIndex:r,changeHoveredMarker:o}=this.props;o(r,e),null===e?window.persistTooltips||this.setState({hoveredMarkerIndex:null}):this.setState({hoveredMarkerIndex:e,mouseX:t,mouseY:n})},this._onMouseDown=e=>{2===e.button?this._onRightClick():this._onLeftClick()},this._onRightClick=()=>{const{threadIndex:e,changeRightClickedMarker:t}=this.props,{hoveredMarkerIndex:n}=this.state;t(e,n)},this._onLeftClick=()=>{const{threadIndex:e,changeSelectedNetworkMarker:t}=this.props,{hoveredMarkerIndex:n}=this.state;null!==n&&t(e,n)},this._onVerticalIndicatorRightClick=e=>{const{threadIndex:t,changeRightClickedMarker:n}=this.props;n(t,e)}}render(){const{innerWindowIDToPageMap:e,rangeStart:t,rangeEnd:n,getMarker:r,verticalMarkerIndexes:o,zeroAt:a,networkTiming:i,isModifyingSelection:s,threadIndex:l,width:c,rightClickedMarkerIndex:d,selectedNetworkMarkerIndex:u,hoveredMarkerIndexFromState:h}=this.props,{hoveredMarkerIndex:p,mouseX:m,mouseY:f}=this.state,g=null===p?null:r(p),A=!s&&null===d;return J.createElement("div",{className:"timelineTrackNetwork",style:{height:In.LT},onMouseDown:this._onMouseDown},J.createElement(Zg,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(Fx,{rangeStart:t,rangeEnd:n,networkTiming:i,hoveredMarkerIndex:null===p?h:p,rightClickedMarkerIndex:d,selectedNetworkMarkerIndex:u,width:c,onHoveredMarkerChange:this._onHoveredMarkerChange}),J.createElement(Nx,{verticalMarkerIndexes:o,getMarker:r,innerWindowIDToPageMap:e,rangeStart:t,rangeEnd:n,zeroAt:a,width:c,onRightClick:this._onVerticalIndicatorRightClick,shouldShowTooltip:null===d}),A&&null!==p&&g?J.createElement(Vb,{mouseX:m,mouseY:f},J.createElement(jC,{className:"tooltipNetwork",markerIndex:p,marker:g,threadsKey:l,restrictHeightWidth:!0})):null))}}const Dx=at({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,r=Id(n),{start:o,end:a}=li(e),i=r.getNetworkTrackTiming(e);return{getMarker:r.getMarkerGetter(e),innerWindowIDToPageMap:Gi(e),networkTiming:i,rangeStart:o,rangeEnd:a,zeroAt:ii(e),isModifyingSelection:hi(e).isModifying,verticalMarkerIndexes:r.getTimelineVerticalMarkerIndexes(e),rightClickedMarkerIndex:r.getRightClickedMarkerIndex(e),selectedNetworkMarkerIndex:r.getSelectedNetworkMarkerIndex(e),hoveredMarkerIndexFromState:r.getHoveredMarkerIndex(e)}},mapDispatchToProps:{changeRightClickedMarker:Dh,changeSelectedNetworkMarker:Fh,changeHoveredMarker:Rh},component:Av(Rx)});function Lx(e){switch(e){case"magenta":return _b.qy;case"purple":return _b.$7;case"blue":return _b.Jn;case"teal":return _b.FC;case"green":return _b.eq;case"yellow":return _b.$m;case"red":return _b.w1;case"orange":return _b.LD;case"grey":return _b.MU;case"ink":return _b.t2;default:throw new Error("Unexpected track color: "+e)}}function Ox(e){return Lx(e)+"88"}function Ux(e){switch(e){case"magenta":return _b.xp;case"purple":return _b.Eo;case"blue":return _b.Qr;case"teal":return _b.u9;case"green":return _b.l3;case"yellow":return _b.S4;case"red":return _b.f;case"orange":return _b.Oz;case"grey":return _b.jP;case"ink":return _b.IG;default:throw new Error("Unexpected track color: "+e)}}var zx=n(4165),Gx={};Gx.styleTagTransform=M(),Gx.setAttributes=B(),Gx.insert=T().bind(null,"head"),Gx.domAPI=k(),Gx.insertStyleElement=N(),w()(zx.A,Gx),zx.A&&zx.A.locals&&zx.A.locals;class Wx extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,accumulatedSamples:l,counterSampleRange:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const{minCount:v,countRange:y,accumulatedCounts:w}=l,[E,k]=c;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=Lx(r.color||In.Mp),d.fillStyle=Ox(r.color||In.Mp),d.beginPath();let e=0,n=0,o=0;for(let r=E;r<k;r++)e=(C.time[r]-t)*A,n=g-g*((w[r]-v)/y)+f,0===r?(o=e,d.moveTo(e,n)):d.lineTo(e,n);d.lineTo(e+b,n),d.stroke(),d.lineTo(e+b,p),d.lineTo(o,p),d.fill()}}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackMemoryCanvas",ref:this._takeCanvasRef}))}}class Hx extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{window.persistTooltips||this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRange:c}=this.props,d=a+(t-r)/o*(i-a);if(0===s.samples.length)throw new Error("No sample group found for memory counter");const{samples:u}=s;if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c,a=(0,Rc.lV)(u.time,d,r,o);e=a>0&&a<u.time.length&&d-u.time[a-1]<u.time[a]-d?a-1:a,e===u.length&&(e=u.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{accumulatedSamples:t,counter:n,rangeStart:r,rangeEnd:o}=this.props,{mouseX:a,mouseY:i}=this.state,{samples:s}=n;if(0===s.length)throw new Error("No accumulated sample found for memory counter");const l=s.time[e];if(l<r||l>o)return null;const{minCount:c,countRange:d,accumulatedCounts:u}=t,h=u[e]-c,p=void 0!==s.number?s.number[e]:null;return J.createElement(Vb,{mouseX:a,mouseY:i},J.createElement("div",{className:"timelineTrackMemoryTooltip"},J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Kt(h)),J.createElement(de,{id:"TrackMemoryGraph--relative-memory-at-this-time"},"relative memory at this time")),J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Kt(d)),J.createElement(de,{id:"TrackMemoryGraph--memory-range-in-graph"},"memory range in graph")),null!==p?J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Gt(p,2,0)),J.createElement(de,{id:"TrackMemoryGraph--allocations-and-deallocations-since-the-previous-sample"},"allocations and deallocations since the previous sample")):null))}_renderMemoryDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,accumulatedSamples:s}=this.props,{samples:l}=t;if(0===l.length)throw new Error("No sample found for memory counter");const c=r-n,d=l.time[e];if(d<n||d>r)return null;const u=a*(d-n)/c,{minCount:h,countRange:p,accumulatedCounts:m}=s,f=o-i/2,g=f-(m[e]-h)/p*f+i/2;return J.createElement("div",{style:{left:u,top:g,backgroundColor:Ux(t.color||In.Mp)},className:"timelineTrackMemoryGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,accumulatedSamples:u}=this.props;return J.createElement("div",{className:"timelineTrackMemoryGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(Wx,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,accumulatedSamples:u}),null===e?null:J.createElement(J.Fragment,null,this._renderMemoryDot(e),this._renderTooltip(e)),J.createElement(ux,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const Vx=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n),o=r.getCounter(e),{start:a,end:i}=li(e),s=r.getCommittedRangeCounterSampleRange(e),l=Id(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,accumulatedSamples:r.getAccumulateCounterSamples(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:gi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:Av(Hx)});class jx extends J.PureComponent{constructor(...e){super(...e),this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}render(){const{counterIndex:e,rangeStart:t,rangeEnd:n,threadIndex:r}=this.props;return J.createElement("div",{className:"timelineTrackMemory",style:{height:In.tk+In.EV,"--graph-height":`${In.tk}px`,"--markers-height":`${In.EV}px`}},J.createElement(ax,{rangeStart:t,rangeEnd:n,threadsKey:r,onSelect:this._onMarkerSelect}),J.createElement(Vx,{counterIndex:e,lineWidth:In.u3,graphHeight:In.tk}))}}const $x=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n).getCounter(e),{start:o,end:a}=li(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Vh},component:jx}),Kx=1.465e-9/3;var Yx=class{constructor(e){this.allowRatings=!1,this.options=e,this.KWH_PER_BYTE_FOR_NETWORK=Kx}perByte(e,t){return e<1?0:t?72e-12*e*0+e*Kx*475:5.603333333333333e-10*e*519}},qx=1e9,Zx={data:{AFG:123.71,AFRICA:541.36,ALB:24.42,DZA:633.65,ASM:647.06,AGO:167.22,ATG:611.11,ARG:353.96,ARM:262.43,ABW:550,ASEAN:570.01,ASIA:590.39,AUS:556.3,AUT:102.62,AZE:669.99,BHS:653.66,BHR:902.41,BGD:683.12,BRB:600,BLR:313.62,BEL:117.58,BLZ:155.56,BEN:590,BTN:24.19,BOL:489.11,BIH:637.2,BWA:849.42,BRA:96.4,BRN:892.67,BGR:264.21,BFA:554.91,BDI:230.77,CPV:480,KHM:470.59,CMR:285.71,CAN:165.15,CYM:642.86,CAF:0,TCD:615.39,CHL:301.93,CHN:583.61,COL:268.97,COM:642.86,COG:713.73,COD:27.04,COK:250,CRI:24.77,CIV:393.53,HRV:174.48,CUB:638.98,CYP:512.24,CZE:413.86,DNK:143.3,DJI:450,DMA:600,DOM:579.4,ECU:176.28,EGY:574.04,SLV:118.46,GNQ:605.1,ERI:590.91,EST:341.02,SWZ:142.86,ETH:23.55,EU:213.31,EUROPE:284.31,FLK:1e3,FRO:354.17,FJI:278.26,FIN:72.25,FRA:44.18,GUF:204.08,PYF:436.62,G20:481.51,G7:353.61,GAB:429.47,GMB:666.67,GEO:168.06,DEU:344.14,GHA:452.86,GRC:319.76,GRL:111.11,GRD:666.67,GLP:493.9,GUM:611.11,GTM:272.66,GIN:182.72,GNB:625,GUY:634.33,HTI:534.65,HND:289.5,HKG:681.99,HUN:182.82,ISL:28.33,IND:713.01,IDN:682.43,IRN:641.73,IRQ:689.4,IRL:279.7,ISR:567.26,ITA:287.53,JAM:561.25,JPN:493.59,JOR:539.21,KAZ:821.9,KEN:96.95,KIR:500,XKX:958.72,KWT:636.91,KGZ:150.77,LAO:232.12,"LATIN AMERICA AND CARIBBEAN":258.14,LVA:136.22,LBN:369.47,LSO:20.83,LBR:435.9,LBY:830.53,LTU:139.34,LUX:134.62,MAC:448.98,MDG:477.27,MWI:54.65,MYS:607.88,MDV:611.77,MLI:394.5,MLT:484.16,MTQ:516.78,MRT:481.71,MUS:633.03,MEX:492.34,"MIDDLE EAST":641.21,MDA:631.68,MNG:785.08,MNE:413.51,MSR:1e3,MAR:616.82,MOZ:127.81,MMR:588.95,NAM:47.62,NRU:750,NPL:23.36,NLD:253.31,NCL:585.76,NZL:104.42,NIC:288.33,NER:687.5,NGA:508.82,"NORTH AMERICA":363.32,PRK:344.26,MKD:568.97,NOR:30.75,OCEANIA:494.76,OECD:349.67,OMN:545.88,PAK:425.69,PSE:460.78,PAN:258.74,PNG:513.74,PRY:24.86,PER:300.53,POL:614.98,PRT:112.29,PRI:660.8,QAT:602.65,REU:525.22,ROU:245.55,RUS:449.2,RWA:301.89,KNA:636.36,LCA:650,SPM:600,VCT:600,WSM:400,STP:555.56,SAU:696.31,SEN:535.4,SRB:673.16,SYC:571.43,SLE:47.62,SGP:500.87,SVK:96.49,SVN:227.65,SLB:636.36,SOM:523.81,ZAF:709.69,KOR:432.11,SSD:610.17,ESP:146.15,LKA:509.78,SDN:214.33,SUR:383.18,SWE:35.82,CHE:36.6,SYR:682.27,TWN:644.4,TJK:87.5,TZA:371.59,THA:549.85,PHL:612.54,TGO:478.26,TON:571.43,TTO:682.11,TUN:560.36,TUR:469.7,TKM:1306.3,TCA:653.85,UGA:57.39,UKR:256.21,ARE:492.7,GBR:210.89,USA:392.85,URY:115.68,UZB:1121.18,VUT:500,VEN:180.25,VNM:472.47,VGB:647.06,VIR:641.79,WORLD:484.4,YEM:586.32,ZMB:111,ZWE:298.44},type:"average"};const Xx=Zx.data.WORLD,Jx={OPERATIONAL_KWH_PER_GB_DATACENTER:.055,OPERATIONAL_KWH_PER_GB_NETWORK:.059,OPERATIONAL_KWH_PER_GB_DEVICE:.08,EMBODIED_KWH_PER_GB_DATACENTER:.012,EMBODIED_KWH_PER_GB_NETWORK:.013,EMBODIED_KWH_PER_GB_DEVICE:.081,GLOBAL_GRID_INTENSITY:494},Qx={FIFTH_PERCENTILE:.095,TENTH_PERCENTILE:.186,TWENTIETH_PERCENTILE:.341,THIRTIETH_PERCENTILE:.493,FORTIETH_PERCENTILE:.656,FIFTIETH_PERCENTILE:.846},eT=Jx.GLOBAL_GRID_INTENSITY,tT=e=>parseFloat(e.toFixed(2)),nT=(e,t)=>e<=t;function rT(e={},t=3,n=!1){const r=4===t?eT:Xx;if("object"!=typeof e)throw new Error("Options must be an object");const o={};function a(e,t){var n,a;t||0===t?"object"==typeof t?(Zx.data[null==(n=t.country)?void 0:n.toUpperCase()]||(console.warn('"'.concat(t.country,'" is not a valid country. Please use a valid 3 digit ISO 3166 country code. \nSee https://developers.thegreenwebfoundation.org/co2js/data/ for more information. \nFalling back to global average grid intensity.')),o.gridIntensity[e]={value:r}),o.gridIntensity[e]={country:t.country,value:parseFloat(Zx.data[null==(a=t.country)?void 0:a.toUpperCase()])}):"number"==typeof t?o.gridIntensity[e]={value:t}:(o.gridIntensity[e]={value:r},console.warn("The ".concat(e," grid intensity must be a number or an object. You passed in a ").concat(typeof t,". \nFalling back to global average grid intensity."))):o.gridIntensity[e]={value:r}}if(null==e?void 0:e.gridIntensity){o.gridIntensity={};const{device:t,dataCenter:n,network:r}=e.gridIntensity;a("device",t),a("dataCenter",n),a("network",r)}else o.gridIntensity={device:{value:r},dataCenter:{value:r},network:{value:r}};return(null==e?void 0:e.greenHostingFactor)||0===e.greenHostingFactor&&4===t?"number"==typeof e.greenHostingFactor?e.greenHostingFactor>=0&&e.greenHostingFactor<=1?o.greenHostingFactor=e.greenHostingFactor:(o.greenHostingFactor=0,console.warn("The returnVisitPercentage option must be a number between 0 and 1. You passed in ".concat(e.returnVisitPercentage,". \nFalling back to default value."))):(o.greenHostingFactor=0,console.warn("The returnVisitPercentage option must be a number. You passed in a ".concat(typeof e.returnVisitPercentage,". \nFalling back to default value."))):4===t&&(o.greenHostingFactor=0),n&&(o.greenHostingFactor=1),o}function oT(e,t){let{FIFTH_PERCENTILE:n,TENTH_PERCENTILE:r,TWENTIETH_PERCENTILE:o,THIRTIETH_PERCENTILE:a,FORTIETH_PERCENTILE:i,FIFTIETH_PERCENTILE:s}=Qx;return 4===t&&(n=.04,r=.079,o=.145,a=.209,i=.278,s=.359),nT(e,n)?"A+":nT(e,r)?"A":nT(e,o)?"B":nT(e,a)?"C":nT(e,i)?"D":nT(e,s)?"E":"F"}var aT=Object.defineProperty,iT=Object.defineProperties,sT=Object.getOwnPropertyDescriptors,lT=Object.getOwnPropertySymbols,cT=Object.prototype.hasOwnProperty,dT=Object.prototype.propertyIsEnumerable,uT=(e,t,n)=>t in e?aT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hT=(e,t)=>{for(var n in t||(t={}))cT.call(t,n)&&uT(e,n,t[n]);if(lT)for(var n of lT(t))dT.call(t,n)&&uT(e,n,t[n]);return e},pT=(e,t)=>iT(e,sT(t)),mT=class{constructor(e){this.allowRatings=!0,this.options=e,this.version=3}energyPerByteByComponent(e){const t=e/qx*.81;return{consumerDeviceEnergy:.52*t,networkEnergy:.14*t,productionEnergy:.19*t,dataCenterEnergy:.15*t}}co2byComponent(e,t=Xx,n={}){let r=Xx,o=Xx,a=Xx,i=Xx;if(null==n?void 0:n.gridIntensity){const{device:e,network:t,dataCenter:i}=n.gridIntensity;((null==e?void 0:e.value)||0===(null==e?void 0:e.value))&&(r=e.value),((null==t?void 0:t.value)||0===(null==t?void 0:t.value))&&(o=t.value),((null==i?void 0:i.value)||0===(null==i?void 0:i.value))&&(a=i.value)}!0===t&&(a=50);const s={};for(const[t,n]of Object.entries(e))t.startsWith("dataCenterEnergy")?s[t.replace("Energy","CO2")]=n*a:t.startsWith("consumerDeviceEnergy")?s[t.replace("Energy","CO2")]=n*r:t.startsWith("networkEnergy")?s[t.replace("Energy","CO2")]=n*o:s[t.replace("Energy","CO2")]=n*i;return s}perByte(e,t=!1,n=!1,r=!1,o={}){e<1&&(e=0);const a=this.energyPerByteByComponent(e,o);if("boolean"!=typeof t)throw new Error("perByte expects a boolean for the carbon intensity value. Received: ".concat(t));const i=this.co2byComponent(a,t,o),s=Object.values(i).reduce(((e,t)=>e+t));let l=null;return r&&(l=this.ratingScale(s)),n?pT(hT({},i),r?{total:s,rating:l}:{total:s}):r?{total:s,rating:l}:s}perVisit(e,t=!1,n=!1,r=!1,o={}){const a=this.energyPerVisitByComponent(e,o);if("boolean"!=typeof t)throw new Error("perVisit expects a boolean for the carbon intensity value. Received: ".concat(t));const i=this.co2byComponent(a,t,o),s=Object.values(i).reduce(((e,t)=>e+t));let l=null;return r&&(l=this.ratingScale(s)),n?pT(hT({},i),r?{total:s,rating:l}:{total:s}):r?{total:s,rating:l}:s}energyPerByte(e){const t=this.energyPerByteByComponent(e);return Object.values(t).reduce(((e,t)=>e+t))}energyPerVisitByComponent(e,t={},n=.75,r=.25,o=.02){(t.dataReloadRatio||0===t.dataReloadRatio)&&(o=t.dataReloadRatio),(t.firstVisitPercentage||0===t.firstVisitPercentage)&&(n=t.firstVisitPercentage),(t.returnVisitPercentage||0===t.returnVisitPercentage)&&(r=t.returnVisitPercentage);const a=this.energyPerByteByComponent(e),i={};Object.values(a);for(const[e,t]of Object.entries(a))i["".concat(e," - first")]=t*n,i["".concat(e," - subsequent")]=t*r*o;return i}energyPerVisit(e){let t=0,n=0;const r=Object.entries(this.energyPerVisitByComponent(e));for(const[e,n]of r)e.indexOf("first")>0&&(t+=n);for(const[e,t]of r)e.indexOf("subsequent")>0&&(n+=t);return t+n}emissionsPerVisitInGrams(e,t=Xx){return tT(e*t)}annualEnergyInKwh(e,t=1e3){return e*t*12}annualEmissionsInGrams(e,t=1e3){return e*t*12}annualSegmentEnergy(e){return{consumerDeviceEnergy:tT(.52*e),networkEnergy:tT(.14*e),dataCenterEnergy:tT(.15*e),productionEnergy:tT(.19*e)}}ratingScale(e){return oT(e,this.version)}},fT=Object.defineProperty,gT=Object.defineProperties,AT=Object.getOwnPropertyDescriptors,bT=Object.getOwnPropertySymbols,CT=Object.prototype.hasOwnProperty,vT=Object.prototype.propertyIsEnumerable,yT=(e,t,n)=>t in e?fT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wT=(e,t)=>{for(var n in t||(t={}))CT.call(t,n)&&yT(e,n,t[n]);if(bT)for(var n of bT(t))vT.call(t,n)&&yT(e,n,t[n]);return e},ET=(e,t)=>gT(e,AT(t));const{OPERATIONAL_KWH_PER_GB_DATACENTER:kT,OPERATIONAL_KWH_PER_GB_NETWORK:xT,OPERATIONAL_KWH_PER_GB_DEVICE:TT,EMBODIED_KWH_PER_GB_DATACENTER:ST,EMBODIED_KWH_PER_GB_NETWORK:BT,EMBODIED_KWH_PER_GB_DEVICE:IT,GLOBAL_GRID_INTENSITY:_T}=Jx;function NT(e,t){const n=e.dataCenter+e.network+e.device,r=t.dataCenter+t.network+t.device,o=e.dataCenter+t.dataCenter,a=e.network+t.network,i=e.device+t.device;return{dataCenterOperationalCO2e:e.dataCenter,networkOperationalCO2e:e.network,consumerDeviceOperationalCO2e:e.device,dataCenterEmbodiedCO2e:t.dataCenter,networkEmbodiedCO2e:t.network,consumerDeviceEmbodiedCO2e:t.device,totalEmbodiedCO2e:r,totalOperationalCO2e:n,dataCenterCO2e:o,networkCO2e:a,consumerDeviceCO2e:i}}function PT(e,t){return e?1:(null==t?void 0:t.greenHostingFactor)||0===(null==t?void 0:t.greenHostingFactor)?t.greenHostingFactor:0}var MT,FT,RT=class{constructor(e){this.allowRatings=!0,this.options=e,this.version=4}operationalEnergyPerSegment(e){const t=e/qx;return{dataCenter:t*kT,network:t*xT,device:t*TT}}operationalEmissions(e,t={}){const{dataCenter:n,network:r,device:o}=this.operationalEnergyPerSegment(e);let a=_T,i=_T,s=_T;if(null==t?void 0:t.gridIntensity){const{device:e,network:n,dataCenter:r}=t.gridIntensity;((null==e?void 0:e.value)||0===(null==e?void 0:e.value))&&(s=e.value),((null==n?void 0:n.value)||0===(null==n?void 0:n.value))&&(i=n.value),((null==r?void 0:r.value)||0===(null==r?void 0:r.value))&&(a=r.value)}return{dataCenter:n*a,network:r*i,device:o*s}}embodiedEnergyPerSegment(e){const t=e/qx;return{dataCenter:t*ST,network:t*BT,device:t*IT}}embodiedEmissions(e){const{dataCenter:t,network:n,device:r}=this.embodiedEnergyPerSegment(e);return{dataCenter:t*_T,network:n*_T,device:r*_T}}perByte(e,t=!1,n=!1,r=!1,o={}){if(e<1)return 0;const a=this.operationalEmissions(e,o),i=this.embodiedEmissions(e),s=PT(t,o),l=a.dataCenter*(1-s)+i.dataCenter+(a.network+i.network)+(a.device+i.device);let c=null;if(r&&(c=this.ratingScale(l)),n){const e=wT({},NT(a,i));return ET(wT({},e),r?{total:l,rating:c}:{total:l})}return r?{total:l,rating:c}:l}perVisit(e,t=!1,n=!1,r=!1,o={}){let a=1,i=0,s=0;const l=PT(t,o),c=this.operationalEmissions(e,o),d=this.embodiedEmissions(e);if(e<1)return 0;(o.firstVisitPercentage||0===o.firstVisitPercentage)&&(a=o.firstVisitPercentage),(o.returnVisitPercentage||0===o.returnVisitPercentage)&&(i=o.returnVisitPercentage),(o.dataReloadRatio||0===o.dataReloadRatio)&&(s=o.dataReloadRatio);const u=c.dataCenter*(1-l)+d.dataCenter+c.network+d.network+c.device+d.device,h=(c.dataCenter*(1-l)+d.dataCenter+c.network+d.network+c.device+d.device)*(1-s),p=u*a+h*i;let m=null;if(r&&(m=this.ratingScale(p)),n){const e=ET(wT({},NT(c,d)),{firstVisitCO2e:u,returnVisitCO2e:h});return ET(wT({},e),r?{total:p,rating:m}:{total:p})}return r?{total:p,rating:m}:p}ratingScale(e){return oT(e,this.version)}},DT=Object.defineProperty,LT=Object.getOwnPropertySymbols,OT=Object.prototype.hasOwnProperty,UT=Object.prototype.propertyIsEnumerable,zT=(e,t,n)=>t in e?DT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GT=(e,t)=>{for(var n in t||(t={}))OT.call(t,n)&&zT(e,n,t[n]);if(LT)for(var n of LT(t))UT.call(t,n)&&zT(e,n,t[n]);return e},WT=(e,t)=>{var n={};for(var r in e)OT.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&<)for(var r of LT(e))t.indexOf(r)<0&&UT.call(e,r)&&(n[r]=e[r]);return n},HT=class{constructor(e){if(this.model=new mT,"1byte"===(null==e?void 0:e.model))this.model=new Yx;else if("swd"===(null==e?void 0:e.model))this.model=new mT,4===(null==e?void 0:e.version)&&(this.model=new RT);else if(null==e?void 0:e.model)throw new Error('"'.concat(e.model,'" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.'));if((null==e?void 0:e.rating)&&"boolean"!=typeof e.rating)throw new Error("The rating option must be a boolean. Please use true or false.\nSee https://developers.thegreenwebfoundation.org/co2js/options/ to learn more about the options available in CO2.js.");const t=!!this.model.allowRatings;if(this._segment="segment"===(null==e?void 0:e.results),this._rating=!0===(null==e?void 0:e.rating),!t&&this._rating)throw new Error("The rating system is not supported in the model you are using. Try using the Sustainable Web Design model instead.\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.")}perByte(e,t=!1){return this.model.perByte(e,t,this._segment,this._rating)}perVisit(e,t=!1){var n;if(null==(n=this.model)?void 0:n.perVisit)return this.model.perVisit(e,t,this._segment,this._rating);throw new Error("The perVisit() method is not supported in the model you are using. Try using perByte() instead.\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.")}perByteTrace(e,t=!1,n={}){const r=rT(n,this.model.version,t),o=r,{gridIntensity:a}=o,i=WT(o,["gridIntensity"]),{dataReloadRatio:s,firstVisitPercentage:l,returnVisitPercentage:c}=i,d=WT(i,["dataReloadRatio","firstVisitPercentage","returnVisitPercentage"]);return{co2:this.model.perByte(e,t,this._segment,this._rating,r),green:t,variables:GT({description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:GT({description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate."},r.gridIntensity)},d)}}perVisitTrace(e,t=!1,n={}){var r;if(null==(r=this.model)?void 0:r.perVisit){const r=function(e={},t=3,n=!1){if("object"!=typeof e)throw new Error("Options must be an object");const r=rT(e,t,n);return!(null==e?void 0:e.dataReloadRatio)&&0!==e.dataReloadRatio||"number"!=typeof e.dataReloadRatio?(r.dataReloadRatio=3===t?.02:0,console.warn("The dataReloadRatio option must be a number. You passed in a ".concat(typeof e.dataReloadRatio,". \nFalling back to default value."))):e.dataReloadRatio>=0&&e.dataReloadRatio<=1?r.dataReloadRatio=e.dataReloadRatio:(r.dataReloadRatio=3===t?.02:0,console.warn("The dataReloadRatio option must be a number between 0 and 1. You passed in ".concat(e.dataReloadRatio,". \nFalling back to default value."))),!(null==e?void 0:e.firstVisitPercentage)&&0!==e.firstVisitPercentage||"number"!=typeof e.firstVisitPercentage?(r.firstVisitPercentage=3===t?.75:1,console.warn("The firstVisitPercentage option must be a number. You passed in a ".concat(typeof e.firstVisitPercentage,". \nFalling back to default value."))):e.firstVisitPercentage>=0&&e.firstVisitPercentage<=1?r.firstVisitPercentage=e.firstVisitPercentage:(r.firstVisitPercentage=3===t?.75:1,console.warn("The firstVisitPercentage option must be a number between 0 and 1. You passed in ".concat(e.firstVisitPercentage,". \nFalling back to default value."))),!(null==e?void 0:e.returnVisitPercentage)&&0!==e.returnVisitPercentage||"number"!=typeof e.returnVisitPercentage?(r.returnVisitPercentage=3===t?.25:0,console.warn("The returnVisitPercentage option must be a number. You passed in a ".concat(typeof e.returnVisitPercentage,". \nFalling back to default value."))):e.returnVisitPercentage>=0&&e.returnVisitPercentage<=1?r.returnVisitPercentage=e.returnVisitPercentage:(r.returnVisitPercentage=3===t?.25:0,console.warn("The returnVisitPercentage option must be a number between 0 and 1. You passed in ".concat(e.returnVisitPercentage,". \nFalling back to default value."))),r}(n,this.model.version,t),o=r,{gridIntensity:a}=o,i=WT(o,["gridIntensity"]);return{co2:this.model.perVisit(e,t,this._segment,this._rating,r),green:t,variables:GT({description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:GT({description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate."},r.gridIntensity)},i)}}throw new Error("The perVisitTrace() method is not supported in the model you are using. Try using perByte() instead.\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.")}SustainableWebDesignV3(){return new mT}SustainableWebDesignV4(){return new RT}OneByte(){return new Yx}},VT=Object.getOwnPropertyNames;(MT={"src/hosting-json.js"(e,t){function n(e,t){return t.indexOf(e)>-1?e:{url:e,green:!1}}t.exports={check:async function(e,t){return"string"==typeof e?function(e,t){return t.indexOf(e)>-1}(e,t):function(e,t){let n=[];for(let r of e)t.indexOf(r)>-1&&n.push(r);return n}(e,t)},greenDomainsFromResults:function(e){return Object.entries(e).filter((([e,t])=>t.green)).map((([e,t])=>t.url))},find:function(e,t){return"string"==typeof e?n(e,t):function(e,t){const r={};for(let o of e)r[o]=n(o,t);return r}(e,t)}}}},function(){return FT||(0,MT[VT(MT)[0]])((FT={exports:{}}).exports,FT),FT.exports})();var jT=n(8601),$T={};$T.styleTagTransform=M(),$T.setAttributes=B(),$T.insert=T().bind(null,"head"),$T.domAPI=k(),$T.insertStyleElement=N(),w()(jT.A,$T),jT.A&&jT.A.locals&&jT.A.locals;class KT extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,maxCounterSampleCountPerMs:l,counterSampleRange:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[v,y]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=Lx(r.color||In.a2),d.fillStyle=Ox(r.color||In.a2),d.beginPath();const e=e=>Math.round((C.time[e]-t)*A),n=e=>{const t=C.count[e];if(!t)return p+f;const n=0===e?s:C.time[e]-C.time[e-1];return g-g*(t/n/w)+f},o=e(v);let a=o,i=n(v);d.moveTo(a,i);for(let t=v+1;t<y;t++){a=e(t),i=n(t),d.lineTo(a,i);const r=[i];for(;t+1<y&&e(t+1)===a;)r.push(n(++t));if(r.length>2){const e=Math.max(...r);e!==i&&(i=e,d.lineTo(a,i));const t=Math.min(...r);t!==i&&(i=t,d.lineTo(a,i))}const o=r[r.length-1];o!==i&&(i=o,d.lineTo(a,i))}d.lineTo(a+b,i),d.stroke(),d.lineTo(a+b,p),d.lineTo(o,p),d.fill()}}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackBandwidthCanvas",ref:this._takeCanvasRef}))}}class YT extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{window.persistTooltips||this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRange:c}=this.props,d=i-a,u=a+(t-r)/o*d;if(0===s.samples.length)throw new Error("No sample group found for bandwidth counter");const{samples:h}=s;if(u<h.time[0]||u>h.time[h.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[i,s]=c,l=(0,Rc.lV)(h.time,u,i,s);if(l>0&&l<h.time.length){e=u-h.time[l-1]<h.time[l]-u?l-1:l;const n=e=>Math.round((e-a)/d*o+r);for(let r=e-1;n(h.time[r])===t&&r>0;--r)h.count[r]>h.count[e]&&(e=r);for(let r=e+1;n(h.time[r])===t&&r<h.time.length;++r)h.count[r]>h.count[e]&&(e=r)}else e=l;e===h.length&&(e=h.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}},this._co2=null}_formatDataTransferValue(e,t){this._co2||(this._co2=new HT);const n=Gt(this._co2.perByteTrace(e,!1,{gridIntensity:{device:0}}).co2),r=Kt(e);return J.createElement(de,{id:t,vars:{value:r,carbonValue:n},attrs:{label:!0}},J.createElement(vC,{label:""},r))}_renderTooltip(e){const{accumulatedSamples:t,counter:n,rangeStart:r,rangeEnd:o,interval:a,previewSelection:i}=this.props,{mouseX:s,mouseY:l}=this.state,{samples:c}=n;if(0===c.length)throw new Error("No accumulated sample found for bandwidth counter");const d=c.time[e];if(d<r||d>o)return null;const{minCount:u,countRange:h,accumulatedCounts:p}=t,m=p[e]-u,f=void 0!==c.number?c.number[e]:null,g=0===e?a:c.time[e]-c.time[e-1],A=c.count[e]/g;let b,C=0;if(i.hasSelection){const[e,t]=(0,bn.XG)(c,i.selectionStart,i.selectionEnd);for(let n=e;n<t;n++)C+=c.count[n]}return null!==f&&(b=Gt(f,2,0)),J.createElement(Vb,{mouseX:s,mouseY:l},J.createElement("div",{className:"timelineTrackBandwidthTooltip"},J.createElement(wC,null,this._formatDataTransferValue(1e3*A,"TrackBandwidthGraph--speed"),null!==f?J.createElement(de,{id:"TrackBandwidthGraph--read-write-operations-since-the-previous-sample",vars:{value:b},attrs:{label:!0}},J.createElement(vC,{label:""},b)):null,J.createElement(yC,null),this._formatDataTransferValue(m,"TrackBandwidthGraph--cumulative-bandwidth-at-this-time"),this._formatDataTransferValue(h,"TrackBandwidthGraph--total-bandwidth-in-graph"),i.hasSelection?this._formatDataTransferValue(C,"TrackBandwidthGraph--total-bandwidth-in-range"):null)))}_renderBandwidthDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t;if(0===c.length)throw new Error("No sample found for bandwidth counter");const d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(u-n)/d,p=s,m=0===e?l:c.time[e]-c.time[e-1],f=o-i/2,g=f-c.count[e]/m/p*f+i/2;return J.createElement("div",{style:{left:h,top:g,backgroundColor:Ux(t.color||In.a2)},className:"timelineTrackBandwidthGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,accumulatedSamples:u,maxCounterSampleCountPerMs:h}=this.props;return J.createElement("div",{className:"timelineTrackBandwidthGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(KT,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,accumulatedSamples:u,maxCounterSampleCountPerMs:h}),null===e?null:J.createElement(J.Fragment,null,this._renderBandwidthDot(e),this._renderTooltip(e)),J.createElement(ux,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const qT=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n),o=r.getCounter(e),{start:a,end:i}=li(e),s=r.getCommittedRangeCounterSampleRange(e),l=Id(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxRangeCounterSampleCountPerMs(e),accumulatedSamples:r.getAccumulateCounterSamples(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:gi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e),previewSelection:hi(e)}},component:Av(YT)});class ZT extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackBandwidth",style:{height:In.AJ,"--graph-height":`${In.AJ}px`}},J.createElement(qT,{counterIndex:e,lineWidth:In.SH,graphHeight:In.AJ}))}}const XT=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n).getCounter(e),{start:o,end:a}=li(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},component:ZT});var JT=n(8004),QT={};QT.styleTagTransform=M(),QT.setAttributes=B(),QT.insert=T().bind(null,"head"),QT.domAPI=k(),QT.insertStyleElement=N(),w()(JT.A,QT),JT.A&&JT.A.locals&&JT.A.locals;class eS extends J.PureComponent{constructor(...e){super(...e),this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}render(){const{rangeStart:e,rangeEnd:t,threadIndex:n}=this.props;return J.createElement("div",{style:{height:In.Xh,"--markers-height":`${In.Xh}px`}},J.createElement(ix,{rangeStart:e,rangeEnd:t,threadsKey:n,onSelect:this._onMarkerSelect}))}}const tS=at({mapStateToProps:e=>{const{start:t,end:n}=li(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:Vh},component:eS});var nS=n(8527),rS={};rS.styleTagTransform=M(),rS.setAttributes=B(),rS.insert=T().bind(null,"head"),rS.domAPI=k(),rS.insertStyleElement=N(),w()(nS.A,rS),nS.A&&nS.A.locals&&nS.A.locals;class oS extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,maxCounterSampleCountPerMs:l,counterSampleRange:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[v,y]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=_b.MU,d.fillStyle="#73737388",d.beginPath();let e=0,n=0,r=0;for(let o=v;o<y;o++){e=(C.time[o]-t)*A;const a=0===o?s:C.time[o]-C.time[o-1];n=g-g*(C.count[o]/a/w)+f,0===o?(r=e,d.moveTo(e,n)):d.lineTo(e,n)}d.lineTo(e+b,n),d.stroke(),d.lineTo(e+b,p),d.lineTo(r,p),d.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),J.createElement("canvas",{className:"timelineTrackProcessCPUCanvas",ref:this._takeCanvasRef})}}class aS extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRange:c}=this.props,d=a+(t-r)/o*(i-a),{samples:u}=s;if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c,a=(0,Rc.lV)(u.time,d,r,o);e=a>0&&a<u.time.length&&d-u.time[a-1]<u.time[a]-d?a-1:a,e===u.length&&(e=u.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{counter:t,maxCounterSampleCountPerMs:n,interval:r,rangeStart:o,rangeEnd:a}=this.props,{mouseX:i,mouseY:s}=this.state,{samples:l}=t;if(0===l.length)throw new Error("No sample found for process CPU counter");const c=l.time[e];if(c<o||c>a)return null;const d=n,u=l.count[e]/(0===e?r:l.time[e]-l.time[e-1])/d;return J.createElement(Vb,{mouseX:i,mouseY:s},J.createElement("div",{className:"timelineTrackProcessCPUTooltip"},J.createElement("div",{className:"timelineTrackProcessCPUTooltipLine"},"CPU:"," ",J.createElement("span",{className:"timelineTrackProcessCPUTooltipNumber"},Vt(u)))))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t,d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(c.time[e]-n)/d;if(0===c.length)throw new Error("No sample found for process CPU counter");const p=s,m=0===e?l:c.time[e]-c.time[e-1],f=o-i/2,g=f-c.count[e]/m/p*f+i/2;return J.createElement("div",{style:{left:h,top:g},className:"timelineTrackProcessCPUGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountPerMs:u}=this.props;return J.createElement("div",{className:"timelineTrackProcessCPUGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(oS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountPerMs:u}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)),J.createElement(ux,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const iS=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n),o=r.getCounter(e),{start:a,end:i}=li(e),s=r.getCommittedRangeCounterSampleRange(e),l=Id(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxCounterSampleCountPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:gi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:Av(aS)});class sS extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackProcessCPU",style:{height:In.xJ,"--graph-height":`${In.xJ}px`}},J.createElement(iS,{counterIndex:e,lineWidth:In.ZK,graphHeight:In.xJ}))}}const lS=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n).getCounter(e),{start:o,end:a}=li(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Vh},component:sS});var cS=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function dS(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!((r=e[n])===(o=t[n])||cS(r)&&cS(o)))return!1;var r,o;return!0}class uS extends J.PureComponent{constructor(...e){super(...e),this._computePowerSumForCommittedRange=function(e,t){void 0===t&&(t=dS);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var a=e.apply(this,r);return n={lastResult:a,lastArgs:r,lastThis:this},a}return r.clear=function(){n=null},r}((({start:e,end:t})=>this._computePowerSumForRange(e,t)))}_computePowerSumForRange(e,t){const{counter:n}=this.props,r=n.samples,[o,a]=(0,bn.XG)(r,e,t);let i=0;for(let e=o;e<a;e++)i+=r.count[e];return 1e-12*i}_computeCO2eFromPower(e){return e/1e3*(this.props.meta.gramsOfCO2ePerKWh||Zx.data.WORLD)}_formatPowerValue(e,t,n,r,o){let a,i,s;const l=this._computeCO2eFromPower(e);return e>1e3?(a=Gt(e/1e3,3),s=Gt(l/1e3,2),i=t):e>1?(a=Gt(e,3),s=Gt(l,3),i=n):0===e?(a=0,s=0,i=n):e<.001&&o?(a=Gt(1e6*e),s=Gt(1e3*l),i=o):(a=Gt(1e3*e),s=Gt(1e3*l),i=r),J.createElement(de,{id:i,vars:{value:a,carbonValue:s},attrs:{label:!0}},J.createElement(vC,{label:""},a))}maybeRenderForPreviewSelection(e){if(!e.hasSelection)return null;const{selectionStart:t,selectionEnd:n}=e,r=n-t;if(0===r)return null;const o=this._computePowerSumForRange(t,n);return J.createElement(J.Fragment,null,this._formatPowerValue(o,"TrackPower--tooltip-energy-carbon-used-in-preview-kilowatthour","TrackPower--tooltip-energy-carbon-used-in-preview-watthour","TrackPower--tooltip-energy-carbon-used-in-preview-milliwatthour","TrackPower--tooltip-energy-carbon-used-in-preview-microwatthour"),this._formatPowerValue(36e5*o/r,"TrackPower--tooltip-average-power-kilowatt","TrackPower--tooltip-average-power-watt","TrackPower--tooltip-average-power-milliwatt"))}render(){const{counter:e,counterSampleIndex:t,interval:n,committedRange:r,previewSelection:o}=this.props,a=e.samples,i=1e-12*a.count[t]/(0===t?n:a.time[t]-a.time[t-1])*1e3*3600;return J.createElement("div",{className:"timelineTrackPowerTooltip"},J.createElement(wC,null,this._formatPowerValue(i,"TrackPower--tooltip-power-kilowatt","TrackPower--tooltip-power-watt","TrackPower--tooltip-power-milliwatt"),this.maybeRenderForPreviewSelection(o),this._formatPowerValue(this._computePowerSumForCommittedRange(r),"TrackPower--tooltip-energy-carbon-used-in-range-kilowatthour","TrackPower--tooltip-energy-carbon-used-in-range-watthour","TrackPower--tooltip-energy-carbon-used-in-range-milliwatthour","TrackPower--tooltip-energy-carbon-used-in-range-microwatthour")))}}const hS=at({mapStateToProps:e=>({interval:gi(e),meta:ki(e),committedRange:li(e),previewSelection:hi(e)}),component:uS});var pS=n(1501),mS={};mS.styleTagTransform=M(),mS.setAttributes=B(),mS.insert=T().bind(null,"head"),mS.domAPI=k(),mS.insertStyleElement=N(),w()(pS.A,mS),pS.A&&pS.A.locals&&pS.A.locals;class fS extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,maxCounterSampleCountPerMs:l,counterSampleRange:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[v,y]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=Lx(r.color||In.YX),d.fillStyle=Ox(r.color||In.YX),d.beginPath();const e=e=>Math.round((C.time[e]-t)*A),n=e=>{const t=0===e?s:C.time[e]-C.time[e-1];return C.count[e]/t},o=e=>{if(!e)return p+f;const t=e/w;return Math.round(g-g*t+f)},a=e(v);let i=a,l=o(n(v));d.moveTo(i,l);for(let t=v+1;t<y;t++){const r=[n(t)];for(i=e(t),l=o(r[0]),d.lineTo(i,l);t+1<y&&e(t+1)===i;)r.push(n(++t));if(r.length>2){const e=o(Math.min(...r));e!==l&&(l=e,d.lineTo(i,l));const t=o(Math.max(...r));t!==l&&(l=t,d.lineTo(i,l))}const a=o(r[r.length-1]);a!==l&&(l=a,d.lineTo(i,l))}d.lineTo(i+b,l),d.stroke(),d.lineTo(i+b,p),d.lineTo(a,p),d.fill()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas;e&&(0,Cn.l)("TrackPowerCanvas render",(()=>{this.drawCanvas(e)}))}render(){return this._renderCanvas(),J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackPowerCanvas",ref:this._takeCanvasRef}))}}class gS extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRange:c}=this.props,d=i-a,u=a+(t-r)/o*d,{samples:h}=s;if(u<h.time[0]||u>h.time[h.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[i,s]=c,l=(0,Rc.lV)(h.time,u,i,s);if(l>0&&l<h.time.length){e=u-h.time[l-1]<h.time[l]-u?l-1:l;const n=e=>Math.round((e-a)/d*o+r);for(let r=e-1;n(h.time[r])===t&&r>0;--r)h.count[r]>h.count[e]&&(e=r);for(let r=e+1;n(h.time[r])===t&&r<h.time.length;++r)h.count[r]>h.count[e]&&(e=r)}else e=l;e===h.length&&(e=h.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{counter:t,rangeStart:n,rangeEnd:r}=this.props,{mouseX:o,mouseY:a}=this.state,{samples:i}=t;if(0===i.length)throw new Error("No sample found for power counter");const s=i.time[e];return s<n||s>r?null:J.createElement(Vb,{mouseX:o,mouseY:a},J.createElement(hS,{counter:t,counterSampleIndex:e}))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t,d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(u-n)/d;if(0===c.length)throw new Error("No sample found for power counter");const p=s,m=0===e?l:c.time[e]-c.time[e-1],f=o-i/2,g=f-c.count[e]/m/p*f+i/2;return J.createElement("div",{style:{left:h,top:g,backgroundColor:Ux(t.color||In.YX)},className:"timelineTrackPowerGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountPerMs:u}=this.props;return J.createElement("div",{className:"timelineTrackPowerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(fS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountPerMs:u}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)),J.createElement(ux,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const AS=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n),o=r.getCounter(e),{start:a,end:i}=li(e),s=r.getCommittedRangeCounterSampleRange(e),l=Id(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxRangeCounterSampleCountPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:gi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:Av(gS)});class bS extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackPower",style:{height:In.ye,"--graph-height":`${In.ye}px`}},J.createElement(AS,{counterIndex:e,lineWidth:In.G5,graphHeight:In.ye}))}}const CS=at({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=Ui(n).getCounter(e),{start:o,end:a}=li(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Vh},component:bS});var vS=n(6487),yS={};function wS(e,t,n,r){let o;switch(e){case"line":case"line-filled":o=(r-t)/(n-t);break;case"bar":o=r/n;break;default:throw(0,ut.lC)(e,`The type ${e} is unexpected in _calculateUnitValue`)}return.85*o}yS.styleTagTransform=M(),yS.setAttributes=B(),yS.insert=T().bind(null,"head"),yS.domAPI=k(),yS.insertStyleElement=N(),w()(vS.A,yS),vS.A&&vS.A.locals&&vS.A.locals;class ES extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,collectedSamples:a,height:i,width:s,getMarker:l}=this.props;if(0===s)return;const{name:c,graphs:d}=r;if(void 0===d)throw new Error("No track config for marker");const u=e.getContext("2d"),h=window.devicePixelRatio,p=s*h,m=i*h,f=p/(n-t);e.width=Math.round(p),e.height=Math.round(m),u.clearRect(0,0,p,m);const g=In.H9*h;if(u.lineWidth=g,u.lineJoin="bevel",0===a.numbersPerLine.length)throw new Error("No lines for marker "+c);const{minNumber:A,maxNumber:b}=a,[C,v]=o;for(let e=0;e<d.length;e++){const{type:n,color:r}=d[e],o=a.numbersPerLine[e];u.strokeStyle=Lx(r||In.BY);const i=e=>Math.round((e-t)*f),s="bar"===n?0:.5*g,c=e=>{const t=wS(n,A,b,o[e]);return Math.floor(m-m*t-s)};switch(n){case"line":case"line-filled":{let e=0,t=0,o=0;u.beginPath();for(let n=C;n<v;n++){const r=l(a.markerIndexes[n]);e=i(r.start),t=c(n),n===C?(o=e,u.moveTo(e,t)):u.lineTo(e,t),r.end&&(e=i(r.end),u.lineTo(e,t))}u.stroke(),"line-filled"===n&&(u.lineTo(e,m),u.lineTo(o,m),u.fillStyle=Ox(r||In.BY),u.fill(),u.closePath());break}case"bar":u.fillStyle=u.strokeStyle;for(let e=C;e<v;e++){let t=l(a.markerIndexes[e]);const n=i(t.start);let r=c(e);for(;e+1<v;){const o=l(a.markerIndexes[e+1]);if(i(o.start)!==n||i(o.end||o.start)!==i(t.end||t.start))break;t=o,r=Math.min(r,c(++e))}if(r!==m){const e=t.end?Math.max(n+1,i(t.end)):n+1;u.fillRect(n,r,e-n,m-r)}}break;default:throw new Error("Unsupported type "+n)}}}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&(0,Cn.l)("TrackCustomMarkerCanvas render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(bk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackCustomMarkerCanvas",ref:this._takeCanvasRef}))}}class kS extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{window.persistTooltips||this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,markerSampleRanges:s,collectedSamples:l,getMarker:c}=this.props,d=a+(t-r)/o*(i-a),u=l.markerIndexes.map((e=>c(e))),h=u.map((e=>e.start));if(0===h.length||d<h[0]||d>h[h.length-1]+(u[h.length-1].end||0))this.setState({hoveredCounter:null});else{let e;const[r,o]=s,a=(0,Rc.lV)(h,d,r,o);if(a>0&&a<h.length){const t=d-h[a-1],n=h[a]-d,r=u[a-1].end;e=r&&r>d||t<n?a-1:a}else e=a;e===h.length&&(e=h.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{collectedSamples:t,rangeStart:n,rangeEnd:r,markerSchema:o,threadIndex:a,getMarker:i}=this.props,{mouseX:s,mouseY:l}=this.state;if(0===t.numbersPerLine.length)throw new Error("No samples for marker "+o.name);const c=t.markerIndexes[e],d=i(c),u=d.start;return(d.end||u)<n||u>r?null:J.createElement(Vb,{mouseX:s,mouseY:l},J.createElement(jC,{markerIndex:c,marker:d,threadsKey:a,restrictHeightWidth:!0}))}_renderDot(e){const{markerSchema:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,collectedSamples:i,getMarker:s}=this.props,{graphs:l}=t;if(void 0===l)throw new Error("No track config for marker");const c=r-n,d=s(i.markerIndexes[e]),u=d.start;if((d.end||u)<n||u>r)return null;const h=a*(u-n)/c,{minNumber:p,maxNumber:m,numbersPerLine:f}=i,g=[];for(let t=0;t<l.length;t++){const{type:n,color:r}=l[t],i=wS(n,p,m,f[t][e]),s=In.H9/2,u=o-s,A={left:h,top:u-i*u-s};if(A.backgroundColor=Ux(r||In.BY),d.end){let e=a*(d.end-d.start)/c;const t=6;if(e>t){A.marginLeft=0,h<0&&(e+=h,A.left=0,A.borderTopLeftRadius=0,A.borderBottomLeftRadius=0);const t=Math.max(h,0);A.width=Math.min(e,a-t),e>a-t&&(A.borderTopRightRadius=0,A.borderBottomRightRadius=0)}else A.marginLeft=-(t-e)/2}g.push(J.createElement("div",{style:A,key:t,className:"timelineTrackCustomMarkerGraphDot"}))}return J.createElement(J.Fragment,null,g)}render(){const{hoveredCounter:e}=this.state,{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,graphHeight:a,width:i,collectedSamples:s,getMarker:l}=this.props;return J.createElement("div",{className:"timelineTrackCustomMarkerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(ES,{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,height:a,width:i,collectedSamples:s,getMarker:l}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)))}}const xS=at({mapStateToProps:(e,t)=>{const{threadIndex:n,markerSchema:r,markerName:o}=t,{start:a,end:i}=li(e),s=Id(n),l=s.getMarkerTrackSelectors(r,o);return{markerSampleRanges:l.getCommittedRangeMarkerSampleRange(e),collectedSamples:l.getCollectedCustomMarkerSamples(e),rangeStart:a,rangeEnd:i,getMarker:s.getMarkerGetter(e)}},component:Av(kS)});class TS extends J.PureComponent{render(){const{markerSchema:e,markerName:t,threadIndex:n}=this.props;return J.createElement("div",{className:"timelineTrackCustomMarker",style:{height:In.Zh,"--graph-height":`${In.Zh}px`}},J.createElement(xS,{threadIndex:n,markerSchema:e,markerName:t,graphHeight:In.Zh}))}}const SS=at({mapStateToProps:(e,t)=>{const{start:n,end:r}=li(e);return{rangeStart:n,rangeEnd:r}},component:TS});class BS extends J.PureComponent{constructor(...e){super(...e),this._onContextMenu=()=>{this.props.changeRightClickedTrack(this._getTrackReference())},this._selectCurrentTrack=e=>{this.props.selectTrackWithModifiers(this._getTrackReference(),xu(e))},this._hideCurrentTrack=e=>{const{pid:t,trackIndex:n,hideLocalTrack:r}=this.props;r(t,n),e.stopPropagation()}}_getTrackReference(){const{pid:e,trackIndex:t}=this.props;return{type:"local",pid:e,trackIndex:t}}renderTrack(){const{localTrack:e,trackName:t}=this.props;switch(e.type){case"thread":return J.createElement(fx,{threadsKey:e.threadIndex,trackType:"expanded",trackName:t});case"network":return J.createElement(Dx,{threadIndex:e.threadIndex});case"memory":return J.createElement($x,{counterIndex:e.counterIndex});case"bandwidth":return J.createElement(XT,{counterIndex:e.counterIndex});case"ipc":return J.createElement(tS,{threadIndex:e.threadIndex});case"event-delay":return J.createElement(Bx,{threadIndex:e.threadIndex});case"process-cpu":return J.createElement(lS,{counterIndex:e.counterIndex});case"power":return J.createElement(CS,{counterIndex:e.counterIndex});case"marker":return J.createElement(SS,{threadIndex:e.threadIndex,markerSchema:e.markerSchema,markerName:e.markerName});default:return console.error("Unhandled localTrack type",e),null}}componentDidMount(){const{isSelected:e}=this.props;e&&this.props.setIsInitialSelectedPane(!0)}render(){const{isSelected:e,isHidden:t,titleText:n,trackName:r,style:o}=this.props;return t?J.createElement("li",{className:"timelineTrackHidden"}):J.createElement("li",{className:"timelineTrack timelineTrackLocal",style:o},J.createElement("div",{className:ug()("timelineTrackRow timelineTrackLocalRow",{selected:e}),onClick:this._selectCurrentTrack},J.createElement(Zg,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackLocalLabel timelineTrackLocalGrippy",onContextMenu:this._onContextMenu}},J.createElement("button",{type:"button",className:"timelineTrackNameButton"},r),J.createElement(de,{id:"TrackNameButton--hide-track",attrs:{title:!0}},J.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide track",onClick:this._hideCurrentTrack}))),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const IS=at({mapStateToProps:(e,{pid:t,localTrack:n,trackIndex:r})=>{let o=null,a=!1;const i=Uo(e);switch(n.type){case"thread":{const t=n.threadIndex,r=Do(e),s=Id(t);a=i.has(t)&&"network-chart"!==r,o=s.getThreadProcessDetails(e);break}case"network":{const t=n.threadIndex,r=Do(e);a=i.has(t)&&"network-chart"===r;break}case"marker":case"ipc":{const t=n.threadIndex,r=Do(e);a=i.has(t)&&"marker-chart"===r;break}case"event-delay":{const t=n.threadIndex,r=Id(t);a=t===i.has(t),o="Event Delay of "+r.getThreadProcessDetails(e);break}case"memory":case"bandwidth":case"process-cpu":case"power":o=Ui(n.counterIndex).getDescription(e);break;default:throw(0,ut.lC)(n,"Unhandled LocalTrack type.")}return{trackName:rs(e,t,r),titleText:o,isSelected:a,isHidden:Xo(e,t).has(r)}},mapDispatchToProps:{changeRightClickedTrack:uh,selectTrackWithModifiers:sh,hideLocalTrack:Th},component:BS});var _S=n(5705),NS={};NS.styleTagTransform=M(),NS.setAttributes=B(),NS.insert=T().bind(null,"head"),NS.domAPI=k(),NS.insertStyleElement=N(),w()(_S.A,NS),_S.A&&_S.A.locals&&_S.A.locals;class PS extends J.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,progressGraphData:r,height:o,width:a,lineWidth:i,interval:s}=this.props;if(0===a)return;const l=e.getContext("2d"),c=window.devicePixelRatio,d=a*c,u=o*c,h=i*c,p=.5*h,m=u-h;if(e.width=Math.round(d),e.height=Math.round(u),l.clearRect(0,0,d,u),0!==r.length){const e=n-t;l.lineWidth=h,l.strokeStyle=_b.Jn,l.fillStyle="#0a84ff88",l.beginPath();let o=0,a=0,i=0;for(let n=0;n<r.length;n++)o=d*((r[n].timestamp??0)-t)/e,a=m-m*(r[n].percent/100)+p,0===n?l.moveTo(o,a):(l.lineTo(o,i),l.lineTo(o,a)),i=a;o=d*(n-t)/e,l.lineTo(o,a),l.stroke(),l.lineTo(o+s,u),l.lineTo(d*((r[0].timestamp??0)-t)/e+s,u),l.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),J.createElement("canvas",{className:"timelineTrackVisualProgressCanvas",ref:this._takeCanvasRef})}}class MS extends J.PureComponent{constructor(...e){super(...e),this.state={hoveredVisualProgress:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredVisualProgress:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,progressGraphData:s,interval:l}=this.props,c=a+(t-r)/o*(i-a);if(c<(s[0].timestamp??0)||c>(s[s.length-1].timestamp??0)+l)this.setState({hoveredVisualProgress:null});else{const e=s.map((({timestamp:e})=>e??0));let r=(0,Rc.lV)(e,c);r===s.length&&(r=s.length-1),this.setState({mouseX:t,mouseY:n,hoveredVisualProgress:r})}}}_renderTooltip(e){const{progressGraphData:t,graphDotTooltipText:n}=this.props,r=t[e].percent/100;return J.createElement("div",{className:"timelineTrackVisualProgressTooltip"},J.createElement("div",{className:"timelineTrackVisualProgressTooltipLine"},J.createElement("span",{className:"timelineTrackVisualProgressTooltipNumber"},Vt(r)),n))}_renderVisualProgressDot(e){const{progressGraphData:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i}=this.props,s=r-n,l=a*((t[e].timestamp??0)-n)/s,c=o-i/2,d=c-t[e].percent/100*c+i/2;return J.createElement("div",{style:{left:l,top:d,"--dot-color":_b.Qr},className:"timelineTrackVisualProgressGraphDot"})}render(){const{hoveredVisualProgress:e,mouseX:t,mouseY:n}=this.state,{interval:r,rangeStart:o,rangeEnd:a,graphHeight:i,width:s,lineWidth:l,progressGraphData:c}=this.props;return J.createElement("div",{className:"timelineTrackVisualProgressGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(PS,{rangeStart:o,rangeEnd:a,progressGraphData:c,height:i,width:s,lineWidth:l,interval:r}),null===e?null:J.createElement(J.Fragment,null,this._renderVisualProgressDot(e),J.createElement(Vb,{mouseX:t,mouseY:n},this._renderTooltip(e))))}}const FS=at({mapStateToProps:e=>{const{start:t,end:n}=li(e);return{rangeStart:t,rangeEnd:n,interval:gi(e)}},component:Av(MS)});class RS extends J.PureComponent{render(){const{progressGraphData:e,graphDotTooltipText:t}=this.props;return J.createElement("div",{className:"timelineTrackVisualProgress",style:{height:In.li,"--graph-height":`${In.li}px`}},J.createElement(FS,{progressGraphData:e,lineWidth:In.Nj,graphHeight:In.li,graphDotTooltipText:t}))}}const DS=at({mapStateToProps:e=>{const{start:t,end:n}=li(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:Vh},component:RS});var LS=n(8088),OS=n.n(LS);function US(e,t){const n=window.getComputedStyle;return parseFloat(n(e).getPropertyValue(t))||0}function zS(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=US(e,"padding-top"),r=US(e,"padding-right"),o=US(e,"padding-bottom"),a=US(e,"padding-left");return new DOMRect(t.left+a,t.top+n,t.width-a-r,t.height-n-o)}(e,function(e,t){const n=US(e,"border-top-width"),r=US(e,"border-right-width"),o=US(e,"border-bottom-width"),a=US(e,"border-left-width");return new DOMRect(t.left+a,t.top+n,t.width-a-r,t.height-n-o)}(e,GS(t[0])))}function GS(e){return new DOMRect(e.left,e.top,e.width,e.height)}function WS(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=US(e,"margin-top"),r=US(e,"margin-right"),o=US(e,"margin-bottom"),a=US(e,"margin-left");return new DOMRect(t.left-a,t.top-n,t.width+a+r,t.height+n+o)}(e,GS(t[0]))}function HS(e,t){return e[t]}class VS extends J.PureComponent{constructor(...e){super(...e),this._xy={horizontal:{pageXY:"pageX",translateXY:"translateX",lefttop:"left",rightbottom:"right"},vertical:{pageXY:"pageY",translateXY:"translateY",lefttop:"top",rightbottom:"bottom"}},this.state={phase:"RESTING",manipulatingIndex:-1,destinationIndex:-1,manipulationDelta:0,adjustPrecedingBy:0,adjustSucceedingBy:0,finalOffset:0},this._onMouseDown=e=>{const t=e.currentTarget;if(e.target===t||!(e.target instanceof HTMLElement)||0!==e.button)return;let n=e.target;const{grippyClassName:r}=this.props;if(n.matches(`.${r}, .${r} *`)){for(;n instanceof HTMLElement&&n.parentNode!==t;)n=n.parentNode;n instanceof HTMLElement&&this._startDraggingElement(t,n,e)}}}_getXY(){return this._xy[this.props.orient]}_startDraggingElement(e,t,n){const r=this._getXY(),o=n[r.pageXY],a=WS(t),i=zS(e),s=HS(a,r.lefttop)-HS(i,r.lefttop),l=HS(i,r.rightbottom)-HS(a,r.rightbottom),c=Array.from(e.children);if(c.length<2)return;let d=!0,u=-1;const h=c.map(((e,n)=>{if(e===t)return u=n,d=!1,0;const o=WS(e);return d?HS(o,r.lefttop)-HS(a,r.lefttop):HS(o,r.rightbottom)-HS(a,r.rightbottom)}));if(-1===u)return;const p=h.map(((e,t)=>t===h.length-1?0:(h[t+1]+e)/2));p.pop();const m=u===c.length-1?HS(i,r.rightbottom):HS(WS(c[u+1]),r.lefttop),f=0===u?HS(i,r.lefttop):HS(WS(c[u-1]),r.rightbottom);this.setState({manipulatingIndex:u,manipulationDelta:0,destinationIndex:u,adjustPrecedingBy:m-HS(a,r.lefttop),adjustSucceedingBy:f-HS(a,r.rightbottom)});const g=e=>{"RESTING"===this.state.phase&&this.setState({phase:"MANIPULATING"});const t=Rd()(e[r.pageXY]-o,-s,l);this.setState({manipulationDelta:t,destinationIndex:(0,Rc.lV)(p,t)})},A=e=>{if(window.removeEventListener("mousemove",g,!0),window.removeEventListener("mouseup",A,!0),"RESTING"===this.state.phase)return;g(e);const t=this.state.destinationIndex;this.setState({phase:"FINISHING",finalOffset:h[t]}),setTimeout((()=>{if(this.setState({phase:"RESTING"}),u!==t){const e=OS()(this.props.order,u,t);this.props.onChangeOrder(e)}}),200)};window.addEventListener("mousemove",g,!0),window.addEventListener("mouseup",A,!0)}render(){const{className:e,order:t,innerElementRef:n}=this.props,r=J.Children.toArray(this.props.children),o=t.map((e=>r[e])),a=this.props.tagName,i=this._getXY();if("RESTING"===this.state.phase)return J.createElement(a,{className:e,onMouseDown:this._onMouseDown,ref:n},o);const{phase:s,manipulatingIndex:l,destinationIndex:c,adjustPrecedingBy:d,adjustSucceedingBy:u}=this.state;return J.createElement(a,{className:e,ref:n},o.map(((e,t)=>{const n={transition:"200ms ease-in-out transform",willChange:"transform",position:"relative",zIndex:"1",transform:""};return t===l?(n.zIndex="2","MANIPULATING"===s?(delete n.transition,n.transform=`${i.translateXY}(${this.state.manipulationDelta}px)`):n.transform=`${i.translateXY}(${this.state.finalOffset}px)`):t<l&&t>=c?n.transform=`${i.translateXY}(${d}px)`:t>l&&t<=c&&(n.transform=`${i.translateXY}(${u}px)`),J.cloneElement(e,{style:n})})))}}class jS extends J.PureComponent{constructor(...e){super(...e),this._container=null,this._isInitialSelectedPane=null,this._onContextMenu=()=>{const{changeRightClickedTrack:e,trackReference:t}=this.props;e(t)},this._selectCurrentTrack=e=>{const{selectTrackWithModifiers:t,trackReference:n}=this.props;t(n,xu(e))},this._hideCurrentTrack=e=>{const{trackIndex:t,hideGlobalTrack:n}=this.props;n(t),e.stopPropagation()},this._changeLocalTrackOrder=e=>{const{globalTrack:t,changeLocalTrackOrder:n}=this.props;"process"===t.type&&n(t.pid,e)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&this.setIsInitialSelectedPane(!0)},this.setIsInitialSelectedPane=e=>{this._isInitialSelectedPane=e}}renderTrack(){const{globalTrack:e,processesWithMemoryTrack:t,progressGraphData:n,trackName:r}=this.props;switch(e.type){case"process":{const{mainThreadIndex:n}=e;return null===n?J.createElement("div",{className:"timelineTrackThreadBlank",style:{"--timeline-track-thread-blank-height":`${In.pp}px`}}):J.createElement(fx,{threadsKey:n,showMemoryMarkers:!t.has(e.pid),trackType:"expanded",trackName:r})}case"screenshots":{const{threadIndex:t,id:n}=e;return J.createElement(vx,{threadIndex:t,windowId:n})}case"visual-progress":if(!n)throw new Error("Visual progress graph data is missing");return J.createElement(DS,{progressGraphData:n,graphDotTooltipText:" visual completeness at this time"});case"perceptual-visual-progress":if(!n)throw new Error("Perceptual visual progress graph data is missing");return J.createElement(DS,{progressGraphData:n,graphDotTooltipText:" perceptual visual completeness at this time"});case"contentful-visual-progress":if(!n)throw new Error("Contentful visual progress graph data is missing");return J.createElement(DS,{progressGraphData:n,graphDotTooltipText:" contentful visual completeness at this time"});default:return console.error("Unhandled globalTrack type",e),null}}renderLocalTracks(e){const{localTracks:t,localTrackOrder:n}=this.props;return J.createElement(VS,{tagName:"ol",className:"timelineTrackLocalTracks",order:n,orient:"vertical",grippyClassName:"timelineTrackLocalGrippy",onChangeOrder:this._changeLocalTrackOrder},t.map(((t,n)=>J.createElement(IS,{key:n,pid:e,localTrack:t,trackIndex:n,setIsInitialSelectedPane:this.setIsInitialSelectedPane}))))}componentDidMount(){this._isInitialSelectedPane&&null!==this._container&&this.props.setInitialSelected(this._container)}render(){const{isSelected:e,isHidden:t,titleText:n,trackName:r,style:o,localTracks:a,pid:i,globalTrack:s}=this.props;return t?J.createElement("li",{className:"timelineTrackHidden"}):J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack",style:o},J.createElement("div",{className:ug()("timelineTrackRow timelineTrackGlobalRow",{selected:e}),onClick:this._selectCurrentTrack},J.createElement(Zg,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackGlobalGrippy",onContextMenu:this._onContextMenu}},J.createElement("button",{type:"button",className:"timelineTrackNameButton"},r,null!==i&&"0"!==i&&null!==s.mainThreadIndex?J.createElement("div",{className:"timelineTrackNameButtonAdditionalDetails"},"PID: ",i):null),J.createElement(de,{id:"TrackNameButton--hide-process",attrs:{title:!0}},J.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide process",onClick:this._hideCurrentTrack}))),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),a.length>0&&null!==i?this.renderLocalTracks(i):null)}}const $S=[],KS=[],YS=at({mapStateToProps:(e,{trackIndex:t})=>{const n=Vi(e)[t],r=Do(e);let o=null,a=!1,i=null,s=$S,l=KS,c=null,d=null;switch(n.type){case"process":if(null!==n.mainThreadIndex){o=n.mainThreadIndex;const t=Id(o);a=Uo(e).has(o)&&"network-chart"!==r,i=t.getThreadProcessDetails(e)}c=n.pid,s=Jo(e,c),l=Zi(e,c);break;case"screenshots":break;case"visual-progress":i="Visual Progress",d=Si(e);break;case"perceptual-visual-progress":i="Perceptual Visual Progress",d=Bi(e);break;case"contentful-visual-progress":i="Contentful Visual Progress",d=Ii(e);break;default:throw new Error(`Unhandled GlobalTrack type ${n}`)}return{trackName:ts(e,t),titleText:i,globalTrack:n,isSelected:a,localTrackOrder:s,localTracks:l,pid:c,isHidden:$o(e).has(t),selectedTab:r,processesWithMemoryTrack:Ji(e),progressGraphData:d}},mapDispatchToProps:{changeRightClickedTrack:uh,changeLocalTrackOrder:kh,selectTrackWithModifiers:sh,hideGlobalTrack:mh},component:jS});var qS=n(8829),ZS={};ZS.styleTagTransform=M(),ZS.setAttributes=B(),ZS.insert=T().bind(null,"head"),ZS.domAPI=k(),ZS.insertStyleElement=N(),w()(qS.A,ZS),qS.A&&qS.A.locals&&qS.A.locals;class XS extends J.PureComponent{_pickNotchLength(e,t){return"bytes"===e?function(e){if(e>1024&&e<=1024**4)for(const t of[1,2,3])for(const n of[1,2,4,8,16,32,64,128,256,512]){const r=n*1024**t;if(e<=r)return r}return rn(e)}(t):function(e){if(e>1e4&&e<=1728e5){for(const t of[15,20,30]){const n=1e3*t;if(e<=n)return n}for(const t of[1,2,5,10,15,20,30]){const n=60*t*1e3;if(e<=n)return n}for(const t of[1,2,3,4,6,8,12,24,48]){const n=3600*t*1e3;if(e<=n)return n}}return rn(e)}(t)}_getNotches(){if(0===this.props.width)return{notches:[],notchTime:0,unit:"ms"};const{zeroAt:e,rangeStart:t,rangeEnd:n,width:r,unit:o}=this.props,a=r/(n-t),i=55/a,s=this._pickNotchLength(o,i),l=Math.ceil((t-e)/s),c=Math.floor((n-e)/s),d=[];for(let n=l;n<=c;n++)d.push({time:n*s,pos:(n*s-(t-e))*a});return{notches:d,notchTime:s,unit:o}}render(){const{notches:e,notchTime:t,unit:n}=this._getNotches();return J.createElement("div",{className:"timelineRuler",style:{"--timeline-ruler-height":`${In.NC}px`}},J.createElement("ol",{className:"timelineRulerContainer"},e.map((({time:e,pos:r},o)=>J.createElement("li",{className:"timelineRulerNotch",key:o,style:{left:`${r}px`}},J.createElement("span",{className:"timelineRulerNotchText"},"bytes"===n?Kt(e,3,2,t):tn(e,2,2,t)))))))}}class JS extends J.PureComponent{constructor(...e){super(...e),this._container=null,this._handlers=null,this.state={dragging:!1},this._takeContainerRef=e=>{this._container=e},this._onMouseDown=e=>{if(!this._container||0!==e.button)return;e.stopPropagation(),e.preventDefault(),this.setState({dragging:!0});const t=e.pageX,n=e.pageY,r=this.props.value;this._installMoveAndUpHandlers((e=>{this.props.onMove(r,e.pageX-t,e.pageY-n,!0),e.preventDefault()}),(e=>{this.props.onMove(r,e.pageX-t,e.pageY-n,!1),e.stopPropagation(),e.preventDefault(),this._uninstallMoveAndUpHandlers(),this.setState({dragging:!1})}))}}_installMoveAndUpHandlers(e,t){this._uninstallMoveAndUpHandlers(),this._handlers={mouseMoveHandler:e,mouseUpHandler:t},window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0)}_uninstallMoveAndUpHandlers(){if(this._handlers){const{mouseMoveHandler:e,mouseUpHandler:t}=this._handlers;window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),this._handlers=null}}componentWillUnmount(){this._uninstallMoveAndUpHandlers()}render(){const e=Object.assign({},this.props);return this.state.dragging&&(e.className+=" dragging"),delete e.onMove,delete e.value,delete e.children,J.createElement("div",{...e,onMouseDown:this._onMouseDown,ref:this._takeContainerRef},this.props.children)}}var QS=n(1587),eB={};eB.styleTagTransform=M(),eB.setAttributes=B(),eB.insert=T().bind(null,"head"),eB.domAPI=k(),eB.insertStyleElement=N(),w()(QS.A,eB),QS.A&&QS.A.locals&&QS.A.locals;class tB extends J.PureComponent{constructor(...e){super(...e),this._handlers=void 0,this._container=void 0,this._containerCreated=e=>{this._container=e},this._onMouseDown=e=>{if(!this._container||0!==e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;const t=zS(this._container);if(e.pageX<t.left||e.pageX>=t.right||e.pageY<t.top||e.pageY>=t.bottom)return;e.preventDefault();const{committedRange:n}=this.props,r=e.pageX,o=(r-t.left)/t.width*(n.end-n.start)+n.start;let a=!1;const i=e=>{const r=(e.pageX-t.left)/t.width*(n.end-n.start)+n.start;return{selectionStart:Rd()(Math.min(o,r),n.start,n.end),selectionEnd:Rd()(Math.max(o,r),n.start,n.end)}};this._installMoveAndClickHandlers((e=>{if((1&e.buttons)>0){if(a||Math.abs(e.pageX-r)>=3){a=!0;const{selectionStart:t,selectionEnd:n}=i(e);this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!0})}}else{const{previewSelection:e}=this.props;if(a=!1,this._uninstallMoveAndClickHandlers(),e.hasSelection){const{selectionStart:t,selectionEnd:n}=e;this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!1})}}}),(e=>{if(a){const{selectionStart:t,selectionEnd:n}=i(e);return this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!1}),e.stopPropagation(),void this._uninstallMoveAndClickHandlers()}const{previewSelection:r}=this.props;if(r.hasSelection){const o=(e.pageX-t.left)/t.width*(n.end-n.start)+n.start,{selectionStart:a,selectionEnd:i}=r;(o<a||o>=i)&&(e.stopPropagation(),this.props.updatePreviewSelection({hasSelection:!1,isModifying:!1}))}this._uninstallMoveAndClickHandlers()}))},this._onMouseMove=e=>{if(!this._container)return;const{width:t,committedRange:n,changeMouseTimePosition:r}=this.props;if(0===t)return;const o=zS(this._container);if(e.pageX<o.left||e.pageX>=o.right||e.pageY<o.top||e.pageY>=o.bottom)r(null);else{const a=e.pageX-o.left;r((n.end-n.start)*a/t+n.start)}},this._onMouseLeave=()=>{this.props.changeMouseTimePosition(null)},this._makeOnMove=e=>(t,n,r,o)=>{const{committedRange:a,width:i,updatePreviewSelection:s}=this.props,l=n/i*(a.end-a.start),c=e(l);let d=Rd()(t.selectionStart+c.startDelta,a.start,a.end),u=Rd()(t.selectionEnd+c.endDelta,a.start,a.end),h=o&&!!c.startDelta,p=o&&!!c.endDelta;d>u&&([d,u]=[u,d],[h,p]=[p,h]),s({hasSelection:!0,isModifying:o,selectionStart:d,selectionEnd:u,draggingStart:h,draggingEnd:p})},this._rangeStartOnMove=this._makeOnMove((e=>({startDelta:e,endDelta:0}))),this._moveRangeOnMove=this._makeOnMove((e=>({startDelta:e,endDelta:e}))),this._rangeEndOnMove=this._makeOnMove((e=>({startDelta:0,endDelta:e}))),this._zoomButtonOnMouseDown=e=>{e.stopPropagation()},this._zoomButtonOnClick=e=>{e.stopPropagation();const{previewSelection:t,zeroAt:n,commitRange:r}=this.props;t.hasSelection&&r(t.selectionStart-n,t.selectionEnd-n)}}_installMoveAndClickHandlers(e,t){this._uninstallMoveAndClickHandlers(),this._handlers={mouseMoveHandler:e,mouseClickHandler:t},window.addEventListener("mousemove",e,!0),window.addEventListener("click",t,!0)}_uninstallMoveAndClickHandlers(){if(this._handlers){const{mouseMoveHandler:e,mouseClickHandler:t}=this._handlers;window.removeEventListener("mousemove",e,!0),window.removeEventListener("click",t,!0),this._handlers=null}}renderSelectionOverlay(e){const{committedRange:t,width:n,profileTimelineUnit:r}=this.props,{selectionStart:o,selectionEnd:a}=e;if(!Number.isFinite(o)||!Number.isFinite(a))return null;const i=(o-t.start)/(t.end-t.start)*n,s=(a-o)/(t.end-t.start)*n;return J.createElement("div",{className:"timelineSelectionOverlay"},J.createElement("div",{className:"timelineSelectionDimmerBefore",style:{width:`${i}px`}}),J.createElement("div",{className:"timelineSelectionOverlayWrapper"},J.createElement("div",{className:ug()("timelineSelectionGrippy",{draggingStart:e.draggingStart,draggingEnd:e.draggingEnd}),style:{width:`${s}px`}},J.createElement(JS,{className:"timelineSelectionGrippyRangeStart",value:e,onMove:this._rangeStartOnMove}),J.createElement(JS,{className:"timelineSelectionGrippyMoveRange",value:e,onMove:this._moveRangeOnMove}),J.createElement(JS,{className:"timelineSelectionGrippyRangeEnd",value:e,onMove:this._rangeEndOnMove})),J.createElement("div",{className:"timelineSelectionOverlayInner"},J.createElement("span",{className:ug()("timelineSelectionOverlayRange",{hidden:!e.isModifying})},ln(a-o,r)),J.createElement("button",{className:ug()("timelineSelectionOverlayZoomButton",{hidden:e.isModifying}),type:"button",onMouseDown:this._zoomButtonOnMouseDown,onClick:this._zoomButtonOnClick}))),J.createElement("div",{className:"timelineSelectionDimmerAfter"}))}render(){const{children:e,previewSelection:t,className:n,mouseTimePosition:r,width:o,committedRange:a,zeroAt:i,profileTimelineUnit:s}=this.props;let l=null;null!==r&&(l=o*(r-a.start)/(a.end-a.start));let c=null;return null!==r&&Number.isFinite(r)&&(c=ln(r-i,s,(a.end-a.start)/o)),J.createElement("div",{className:ug()("timelineSelection",n),ref:this._containerCreated,onMouseDown:this._onMouseDown,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},e,t.hasSelection?this.renderSelectionOverlay(t):null,J.createElement("div",{className:"timelineSelectionHoverLine",style:{visibility:t.isModifying||null===l||isNaN(l)?"hidden":void 0,left:null===l?"0":`${l}px`}},J.createElement("span",{className:"timelineSelectionOverlayTime"},c)))}}const nB=at({mapStateToProps:e=>({previewSelection:hi(e),committedRange:li(e),zeroAt:ii(e),profileTimelineUnit:si(e),mouseTimePosition:di(e)}),mapDispatchToProps:{updatePreviewSelection:Vh,commitRange:jh,changeMouseTimePosition:Qh},component:tB});var rB=n(4161),oB={};oB.styleTagTransform=M(),oB.setAttributes=B(),oB.insert=T().bind(null,"head"),oB.domAPI=k(),oB.insertStyleElement=N(),w()(rB.A,oB),rB.A&&rB.A.locals&&rB.A.locals;class aB extends J.PureComponent{constructor(...e){super(...e),this._container=null,this._contentsWrapper=null,this._scrolledToInitialSelected=!1,this.state={overflowsOnTop:!1,overflowsOnRight:!1,overflowsOnBottom:!1,overflowsOnLeft:!1},this._takeContainerRef=e=>{this._container=e},this._takeContainerWrapperRef=e=>{this._contentsWrapper=e},this._onScroll=()=>{this._updateIndicatorStatus()}}componentDidMount(){this._updateIndicatorStatus()}componentDidUpdate(e){this._updateIndicatorStatus();const{initialSelected:t,forceLayoutGeneration:n}=this.props,r=this._container;void 0!==n&&n!==e.forceLayoutGeneration&&t&&null!==r&&t.offsetTop+t.offsetHeight>r.offsetTop+r.offsetHeight&&(r.scrollTop=t.offsetTop),!this._scrolledToInitialSelected&&t&&this._container&&(this._container.scrollTop=t.offsetTop,this._scrolledToInitialSelected=!0)}_updateIndicatorStatus(){const e=this._container,t=this._contentsWrapper;if(e&&t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=1/window.devicePixelRatio;this.setState({overflowsOnTop:r.top<=n.top-o,overflowsOnRight:r.right>=n.right+o,overflowsOnBottom:r.bottom>=n.bottom+o,overflowsOnLeft:r.left<=n.left-o})}}render(){const{className:e,children:t}=this.props;return J.createElement("div",{className:ug()("overflowEdgeIndicator",e,this.state)},J.createElement("div",{className:"overflowEdgeIndicatorEdge topEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge rightEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge bottomEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge leftEdge"}),J.createElement("div",{className:ug()("overflowEdgeIndicatorScrollbox",`${e}Scrollbox`),onScroll:this._onScroll,ref:this._takeContainerRef},J.createElement("div",{className:"overflowEdgeIndicatorContentsWrapper",ref:this._takeContainerWrapperRef},t)))}}var iB=n(6558),sB={};sB.styleTagTransform=M(),sB.setAttributes=B(),sB.insert=T().bind(null,"head"),sB.domAPI=k(),sB.insertStyleElement=N(),w()(iB.A,sB),iB.A&&iB.A.locals&&iB.A.locals;var lB=n(92),cB={};cB.styleTagTransform=M(),cB.setAttributes=B(),cB.insert=T().bind(null,"head"),cB.domAPI=k(),cB.insertStyleElement=N(),w()(lB.A,cB),lB.A&&lB.A.locals&&lB.A.locals;class dB extends J.PureComponent{constructor(...e){super(...e),this.searchFieldInput=J.createRef(),this._onSearchFieldChange=e=>{this.props.onSearch(e.currentTarget.value)},this.focus=()=>{this.searchFieldInput.current&&this.searchFieldInput.current.focus()},this._onClearButtonClick=()=>{this.searchFieldInput.current&&this.searchFieldInput.current.focus(),this.props.onSearch("")}}_onFormSubmit(e){e.preventDefault()}render(){const{currentSearchString:e,className:t}=this.props;return J.createElement("form",{className:ug()("trackSearchField",t),onSubmit:this._onFormSubmit},J.createElement(de,{id:"TrackSearchField--search-input",attrs:{placeholder:!0,title:!0}},J.createElement("input",{type:"search",name:"search",placeholder:"Enter filter terms",className:"trackSearchFieldInput photon-input",required:"required",title:"Only display tracks that match a certain text",value:e,onChange:this._onSearchFieldChange,ref:this.searchFieldInput,autoComplete:"off"})),J.createElement("input",{type:"reset",className:"trackSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}class uB extends Yg{constructor(...e){super(...e),this.hideMenu=e=>{27===e.keyCode&&Gg()}}}class hB extends J.PureComponent{constructor(...e){super(...e),this.state={searchFilter:""},this._globalTrackClickTimeout=null,this._trackSearchFieldElem=J.createRef(),this._showAllTracks=()=>{const{showAllTracks:e}=this.props;e()},this._showMatchingTracks=()=>{const{showProvidedTracks:e,globalTracks:t,globalTrackNames:n,localTracksByPid:r,localTrackNamesByPid:o,threads:a}=this.props,{searchFilter:i}=this.state,s=Fa(t,n,a,i),l=Ra(r,o,a,i);if(null===s||null===l)return;const c=new Map(l);for(const e of s){const n=t[e];if(!n.pid)continue;const o=(0,ut.Nn)(r.get(n.pid),"Expected to find local tracks for the given pid"),a=c.get(n.pid);void 0!==a&&o.length===a.size||c.set(n.pid,new Set(o.keys()))}e(s,c)},this._hideMatchedTracks=()=>{const{globalTracks:e,globalTrackNames:t,localTracksByPid:n,localTrackNamesByPid:r,threads:o,hideProvidedTracks:a}=this.props,{searchFilter:i}=this.state,s=Fa(e,t,o,i),l=Ra(n,r,o,i);null!==s&&null!==l?a(s,l):console.warn("Unexpected null search filtered tracks")},this._hideRightClickedTrack=()=>{const{rightClickedTrack:e,hideLocalTrack:t,hideGlobalTrack:n}=this.props;null!==e&&("global"!==e.type?t(e.pid,e.trackIndex):n(e.trackIndex))},this._toggleGlobalTrackVisibility=(e,t)=>{const{trackIndex:n}=t,{hiddenGlobalTracks:r,hideGlobalTrack:o,showGlobalTrack:a,globalTracks:i}=this.props;if(!(e.detail>2)){if(2===e.detail){clearTimeout(this._globalTrackClickTimeout),this._globalTrackClickTimeout=null;const t=i[n];if("process"===t.type)return void this._showLocalTracksInProcess(e,{trackIndex:n,pid:t.pid})}this._globalTrackClickTimeout=setTimeout((()=>{r.has(n)?a(n):o(n)}),150)}},this._toggleLocalTrackVisibility=(e,t)=>{const{trackIndex:n,pid:r,globalTrackIndex:o}=t,{hiddenLocalTracksByPid:a,hideLocalTrack:i,showLocalTrack:s,hiddenGlobalTracks:l,showGlobalTrack:c,localTrackOrderByPid:d}=this.props,u=(0,ut.Nn)(a.get(r),"Expected to find hidden local tracks for the given pid");l.has(o)?(c(o),(0,ut.Nn)(d.get(r),"Expected to find local tracks for the given pid").forEach((e=>{e===n?s(r,n):i(r,e)}))):u.has(n)?s(r,n):i(r,n)},this._getRightClickedTrackType=()=>{const{rightClickedTrack:e,localTracksByPid:t,globalTracks:n}=this.props;if(null===e)throw new Error("Attempted to get the track type with no right clicked track.");let r;switch(e.type){case"local":r=(0,ut.Nn)(t.get(e.pid))[e.trackIndex];break;case"global":r=n[e.trackIndex];break;default:throw(0,ut.lC)(e.type)}return r.type},this._hideTracksByType=e=>{const{rightClickedTrack:t,globalTracks:n,localTracksByPid:r,hideProvidedTracks:o}=this.props;if(null===t)throw new Error("Attempted to hide tracks by type with no right clicked track.");const a=this._getRightClickedTrackType(),i=function(e,t){if(!t)return null;const n=new Set;for(let r=0;r<e.length;r++)e[r].type===t&&n.add(r);return n}(n,a),s=function(e,t){if(!t)return null;const n=new Map;for(const[r,o]of e){const e=new Set;for(let n=0;n<o.length;n++)o[n].type===t&&e.add(n);e.size>0&&n.set(r,e)}return n}(r,a);null!==i&&null!==s?o(i,s):console.warn("Unexpected null type filtered tracks")},this._isolateProcess=()=>{const{isolateProcess:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the process with no right clicked track.");if("local"===t.type)throw new Error("Attempting to isolate a process track with a local track is selected.");e(t.trackIndex)},this._isolateScreenshot=()=>{const{isolateScreenshot:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the screenshot with no right clicked track.");if("global"!==t.type)throw new Error("Attempting to isolate a screenshot track with a local track is selected.");e(t.trackIndex)},this._isolateProcessMainThread=()=>{const{isolateProcessMainThread:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the process main thread with no right clicked track.");if("local"===t.type)throw new Error("Attempting to isolate a process track with a local track is selected.");e(t.trackIndex)},this._isolateLocalTrack=()=>{const{isolateLocalTrack:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the local track with no right clicked track.");if("global"===t.type)throw new Error("Attempting to isolate a local track with a global track is selected.");const{pid:n,trackIndex:r}=t;e(n,r)},this._showLocalTracksInProcess=(e,t)=>{const{trackIndex:n,pid:r}=t,{showGlobalTrackIncludingLocalTracks:o}=this.props;o(n,r)},this._onSearch=e=>{this.setState({searchFilter:e})},this._onShow=()=>{const e=this._trackSearchFieldElem.current;e&&setTimeout((()=>{e.focus()}))},this._onHide=()=>{this.setState({searchFilter:""})}}_globalTrackHasSearchFilterMatchedChildren(e,t){if(!e.pid||null===t)return!1;const n=t.get(e.pid);return!!n&&0!==n.size}renderGlobalTrack(e,t,n){const{hiddenGlobalTracks:r,globalTrackNames:o,globalTracks:a}=this.props,i=r.has(e),s=a[e],l=this._globalTrackHasSearchFilterMatchedChildren(s,n),c=t&&!t.has(e);if(c&&!l)return null;const d=null!==t&&!c;let u=`${o[e]}`;return"process"===s.type&&(u+=` (Process ID: ${s.pid})`),J.createElement(J.Fragment,{key:e},J.createElement(Vg,{preventClose:!0,data:{trackIndex:e},onClick:this._toggleGlobalTrackVisibility,role:"menuitemcheckbox",attributes:{className:ug()("timelineTrackContextMenuItem",{checkable:!0,checked:!i}),title:u,"aria-checked":i?"false":"true"}},J.createElement("span",null,o[e]),J.createElement("span",{className:"timelineTrackContextMenuSpacer"}),"process"===s.type&&J.createElement("span",{className:"timelineTrackContextMenuPid"},"(",s.pid,")")),"process"===s.type?this.renderLocalTracks(e,s.pid,d,n):null)}renderLocalTracks(e,t,n,r){const{hiddenLocalTracksByPid:o,localTrackOrderByPid:a,localTrackNamesByPid:i,hiddenGlobalTracks:s,localTracksByPid:l}=this.props,c=s.has(e),d=a.get(t),u=o.get(t),h=i.get(t),p=l.get(t);let m=null;if(null===r||n||(m=r.get(t)),void 0===d||void 0===u||void 0===h||void 0===p)return console.error("Unable to find local track information for the given pid:",t),null;const f=[];for(const n of d){if(m&&!m.has(n))continue;const r=!u.has(n)&&!c;f.push(J.createElement(Vg,{key:n,preventClose:!0,data:{pid:t,trackIndex:n,globalTrackIndex:e},onClick:this._toggleLocalTrackVisibility,role:"menuitemcheckbox",attributes:{className:ug()("checkable indented",{checked:r}),"aria-checked":r?"true":"false"}},h[n]))}return f}getRightClickedTrackName(e){const{globalTrackNames:t,localTrackNamesByPid:n}=this.props;if("global"===e.type)return t[e.trackIndex];const r=n.get(e.pid);return void 0===r?(console.error("Expected to find a local track name for the given pid."),"Unknown Track"):r[e.trackIndex]}renderIsolateProcess(){const{rightClickedTrack:e,globalTracks:t,globalTrackOrder:n,hiddenGlobalTracks:r,hiddenLocalTracksByPid:o,localTracksByPid:a}=this.props;if(null===e)return null;if("global"!==e.type||1===t.length)return null;const i=t[e.trackIndex];if("process"!==i.type)return null;let s=r.size===n.length-1;if(!s&&null===i.mainThreadIndex){const e=a.get(i.pid),t=o.get(i.pid);if(void 0===e||void 0===t)return console.error("Local track information for the given pid."),null;let n=!1;for(let r=0;r<e.length;r++)if("thread"===e[r].type&&!t.has(r)){n=!0;break}n||(s=!0)}return J.createElement(Vg,{onClick:this._isolateProcess,disabled:s},J.createElement(de,{id:"TrackContextMenu--only-show-this-process"},"Only show this process"))}renderIsolateProcessMainThread(){const{rightClickedTrack:e,globalTracks:t,hiddenGlobalTracks:n,hiddenLocalTracksByPid:r,localTrackOrderByPid:o}=this.props;if(null===e)return null;if("global"!==e.type)return null;const a=t[e.trackIndex];if("process"!==a.type||null===a.mainThreadIndex)return null;const i=r.get(a.pid),s=o.get(a.pid);if(void 0===i||void 0===s)return console.error("Expected to find local track information for the given pid."),null;const l=i.size===s.length&&t.length-n.size==1,c=this.getRightClickedTrackName(e);return J.createElement(Vg,{onClick:this._isolateProcessMainThread,disabled:l},J.createElement(de,{id:"TrackContextMenu--only-show-track",vars:{trackName:c}},J.createElement(J.Fragment,null,"Only show ",`“${c}”`)))}renderIsolateLocalTrack(){const{rightClickedTrack:e,globalTracks:t,hiddenGlobalTracks:n,hiddenLocalTracksByPid:r,localTrackOrderByPid:o}=this.props;if(null===e)return null;if("global"===e.type)return null;const a=r.get(e.pid),i=o.get(e.pid);if(void 0===a||void 0===i)return console.error("Expected to find local track information for the given pid."),null;const s=t.length-n.size==1&&i.length-a.size==1,l=this.getRightClickedTrackName(e);return J.createElement(Vg,{onClick:this._isolateLocalTrack,disabled:s},J.createElement(de,{id:"TrackContextMenu--only-show-track",vars:{trackName:l}},J.createElement(J.Fragment,null,"Only show ","“rightClickedTrackName}”")))}renderShowLocalTracksInThisProcess(){const{rightClickedTrack:e,globalTracks:t,localTracksByPid:n,hiddenLocalTracksByPid:r}=this.props;if(null===e)return null;const{trackIndex:o}=e;let a;if("global"===e.type){const e=t[o];if(!e||"process"!==e.type)return null;a=e.pid}else a=e.pid;const i=n.get(a);if(!i||!i.length)return null;const s=r.get(a),l=!s||0===s.size;return J.createElement(Vg,{onClick:this._showLocalTracksInProcess,disabled:l,data:{trackIndex:o,pid:a}},J.createElement(de,{id:"TrackContextMenu--show-local-tracks-in-process"},"Show all tracks in this process"))}getVisibleScreenshotTracks(){const{globalTracks:e,hiddenGlobalTracks:t}=this.props;return e.filter(((e,n)=>"screenshots"===e.type&&!t.has(n)))}renderIsolateScreenshot(){const{rightClickedTrack:e,globalTracks:t}=this.props;if(null===e)return null;if("global"!==e.type)return null;if("screenshots"!==t[e.trackIndex].type)return null;const n=this.getVisibleScreenshotTracks().length<=1;return J.createElement(Vg,{onClick:this._isolateScreenshot,disabled:n},J.createElement(de,{id:"TrackContextMenu--hide-other-screenshots-tracks"},"Hide other Screenshots tracks"))}renderHideTrack(){const{rightClickedTrack:e}=this.props;if(null===e)return null;const t=e.trackIndex,n=this.getRightClickedTrackName(e);return J.createElement(Vg,{key:t,preventClose:!1,onClick:this._hideRightClickedTrack},J.createElement(de,{id:"TrackContextMenu--hide-track",vars:{trackName:n}},J.createElement(J.Fragment,null,"Hide ",`“${n}”`)))}renderHideTrackByType(){const{rightClickedTrack:e}=this.props;if(null===e)return null;const t=this._getRightClickedTrackType();return["screenshots","memory","network","ipc","event-delay"].includes(t)?J.createElement(Vg,{preventClose:!1,onClick:this._hideTracksByType},J.createElement(de,{id:"TrackContextMenu--hide-all-tracks-by-selected-track-type",vars:{type:t}},J.createElement(J.Fragment,null,"Hide all tracks of type “",t,"”"))):null}renderShowAllTracks(){const{rightClickedTrack:e}=this.props;if(null!==e)return null;const t=[...this.props.hiddenLocalTracksByPid.values()].reduce(((e,t)=>e+t.size),0)+this.props.hiddenGlobalTracks.size===0;return J.createElement(Vg,{onClick:this._showAllTracks,disabled:t},J.createElement(de,{id:"TrackContextMenu--show-all-tracks"},"Show all tracks"))}renderShowProvidedTracks(){const{rightClickedTrack:e}=this.props;return null!==e?null:J.createElement(Vg,{onClick:this._showMatchingTracks},J.createElement(de,{id:"TrackContextMenu--show-all-matching-tracks"},"Show all matching tracks"))}renderHideMatchingTracks(e,t){const{rightClickedTrack:n,hiddenGlobalTracks:r,globalTracks:o,hiddenLocalTracksByPid:a,localTracksByPid:i}=this.props;if(null!==n)return null;const s=!(()=>{let n=0;for(const[e,s]of t){const t=(0,ut.Nn)(o.findIndex((t=>"process"===t.type&&t.pid===e)));if(r.has(t))continue;if(null!==o[t].mainThreadIndex)continue;const l=(0,ut.Nn)(i.get(e)),c=(0,ut.Nn)(a.get(e));c.size+s.size-fa(c,s).size===l.length&&(n+=1)}return r.size+e.size-fa(r,e).size+n<o.length})()||![...e].some((e=>!r.has(e)))&&!(()=>{const e=new Set;for(const t of r){const n=o[t];"process"===n.type&&e.add(n.pid)}let n=!1;for(const[r,o]of t){if(e.has(r))continue;const t=(0,ut.Nn)(a.get(r));if(n=[...o].some((e=>!t.has(e))),n)break}return n})();return J.createElement(Vg,{onClick:this._hideMatchedTracks,disabled:s},J.createElement(de,{id:"TrackContextMenu--hide-all-matching-tracks"},"Hide all matching tracks"))}renderTrackSearchField(){const{rightClickedTrack:e}=this.props,{searchFilter:t}=this.state;return null!==e?null:J.createElement(J.Fragment,null,J.createElement(dB,{className:"trackContextMenuSearchField",currentSearchString:t,onSearch:this._onSearch,ref:this._trackSearchFieldElem}),J.createElement("div",{className:"react-contextmenu-separator"}))}render(){const{threads:e,globalTrackOrder:t,globalTracks:n,globalTrackNames:r,localTracksByPid:o,localTrackNamesByPid:a,rightClickedTrack:i}=this.props,{searchFilter:s}=this.state,l=this.renderIsolateProcessMainThread(),c=this.renderIsolateProcess(),d=this.renderIsolateLocalTrack(),u=this.renderIsolateScreenshot(),h=this.renderShowLocalTracksInThisProcess(),p=this.renderHideTrack(),m=this.renderHideTrackByType(),f=l||c||d||u||h||p||m?J.createElement("div",{className:"react-contextmenu-separator"}):null,g=Fa(n,r,e,s),A=Ra(o,a,e,s),b=t.map((e=>{const t=n[e];return null===i||"global"===i.type&&i.trackIndex===e||"local"===i.type&&"process"===t.type&&i.pid===t.pid?this.renderGlobalTrack(e,g,A):null})),C=b.every((e=>null===e));return J.createElement(uB,{id:"TimelineTrackContextMenu",className:"timelineTrackContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderTrackSearchField(),s?this.renderShowProvidedTracks():this.renderShowAllTracks(),s&&g&&A?this.renderHideMatchingTracks(g,A):null,null===i?J.createElement("div",{className:"react-contextmenu-separator"}):null,l,c,d,u,p,m,h?J.createElement("div",{className:"react-contextmenu-separator"}):null,h,f,C?J.createElement(de,{id:"TrackContextMenu--no-results-found",vars:{searchFilter:s},elems:{span:J.createElement("span",{className:"trackContextMenuSearchFilter"})}},J.createElement(Vg,{disabled:!0},"No results found for “",J.createElement("span",{className:"trackContextMenuSearchFilter"},s),"”")):b)}}const pB=at({mapStateToProps:e=>({threads:Ci(e),globalTrackOrder:jo(e),hiddenGlobalTracks:$o(e),rightClickedTrack:wi(e),globalTracks:Vi(e),hiddenLocalTracksByPid:Ko(e),localTrackOrderByPid:Yo(e),rightClickedThreadIndex:Qi(e),globalTrackNames:es(e),localTracksByPid:qi(e),localTrackNamesByPid:ns(e)}),mapDispatchToProps:{hideGlobalTrack:mh,showAllTracks:gh,showGlobalTrack:Ch,showGlobalTrackIncludingLocalTracks:vh,isolateProcess:yh,isolateLocalTrack:Bh,isolateProcessMainThread:Eh,isolateScreenshot:wh,hideLocalTrack:Th,showLocalTrack:Sh,showProvidedTracks:Ah,hideProvidedTracks:bh},component:hB});var mB=n(7793),fB={};fB.styleTagTransform=M(),fB.setAttributes=B(),fB.insert=T().bind(null,"head"),fB.domAPI=k(),fB.insertStyleElement=N(),w()(mB.A,fB),mB.A&&mB.A.locals&&mB.A.locals;class gB extends J.PureComponent{constructor(...e){super(...e),this._showMenu=e=>{const t=e.currentTarget.getBoundingClientRect();this.props.changeRightClickedTrack(null),zg({data:null,id:"TimelineTrackContextMenu",position:{x:t.left,y:t.bottom},target:e.target})}}render(){const{hiddenTrackCount:e}=this.props;return J.createElement(de,{id:"FullTimeline--tracks-button",elems:{span:J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"})},vars:{visibleTrackCount:e.total-e.hidden,totalTrackCount:e.total}},J.createElement("button",{type:"button",onClick:this._showMenu,className:"timelineSettingsHiddenTracks"},J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total-e.hidden)," / ",J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total," "),"tracks"))}}class AB extends J.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null},this.setInitialSelected=e=>{this.setState({initialSelected:e})}}render(){const{globalTracks:e,globalTrackOrder:t,changeGlobalTrackOrder:n,committedRange:r,zeroAt:o,profileTimelineUnit:a,width:i,globalTrackReferences:s,panelLayoutGeneration:l,hiddenTrackCount:c,changeRightClickedTrack:d,innerElementRef:u}=this.props;return J.createElement(J.Fragment,null,J.createElement(nB,{width:i},J.createElement("div",{className:"timelineHeader"},J.createElement(gB,{hiddenTrackCount:c,changeRightClickedTrack:d}),J.createElement(XS,{zeroAt:o,rangeStart:r.start,rangeEnd:r.end,width:i,unit:a})),J.createElement(aB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:l,initialSelected:this.state.initialSelected},J.createElement(VS,{tagName:"ol",className:"timelineThreadList",grippyClassName:"timelineTrackGlobalGrippy",order:t,orient:"vertical",onChangeOrder:n,innerElementRef:u},e.map(((e,t)=>J.createElement(YS,{key:t,trackIndex:t,trackReference:s[t],setInitialSelected:this.setInitialSelected})))))),J.createElement(pB,null))}}const bB=at({mapStateToProps:e=>({globalTracks:Vi(e),globalTrackOrder:jo(e),globalTrackReferences:ji(e),committedRange:li(e),zeroAt:ii(e),profileTimelineUnit:si(e),panelLayoutGeneration:Zs(e),hiddenTrackCount:ps(e)}),mapDispatchToProps:{changeGlobalTrackOrder:ph,changeRightClickedTrack:uh},component:Av(AB)});class CB extends J.PureComponent{constructor(e){super(e),this._container=null,this._isInitialSelectedPane=null,this._onClick=e=>t=>{const{isSelected:n}=this.props,{isOpen:r}=this.state;0===t.button&&(t.preventDefault(),"timelineTrackResourceLabel"===e&&(!n&&r||this.setState((e=>({isOpen:!e.isOpen})))),this.props.selectActiveTabTrack(this._getTrackReference()))},this.setIsInitialSelectedPane=e=>{this._isInitialSelectedPane=e},this._scrollIfNecessary=()=>{this.state.isOpen&&null!==this._container&&this.props.setInitialSelected(this._container,!0)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&this.setIsInitialSelectedPane(!0)},this.state={isOpen:e.isSelected}}_getTrackReference(){const{trackIndex:e}=this.props;return{type:"resource",trackIndex:e}}renderTrack(){const{resourceTrack:e}=this.props,{isOpen:t}=this.state;switch(e.type){case"sub-frame":case"thread":return J.createElement(fx,{threadsKey:e.threadIndex,trackType:t?"expanded":"condensed",trackName:e.name});default:return console.error("Unhandled resourceTrack type",e),null}}componentDidMount(){const e=this._container;null!==e&&(this._isInitialSelectedPane&&this.props.setInitialSelected(e),e.addEventListener("transitionend",this._scrollIfNecessary))}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",this._scrollIfNecessary)}render(){const{isSelected:e,resourceTrack:t}=this.props,{isOpen:n}=this.state;let r;switch(t.type){case"sub-frame":r="IFrame:";break;case"thread":r="Thread:";break;default:throw(0,ut.lC)(t,"Unhandled ActiveTabResourceTrack type.")}return J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack timelineTrackResource"},J.createElement("div",{className:ug()("timelineTrackRow timelineTrackResourceRow",{selected:e,opened:n}),onClick:this._onClick("timelineTrackRow")},J.createElement("div",{className:"timelineTrackResourceLabel",onClick:this._onClick("timelineTrackResourceLabel")},J.createElement("span",null,r)," ",t.name),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const vB=at({mapStateToProps:(e,{resourceTrack:t})=>{const n=t.threadIndex;return{isSelected:Uo(e).has(n)}},mapDispatchToProps:{selectActiveTabTrack:ch},component:CB});class yB extends J.PureComponent{render(){const{resourceTracks:e,toggleResourcesPanel:t,isActiveTabResourcesPanelOpen:n,setInitialSelected:r,resourcesThreadsKey:o}=this.props;return J.createElement("div",{className:"timelineResources",style:{"--resources-header-height":`${In.RN}px`}},J.createElement("div",{onClick:t,className:ug()("timelineResourcesHeader",{opened:n})},"Resources (",e.length,")",J.createElement(fx,{threadsKey:o,trackType:"condensed",trackName:"Merged resource tracks"})),n?J.createElement("ol",{className:"timelineResourceTracks"},e.map(((e,t)=>J.createElement(vB,{key:t,resourceTrack:e,trackIndex:t,setInitialSelected:r})))):null)}}const wB=at({mapStateToProps:e=>({isActiveTabResourcesPanelOpen:Po(e),resourcesThreadsKey:ls(e)}),mapDispatchToProps:{toggleResourcesPanel:wm},component:Av(yB)});class EB extends J.PureComponent{constructor(...e){super(...e),this._container=null,this._isInitialSelectedPane=null,this._selectCurrentTrack=()=>{const{selectActiveTabTrack:e,trackReference:t}=this.props;e(t)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&(this._isInitialSelectedPane=!0)}}renderTrack(){const{globalTrack:e}=this.props;switch(e.type){case"tab":{const{threadsKey:t}=e;return J.createElement(fx,{threadsKey:t,showMemoryMarkers:!1,trackType:"expanded",trackName:"Active Tab"})}case"screenshots":{const{threadIndex:t,id:n}=e;return J.createElement(vx,{threadIndex:t,windowId:n})}default:return console.error("Unhandled active tab globalTrack type",e),null}}renderResourcesPanel(){const{resourceTracks:e,setInitialSelected:t}=this.props;return 0===e.length?null:J.createElement(wB,{resourceTracks:e,setInitialSelected:t})}componentDidMount(){this._isInitialSelectedPane&&null!==this._container&&this.props.setInitialSelected(this._container)}render(){const{isSelected:e}=this.props;return J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack"},J.createElement("div",{className:ug()("timelineTrackRow timelineTrackGlobalRow activeTab",{selected:e}),onClick:this._selectCurrentTrack},J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),this.renderResourcesPanel())}}const kB=[],xB=at({mapStateToProps:(e,{trackIndex:t})=>{const n=is(e)[t];let r=!1,o=kB;switch(n.type){case"tab":r=(0,bn.dr)(Uo(e),n.threadsKey),o=ss(e);break;case"screenshots":break;default:throw(0,ut.lC)(n,"Unhandled active tab GlobalTrack type.")}return{globalTrack:n,isSelected:r,resourceTracks:o}},mapDispatchToProps:{selectActiveTabTrack:ch},component:EB});var TB=n(6855),SB={};SB.styleTagTransform=M(),SB.setAttributes=B(),SB.insert=T().bind(null,"head"),SB.domAPI=k(),SB.insertStyleElement=N(),w()(TB.A,SB),TB.A&&TB.A.locals&&TB.A.locals;class BB extends J.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null,forceLayoutGeneration:0},this.setInitialSelected=(e,t=!1)=>{t?this.setState((t=>({initialSelected:e,forceLayoutGeneration:t.forceLayoutGeneration+1}))):this.setState({initialSelected:e})}}render(){const{committedRange:e,zeroAt:t,profileTimelineUnit:n,width:r,panelLayoutGeneration:o,globalTracks:a,globalTrackReferences:i,innerElementRef:s}=this.props;return J.createElement(J.Fragment,null,J.createElement(nB,{width:r,className:"activeTab"},J.createElement(XS,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:r,unit:n}),J.createElement(aB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:o,initialSelected:this.state.initialSelected,forceLayoutGeneration:this.state.forceLayoutGeneration},J.createElement("ol",{className:"timelineThreadList",ref:s},a.map(((e,t)=>J.createElement(xB,{key:t,trackIndex:t,trackReference:i[t],setInitialSelected:this.setInitialSelected})))))))}}const IB=at({mapStateToProps:e=>({globalTracks:is(e),globalTrackReferences:cs(e),committedRange:li(e),zeroAt:ii(e),profileTimelineUnit:si(e),panelLayoutGeneration:Zs(e)}),component:Av(BB)});var _B=n(9697),NB={};NB.styleTagTransform=M(),NB.setAttributes=B(),NB.insert=T().bind(null,"head"),NB.domAPI=k(),NB.insertStyleElement=N(),w()(_B.A,NB),_B.A&&_B.A.locals&&_B.A.locals;class PB extends J.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null},this.setInitialSelected=e=>{this.setState({initialSelected:e})},this.clickTrack=Lt()((e=>t=>{t.preventDefault(),this.props.changeSelectedThreads(new Set([e]))})),this.renderTrack=e=>{const{threads:t}=this.props;switch(e.type){case"origin":return J.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-origin",key:e.threadIndex},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin),J.createElement("ol",null,e.children.map(this.renderTrack)));case"no-origin":{const n=t[e.threadIndex];return J.createElement("li",{key:e.threadIndex,className:"originsTimelineTrack originsTimelineTrack-no-origin"},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},(0,bn.XU)(t,n)))}case"sub-origin":return J.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-sub-origin",key:e.threadIndex},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin));default:throw(0,ut.lC)(e,"Unhandled OriginsTimelineTrack.")}}}render(){const{committedRange:e,zeroAt:t,profileTimelineUnit:n,width:r,panelLayoutGeneration:o,originsTimeline:a,innerElementRef:i}=this.props;return J.createElement(J.Fragment,null,J.createElement(nB,{width:r},J.createElement(XS,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:r,unit:n}),J.createElement(aB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:o,initialSelected:this.state.initialSelected},J.createElement("ol",{className:"timelineThreadList",ref:i},a.map(this.renderTrack)))))}}const MB=at({mapStateToProps:e=>({threads:Ci(e),committedRange:li(e),zeroAt:ii(e),profileTimelineUnit:si(e),panelLayoutGeneration:Zs(e),originsTimeline:hs(e)}),mapDispatchToProps:{changeSelectedThreads:oh},component:Av(PB)});class FB extends J.PureComponent{constructor(...e){super(...e),this._removeWheelListener=null,this._onTimelineMountWithRef=e=>{if(this._removeWheelListener&&(this._removeWheelListener(),this._removeWheelListener=null),!e)return;const t=e;t.addEventListener("wheel",this.preventPinchToZoom,{passive:!1}),this._removeWheelListener=()=>{t.removeEventListener("wheel",this.preventPinchToZoom,{passive:!1})}}}preventPinchToZoom(e){e.ctrlKey&&e.preventDefault()}componentWillUnmount(){this._removeWheelListener&&(this._removeWheelListener(),this._removeWheelListener=null)}render(){const{timelineTrackOrganization:e}=this.props;switch(e.type){case"full":return J.createElement(bB,{innerElementRef:this._onTimelineMountWithRef});case"active-tab":return J.createElement(IB,{innerElementRef:this._onTimelineMountWithRef});case"origins":return J.createElement(MB,{innerElementRef:this._onTimelineMountWithRef});default:throw(0,ut.lC)(e,"Unhandled ViewType")}}}const RB=at({mapStateToProps:e=>({timelineTrackOrganization:No(e)}),component:FB});class DB extends J.PureComponent{constructor(...e){super(...e),this._dom=void 0}componentDidMount(){const e=document.createElement("style");e.textContent=this.props.content;const t=document.head;t&&(t.appendChild(e),this._dom=e)}componentDidUpdate(e){const t=this._dom;e.content!==this.props.content&&t&&(t.textContent=this.props.content)}componentWillUnmount(){const e=this._dom;e&&(e.remove(),this._dom=null)}render(){return null}}class LB extends J.PureComponent{render(){const e=`\n .${this.props.className} {\n background-image: url(${this.props.url});\n }\n `;return J.createElement(DB,{content:e})}}var OB=n(7171),UB={};UB.styleTagTransform=M(),UB.setAttributes=B(),UB.insert=T().bind(null,"head"),UB.domAPI=k(),UB.insertStyleElement=N(),w()(OB.A,UB),OB.A&&OB.A.locals&&OB.A.locals;class zB extends J.PureComponent{constructor(...e){super(...e),this.state={isNoticeDisplayed:!0},this._onHideClick=()=>{this.setState({isNoticeDisplayed:!1}),this.props.onClose&&this.props.onClose()}}render(){if(!this.state.isNoticeDisplayed)return null;const{message:e,actionText:t,actionTitle:n,actionOnClick:r}=this.props;return J.createElement("div",{className:"warningMessageBarWrapper"},J.createElement("div",{className:"photon-message-bar photon-message-bar-warning warningMessageBar"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},e),t?J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",title:n,"aria-label":n,onClick:r},t):null),J.createElement("button",{className:"photon-button photon-message-bar-close-button",type:"button","aria-label":"Hide the message",title:"Hide the message",onClick:this._onHideClick})))}}class GB extends J.PureComponent{render(){const{meta:e}=this.props;return J.createElement(J.Fragment,null,e.debug?J.createElement(de,{id:"DebugWarning--warning-message",attrs:{message:!0}},J.createElement(zB,{message:"This profile was recorded in a build without release optimizations. Performance observations might not apply to the release population."})):null)}}const WB=at({mapStateToProps:e=>({meta:ki(e)}),component:GB});var HB=n(1520),VB={};VB.styleTagTransform=M(),VB.setAttributes=B(),VB.insert=T().bind(null,"head"),VB.domAPI=k(),VB.insertStyleElement=N(),w()(HB.A,VB),HB.A&&HB.A.locals&&HB.A.locals;class jB extends J.PureComponent{render(){const{hasZipFile:e,returnToZipFileList:t,invalidatePanelLayout:n,timelineHeight:r,isUploading:o,uploadProgress:a,isHidingStaleProfile:i,hasSanitizedProfile:s,icons:l,isBottomBoxOpen:c}=this.props;return J.createElement(XE,{wrapperClassName:ug()({profileViewerWrapper:!0,profileViewerWrapperBackground:s})},[...l].map((([e,t])=>J.createElement(LB,{className:t,url:e,key:t}))),J.createElement("div",{className:ug()({profileViewer:!0,profileViewerFadeInSanitized:s&&!i,profileViewerFadeOut:i}),style:null===r?{}:{"--profile-viewer-splitter-max-height":`${r}px`}},J.createElement("div",{className:"profileViewerTopBar"},e?J.createElement("button",{type:"button",className:"profileViewerZipButton",title:"View all files in the archive",onClick:t}):null,J.createElement($E,null),J.createElement(Ow,null),J.createElement("div",{className:"profileViewerSpacer"}),J.createElement(DE,null),o?J.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*a+"%"}}):null),J.createElement(cg(),{customClassName:"profileViewerSplitter",vertical:!0,percentage:!1,primaryIndex:1,secondaryInitialSize:270,onDragEnd:n},J.createElement(RB,null),J.createElement(cg(),{vertical:!0,percentage:!0,primaryIndex:0,secondaryInitialSize:40,onDragEnd:n},J.createElement(jy,null),c?J.createElement(_w,null):null)),J.createElement(WE,null),J.createElement(YE,null),J.createElement(WB,null),J.createElement(OE,null),J.createElement(cw,null),J.createElement(hw,null)))}}const $B=at({mapStateToProps:e=>({hasZipFile:Os(e),timelineHeight:dl(e),uploadProgress:qd(e),isUploading:"uploading"===Kd(e),isHidingStaleProfile:nu(e),hasSanitizedProfile:ru(e),icons:uu(e),isBottomBoxOpen:sa(e)}),mapDispatchToProps:{returnToZipFileList:rk,invalidatePanelLayout:hm},component:jB});var KB=n(7939),YB={};function qB(e){e.preventDefault()}YB.styleTagTransform=M(),YB.setAttributes=B(),YB.insert=T().bind(null,"head"),YB.domAPI=k(),YB.insertStyleElement=N(),w()(KB.A,YB),KB.A&&KB.A.locals&&KB.A.locals;class ZB extends J.PureComponent{constructor(...e){super(...e),this._enteredElements=new Set,this._onDragEnter=e=>{e.preventDefault();const[t,n]=this._updateDragLocation(e);"OUTSIDE"===t&&"INSIDE"===n&&this.props.startDragging()},this._onDragLeave=e=>{e.preventDefault();const[t,n]=this._updateDragLocation(e);"INSIDE"===t&&"OUTSIDE"===n&&this.props.stopDragging()},this._handleProfileDrop=e=>{if(e.preventDefault(),this._resetDragLocation(),this.props.stopDragging(),!e.dataTransfer||!this.props.isNewProfileLoadAllowed)return;const{files:t}=e.dataTransfer;t.length>0&&this.props.retrieveProfileFromFile(t[0],this.props.browserConnection)}}_updateDragLocation(e){const t=this._enteredElements.size>0?"INSIDE":"OUTSIDE",n=e.currentTarget;if(this._enteredElements=new Set([...this._enteredElements].filter((e=>n.contains(e)))),e.target instanceof HTMLElement){const t=e.target;"dragenter"===e.type?this._enteredElements.add(t):"dragleave"===e.type&&this._enteredElements.delete(t)}return[t,this._enteredElements.size>0?"INSIDE":"OUTSIDE"]}_resetDragLocation(){this._enteredElements=new Set}componentDidMount(){document.addEventListener("drag",qB,!1),document.addEventListener("dragover",qB,!1),document.addEventListener("drop",qB,!1)}componentWillUnmount(){document.removeEventListener("drag",qB,!1),document.removeEventListener("dragover",qB,!1),document.removeEventListener("drop",qB,!1)}render(){const{className:e,children:t}=this.props;return J.createElement(J.Fragment,null,J.createElement("div",{className:ug()(e,"dragAndDropArea"),onDragEnter:this._onDragEnter,onDragLeave:this._onDragLeave,onDrop:this._handleProfileDrop},t),this.props.useDefaultOverlay?J.createElement(QB,{isDefault:!0}):null)}}const XB=at({mapStateToProps:e=>({isNewProfileLoadAllowed:ul(e),useDefaultOverlay:!sl(e),browserConnection:nl(e)}),mapDispatchToProps:{retrieveProfileFromFile:tm,startDragging:bm,stopDragging:Cm},component:ZB});class JB extends J.PureComponent{componentDidMount(){this.props.isDefault||this.props.registerDragAndDropOverlay()}componentWillUnmount(){this.props.isDefault||this.props.unregisterDragAndDropOverlay()}render(){return J.createElement("div",{className:ug()("dragAndDropOverlayWrapper",!(!this.props.isDragging||!this.props.isNewProfileLoadAllowed)&&"dragging")},J.createElement("div",{className:"dragAndDropOverlay"},"Drop a saved profile here"))}}const QB=at({mapStateToProps:e=>({isDragging:il(e),isNewProfileLoadAllowed:ul(e)}),mapDispatchToProps:{registerDragAndDropOverlay:vm,unregisterDragAndDropOverlay:ym},component:JB});var eI=n(3672),tI={};tI.styleTagTransform=M(),tI.setAttributes=B(),tI.insert=T().bind(null,"head"),tI.domAPI=k(),tI.insertStyleElement=N(),w()(eI.A,tI),eI.A&&eI.A.locals&&eI.A.locals;class nI extends J.PureComponent{constructor(...e){super(...e),this._handleClick=e=>{if(e.metaKey||e.ctrlKey)return;e.preventDefault();const{viewProfileFromZip:t,displayData:{zipTableIndex:n}}=this.props;null!==n&&t(n)}}render(){const{name:e,url:t}=this.props.displayData;return t?J.createElement("a",{href:t,onClick:this._handleClick},e):e}}const rI=at({mapDispatchToProps:{viewProfileFromZip:tk},component:nI});class oI extends J.PureComponent{constructor(e){super(e),this._fixedColumns=[],this._mainColumn={propName:"name",titleL10nId:"",component:rI},this._treeView=void 0,this._takeTreeViewRef=e=>this._treeView=e,this._onEnterKey=e=>{this.props.viewProfileFromZip(e)};const{expandedZipFileIndexes:t,zipFileTree:n,changeExpandedZipFile:r}=this.props;0===t.length&&n&&r([...n.getAllDescendants(null)])}componentDidMount(){const{zipFileState:e,pathInZipFile:t,zipFileTree:n}=this.props;if("NONE"===e.phase&&t&&!n)throw new Error("The zipFileTree should exist if this component was mounted");this.focus()}componentDidUpdate(e){const{pathInZipFile:t,zipFileState:n,viewProfileFromPathInZipFile:r,returnToZipFileList:o}=this.props;t!==n.pathInZipFile&&(null===t?o():r(t)),"LIST_FILES_IN_ZIP_FILE"!==e.zipFileState.phase&&"LIST_FILES_IN_ZIP_FILE"===this.props.zipFileState.phase&&this.focus()}focus(){const e=this._treeView;e&&e.focus()}_renderMessage(e){return J.createElement("section",{className:"zipFileViewer"},J.createElement("div",{className:"zipFileViewerSection"},J.createElement("header",{className:"zipFileViewerHeader"},J.createElement("h1",null,"Firefox Profiler"),J.createElement("p",null,"Choose a profile from this archive")),J.createElement("div",{className:"zipFileViewerMessage"},e),J.createElement(QB,null)))}_renderBackButton(){return J.createElement("button",{key:"backButton",type:"button",className:"homeSectionInstallButton",onClick:this.props.returnToZipFileList},"← Back to archive list")}render(){const{zipFileState:e,zipFileTree:t,zipFileMaxDepth:n,selectedZipFileIndex:r,expandedZipFileIndexes:o,changeSelectedZipFile:a,changeExpandedZipFile:i,pathInZipFile:s,zipFileErrorMessage:l}=this.props;if(!t)return console.error("No zipFileTree was found in a ZipFileViewer."),null;const{phase:c}=e;switch(c){case"NO_ZIP_FILE":return console.error("Loaded the ZipFileViewer component when there is no archive file."),this._renderMessage(J.createElement("span",null,"Error: No archive file was found."));case"LIST_FILES_IN_ZIP_FILE":return J.createElement("section",{className:"zipFileViewer"},J.createElement("div",{className:"zipFileViewerSection"},J.createElement("header",{className:"zipFileViewerHeader"},J.createElement("h1",null,"Firefox Profiler"),J.createElement("p",null,"Choose a profile from this archive")),J.createElement(oA,{maxNodeDepth:n,tree:t,fixedColumns:this._fixedColumns,mainColumn:this._mainColumn,onSelectionChange:a,onExpandedNodesChange:i,selectedNodeId:r,expandedNodeIds:o,ref:this._takeTreeViewRef,rowHeight:30,indentWidth:15,onEnterKey:this._onEnterKey,viewOptions:$a}),J.createElement(QB,null)));case"PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage(J.createElement("span",null,"Loading the profile from the archive..."));case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage([J.createElement("p",{key:"message"},"Unable to load the profile at this path:"),J.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),J.createElement("p",{key:"error"},l),this._renderBackButton()]);case"FILE_NOT_FOUND_IN_ZIP_FILE":return this._renderMessage([J.createElement("span",{key:"message"},"Failed to find a file in the zip at the following path:"),J.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),this._renderBackButton()]);case"VIEW_PROFILE_IN_ZIP_FILE":return J.createElement($B,null);default:throw new Error("Unknown zip file phase.")}}}const aI=at({mapStateToProps:e=>{const t=Vs(e);if(null===t)throw new Error("The zipFileTree should exist if the ZipFileViewer is mounted.");return{zipFileState:Ds(e),pathInZipFile:ca(e),zipFileTree:t,zipFileMaxDepth:Ws(e),selectedZipFileIndex:Fs(e),expandedZipFileIndexes:Rs(e),zipFileErrorMessage:Us(e)}},mapDispatchToProps:{changeSelectedZipFile:QE,changeExpandedZipFile:ek,viewProfileFromZip:tk,viewProfileFromPathInZipFile:nk,returnToZipFileList:rk},component:oI});class iI extends J.PureComponent{constructor(...e){super(...e),this.onClick=e=>{const{setDataSource:t,dataSource:n}=this.props;e.ctrlKey||e.metaKey||(e.preventDefault(),t(n))}}render(){const{className:e,children:t,dataSource:n}=this.props,r="none"===n?"/":`/${n}/`;return J.createElement("a",{className:e,href:r,onClick:this.onClick},t)}}const sI=at({mapDispatchToProps:{setDataSource:Jh},component:iI});var lI=n(7803),cI={};cI.styleTagTransform=M(),cI.setAttributes=B(),cI.insert=T().bind(null,"head"),cI.domAPI=k(),cI.insertStyleElement=N(),w()(lI.A,cI),lI.A&&lI.A.locals&&lI.A.locals;class dI extends J.PureComponent{render(){return J.createElement("header",null,J.createElement("h1",{className:"appHeader"},J.createElement(de,{id:"AppHeader--app-header",elems:{header:J.createElement(sI,{dataSource:"none",className:"appHeaderLink"}),subheader:J.createElement("span",{className:"appHeaderSubtext"})}},J.createElement("span",{className:"appHeaderSlogan"},J.createElement(sI,{dataSource:"none",className:"appHeaderLink"},"Vernier Profiler")," ","–"," ",J.createElement("span",{className:"appHeaderSubtext"},"Web app for Ruby performance analysis"))),J.createElement(de,{id:"AppHeader--github-icon",attrs:{title:!0}},J.createElement("a",{className:"appHeaderGithubIcon",href:"https://github.com/jhawthorn/vernier",target:"_blank",rel:"noopener noreferrer",title:"Go to our Git repository (this opens in a new window)"},J.createElement("svg",{width:"22",height:"22",className:"octicon octicon-mark-github",viewBox:"0 0 16 16",version:"1.1","aria-label":"github"},J.createElement("path",{fillRule:"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"}))))))}}var uI=n(2787),hI={};function pI({meta:e}){const t=co(e),n=uo(e);return J.createElement("div",{className:"profileMetaInfoSummary"},J.createElement("div",{className:"profileMetaInfoSummaryProductAndVersion","data-product":e.product},t),J.createElement("div",{className:"profileMetaInfoSummaryPlatform","data-toolkit":n},n))}hI.styleTagTransform=M(),hI.setAttributes=B(),hI.insert=T().bind(null,"head"),hI.domAPI=k(),hI.insertStyleElement=N(),w()(uI.A,hI),uI.A&&uI.A.locals&&uI.A.locals;var mI=n(8068),fI={};fI.styleTagTransform=M(),fI.setAttributes=B(),fI.insert=T().bind(null,"head"),fI.domAPI=k(),fI.insertStyleElement=N(),w()(mI.A,fI),mI.A&&mI.A.locals&&mI.A.locals;class gI extends J.PureComponent{constructor(...e){super(...e),this.state={confirmDialogIsOpen:!1},this.onOpenConfirmDialog=()=>{this.setState({confirmDialogIsOpen:!0})},this.onCloseConfirmDialog=()=>{this.setState({confirmDialogIsOpen:!1})},this.onCloseSuccessMessage=()=>{this.props.onProfileDelete()}}render(){const{uploadedProfileInformation:e,withActionButtons:t}=this.props,{confirmDialogIsOpen:n}=this.state;let{urlPath:r}=e;r.startsWith("/")||(r="/"+r);const o=e.profileToken.slice(0,6),a=e.name?e.name:`Profile #${o}`,i=e.name?e.name:"#"+o;return J.createElement("li",{className:ug()("publishedProfilesListItem",{publishedProfilesListItem_ConfirmDialogIsOpen:n})},J.createElement(de,{id:"ListOfPublishedProfiles--published-profiles-link",attrs:{title:!0},vars:{smallProfileName:i}},J.createElement("a",{className:"publishedProfilesLink",href:r,title:`Click here to load profile ${i}`},J.createElement("div",{className:"publishedProfilesDate"},J.createElement(de,{id:"NumberFormat--short-date",vars:{date:e.publishedDate}})),J.createElement("div",{className:"publishedProfilesInfo"},J.createElement("div",{className:"publishedProfilesName"},J.createElement("strong",null,a)," (",(s=e.publishedRange,Number.isFinite(s.start)&&Number.isFinite(s.end)?Jt(s.end-s.start,3,1):""),")"),J.createElement(pI,{meta:e.meta})))),t?J.createElement("div",{className:"publishedProfilesActionButtons"},e.jwtToken?J.createElement(PE,{buttonClassName:"publishedProfilesDeleteButton",profileName:a,smallProfileName:i,jwtToken:e.jwtToken,profileToken:e.profileToken,onOpenConfirmDialog:this.onOpenConfirmDialog,onCloseConfirmDialog:this.onCloseConfirmDialog,onCloseSuccessMessage:this.onCloseSuccessMessage}):J.createElement(de,{id:"ListOfPublishedProfiles--published-profiles-delete-button-disabled",attrs:{title:!0}},J.createElement("button",{className:"publishedProfilesDeleteButton photon-button photon-button-default",type:"button",title:"This profile cannot be deleted because we lack the authorization information.",disabled:!0},"Delete"))):null);var s}}class AI extends J.PureComponent{constructor(...e){super(...e),this._isMounted=!1,this.state={uploadedProfileInformationList:null},this._refreshList=async()=>{const e=await async function(){return(await Ju()).getAllFromIndex(Zu,"publishedDate")}();this._isMounted&&this.setState({uploadedProfileInformationList:e.reverse()})},this.onProfileDelete=()=>{this._refreshList()}}async componentDidMount(){this._isMounted=!0,this._refreshList(),window.addEventListener("focus",this._refreshList)}componentWillUnmount(){this._isMounted=!1,window.removeEventListener("focus",this._refreshList)}render(){const{limit:e,withActionButtons:t}=this.props,{uploadedProfileInformationList:n}=this.state;if(!n)return null;if(!n.length)return J.createElement("p",{className:"photon-body-30"},J.createElement(de,{id:"ListOfPublishedProfiles--uploaded-profile-information-list-empty"},"No profile has been uploaded yet!"));const r=e?n.slice(0,e):n,o=n.length-r.length;let a;return a=o>0?J.createElement(de,{id:"ListOfPublishedProfiles--uploaded-profile-information-label",vars:{profilesRestCount:o}},J.createElement(J.Fragment,null,"See and manage all your recordings (",o," more)")):J.createElement(de,{id:"ListOfPublishedProfiles--uploaded-profile-information-list",vars:{uploadedProfileCount:n.length}},J.createElement(J.Fragment,null,"Manage this recording")),J.createElement(J.Fragment,null,J.createElement("ul",{className:"publishedProfilesList"},r.map((e=>J.createElement(gI,{onProfileDelete:this.onProfileDelete,key:e.profileToken,uploadedProfileInformation:e,withActionButtons:t})))),t?null:J.createElement("p",null,J.createElement(sI,{dataSource:"uploaded-recordings"},a)))}}const bI=n.p+"18a5d1d99f1c65c33b71.png",CI=n.p+"4d26f0e38c22eedde178.jpg";var vI=n(2720),yI={};yI.styleTagTransform=M(),yI.setAttributes=B(),yI.insert=T().bind(null,"head"),yI.domAPI=k(),yI.insertStyleElement=N(),w()(vI.A,yI),vI.A&&vI.A.locals&&vI.A.locals;class wI extends J.PureComponent{constructor(...e){super(...e),this._fileInput=void 0,this.state={isLoadFromUrlPressed:!1},this._takeInputRef=e=>{this._fileInput=e},this._uploadProfileFromFile=async()=>{this._fileInput&&this.props.onLoadProfileFromFileRequested(this._fileInput.files[0])},this._loadFromFilePressed=()=>{this._fileInput&&this._fileInput.click()},this._loadFromUrlPressed=e=>{e.preventDefault(),this.setState((e=>({isLoadFromUrlPressed:!e.isLoadFromUrlPressed})))}}render(){return J.createElement("div",{className:"homeSectionLoadProfile"},J.createElement("div",{className:"homeSectionActionButtons"},J.createElement("input",{className:"homeSectionUploadFromFileInput",type:"file",ref:this._takeInputRef,onChange:this._uploadProfileFromFile}),J.createElement(de,{id:"Home--upload-from-file-input-button"},J.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromFilePressed},"Load a profile from file")),J.createElement(de,{id:"Home--upload-from-url-button"},J.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromUrlPressed,"aria-expanded":this.state.isLoadFromUrlPressed},"Load a profile from a URL"))),this.state.isLoadFromUrlPressed?J.createElement(EI,{onLoadProfileFromUrlRequested:this.props.onLoadProfileFromUrlRequested}):null)}}class EI extends J.PureComponent{constructor(...e){super(...e),this.state={value:""},this.handleChange=e=>{e.preventDefault(),this.setState({value:e.currentTarget.value})},this._upload=e=>{e.preventDefault(),this.state.value&&this.props.onLoadProfileFromUrlRequested(this.state.value)}}render(){return J.createElement("form",{className:"homeSectionLoadFromUrl",onSubmit:this._upload},J.createElement("input",{className:"homeSectionLoadFromUrlInput photon-input",type:"url",placeholder:"https://",value:this.state.value,onChange:this.handleChange,autoFocus:!0}),J.createElement(de,{id:"Home--load-from-url-submit-button",attrs:{value:!0}},J.createElement("input",{type:"submit",className:"homeSectionButton homeSectionLoadFromUrlSubmitButton",value:"Load"})))}}function kI(){return J.createElement("a",{href:"/docs/",className:"homeSectionButton"},J.createElement("span",{className:"homeSectionDocsIcon"}),J.createElement(de,{id:"Home--documentation-button"},"Documentation"))}function xI(e){return J.createElement(ab,{...e,classNames:"homeTransition",timeout:300,exit:!1})}class TI extends J.PureComponent{constructor(e){super(e),this._enableMenuButton=e=>{e.preventDefault(),async function(){await Fm({type:"ENABLE_MENU_BUTTON"})}().then((()=>{this.setState({popupInstallPhase:"popup-enabled"})}),(e=>{console.error("Unable to enable the profiler popup button.",e)}))},this._onLoadProfileFromFileRequested=e=>{this.props.retrieveProfileFromFile(e,this.props.browserConnection)},this._onLoadProfileFromUrlRequested=e=>{this.props.triggerLoadingFromUrl(e)};let t="other-browser";Boolean(navigator.userAgent.match(/Firefox\/\d+\.\d+/))?(t="checking-webchannel",async function(){return(await Fm({type:"STATUS_QUERY"})).menuButtonIsEnabled}().then((e=>{this.setState({popupInstallPhase:e?"popup-enabled":"suggest-enable-popup"})}),(()=>{this.setState({popupInstallPhase:"webchannel-unavailable"})}))):Boolean(navigator.userAgent.match(/Chrome\/\d+\.\d+/))&&(t="suggest-chrome-extension"),this.state={popupInstallPhase:t}}_renderInstructions(){const{popupInstallPhase:e}=this.state;switch(e){case"checking-webchannel":case"suggest-enable-popup":return this._renderEnablePopupInstructions(!0);case"webchannel-unavailable":return this._renderEnablePopupInstructions(!1);case"popup-enabled":return this._renderRecordInstructions(CI);case"suggest-chrome-extension":return this._renderChromeInstructions();case"other-browser":return this._renderOtherBrowserInstructions();default:throw(0,ut.lC)(e,"Unhandled PopupInstallPhase")}}_renderEnablePopupInstructions(e){return J.createElement(xI,{key:0},J.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:bI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,J.createElement(de,{id:"Home--enable-button-unavailable",attrs:{title:!e}},J.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._enableMenuButton,disabled:!e,title:e?void 0:"This profiler instance was unable to connect to the WebChannel, so it cannot enable the profiler menu button."},J.createElement("span",{className:"homeSectionPlus"},"+"),J.createElement(de,{id:"Home--menu-button"},"Enable Profiler Menu Button"))),J.createElement(kI,null),e?J.createElement(de,{id:"Home--menu-button-instructions"},J.createElement("p",null,"Enable the profiler menu button to start recording a performance profile in Firefox, then analyze it and share it with profiler.firefox.com.")):J.createElement(de,{id:"Home--web-channel-unavailable",elems:{code:J.createElement("code",null)}},J.createElement("p",null,"This profiler instance was unable to connect to the WebChannel. This usually means that it’s running on a different host from the one that is specified in the preference"," ",J.createElement("code",null,"devtools.performance.recording.ui-base-url"),". If you would like to capture new profiles with this instance, and give it programmatic control of the profiler menu button, you can go to ",J.createElement("code",null,"about:config"),"and change the preference.")),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderChromeInstructions(){const e="https://chromewebstore.google.com/detail/firefox-profiler/ljmahpnflmbkgaipnfbpgjipcnahlghn";return J.createElement(xI,{key:0},J.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:bI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,J.createElement("a",{className:"homeSectionButton",href:e,target:"_blank",rel:"noreferrer"},J.createElement("span",{className:"homeSectionPlus"},"+"),J.createElement(de,{id:"Home--install-chrome-extension"},"Install the Chrome extension")),J.createElement(kI,null),J.createElement(de,{id:"Home--chrome-extension-instructions",elems:{a:J.createElement("a",{href:e,target:"_blank",rel:"noreferrer"})}},J.createElement("p",null,"Use the ",J.createElement("a",null,"Firefox Profiler extension for Chrome")," to capture performance profiles in Chrome and analyze them in the Firefox Profiler. Install the extension from the Chrome Web Store.")),J.createElement(de,{id:"Home--chrome-extension-recording-instructions"},J.createElement("p",null,"Once installed, use the extension’s toolbar icon or the shortcuts to start and stop profiling. You can also export profiles and load them here for detailed analysis.")),this._renderShortcuts())))}_renderRecordInstructions(e){return J.createElement(xI,{key:1},J.createElement("div",{className:"homeInstructions","data-testid":"home-record-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:e,alt:"Screenshot of the profiler settings from the Firefox menu."}),J.createElement("div",null,J.createElement(kI,null),J.createElement(de,{id:"Home--record-instructions",elems:{kbd:J.createElement("kbd",null)}},J.createElement("p",null,"To start profiling, click on the profiling button, or use the keyboard shortcuts. The icon is blue when a profile is recording. Hit ",J.createElement("kbd",null,"Capture")," to load the data into profiler.firefox.com.")),this._renderShortcuts(),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderOtherBrowserInstructions(){return J.createElement(xI,{key:0},J.createElement("div",{className:"homeInstructions","data-testid":"home-other-browser-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:bI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,J.createElement(kI,null),J.createElement(de,{id:"Home--instructions-content",elems:{a:J.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"})}},J.createElement("p",null,"Recording performance profiles requires"," ",J.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"},"Firefox"),". However, existing profiles can be viewed in any modern browser.")),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderShortcuts(){return J.createElement("div",null,J.createElement("p",null,J.createElement("kbd",null,"Ctrl"),"+",J.createElement("kbd",null,"Shift"),"+",J.createElement("kbd",null,"1")," ",J.createElement(de,{id:"Home--record-instructions-start-stop"},"Stop and start profiling")),J.createElement("p",null,J.createElement("kbd",null,"Ctrl"),"+",J.createElement("kbd",null,"Shift"),"+",J.createElement("kbd",null,"2")," ",J.createElement(de,{id:"Home--record-instructions-capture-load"},"Capture and load profile")))}render(){const{specialMessage:e}=this.props;return J.createElement("div",{className:"home"},J.createElement("main",{className:"homeSection"},J.createElement(dI,null),e?J.createElement("div",{className:"homeSpecialMessage"},e):null,J.createElement(de,{id:"Home--profiler-motto"},J.createElement("p",null,"Capture a performance profile. Analyze it. Share it. Make Ruby faster.")),J.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:bI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,"Capture a profile from your ruby program by installing the `vernier` gem and then recording a profile using one of the following:",J.createElement("br",null),J.createElement("br",null),"To profile a single expensive method call",J.createElement("pre",null,'Vernier.profile(out: "profile.vernier.json") do',J.createElement("br",null)," some_slow_method()",J.createElement("br",null),"end"),"To profile a full program run (great for measuring test runs)",J.createElement("pre",null,"$ vernier run -- bundle exec ruby ..."),"Or browse a demo:",J.createElement("ul",null,J.createElement("li",null,J.createElement("a",{href:"/from-url/https%3A%2F%2Fraw.githubusercontent.com%2Fjhawthorn%2Fvernier-examples%2Fmain%2Fsimple_rails_request.json/calltree/?globalTrackOrder=0&thread=0&timelineType=category&v=10"},"Simple Rails request")),J.createElement("li",null,J.createElement("a",{href:"/from-url/https%3A%2F%2Fjhawthorn.github.io%2Fvernier-examples%2Fbundler.json/stack-chart/?globalTrackOrder=0&hiddenLocalTracksByPid=727970-0&thread=0&timelineType=category&v=10"},"bundler (bundle lock)"))),"For more options check the ",J.createElement("a",{href:"https://github.com/jhawthorn/vernier#README"},"README on GitHub"))),J.createElement("section",{className:"homeAdditionalContent"},J.createElement("h2",{className:"homeAdditionalContentTitle protocol-display-xs"},J.createElement(de,{id:"Home--additional-content-title"},"Load existing profiles")),J.createElement("section",{className:"homeActions"},J.createElement(de,{id:"Home--additional-content-content",elems:{strong:J.createElement("strong",null)}},J.createElement("p",null,"You can ",J.createElement("strong",null,"drag and drop")," a profile file here to load it, or:")),J.createElement(wI,{onLoadProfileFromFileRequested:this._onLoadProfileFromFileRequested,onLoadProfileFromUrlRequested:this._onLoadProfileFromUrlRequested}),J.createElement("p",null,"This web interface is just a few modifications on top of the",J.createElement("a",{href:"https://profiler.firefox.com/"},"Firefox profiler")," to adapt better to Ruby profiling. Vernier profiles are compatble with either tool."),J.createElement(de,{id:"Home--compare-recordings-info",elems:{a:J.createElement(sI,{dataSource:"compare"})}},J.createElement("p",null,"You can also compare recordings."," ",J.createElement(sI,{dataSource:"compare"},"Open the comparing interface.")))),J.createElement("section",null,J.createElement("h2",{className:"homeRecentUploadedRecordingsTitle protocol-display-xxs"},J.createElement(de,{id:"Home--your-recent-uploaded-recordings-title"},"Your recent uploaded recordings")),J.createElement(AI,{limit:3,withActionButtons:!1}))),J.createElement(QB,null)))}}const SI=at({mapStateToProps:e=>({browserConnection:nl(e)}),mapDispatchToProps:{retrieveProfileFromFile:tm,triggerLoadingFromUrl:fp},component:TI});var BI=n(5997),II={};II.styleTagTransform=M(),II.setAttributes=B(),II.insert=T().bind(null,"head"),II.domAPI=k(),II.insertStyleElement=N(),w()(BI.A,II),BI.A&&BI.A.locals&&BI.A.locals;class _I extends J.PureComponent{constructor(...e){super(...e),this.state={profile1:"",profile2:""},this.handleInputChange=e=>{const{name:t,value:n}=e.target;this.setState({[t]:n})},this.handleFormSubmit=e=>{e.preventDefault();const{profile1:t,profile2:n}=this.state,{changeProfilesToCompare:r}=this.props;r([t,n])}}render(){const{profile1:e,profile2:t}=this.state;return J.createElement("main",{className:"compareHome"},J.createElement(dI,null),J.createElement("h2",{className:"photon-title-20"},J.createElement(de,{id:"CompareHome--instruction-title"},"Enter the profile URLs that you’d like to compare")),J.createElement("p",{className:"photon-body-20"},J.createElement(de,{id:"CompareHome--instruction-content"},"The tool will extract the data from the selected track and range for each profile, and put them both on the same view to make them easy to compare.")),J.createElement("form",{className:"compareHomeForm",onSubmit:this.handleFormSubmit},J.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile1"},J.createElement(de,{id:"CompareHome--form-label-profile1"},"Profile 1:")),J.createElement("input",{name:"profile1",id:"compareHomeProfile1",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:e}),J.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile2"},J.createElement(de,{id:"CompareHome--form-label-profile2"},"Profile 2:")),J.createElement("input",{name:"profile2",id:"compareHomeProfile2",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:t}),J.createElement(de,{id:"CompareHome--submit-button",attrs:{value:!0}},J.createElement("input",{className:"compareHomeSubmitButton photon-button photon-button-primary",type:"submit",value:"Retrieve profiles"}))))}}const NI=at({mapDispatchToProps:{changeProfilesToCompare:sm},component:_I});var PI=n(8504),MI={};MI.styleTagTransform=M(),MI.setAttributes=B(),MI.insert=T().bind(null,"head"),MI.domAPI=k(),MI.insertStyleElement=N(),w()(PI.A,MI),PI.A&&PI.A.locals&&PI.A.locals;class FI extends J.PureComponent{render(){return J.createElement("main",{className:"uploadedRecordingsHome"},J.createElement(dI,null),J.createElement("h2",{className:"photon-title-30"},J.createElement(de,{id:"UploadedRecordingsHome--title"},"Uploaded Recordings")),J.createElement(AI,{withActionButtons:!0}))}}const RI=Object.freeze({"from-browser":"AppViewRouter--error-unpublished","from-post-message":"AppViewRouter--error-from-post-message",unpublished:"AppViewRouter--error-unpublished","from-file":"AppViewRouter--error-from-file",local:"AppViewRouter--error-local",public:"AppViewRouter--error-public","from-url":"AppViewRouter--error-from-url",compare:"AppViewRouter--error-compare"});class DI extends J.PureComponent{render(){const{view:e,dataSource:t,profilesToCompare:n,hasZipFile:r}=this.props,o=e.phase;switch(t){case"none":return J.createElement(SI,null);case"compare":if(null===n)return J.createElement(NI,null);break;case"uploaded-recordings":return J.createElement(FI,null);case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"local":case"public":case"from-url":break;default:throw(0,ut.lC)(t)}switch(o){case"INITIALIZING":case"PROFILE_LOADED":case"DATA_RELOAD":return J.createElement(Hm,null);case"FATAL_ERROR":{let n=RI[t]||"AppViewRouter--error-public",r=null;return e.error&&("SafariLocalhostHTTPLoadError"===e.error.name?n="AppViewRouter--error-from-localhost-url-safari":(console.error(e.error),r=J.createElement(J.Fragment,null,J.createElement("p",null,e.error.toString()),J.createElement("p",null,"The full stack has been written to the Web Console.")))),J.createElement(de,{id:n,attrs:{title:!0},elems:{a:J.createElement("a",{href:"https://bugs.webkit.org/show_bug.cgi?id=171934",target:"_blank",rel:"noopener noreferrer"})}},J.createElement(zm,{additionalMessage:r,showLoader:!1,showBackHomeLink:!0},`missing translation for ${n}`))}case"DATA_LOADED":return r?J.createElement(aI,null):J.createElement($B,null);case"TRANSITIONING_FROM_STALE_PROFILE":return null;default:return J.createElement(de,{id:"AppViewRouter--route-not-found--home",attrs:{specialMessage:!0}},J.createElement(SI,{specialMessage:"The URL you tried to reach was not recognized."}))}}}const LI=at({mapStateToProps:e=>({view:$s(e),dataSource:go(e),profilesToCompare:Co(e),hasZipFile:Os(e)}),component:DI});class OI extends J.PureComponent{constructor(...e){super(...e),this._retrieveProfileFromDataSource=async()=>{const{dataSource:e,browserConnectionStatus:t,hash:n,profileUrl:r,profilesToCompare:o,retrieveProfileFromBrowser:a,retrieveProfileFromStore:i,retrieveProfileOrZipFromUrl:s,retrieveProfilesToCompare:l}=this.props;switch(e){case"from-browser":a(t);break;case"from-file":case"local":case"from-post-message":case"uploaded-recordings":case"unpublished":case"none":break;case"public":i(n).catch((e=>console.error(e)));break;case"from-url":s(r).catch((e=>console.error(e)));break;case"compare":o&&l(o);break;default:throw(0,ut.lC)(e)}}}componentDidUpdate(e){"none"===e.dataSource&&"none"!==this.props.dataSource?this._retrieveProfileFromDataSource():"compare"===this.props.dataSource&&!e.profilesToCompare&&this.props.profilesToCompare&&this.props.retrieveProfilesToCompare(this.props.profilesToCompare)}render(){return null}}const UI=at({mapStateToProps:e=>({dataSource:go(e),hash:Ao(e),profileUrl:bo(e),profilesToCompare:Co(e),browserConnectionStatus:tl(e)}),mapDispatchToProps:{retrieveProfileFromStore:Xp,retrieveProfileOrZipFromUrl:Jp,retrieveProfileFromBrowser:Dp,retrieveProfilesToCompare:rm},component:OI});try{self["workbox:window:7.2.0"]&&_()}catch(zI){}function zI(e,t){return new Promise((function(n){var r=new MessageChannel;r.port1.onmessage=function(e){n(e.data)},e.postMessage(t,[r.port2])}))}function GI(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function WI(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,GI(r.key),r)}}function HI(e,t){return HI=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},HI(e,t)}function VI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}try{self["workbox:core:7.2.0"]&&_()}catch(zI){}var jI=function(){var e=this;this.promise=new Promise((function(t,n){e.resolve=t,e.reject=n}))};function $I(e,t){var n=location.href;return new URL(e,n).href===new URL(t,n).href}var KI=function(e,t){this.type=e,Object.assign(this,t)};function YI(e,t,n){return n?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}function qI(){}var ZI={type:"SKIP_WAITING"};function XI(e,t){if(!t)return e&&e.then?e.then(qI):Promise.resolve()}var JI=function(e){function t(t,n){var r,o;return void 0===n&&(n={}),(r=e.call(this)||this).nn={},r.tn=0,r.rn=new jI,r.en=new jI,r.on=new jI,r.un=0,r.an=new Set,r.cn=function(){var e=r.fn,t=e.installing;r.tn>0||!$I(t.scriptURL,r.sn.toString())||performance.now()>r.un+6e4?(r.vn=t,e.removeEventListener("updatefound",r.cn)):(r.hn=t,r.an.add(t),r.rn.resolve(t)),++r.tn,t.addEventListener("statechange",r.ln)},r.ln=function(e){var t=r.fn,n=e.target,o=n.state,a=n===r.vn,i={sw:n,isExternal:a,originalEvent:e};!a&&r.mn&&(i.isUpdate=!0),r.dispatchEvent(new KI(o,i)),"installed"===o?r.wn=self.setTimeout((function(){"installed"===o&&t.waiting===n&&r.dispatchEvent(new KI("waiting",i))}),200):"activating"===o&&(clearTimeout(r.wn),a||r.en.resolve(n))},r.yn=function(e){var t=r.hn,n=t!==navigator.serviceWorker.controller;r.dispatchEvent(new KI("controlling",{isExternal:n,originalEvent:e,sw:t,isUpdate:r.mn})),n||r.on.resolve(t)},r.gn=(o=function(e){var t=e.data,n=e.ports,o=e.source;return YI(r.getSW(),(function(){r.an.has(o)&&r.dispatchEvent(new KI("message",{data:t,originalEvent:e,ports:n,sw:o}))}))},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(o.apply(this,e))}catch(e){return Promise.reject(e)}}),r.sn=t,r.nn=n,navigator.serviceWorker.addEventListener("message",r.gn),r}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,HI(n,r);var o,a,i=t.prototype;return i.register=function(e){var t=(void 0===e?{}:e).immediate,n=void 0!==t&&t;try{var r=this;return YI(function(e,t){var n=e();return n&&n.then?n.then(t):t()}((function(){if(!n&&"complete"!==document.readyState)return XI(new Promise((function(e){return window.addEventListener("load",e)})))}),(function(){return r.mn=Boolean(navigator.serviceWorker.controller),r.dn=r.pn(),YI(r.bn(),(function(e){r.fn=e,r.dn&&(r.hn=r.dn,r.en.resolve(r.dn),r.on.resolve(r.dn),r.dn.addEventListener("statechange",r.ln,{once:!0}));var t=r.fn.waiting;return t&&$I(t.scriptURL,r.sn.toString())&&(r.hn=t,Promise.resolve().then((function(){r.dispatchEvent(new KI("waiting",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),r.hn&&(r.rn.resolve(r.hn),r.an.add(r.hn)),r.fn.addEventListener("updatefound",r.cn),navigator.serviceWorker.addEventListener("controllerchange",r.yn),r.fn}))})))}catch(e){return Promise.reject(e)}},i.update=function(){try{return this.fn?YI(XI(this.fn.update())):YI()}catch(e){return Promise.reject(e)}},i.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},i.messageSW=function(e){try{return YI(this.getSW(),(function(t){return zI(t,e)}))}catch(e){return Promise.reject(e)}},i.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&zI(this.fn.waiting,ZI)},i.pn=function(){var e=navigator.serviceWorker.controller;return e&&$I(e.scriptURL,this.sn.toString())?e:void 0},i.bn=function(){try{var e=this;return YI(function(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}((function(){return YI(navigator.serviceWorker.register(e.sn,e.nn),(function(t){return e.un=performance.now(),t}))}),(function(e){throw e})))}catch(e){return Promise.reject(e)}},o=t,(a=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&WI(o.prototype,a),Object.defineProperty(o,"prototype",{writable:!1}),o}(function(){function e(){this.Pn=new Map}var t=e.prototype;return t.addEventListener=function(e,t){this.jn(e).add(t)},t.removeEventListener=function(e,t){this.jn(e).delete(t)},t.dispatchEvent=function(e){e.target=this;for(var t,n=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,t){if(e){if("string"==typeof e)return VI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?VI(e,t):void 0}}(e))){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.jn(e.type));!(t=n()).done;)(0,t.value)(e)},t.jn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},e}()),QI=n(9309),e_={};e_.styleTagTransform=M(),e_.setAttributes=B(),e_.insert=T().bind(null,"head"),e_.domAPI=k(),e_.insertStyleElement=N(),w()(QI.A,e_),QI.A&&QI.A.locals&&QI.A.locals;class t_ extends J.PureComponent{constructor(...e){super(...e),this.state={installStatus:"idle",isNoticeDisplayed:!1,updatedWhileNotReady:!1},this._workbox=null,this.applyServiceWorkerUpdate=()=>{const e=this._workbox;e&&(this.setState({installStatus:"activating"}),e.messageSkipWaiting())},this.reloadPage=()=>{window.location.reload()},this._onCloseNotice=()=>{this.setState({isNoticeDisplayed:!1})}}_installServiceWorker(){if(!("serviceWorker"in navigator))return;const e=this._workbox=new JI("/sw.js",{updateViaCache:"none"});e.register(),e.addEventListener("installing",(()=>{console.log("[ServiceWorker] An update has been found and the browser is downloading the new assets.")})),e.addEventListener("installed",(()=>{console.log("[ServiceWorker] App is ready for offline usage!")})),e.addEventListener("waiting",(()=>{console.log("[ServiceWorker] We have downloaded the new assets and we are ready to go."),this.setState({installStatus:"pending",isNoticeDisplayed:!0})})),e.addEventListener("controlling",(()=>{if(console.log("[ServiceWorker] The new version of the application has started handling the fetch requests."),"activating"===this.state.installStatus)return void this.reloadPage();const e=!this._hasDataSourceProfile()||this._isProfileLoadedAndReady();this.setState({installStatus:"controlling",updatedWhileNotReady:!e})}))}_hasDataSourceProfile(){const{dataSource:e}=this.props;switch(e){case"none":case"uploaded-recordings":return!1;case"from-file":case"from-browser":case"from-post-message":case"unpublished":case"public":case"from-url":case"compare":case"local":return!0;default:throw(0,ut.lC)(e)}}_isProfileLoadedAndReady(){const{phase:e,symbolicationStatus:t}=this.props;if("DATA_LOADED"!==e)return!1;switch(t){case"DONE":return!0;case"SYMBOLICATING":return!1;default:throw(0,ut.lC)(t)}}_canUpdateServiceWorker(){const{dataSource:e,profileUrl:t}=this.props;switch(e){case"none":case"uploaded-recordings":return!0;case"from-file":case"from-browser":case"from-post-message":case"unpublished":return!1;case"from-url":if(qr(t))return!1;case"public":case"compare":case"local":return this._isProfileLoadedAndReady();default:throw(0,ut.lC)(e)}}componentDidMount(){this._installServiceWorker()}componentDidUpdate(){const{phase:e,dataSource:t}=this.props,{installStatus:n}=this.state;this._workbox&&"idle"!==n&&"FATAL_ERROR"===e&&"from-file"!==t&&(this._workbox.messageSkipWaiting(),this.reloadPage())}renderButton(){const{installStatus:e}=this.state;switch(e){case"activating":return J.createElement(de,{id:"ServiceWorkerManager--applying-button"},J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button"},"Applying…"));case"idle":throw new Error("We tried to render the notice's button but because we're in status 'idle', there should be no notice.");case"pending":return J.createElement(de,{id:"ServiceWorkerManager--pending-button"},J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.applyServiceWorkerUpdate},"Apply and reload"));case"controlling":return J.createElement(de,{id:"ServiceWorkerManager--installed-button"},J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.reloadPage},"Reload the application"));default:throw(0,ut.lC)(e)}}render(){const{isNoticeDisplayed:e,updatedWhileNotReady:t}=this.state;return e?t?J.createElement("div",{className:"serviceworker-ready-notice-wrapper"},J.createElement("div",{className:"photon-message-bar photon-message-bar-warning serviceworker-ready-notice"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"ServiceWorkerManager--updated-while-not-ready"},"A new version of the application was applied before this page was fully loaded. You might see malfunctions.")),this._canUpdateServiceWorker()?this.renderButton():null),J.createElement(de,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},J.createElement("button",{"aria-label":"Hide the reload notice",title:"Hide the reload notice",className:"photon-button photon-message-bar-close-button",type:"button",onClick:this._onCloseNotice})))):this._canUpdateServiceWorker()?J.createElement("div",{className:"serviceworker-ready-notice-wrapper"},J.createElement("div",{className:"photon-message-bar serviceworker-ready-notice"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"ServiceWorkerManager--new-version-is-ready"},"A new version of the application has been downloaded and is ready to use.")),this.renderButton()),J.createElement(de,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},J.createElement("button",{"aria-label":"Hide the reload notice",title:"Hide the reload notice",className:"photon-button photon-message-bar-close-button",type:"button",onClick:this._onCloseNotice})))):null:null}}const n_=at({mapStateToProps:e=>({phase:$s(e).phase,dataSource:go(e),profileUrl:bo(e),symbolicationStatus:ri(e)}),component:t_}),r_=" – ",o_="Vernier Profiler";class a_ extends J.PureComponent{_updateTitle(){const{profile:e,profileNameFromUrl:t,formattedMetaInfoString:n,fileNameInZipFilePath:r,listingZipFile:o,dataSource:a}=this.props;switch(a){case"none":document.title=o_;break;case"uploaded-recordings":document.title="Uploaded Recordings"+r_+o_;break;case"compare":document.title="Compare Profiles"+r_+o_;break;case"public":case"local":case"unpublished":case"from-browser":case"from-post-message":case"from-file":case"from-url":if(t)document.title=t+r_+o_;else if(e){const{meta:t}=e;let o="";n&&(o+=n),t.startTime>0&&(o+=r_+(i=t.startTime+(t.profilingStartTime||0),new Date(i).toLocaleString(void 0,{timeZone:"UTC",timeZoneName:"short"}))),"public"===a&&(o+=` (${a})`),""!==o&&(o+=r_),o+=o_,r&&(o=r+r_+o),document.title=o}else document.title=o?"Archive Contents"+r_+o_:o_;break;default:throw(0,ut.lC)(a)}var i}componentDidMount(){this._updateTitle()}componentDidUpdate(){this._updateTitle()}render(){return null}}const i_=at({mapStateToProps:e=>({profileNameFromUrl:vo(e),fileNameInZipFilePath:ua(e),formattedMetaInfoString:da(e),profile:mi(e),dataSource:go(e),listingZipFile:"LIST_FILES_IN_ZIP_FILE"===Ds(e).phase}),component:a_}),s_=new RegExp("^([a-z]{2,3}|\\*)(?:-([a-z]{4}|\\*))?(?:-([a-z]{2}|\\*))?(?:-(([0-9][a-z0-9]{3}|[a-z0-9]{5,8})|\\*))?$","i");class l_{constructor(e){const t=s_.exec(e.replace(/_/g,"-"));if(!t)return void(this.isWellFormed=!1);let[,n,r,o,a]=t;n&&(this.language=n.toLowerCase()),r&&(this.script=r[0].toUpperCase()+r.slice(1)),o&&(this.region=o.toUpperCase()),this.variant=a,this.isWellFormed=!0}isEqual(e){return this.language===e.language&&this.script===e.script&&this.region===e.region&&this.variant===e.variant}matches(e,t=!1,n=!1){return(this.language===e.language||t&&void 0===this.language||n&&void 0===e.language)&&(this.script===e.script||t&&void 0===this.script||n&&void 0===e.script)&&(this.region===e.region||t&&void 0===this.region||n&&void 0===e.region)&&(this.variant===e.variant||t&&void 0===this.variant||n&&void 0===e.variant)}toString(){return[this.language,this.script,this.region,this.variant].filter((e=>void 0!==e)).join("-")}clearVariants(){this.variant=void 0}clearRegion(){this.region=void 0}addLikelySubtags(){const e=function(e){if(Object.prototype.hasOwnProperty.call(c_,e))return new l_(c_[e]);const t=new l_(e);return t.language&&d_.includes(t.language)?(t.region=t.language.toUpperCase(),t):null}(this.toString().toLowerCase());return!!e&&(this.language=e.language,this.script=e.script,this.region=e.region,this.variant=e.variant,!0)}}const c_={ar:"ar-arab-eg","az-arab":"az-arab-ir","az-ir":"az-arab-ir",be:"be-cyrl-by",da:"da-latn-dk",el:"el-grek-gr",en:"en-latn-us",fa:"fa-arab-ir",ja:"ja-jpan-jp",ko:"ko-kore-kr",pt:"pt-latn-br",sr:"sr-cyrl-rs","sr-ru":"sr-latn-ru",sv:"sv-latn-se",ta:"ta-taml-in",uk:"uk-cyrl-ua",zh:"zh-hans-cn","zh-hant":"zh-hant-tw","zh-hk":"zh-hant-hk","zh-mo":"zh-hant-mo","zh-tw":"zh-hant-tw","zh-gb":"zh-hant-gb","zh-us":"zh-hant-us"},d_=["az","bg","cs","de","es","fi","fr","hu","it","lt","lv","nl","pl","ro","ru"];class u_ extends J.PureComponent{async _setupLocalization(){const{requestedLocales:e,pseudoStrategy:t,receiveL10n:n}=this.props;if(!e)return;const r=function(e,t,{strategy:n="filtering",defaultLocale:r}={}){const o=function(e,t,n){const r=new Set,o=new Map;for(let e of t)new l_(e).isWellFormed&&o.set(e,new l_(e));e:for(const t of e){const e=t.toLowerCase(),a=new l_(e);if(void 0!==a.language){for(const t of o.keys())if(e===t.toLowerCase()){if(r.add(t),o.delete(t),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.addLikelySubtags())for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearVariants();for(const[e,t]of o.entries())if(t.matches(a,!0,!0)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.clearRegion(),a.addLikelySubtags())for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearRegion();for(const[e,t]of o.entries())if(t.matches(a,!0,!0)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}}}return Array.from(r)}(Array.from(null!=e?e:[]).map(String),Array.from(null!=t?t:[]).map(String),n);if("lookup"===n){if(void 0===r)throw new Error("defaultLocale cannot be undefined for strategy `lookup`");0===o.length&&o.push(r)}else r&&!o.includes(r)&&o.push(r);return o}(e,Yf,{defaultLocale:qf}),o=r.indexOf(qf),a=r.slice(0,o+1),i=function*(e,t){const n=t?Gf[t]:void 0;for(const[t,r]of e){const e=new Of(r),o=new pf(t,{transform:n,functions:{SHORTDATE:$f}});o.addResource(e),yield o}}(await Promise.all(a.map(Xf)),t),s=new se(i),l=r[0],c=function(e,t){if(t&&t in Wf)return Wf[t];const n=e.split("-")[0];return Zf.includes(n)?"rtl":"ltr"}(l,t);n(s,l,c)}componentDidMount(){this._setupLocalization()}componentDidUpdate(){this._setupLocalization()}render(){return null}}class h_ extends J.PureComponent{componentDidMount(){const{requestL10n:e}=this.props;e(this._getPersistedLocale()??navigator.languages)}componentDidUpdate(){this._persistCurrentLocale()}_getPersistedLocale(){let e;try{e=localStorage.getItem("requestedLocales")}catch(e){console.warn("We got an error while trying to retrieve the previously requested locale. Cookies might be blocked in this browser.",e)}if(e)try{const t=JSON.parse(e);if(Array.isArray(t)&&t.length)return t;console.warn(`The stored locale information (${e}) looks incorrect.`)}catch(t){console.warn(`We got an error when trying to parse the previously stored locale information (${e}).`)}return null}_persistCurrentLocale(){const{requestedLocales:e}=this.props;if(e)try{localStorage.setItem("requestedLocales",JSON.stringify(e))}catch(e){console.warn("We got an error when trying to save the current requested locale. We may run in private mode.",e)}}render(){return null}}class p_ extends J.PureComponent{componentDidMount(){this._updateLocalizationDocumentAttribute()}componentDidUpdate(){this._updateLocalizationDocumentAttribute()}_updateLocalizationDocumentAttribute(){const{primaryLocale:e,direction:t}=this.props;e&&((0,ut.Nn)(document.documentElement).setAttribute("dir",t),(0,ut.Nn)(document.documentElement).setAttribute("lang",e))}render(){const{primaryLocale:e,children:t,localization:n,requestedLocales:r,pseudoStrategy:o,receiveL10n:a,requestL10n:i}=this.props;return J.createElement(J.Fragment,null,J.createElement(h_,{requestL10n:i,requestedLocales:r}),J.createElement(u_,{requestedLocales:r,pseudoStrategy:o,receiveL10n:a}),e?J.createElement(ce,{l10n:n},t):null)}}const m_=at({mapStateToProps:e=>({localization:mu(e),primaryLocale:fu(e),direction:gu(e),requestedLocales:Au(e),pseudoStrategy:bu(e)}),mapDispatchToProps:{requestL10n:$m,receiveL10n:Km},component:p_});var f_=n(7385),g_={};g_.styleTagTransform=M(),g_.setAttributes=B(),g_.insert=T().bind(null,"head"),g_.domAPI=k(),g_.insertStyleElement=N(),w()(f_.A,g_),f_.A&&f_.A.locals&&f_.A.locals;class A_ extends J.PureComponent{render(){const{store:e}=this.props;return J.createElement(ig,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},J.createElement(ot,{store:e},J.createElement(m_,null,J.createElement(de,{id:"Root--error-boundary-message",attrs:{message:!0}},J.createElement(sg,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},J.createElement(XB,null,J.createElement(jm,null,J.createElement(n_,null),J.createElement(UI,null),J.createElement(LI,null),J.createElement(ng,null),J.createElement(i_,null))))))))}}var b_,C_=({dispatch:e,getState:t})=>n=>r=>"function"==typeof r?r(e,t,b_):n(r);n(9448);const v_=to({eventDelayTracks:(e=!1,t)=>"ENABLE_EVENT_DELAY_TRACKS"===t.type||e,cpuGraphs:(e=!1,t)=>"ENABLE_EXPERIMENTAL_CPU_GRAPHS"===t.type||e,processCPUTracks:(e=!1,t)=>"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS"===t.type||e}),y_=to({view:(e={phase:"INITIALIZING"},t)=>{switch(t.type){case"TEMPORARY_ERROR":return{phase:"INITIALIZING",additionalData:{message:t.error.message,attempt:t.error.attempt}};case"FATAL_ERROR":return{phase:"FATAL_ERROR",error:t.error};case"WAITING_FOR_PROFILE_FROM_BROWSER":case"WAITING_FOR_PROFILE_FROM_URL":case"WAITING_FOR_PROFILE_FROM_FILE":return{phase:"INITIALIZING"};case"ROUTE_NOT_FOUND":return{phase:"ROUTE_NOT_FOUND"};case"REVERT_TO_PRE_PUBLISHED_STATE":case"SANITIZED_PROFILE_PUBLISHED":return{phase:"TRANSITIONING_FROM_STALE_PROFILE"};case"PROFILE_LOADED":return{phase:"PROFILE_LOADED"};case"DATA_RELOAD":return{phase:"DATA_RELOAD"};case"RECEIVE_ZIP_FILE":case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":case"CHANGE_TAB_FILTER":return{phase:"DATA_LOADED"};default:return e}},urlSetupPhase:(e="initial-load",t)=>{switch(t.type){case"START_FETCHING_PROFILES":return"loading-profile";case"ROUTE_NOT_FOUND":case"FATAL_ERROR":case"URL_SETUP_DONE":return"done";default:return e}},hasZoomedViaMousewheel:(e=!1,t)=>"HAS_ZOOMED_VIA_MOUSEWHEEL"===t.type||e,isSidebarOpenPerPanel:(e=function(){const e={};return Sr.forEach((t=>e[t]=!1)),e.calltree=!0,e["marker-table"]=!0,e}(),t)=>{if("CHANGE_SIDEBAR_OPEN_STATE"===t.type){const{tab:n,isOpen:r}=t;return{...e,[n]:r}}return e},panelLayoutGeneration:(e=0,t)=>{switch(t.type){case"INCREMENT_PANEL_LAYOUT_GENERATION":case"CHANGE_SIDEBAR_OPEN_STATE":case"HIDE_GLOBAL_TRACK":case"SHOW_ALL_TRACKS":case"SHOW_PROVIDED_TRACKS":case"HIDE_PROVIDED_TRACKS":case"SHOW_GLOBAL_TRACK":case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"HIDE_LOCAL_TRACK":case"SHOW_LOCAL_TRACK":case"ISOLATE_LOCAL_TRACK":case"TOGGLE_RESOURCES_PANEL":case"ENABLE_EXPERIMENTAL_CPU_GRAPHS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":case"CHANGE_TAB_FILTER":case"COMMIT_RANGE":case"POP_COMMITTED_RANGES":case"UPDATE_BOTTOM_BOX":case"CLOSE_BOTTOM_BOX_FOR_TAB":return e+1;default:return e}},lastVisibleThreadTabSlug:(e="calltree",t)=>{switch(t.type){case"SELECT_TRACK":case"CHANGE_SELECTED_TAB":return"network-chart"!==t.selectedTab?t.selectedTab:e;case"FOCUS_CALL_TREE":return"calltree";default:return e}},trackThreadHeights:(e={},t)=>{if("UPDATE_TRACK_THREAD_HEIGHT"===t.type){const n={...e};return n[t.threadsKey]=t.height,n}return e},isNewlyPublished:(e=!1,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return!0;case"DISMISS_NEWLY_PUBLISHED":return!1;default:return e}},isDragAndDropDragging:(e=!1,t)=>{switch(t.type){case"START_DRAGGING":return!0;case"STOP_DRAGGING":return!1;default:return e}},isDragAndDropOverlayRegistered:(e=!1,t)=>{switch(t.type){case"REGISTER_DRAG_AND_DROP_OVERLAY":return!0;case"UNREGISTER_DRAG_AND_DROP_OVERLAY":return!1;default:return e}},experimental:v_,currentProfileUploadedInformation:(e=null,t)=>"SET_CURRENT_PROFILE_UPLOADED_INFORMATION"===t.type?t.uploadedProfileInformation:e,browserConnectionStatus:(e={status:"NO_ATTEMPT"},t)=>"UPDATE_BROWSER_CONNECTION_STATUS"===t.type?t.browserConnectionStatus:e,sidebarOpenCategories:(e=new Map,t)=>{if("TOGGLE_SIDEBAR_OPEN_CATEGORY"===t.type){const n=new Map(e);let r=n.get(t.kind);return void 0===r&&(r=new Set),r.has(t.category)?r.delete(t.category):r.add(t.category),n.set(t.kind,r),n}return e}});function w_(e,t){const n=e.phase;if(n===t.phase)return t;let r;switch(n){case"NO_ZIP_FILE":r=["LIST_FILES_IN_ZIP_FILE","PROCESS_PROFILE_FROM_ZIP_FILE"];break;case"LIST_FILES_IN_ZIP_FILE":r=["PROCESS_PROFILE_FROM_ZIP_FILE","FILE_NOT_FOUND_IN_ZIP_FILE"];break;case"PROCESS_PROFILE_FROM_ZIP_FILE":r=["VIEW_PROFILE_IN_ZIP_FILE","FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE","LIST_FILES_IN_ZIP_FILE"];break;case"FILE_NOT_FOUND_IN_ZIP_FILE":case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":case"VIEW_PROFILE_IN_ZIP_FILE":r=["LIST_FILES_IN_ZIP_FILE"];break;default:throw new Error(`Unhandled ZipFileState “${n}”`)}if(!r.includes(t.phase))throw console.error("Previous ZipFileState:",e),console.error("Next ZipFileState:",t),new Error(_n.TN`
|
139
|
+
Attempted to transition the ZipFileState from the phase “${e.phase}”
|
140
|
+
to “${t.phase}”, however “${e.phase}” can only transition to
|
141
|
+
“${r.join("”, “")}”.
|
142
|
+
`);return t}const E_=to({zipFile:(e={phase:"NO_ZIP_FILE",zip:null,pathInZipFile:null},t)=>{switch(t.type){case"UPDATE_URL_STATE":return t.newUrlState&&null===t.newUrlState.pathInZipFile&&"VIEW_PROFILE_IN_ZIP_FILE"===e.phase?w_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:e.zip,pathInZipFile:null}):e;case"RECEIVE_ZIP_FILE":return w_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:t.zip,pathInZipFile:null});case"RETURN_TO_ZIP_FILE_LIST":case"DISMISS_PROCESS_PROFILE_FROM_ZIP_ERROR":return w_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:null});case"PROCESS_PROFILE_FROM_ZIP_FILE":return w_(e,{phase:"PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:t.pathInZipFile});case"FILE_NOT_FOUND_IN_ZIP_FILE":return w_(e,{phase:"FILE_NOT_FOUND_IN_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:t.pathInZipFile});case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return w_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:(0,ut.Nn)(e.pathInZipFile)});case"FATAL_ERROR":return"NO_ZIP_FILE"===e.phase||"LIST_FILES_IN_ZIP_FILE"===e.phase?e:w_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:(0,ut.Nn)(e.pathInZipFile)});case"VIEW_ORIGINS_PROFILE":case"VIEW_FULL_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return"NO_ZIP_FILE"===e.phase?e:w_(e,{phase:"VIEW_PROFILE_IN_ZIP_FILE",zip:(0,ut.Nn)(e.zip),pathInZipFile:(0,ut.Nn)(e.pathInZipFile)});case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"WAITING_FOR_PROFILE_FROM_FILE":return{phase:"NO_ZIP_FILE",zip:null,pathInZipFile:null};default:return e}},error:(e=null,t)=>{switch(t.type){case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":case"FATAL_ERROR":return t.error;default:return e}},selectedZipFileIndex:(e=null,t)=>"CHANGE_SELECTED_ZIP_FILE"===t.type?t.selectedZipFileIndex:e,expandedZipFileIndexes:(e=[],t)=>"CHANGE_EXPANDED_ZIP_FILES"===t.type?t.expandedZipFileIndexes:e}),k_=()=>{},x_=to({phase:(e="local",t)=>{switch(t.type){case"UPLOAD_COMPRESSION_STARTED":return"compressing";case"UPLOAD_STARTED":return"uploading";case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return"uploaded";case"UPLOAD_FAILED":return"error";case"UPLOAD_ABORTED":case"UPLOAD_RESET":return"local";default:return e}},uploadProgress:(e=0,t)=>{switch(t.type){case"UPDATE_UPLOAD_PROGRESS":return t.uploadProgress;case"UPLOAD_STARTED":case"UPLOAD_ABORTED":case"UPLOAD_RESET":case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_COMPRESSION_STARTED":case"UPLOAD_FAILED":return 0;default:return e}},abortFunction:(e=k_,t)=>{switch(t.type){case"UPLOAD_ABORTED":case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_FAILED":return k_;case"UPLOAD_COMPRESSION_STARTED":return t.abortFunction;default:return e}},error:(e=null,t)=>{switch(t.type){case"UPLOAD_FAILED":return t.error;case"UPLOAD_COMPRESSION_STARTED":return null;default:return e}},generation:(e=0,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_ABORTED":case"UPLOAD_FAILED":case"HIDE_STALE_PROFILE":return e+1;default:return e}}}),T_=to({checkedSharingOptions:(e={includeHiddenThreads:!1,includeAllTabs:!1,includeFullTimeRange:!1,includeScreenshots:!1,includeUrls:!1,includeExtension:!1,includePreferenceValues:!1,includePrivateBrowsingData:!1},t)=>{switch(t.type){case"PROFILE_LOADED":return Dd(t.profile)?{includeHiddenThreads:!1,includeAllTabs:!1,includeFullTimeRange:!1,includeScreenshots:!1,includeUrls:!1,includeExtension:!1,includePreferenceValues:!1,includePrivateBrowsingData:!1}:{includeHiddenThreads:!0,includeAllTabs:!0,includeFullTimeRange:!0,includeScreenshots:!0,includeUrls:!0,includeExtension:!0,includePreferenceValues:!0,includePrivateBrowsingData:!1};case"TOGGLE_CHECKED_SHARING_OPTION":return{...e,[t.slug]:!e[t.slug]};default:return e}},upload:x_,isHidingStaleProfile:(e=!1,t)=>{switch(t.type){case"HIDE_STALE_PROFILE":return!0;case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return!1;default:return e}},hasSanitizedProfile:(e=!1,t)=>"HIDE_STALE_PROFILE"===t.type||e,prePublishedState:(e=null,t)=>{switch(t.type){case"SANITIZED_PROFILE_PUBLISHED":case"PROFILE_PUBLISHED":return t.prePublishedState;case"REVERT_TO_PRE_PUBLISHED_STATE":return null;default:return e}}}),S_=to({localization:(e=new se([]),t)=>"RECEIVE_L10N"===t.type?t.localization:e,primaryLocale:(e=null,t)=>"RECEIVE_L10N"===t.type?t.primaryLocale:e,direction:(e="ltr",t)=>"RECEIVE_L10N"===t.type?t.direction:e,requestedLocales:(e=null,t)=>"REQUEST_L10N"===t.type?t.locales:e,pseudoStrategy:(e=null,t)=>"TOGGLE_PSEUDO_STRATEGY"===t.type?t.pseudoStrategy:e}),B_=to({sourceCodeCache:(e=new Map,t)=>{switch(t.type){case"SOURCE_CODE_LOADING_BEGIN_URL":{const{file:n,url:r}=t,o=new Map(e);return o.set(n,{type:"LOADING",source:{type:"URL",url:r}}),o}case"SOURCE_CODE_LOADING_BEGIN_BROWSER_CONNECTION":{const{file:n}=t,r=new Map(e);return r.set(n,{type:"LOADING",source:{type:"BROWSER_CONNECTION"}}),r}case"SOURCE_CODE_LOADING_SUCCESS":{const{file:n,code:r}=t,o=new Map(e);return o.set(n,{type:"AVAILABLE",code:r}),o}case"SOURCE_CODE_LOADING_ERROR":{const{file:n,errors:r}=t,o=new Map(e);return o.set(n,{type:"ERROR",errors:r}),o}default:return e}},assemblyCodeCache:(e=new Map,t)=>{switch(t.type){case"ASSEMBLY_CODE_LOADING_BEGIN_URL":{const{nativeSymbolKey:n,url:r}=t,o=new Map(e);return o.set(n,{type:"LOADING",source:{type:"URL",url:r}}),o}case"ASSEMBLY_CODE_LOADING_BEGIN_BROWSER_CONNECTION":{const{nativeSymbolKey:n}=t,r=new Map(e);return r.set(n,{type:"LOADING",source:{type:"BROWSER_CONNECTION"}}),r}case"ASSEMBLY_CODE_LOADING_SUCCESS":{const{nativeSymbolKey:n,instructions:r}=t,o=new Map(e);return o.set(n,{type:"AVAILABLE",instructions:r}),o}case"ASSEMBLY_CODE_LOADING_ERROR":{const{nativeSymbolKey:n,errors:r}=t,o=new Map(e);return o.set(n,{type:"ERROR",errors:r}),o}default:return e}}});var I_;const __=(I_=to({app:y_,profileView:qa,urlState:so,icons:(e=new Map,t)=>{switch(t.type){case"ICON_HAS_LOADED":{const{icon:n,className:r}=t.iconWithClassName;return new Map([...e.entries(),[n,r]])}case"ICON_BATCH_ADD":{const n=new Map([...e.entries()]);for(const{icon:e,className:r}of t.icons)n.set(e,r);return n}default:return e}},zippedProfiles:E_,publish:T_,l10n:S_,code:B_}),(e,t)=>"REVERT_TO_PRE_PUBLISHED_STATE"===t.type?t.prePublishedState:I_(e,t)),N_=Object.assign({},g,m,A,p,C,f,v,b),P_=Object.defineProperty;window.geckoProfilerPromise=new Promise((function(e){window.connectToGeckoProfiler=e}));const M_=document.getElementById("svg-filters");if(M_){const e=()=>{const e=["--button-icon-color","--button-icon-hover-color","--button-icon-active-color"];for(const t of e){let e=document.getElementById(t);if(e||(M_.insertAdjacentHTML("beforeend",`<filter id="${t}" color-interpolation-filters="sRGB">\n <feFlood />\n <feComposite operator="in" in2="SourceAlpha" />\n </filter>`),e=document.getElementById(t)),!e)continue;const n=e.querySelector("feFlood");if(!n)continue;const r=document.documentElement?getComputedStyle(document.documentElement).getPropertyValue(t):"";n.setAttribute("flood-color",r)}};e();const t=window.matchMedia("(forced-colors: active)"),n=window.matchMedia("(prefers-color-scheme: dark)");t.addEventListener("change",e),n.addEventListener("change",e)}const F_=function(){const e=eo(__,function(...e){return t=>(n,r)=>{const o=t(n,r);let a=()=>{throw new Error(Zr(15))};const i={getState:o.getState,dispatch:(e,...t)=>a(e,...t)},s=e.map((e=>e(i)));return a=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce(((e,t)=>(...n)=>e(t(...n))))}(...s)(o.dispatch),{...o,dispatch:a}}}(C_));return e}();(0,Q.H)((0,ut.Nn)(document.getElementById("root"),"Unable to find the DOM element to attach the React element to.")).render(J.createElement(A_,{store:F_})),function(e,t,n=window){P_(n,"profile",{enumerable:!0,get:()=>Cu.profile.getProfile(e())}),P_(n,"filteredThread",{enumerable:!0,get:()=>Cu.selectedThread.getFilteredThread(e())}),P_(n,"callTree",{enumerable:!0,get:()=>Cu.selectedThread.getCallTree(e())}),P_(n,"filteredMarkers",{enumerable:!0,get(){const t=e(),n=Cu.selectedThread.getMarkerGetter(t);return Cu.selectedThread.getPreviewFilteredMarkerIndexes(t).map(n)}}),P_(n,"selectedMarker",{enumerable:!0,get:()=>Cu.selectedThread.getSelectedMarker(e())}),n.experimental={enableEventDelayTracks(){t(N_.enableEventDelayTracks())&&console.log(_n.dx`
|
143
|
+
✅ The event delay tracks are now enabled and should be displayed in the timeline.
|
144
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
145
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
146
|
+
`)},enableCPUGraphs(){t(N_.enableExperimentalCPUGraphs())&&console.log(_n.dx`
|
147
|
+
✅ The CPU graphs are now enabled and should be displayed in the timeline.
|
148
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
149
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
150
|
+
`)},enableProcessCPUTracks(){t(N_.enableExperimentalProcessCPUTracks())&&console.log(_n.dx`
|
151
|
+
✅ The process CPU tracks are now enabled and should be displayed in the timeline.
|
152
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
153
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
154
|
+
`)}},n.togglePseudoLocalization=function(e){void 0===e||"accented"===e||"bidi"===e?(t(N_.togglePseudoStrategy(e??null)),e?console.log(_n.dx`
|
155
|
+
✅ The pseudo strategy "${e}" is now enabled for the localization.
|
156
|
+
👉 To disable it, you can call togglePseudoLocalization() again without a parameter.
|
157
|
+
`):console.log(_n.dx`
|
158
|
+
✅ The pseudo strategy is now disabled.
|
159
|
+
`)):console.log(_n.dx`
|
160
|
+
❗ The pseudo strategy "${e}" is unknown.
|
161
|
+
💡 Valid strategies are: "accented" or "bidi".
|
162
|
+
Please try again 😊
|
163
|
+
`)},n.toggleTimelineType=function(e){"cpu-category"===e||"category"===e||"stack"===e?(t(N_.changeTimelineType(e)),console.log(_n.dx`
|
164
|
+
✅ The timeline type "${e}" is now enabled for the timeline.
|
165
|
+
`)):console.log(_n.dx`
|
166
|
+
❗ The timeline type "${e}" is unknown.
|
167
|
+
💡 Valid types are: "cpu-category", "category", or "stack".
|
168
|
+
Please try again 😊
|
169
|
+
`)},n.retrieveRawProfileDataFromBrowser=async function(){const e=await Lm(),t=N_.unwrapBrowserConnection(e);return await t.getProfile({onThirtySecondTimeout:()=>{console.log(_n.TN`
|
170
|
+
We were unable to connect to the browser within thirty seconds.
|
171
|
+
This might be because the profile is big or your machine is slower than usual.
|
172
|
+
Still waiting...
|
173
|
+
`)}})},n.saveToDisk=async function(e,t){if(null==e)return void console.error("We can't save a null or undefined variable.");const n="string"==typeof e||"[object ArrayBuffer]"===String(e)?e:JSON.stringify(e),r=new Blob([n],{type:"application/octet-stream"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=t??"profile.data",a.click(),URL.revokeObjectURL(o)},n.extractGeckoLogs=function(){function t(e,t){return String(e).padStart(t,"0")}function n(e){const n=new Date(e),r=Math.trunc((e-Math.trunc(e))*10**6);return`${n.getUTCFullYear()}-${t(n.getUTCMonth()+1,2)}-${t(n.getUTCDate(),2)} ${t(n.getUTCHours(),2)}:${t(n.getUTCMinutes(),2)}:${t(n.getUTCSeconds(),2)}.${t(n.getUTCMilliseconds(),3)}${t(r,6)} UTC`}const r=[],o=Cu.profile.getProfile(e()),a=Cu.profile.getPreviewSelectionRange(e());for(const e of o.threads){const{markers:t}=e;for(let i=0;i<t.length;i++){const s=t.startTime[i];if(null!==s&&t.data[i]&&"Log"===t.data[i].type&&s>=a.start&&s<=a.end){const a=t.data[i],s=`${n(o.meta.startTime+t.startTime[i])} - [${e.processName??"Unknown Process"} ${e.pid}: ${e.name}]: D/${a.module} ${a.name.trim()}`;r.push(s)}}}return r.sort().join("\n")},n.shortenUrl=Zc,n.getState=e,n.selectors=Cu,n.dispatch=t,n.actions=N_,n.persistTooltips=!1}(F_.getState,F_.dispatch),function(){const e="font-weight: bold;",t="font-style: italic; text-decoration: underline;",n="";console.log(["%c __ _ __ "," / _(_) / _| ","| |_ _ _ __ ___| |_ _____ __ ","| _| | '__/ _ \\ _/ _ \\ \\/ / ","| | | | | | __/ || (_) > < __ _ _ ","|_| |_|_| \\___|_| \\___/_/\\_\\ / _(_) | "," ,. ,. _ __ _ __ ___ | |_ _| | ___ _ _ "," | \\ / | | '_ \\| '__/ _ \\| _| | |/ _ \\ '_| "," |/ \\ _ / \\| | |_) | | | (_) | | | | | __/ | "," | | | .__/|_| \\___/|_| |_|_|\\___|_| "," / - - \\ |_| "," ,- V__V -. "," -= __- * - .,=- "," `\\_ - _/ "," `-----' "].join("\n"),"font-family: Menlo, monospace;"),console.log(_n.dx`
|
174
|
+
%cThe following profiler information and tools are available via the console:%c
|
175
|
+
|
176
|
+
%cwindow.profile%c - The currently loaded profile
|
177
|
+
%cwindow.filteredThread%c - The current filtered thread
|
178
|
+
%cwindow.filteredMarkers%c - The current filtered and processed markers
|
179
|
+
%cwindow.selectedMarker%c - The selected processed marker in the current thread
|
180
|
+
%cwindow.callTree%c - The call tree of the current filtered thread
|
181
|
+
%cwindow.getState%c - The function that returns the current Redux state.
|
182
|
+
%cwindow.selectors%c - All the selectors that are used to get data from the Redux state.
|
183
|
+
%cwindow.dispatch%c - The function to dispatch a Redux action to change the state.
|
184
|
+
%cwindow.actions%c - All the actions that can be dispatched to change the state.
|
185
|
+
%cwindow.experimental%c - The object that holds flags of all the experimental features.
|
186
|
+
%cwindow.togglePseudoLocalization%c - Enable pseudo localizations by passing "accented" or "bidi" to this function, or disable using no parameters.
|
187
|
+
%cwindow.toggleTimelineType%c - Toggle timeline graph type by passing "cpu-category", "category", or "stack".
|
188
|
+
%cwindow.retrieveRawProfileDataFromBrowser%c - Retrieve the profile attached to the current tab and returns it. Use "await" to call it, and use saveToDisk to save it.
|
189
|
+
%cwindow.extractGeckoLogs%c - Retrieve recorded logs in the current range, using the MOZ_LOG format. Use with "copy" or "saveToDisk".
|
190
|
+
%cwindow.saveToDisk%c - Saves to a file the parameter passed to it, with an optional filename parameter. You can use that to save the profile returned by "retrieveRawProfileDataFromBrowser" or the data returned by "extractGeckoLogs".
|
191
|
+
|
192
|
+
The profile format is documented here:
|
193
|
+
%chttps://github.com/firefox-devtools/profiler/blob/main/docs-developer/processed-profile-format.md%c
|
194
|
+
|
195
|
+
The CallTree class's source code is available here:
|
196
|
+
%chttps://github.com/firefox-devtools/profiler/blob/main/src/profile-logic/call-tree.js%c
|
197
|
+
`,"font-size: 130%;",n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,t,n,t,n)}()},7171:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".warningMessageBarWrapper{display:flex;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:4}.warningMessageBar{margin:0 auto;pointer-events:auto}","",{version:3,sources:["webpack://./src/components/shared/Warning.css"],names:[],mappings:"AAIA,0BASE,YAAa,CAHb,MAAO,CAMP,mBAAoB,CAVpB,cAAe,CAGf,OAAQ,CADR,KAAM,CADN,SAUF,CAEA,mBACE,aAAc,CACd,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.warningMessageBarWrapper {\n /* Position */\n position: fixed;\n z-index: 4;\n top: 0;\n right: 0;\n left: 0;\n\n /* Box */\n display: flex;\n\n /* Other */\n pointer-events: none;\n}\n\n.warningMessageBar {\n margin: 0 auto;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const s=i},7216:(e,t,n)=>{"use strict";e.exports=n.p+"9d858d1a3ab57f8ee2e1.svg"},7298:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".protocol-display-xxl{font-size:64px;font-weight:700;line-height:1.1}.protocol-display-xl{font-size:56px;font-weight:700;line-height:1.1}.protocol-display-lg{font-size:48px;font-weight:700;line-height:1.1}.protocol-display-md{font-size:40px;font-weight:700;line-height:1.1}.protocol-display-sm{font-size:32px;font-weight:700;line-height:1.1}.protocol-display-xs{font-size:24px;font-weight:700;line-height:1.1}.protocol-display-xxs{font-size:16px;font-weight:700;line-height:1.1}.protocol-body-lg{font-size:18px;line-height:1.5}.protocol-body-md{font-size:16px;line-height:1.5}.protocol-body-sm{font-size:14px;line-height:1.5}.protocol-body-xs{font-size:12px;line-height:1.5}","",{version:3,sources:["webpack://./res/css/protocol/typography.css"],names:[],mappings:"AAYA,sBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,sBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Specification at https://protocol.mozilla.org/fundamentals/typography.html\n * This is the protocol styling guide, which is different than the photon design\n * guide. We can use it for content pages (as opposed to the app).\n *\n * In the future we may want to make this more generic by applying these styles\n * by default to h1, h2, h3, etc, in content pages.\n */\n\n.protocol-display-xxl {\n font-size: 64px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xl {\n font-size: 56px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-lg {\n font-size: 48px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-md {\n font-size: 40px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-sm {\n font-size: 32px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xs {\n font-size: 24px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xxs {\n font-size: 16px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-body-lg {\n font-size: 18px;\n line-height: 1.5;\n}\n\n.protocol-body-md {\n font-size: 16px;\n line-height: 1.5;\n}\n\n.protocol-body-sm {\n font-size: 14px;\n line-height: 1.5;\n}\n\n.protocol-body-xs {\n font-size: 12px;\n line-height: 1.5;\n}\n"],sourceRoot:""}]);const s=i},7385:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,"#root{display:flex;flex:1;min-width:0;z-index:0}","",{version:3,sources:["webpack://./src/components/app/Root.css"],names:[],mappings:"AAIA,MAEE,YAAa,CAEb,MAAO,CADP,WAAY,CAFZ,SAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n#root {\n z-index: 0;\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n flex: 1;\n}\n"],sourceRoot:""}]);const s=i},7408:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".threadSampleGraph{height:5px;margin-top:1px}.threadSampleGraphCanvas{display:block;height:5px;width:100%}","",{version:3,sources:["webpack://./src/components/shared/thread/SampleGraph.css"],names:[],mappings:"AAIA,mBACE,UAAW,CACX,cACF,CAEA,yBACE,aAAc,CAEd,UAAW,CADX,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadSampleGraph {\n height: 5px;\n margin-top: 1px;\n}\n\n.threadSampleGraphCanvas {\n display: block;\n width: 100%;\n height: 5px;\n}\n"],sourceRoot:""}]);const s=i},7463:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,d=e[c];if(0>a(l,n))c<o&&0>a(d,l)?(e[r]=d,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(d,n)))break e;e[r]=d,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],d=[],u=1,h=null,p=3,m=!1,f=!1,g=!1,A="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,C="undefined"!=typeof setImmediate?setImmediate:null;function v(e){for(var t=r(d);null!==t;){if(null===t.callback)o(d);else{if(!(t.startTime<=e))break;o(d),t.sortIndex=t.expirationTime,n(c,t)}t=r(d)}}function y(e){if(g=!1,v(e),!f)if(null!==r(c))f=!0,M(w);else{var t=r(d);null!==t&&F(y,t.startTime-e)}}function w(e,n){f=!1,g&&(g=!1,b(T),T=-1),m=!0;var a=p;try{for(v(n),h=r(c);null!==h&&(!(h.expirationTime>n)||e&&!I());){var i=h.callback;if("function"==typeof i){h.callback=null,p=h.priorityLevel;var s=i(h.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?h.callback=s:h===r(c)&&o(c),v(n)}else o(c);h=r(c)}if(null!==h)var l=!0;else{var u=r(d);null!==u&&F(y,u.startTime-n),l=!1}return l}finally{h=null,p=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var E,k=!1,x=null,T=-1,S=5,B=-1;function I(){return!(t.unstable_now()-B<S)}function _(){if(null!==x){var e=t.unstable_now();B=e;var n=!0;try{n=x(!0,e)}finally{n?E():(k=!1,x=null)}}else k=!1}if("function"==typeof C)E=function(){C(_)};else if("undefined"!=typeof MessageChannel){var N=new MessageChannel,P=N.port2;N.port1.onmessage=_,E=function(){P.postMessage(null)}}else E=function(){A(_,0)};function M(e){x=e,k||(k=!0,E())}function F(e,n){T=A((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){f||m||(f=!0,M(w))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):S=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:u++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(d,e),null===r(c)&&e===r(d)&&(g?(b(T),T=-1):g=!0,F(y,a-i))):(e.sortIndex=s,n(c,e),f||m||(f=!0,M(w))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},7559:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".stackChart{display:flex;flex:1;flex-flow:column;overflow:hidden}.stackChartContent{border-top:1px solid var(--grey-30);display:flex;flex:1}","",{version:3,sources:["webpack://./src/components/stack-chart/index.css"],names:[],mappings:"AAIA,YACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,eAGF,CAEA,mBAGE,mCAAoC,CAFpC,YAAa,CACb,MAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackChart {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-flow: column;\n}\n\n.stackChartContent {\n display: flex;\n flex: 1;\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},7658:(e,t,n)=>{"use strict";function r(e){const t=new Array(e.length);let n=0;for(let r=0;r<e.length;r++){const o=n+e[r];t[r]=o,n=o}return t}function o(e){const t=new Array(e.length);let n=0;for(let r=0;r<e.length;r++){const o=e[r];t[r]=o-n,n=o}return t}n.d(t,{Q:()=>r,v:()=>o})},7659:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},7721:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.timelineVerticalIndicatorsLine{--active-area-width:4px;--visible-width:1.5px;bottom:0;margin-left:calc(var(--active-area-width)*-.5);position:absolute;top:0;width:var(--active-area-width)}.timelineVerticalIndicatorsLine:after{background-color:var(--vertical-indicator-color);content:"";height:100%;left:calc(var(--active-area-width)*.5 - var(--visible-width)*.5);opacity:.6;pointer-events:none;position:absolute;top:0;width:var(--visible-width)}.timelineVerticalIndicatorsSwatch{background-color:var(--vertical-indicator-color);border:1px solid var(--grey-30);display:inline-block;height:12px;margin-bottom:-3px;width:12px}.timelineVerticalIndicatorsDim{color:var(--grey-50)}.timelineVerticalIndicatorsTime{color:var(--grey-70);font-weight:700}.timelineVerticalIndicatorsUrl{color:var(--grey-60);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',"",{version:3,sources:["webpack://./src/components/timeline/VerticalIndicators.css"],names:[],mappings:"AAIA,gCACE,uBAAwB,CAKxB,qBAAsB,CAItB,QAAS,CAET,8CAAkD,CAJlD,iBAAkB,CAClB,KAAM,CAEN,8BAEF,CAEA,sCAME,gDAAiD,CACjD,UAAW,CAFX,WAAY,CAFZ,gEAAuE,CAKvE,UAAY,CACZ,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAEN,0BAMF,CAEA,kCAME,gDAAiD,CAFjD,+BAAgC,CAHhC,oBAAqB,CAErB,WAAY,CAEZ,kBAAmB,CAHnB,UAKF,CAEA,+BACE,oBACF,CAEA,gCACE,oBAAqB,CACrB,eACF,CAEA,+BAGE,oBAAqB,CADrB,cAAe,CADf,eAAgB,CAGhB,sBAAuB,CACvB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineVerticalIndicatorsLine {\n --active-area-width: 4px;\n\n /* Setting the width to 1.5 makes it so that these indicators have slightly more visual\n * weight on high DPI displays. With a device pixel ratio of 2, this value creates a box\n * that is 3 device pixels wide. */\n --visible-width: 1.5px;\n\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--active-area-width);\n margin-left: calc(var(--active-area-width) * -0.5);\n}\n\n.timelineVerticalIndicatorsLine::after {\n position: absolute;\n top: 0;\n left: calc(var(--active-area-width) * 0.5 - var(--visible-width) * 0.5);\n width: var(--visible-width);\n height: 100%;\n background-color: var(--vertical-indicator-color);\n content: '';\n opacity: 0.6;\n pointer-events: none;\n}\n\n.timelineVerticalIndicatorsSwatch {\n display: inline-block;\n width: 12px;\n height: 12px;\n border: 1px solid var(--grey-30);\n margin-bottom: -3px;\n background-color: var(--vertical-indicator-color);\n}\n\n.timelineVerticalIndicatorsDim {\n color: var(--grey-50);\n}\n\n.timelineVerticalIndicatorsTime {\n color: var(--grey-70);\n font-weight: bold;\n}\n\n.timelineVerticalIndicatorsUrl {\n overflow: hidden;\n margin-top: 6px;\n color: var(--grey-60);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},7793:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.timelineOverflowEdgeIndicatorScrollbox{background:linear-gradient(to left,#fff,#eee calc(var(--vertical-scrollbar-reserved-width) - 1px),var(--grey-30) 0,var(--grey-30) var(--vertical-scrollbar-reserved-width),#0000 0);height:100%;margin-left:calc(var(--thread-label-column-width)*-1);margin-right:calc(var(--vertical-scrollbar-reserved-width)*-1);overflow:hidden auto;padding-left:var(--thread-label-column-width);position:absolute;width:100%}.timelineThreadList{background-color:var(--grey-20);box-shadow:inset 0 1px var(--grey-30);list-style:none;margin:0 0 0 calc(var(--thread-label-column-width)*-1);padding:0;width:calc(100vw - var(--vertical-scrollbar-reserved-width))}.timelineSettingsHiddenTracks{background:none;border:0;border-right:1px solid var(--grey-30);color:inherit;font:inherit;padding:0 20px 0 8px;position:relative;text-align:left;width:var(--thread-label-column-width)}.timelineSettingsHiddenTracks:hover{background-color:#0000001a}.timelineSettingsHiddenTracks:hover:active{background-color:#0003}.timelineSettingsHiddenTracks:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--grey-60);content:"";forced-color-adjust:none;margin-left:5px;margin-right:5px;margin-top:5px;position:absolute;right:2px;top:2px}.timelineSettingsHiddenTracksNumber{font-weight:700}.timelineHeader{background:#fff;border-bottom:1px solid var(--grey-30);display:flex;flex-direction:row;height:20px;margin-left:calc(var(--thread-label-column-width)*-1);margin-right:calc(var(--vertical-scrollbar-reserved-width)*-1);padding-right:var(--vertical-scrollbar-reserved-width);z-index:1}.tracksContainer{margin-bottom:-1px;margin-top:-1px;z-index:0}@media (forced-colors:active){.timelineSettingsHiddenTracks{background-color:ButtonFace;border:1px solid;color:ButtonText}.timelineSettingsHiddenTracks:hover{background-color:SelectedItemText;color:SelectedItem}.timelineSettingsHiddenTracks:hover:active{border-color:ButtonText}.timelineSettingsHiddenTracks:before{color:currentcolor}}',"",{version:3,sources:["webpack://./src/components/timeline/index.css"],names:[],mappings:"AAIA,wCAUE,mLAOC,CAXD,WAAY,CAGZ,qDAAwD,CADxD,8DAAiE,CAJjE,oBAAqB,CAGrB,6CAA8C,CAN9C,iBAAkB,CAIlB,UAaF,CAEA,oBAIE,+BAAgC,CAChC,qCAAsC,CACtC,eAAgB,CAHhB,sDAAyD,CADzD,SAAU,CADV,4DAMF,CAEA,8BAWE,eAAgB,CAJhB,QAAS,CAGT,qCAAsC,CAEtC,aAAc,CACd,YAAa,CAPb,oBAAqB,CAJrB,iBAAkB,CAYlB,eAAgB,CAXhB,sCAYF,CAEA,oCACE,0BACF,CAEA,2CACE,sBACF,CAGA,qCAOE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAIlC,oBAAqB,CACrB,UAAW,CAGX,wBAAyB,CALzB,eAAgB,CADhB,gBAAiB,CADjB,cAAe,CAPf,iBAAkB,CAElB,SAAU,CADV,OAcF,CAEA,oCACE,eACF,CAEA,gBAmBE,eAAiB,CANjB,sCAAuC,CATvC,YAAa,CAEb,kBAAmB,CADnB,WAAY,CAUZ,qDAAwD,CADxD,8DAAiE,CAFjE,sDAAuD,CATvD,SAiBF,CAEA,iBAOE,kBAAmB,CADnB,eAAgB,CAJhB,SAMF,CAEA,8BACE,8BAEE,2BAA4B,CAD5B,gBAA8B,CAE9B,gBACF,CAEA,oCACE,iCAAkC,CAClC,kBACF,CAEA,2CACE,uBACF,CAEA,qCACE,kBACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineOverflowEdgeIndicatorScrollbox {\n position: absolute;\n\n /* if the platform scrollbar ends up being larger than --vertical-scrollbar-reserved-width (which is unexpected), make sure there is no horizontal scrollbar */\n overflow: hidden auto;\n width: 100%;\n height: 100%;\n padding-left: var(--thread-label-column-width);\n margin-right: calc(var(--vertical-scrollbar-reserved-width) * -1);\n margin-left: calc(var(--thread-label-column-width) * -1);\n background: linear-gradient(\n to left,\n white,\n #eee calc(var(--vertical-scrollbar-reserved-width) - 1px),\n var(--grey-30) 0,\n var(--grey-30) var(--vertical-scrollbar-reserved-width),\n transparent 0\n );\n}\n\n.timelineThreadList {\n width: calc(100vw - var(--vertical-scrollbar-reserved-width));\n padding: 0;\n margin: 0 0 0 calc(var(--thread-label-column-width) * -1);\n background-color: var(--grey-20);\n box-shadow: inset 0 1px var(--grey-30);\n list-style: none;\n}\n\n.timelineSettingsHiddenTracks {\n /* Make sure and override all rules that have to do with button defaults. */\n position: relative;\n width: var(--thread-label-column-width);\n\n /* 8px is intentional to align this text with the text above. */\n padding: 0 20px 0 8px;\n border: 0;\n\n /* Separator line between tracks menu button and timeline ruler */\n border-right: 1px solid var(--grey-30);\n background: none;\n color: inherit;\n font: inherit;\n text-align: left;\n}\n\n.timelineSettingsHiddenTracks:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.timelineSettingsHiddenTracks:hover:active {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n/* This is the dropdown arrow on the left of the button. */\n.timelineSettingsHiddenTracks::before {\n position: absolute;\n top: 2px;\n right: 2px;\n border-top: 6px solid;\n border-right: 4px solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 4px solid transparent;\n margin-top: 5px;\n margin-right: 5px;\n margin-left: 5px;\n color: var(--grey-60);\n content: '';\n\n /* Opt-out of forced colors so arrow is visible in High Contrast Mode */\n forced-color-adjust: none;\n}\n\n.timelineSettingsHiddenTracksNumber {\n font-weight: bold;\n}\n\n.timelineHeader {\n /* This should be on top of the overflow edge indicator that wraps the thread\n list, so border bottom will always be visible. */\n z-index: 1;\n display: flex;\n height: 20px;\n flex-direction: row;\n\n /* Timeline header content should end before the scrollbar but also border\n * bottom should extend to the whole timeline header. Because of that, we are\n * creating a padding and a minus margin with the scrollbar width to make\n * this work. */\n padding-right: var(--vertical-scrollbar-reserved-width);\n border-bottom: 1px solid var(--grey-30);\n margin-right: calc(var(--vertical-scrollbar-reserved-width) * -1);\n margin-left: calc(var(--thread-label-column-width) * -1);\n\n /* This div needs to be apaque so that it can properly hide the hidden tracks\n * container border below */\n background: white;\n}\n\n.tracksContainer {\n /* This should be below the timeline header. */\n z-index: 0;\n\n /* Moving the timeline 1 pixel below the timeline header. This way, the first\n * visible track's top border will be hidden as expected. */\n margin-top: -1px;\n margin-bottom: -1px;\n}\n\n@media (forced-colors: active) {\n .timelineSettingsHiddenTracks {\n border: 1px solid currentcolor;\n background-color: ButtonFace;\n color: ButtonText;\n }\n\n .timelineSettingsHiddenTracks:hover {\n background-color: SelectedItemText;\n color: SelectedItem;\n }\n\n .timelineSettingsHiddenTracks:hover:active {\n border-color: ButtonText;\n }\n\n .timelineSettingsHiddenTracks::before {\n color: currentcolor;\n }\n}\n"],sourceRoot:""}]);const s=i},7803:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".appHeader{border-bottom:1px solid #ddd;display:flex;font-size:1.5em;justify-content:space-between;margin:0 -.2em .5em;padding-bottom:.5em}.appHeaderLink{color:inherit;text-decoration:none}.appHeaderLink:hover{text-decoration:underline}.appHeaderSlogan{margin:0 .2em}.appHeaderSubtext{font-weight:400}.appHeaderGithubIcon{margin:0 .2em;transition:opacity .25s var(--animation-curve)}.appHeaderGithubIcon svg{vertical-align:middle}.appHeaderGithubIcon:hover{opacity:.5}","",{version:3,sources:["webpack://./src/components/app/AppHeader.css"],names:[],mappings:"AAIA,WAIE,4BAA6B,CAH7B,YAAa,CAOb,eAAgB,CANhB,6BAA8B,CAK9B,mBAAsB,CAJtB,mBAMF,CAEA,eACE,aAAc,CACd,oBACF,CAGA,qBACE,yBACF,CAEA,iBACE,aACF,CAEA,kBACE,eACF,CAEA,qBACE,aAAe,CACf,8CACF,CAEA,yBACE,qBACF,CAEA,2BACE,UACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.appHeader {\n display: flex;\n justify-content: space-between;\n padding-bottom: 0.5em;\n border-bottom: 1px solid #ddd;\n\n /* Negative margin is here to compensate for the children's margins */\n margin: 0 -0.2em 0.5em;\n font-size: 1.5em;\n}\n\n.appHeaderLink {\n color: inherit;\n text-decoration: none;\n}\n\n/* Note that :focus-visible styles are defined in focus.css */\n.appHeaderLink:hover {\n text-decoration: underline;\n}\n\n.appHeaderSlogan {\n margin: 0 0.2em;\n}\n\n.appHeaderSubtext {\n font-weight: normal;\n}\n\n.appHeaderGithubIcon {\n margin: 0 0.2em;\n transition: opacity 250ms var(--animation-curve);\n}\n\n.appHeaderGithubIcon svg {\n vertical-align: middle;\n}\n\n.appHeaderGithubIcon:hover {\n opacity: 0.5;\n}\n"],sourceRoot:""}]);const s=i},7825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},7837:(e,t,n)=>{"use strict";function r(e,t,n,r){if(n=n||0,r=r||e.length,n<0||n>e.length||r<0||r>e.length)throw new TypeError("low and high must lie within the array's range");for(;n<r;){const o=n+r>>1;t<e[o]?r=o:n=o+1}return n}function o(e,t,n,r,o){if(r=r||0,o=o||e.length,r<0||r>e.length||o<0||o>e.length)throw new TypeError("low and high must lie within the array's range");for(;r<o;){const a=r+o>>1;t<n(e[a])?o=a:r=a+1}return r}function a(e,t,n,r,o){if(r=r||0,o=o||e.length,r<0||r>e.length||o<0||o>e.length)throw new TypeError("low and high must lie within the array's range");for(;r<o;){const a=r+o>>1;t<n(e[a])?o=a:r=a+1}return r}function i(e,t,n,r){if(n=n||0,r=r||e.length,n<0||n>e.length||r<0||r>e.length)throw new TypeError("low and high must lie within the array's range");for(;n<r;){const o=n+r>>1;t<=e[o]?r=o:n=o+1}return n}n.d(t,{AM:()=>i,Yl:()=>a,lV:()=>r,xE:()=>o})},7939:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".dragAndDropArea{display:inherit;isolation:isolate;width:100%}.dragAndDropOverlayWrapper{align-items:stretch;background-color:#ffffffe6;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;opacity:0;padding:1em;pointer-events:none;position:absolute;top:0;transition:opacity .2s;width:100%}.dragAndDropOverlayWrapper.dragging{opacity:1}.dragAndDropOverlay{align-items:center;border:2px dashed #888;border-radius:10px;color:#666;display:flex;font-size:30px;justify-content:center;text-align:center;width:100%}","",{version:3,sources:["webpack://./src/components/app/DragAndDrop.css"],names:[],mappings:"AAIA,iBACE,eAAgB,CAEhB,iBAAkB,CADlB,UAEF,CAEA,2BAQE,mBAAoB,CAGpB,0BAAwC,CAJxC,qBAAsB,CAHtB,YAAa,CAEb,WAAY,CAGZ,sBAAuB,CANvB,MAAO,CASP,SAAU,CAFV,WAAY,CAGZ,mBAAoB,CAZpB,iBAAkB,CAClB,KAAM,CAYN,sBAAyB,CATzB,UAUF,CAEA,oCACE,SACF,CAEA,oBAGE,kBAAmB,CAEnB,sBAAuB,CACvB,kBAAmB,CACnB,UAAW,CANX,YAAa,CAOb,cAAe,CAJf,sBAAuB,CAKvB,iBAAkB,CAPlB,UAQF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.dragAndDropArea {\n display: inherit;\n width: 100%;\n isolation: isolate;\n}\n\n.dragAndDropOverlayWrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n align-items: stretch;\n justify-content: center;\n padding: 1em;\n background-color: rgb(255 255 255 / 0.9);\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms;\n}\n\n.dragAndDropOverlayWrapper.dragging {\n opacity: 1;\n}\n\n.dragAndDropOverlay {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n border: 2px dashed #888;\n border-radius: 10px;\n color: #666;\n font-size: 30px;\n text-align: center;\n}\n"],sourceRoot:""}]);const s=i},7965:(e,t,n)=>{"use strict";var r=n(6426),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,s,l,c,d=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),s=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=o[t.format]||o.default;window.clipboardData.setData(a,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),s.selectNodeContents(c),l.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(s):l.removeAllRanges()),c&&document.body.removeChild(c),i()}return d}},8004:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineMarkersIPC{height:var(--markers-height);opacity:1}","",{version:3,sources:["webpack://./src/components/timeline/TrackIPC.css"],names:[],mappings:"AAIA,oBACE,4BAA6B,CAC7B,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineMarkersIPC {\n height: var(--markers-height);\n opacity: 1;\n}\n"],sourceRoot:""}]);const s=i},8068:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".publishedProfilesList{list-style:none;margin:0;padding:0}.publishedProfilesListItem{display:flex;justify-content:space-between;margin:-2px 0;padding:2px 0}.publishedProfilesLink{color:inherit;display:flex;flex:auto;min-width:0;padding:4px 8px;text-decoration:none}.publishedProfilesLink:hover{background:var(--grey-90-a05)}.publishedProfilesListItem:focus-within,.publishedProfilesListItem_ConfirmDialogIsOpen{box-shadow:-3px 0 0 var(--blue-60)}.publishedProfilesDate{flex:none;padding-right:4px;white-space:nowrap;width:10em}.publishedProfilesInfo{min-width:0}.publishedProfilesName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.publishedProfilesActionButtons{align-self:center;display:flex;opacity:0;padding-left:8px}.publishedProfilesListItem:focus-within .publishedProfilesActionButtons,.publishedProfilesListItem:hover .publishedProfilesActionButtons,.publishedProfilesListItem_ConfirmDialogIsOpen .publishedProfilesActionButtons{opacity:1}.publishedProfilesDeleteButton{margin-left:8px}","",{version:3,sources:["webpack://./src/components/app/ListOfPublishedProfiles.css"],names:[],mappings:"AA8BA,uBAGE,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,2BACE,YAAa,CACb,6BAA8B,CAM9B,aAAc,CADd,aAEF,CAEA,uBAKE,aAAc,CAJd,YAAa,CAEb,SAAU,CADV,WAAY,CAEZ,eAAgB,CAEhB,oBACF,CAEA,6BACE,6BACF,CAEA,uFAEE,kCACF,CAEA,uBAEE,SAAU,CACV,iBAAkB,CAClB,kBAAmB,CAHnB,UAIF,CAEA,uBACE,WACF,CAEA,uBACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,gCAEE,iBAAkB,CADlB,YAAa,CAOb,SAAU,CALV,gBAMF,CAEA,wNAGE,SACF,CAEA,+BACE,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/*\n * This implements the layout of the list of recorded profiles. This is used in\n * 2 locations: in the full uploaded recordings page, or as a small widget in\n * the home page.\n *\n * This is a list, where each list item's layout is:\n *\n * /-----------------------------------------------------------------------------------------------------\\\n * | li.publishedProfilesListItem - This is one line in the list. |\n * | /-------------------------------------------------------------\\ /---------------------------------\\ |\n * | | a.publishedProfilesLink | | .publishedProfilesActionButtons | |\n * | | /------------------------\\ /------------------------------\\ | | | |\n * | | | .publishedProfilesDate | | .publishedProfilesInfo | | | (This element is optional.) | |\n * | | | | | /--------------------------\\ | | | | |\n * | | | | | | .publishedProfilesName | | | | /---------------\\ | |\n * | | | | | \\--------------------------/ | | | | delete button | | |\n * | | | | | /--------------------------\\ | | | \\---------------/ | |\n * | | | | | | profile metainfo summary | | | | | |\n * | | | | | \\--------------------------/ | | | Eventually we'll have more | |\n * | | \\------------------------/ \\------------------------------/ | | buttons here. | |\n * | \\-------------------------------------------------------------/ \\---------------------------------/ |\n * \\-----------------------------------------------------------------------------------------------------/\n *\n * We use nested Flex boxes to achieve this layout.\n */\n\n.publishedProfilesList {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.publishedProfilesListItem {\n display: flex;\n justify-content: space-between;\n\n /* The padding compensates for the negative margin. The negative margin is\n * there so that the left border (implemented as a box-shadow below) go\n * outside the line. */\n padding: 2px 0;\n margin: -2px 0;\n}\n\n.publishedProfilesLink {\n display: flex;\n min-width: 0;\n flex: auto;\n padding: 4px 8px; /* 4px as vertical padding so that it's 8 when added up, and 8px for the left and right padddings */\n color: inherit;\n text-decoration: none;\n}\n\n.publishedProfilesLink:hover {\n background: var(--grey-90-a05);\n}\n\n.publishedProfilesListItem_ConfirmDialogIsOpen,\n.publishedProfilesListItem:focus-within {\n box-shadow: -3px 0 0 var(--blue-60); /* This is a border that doesn't move the content. */\n}\n\n.publishedProfilesDate {\n width: 10em;\n flex: none;\n padding-right: 4px;\n white-space: nowrap;\n}\n\n.publishedProfilesInfo {\n min-width: 0;\n}\n\n.publishedProfilesName {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.publishedProfilesActionButtons {\n display: flex;\n align-self: center;\n padding-left: 8px;\n\n /* We use opacity so that it's still reachable with the keyboard, both\n * backwards and forwards. Also with this technique this always stays in the\n * accessibility tree. */\n opacity: 0;\n}\n\n.publishedProfilesListItem_ConfirmDialogIsOpen .publishedProfilesActionButtons,\n.publishedProfilesListItem:hover .publishedProfilesActionButtons,\n.publishedProfilesListItem:focus-within .publishedProfilesActionButtons {\n opacity: 1;\n}\n\n.publishedProfilesDeleteButton {\n margin-left: 8px;\n}\n"],sourceRoot:""}]);const s=i},8088:e=>{"use strict";const t=(e,t,n)=>{const r=t<0?e.length+t:t;if(r>=0&&r<e.length){const r=n<0?e.length+n:n,[o]=e.splice(t,1);e.splice(r,0,o)}};e.exports=(e,n,r)=>(e=[...e],t(e,n,r),e),e.exports.mutate=t},8122:(e,t,n)=>{"use strict";e.exports=n.p+"acb8393f3fb9c59b15c9.svg"},8132:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineMarkersCanvas{display:block;height:100%;width:100%}.timelineMarkers{display:block;height:6px;list-style:none;margin:0;opacity:.75;overflow:hidden;position:relative}.timelineMarkers.selected{opacity:1}.timelineMarkersGeckoMain{height:18px}","",{version:3,sources:["webpack://./src/components/timeline/Markers.css"],names:[],mappings:"AAIA,uBACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,iBAEE,aAAc,CAEd,UAAW,CAEX,eAAgB,CADhB,QAAS,CAET,WAAa,CAJb,eAAgB,CAFhB,iBAOF,CAEA,0BACE,SACF,CAEA,0BACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineMarkersCanvas {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.timelineMarkers {\n position: relative;\n display: block;\n overflow: hidden;\n height: 6px;\n margin: 0;\n list-style: none;\n opacity: 0.75;\n}\n\n.timelineMarkers.selected {\n opacity: 1;\n}\n\n.timelineMarkersGeckoMain {\n height: 18px;\n}\n"],sourceRoot:""}]);const s=i},8232:(e,t,n)=>{"use strict";e.exports=n.p+"7e3ac9afb25cfe809520.svg"},8268:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.treeView{--tree-row-toggle-button-color:#888;--tree-row-toggle-button-active-color:var(--grey-60);--selected-tree-row-toggle-button-color:#fff;--selected-tree-row-toggle-button-active-color:#ffffffb3;border-top:1px solid var(--grey-30);cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}@media (forced-colors:active){.treeView{--tree-row-toggle-button-color:ButtonText;--tree-row-toggle-button-active-color:SelectedItem;--selected-tree-row-toggle-button-color:SelectedItemText;--selected-tree-row-toggle-button-active-color:ButtonText}}.treeViewHeader,.treeViewRow{display:flex;flex-flow:row nowrap;justify-content:flex-start;white-space:nowrap}.treeViewRowScrolledColumns{align-items:center}.treeViewHeader{background:#fff;border-bottom:1px solid var(--grey-30);height:15px;padding:4px 0}.treeViewHeaderMainColumn{flex:1}.treeViewContextMenu{display:flex;flex:1}.treeViewBody{flex:1;line-height:16px;outline:0;overflow:auto;position:relative;will-change:scroll-position;z-index:0}.treeViewBodyInnerWrapper{display:flex;flex-flow:row nowrap;left:0;min-width:100%;position:absolute;top:0}.treeViewBodyInner0{left:0;position:sticky;z-index:2}.treeViewBodyInner1{flex-grow:1}.treeViewBodyInner{background:#fff;overflow:hidden}.treeViewHeaderColumn{line-height:15px;position:relative;white-space:nowrap}.treeViewFixedColumn{overflow:hidden;text-overflow:ellipsis}.treeViewColumnDivider{align-items:stretch;display:flex;flex:none;justify-content:center;margin-left:-5px;margin-right:-5px;width:20px}.treeView.isResizingColumns,.treeViewColumnDivider.isResizable{cursor:col-resize}.treeViewColumnDivider:before{border-right:1px solid var(--grey-30);content:""}.treeViewColumnDivider.isResizable:before{border-left:1px solid var(--grey-30);width:1px}.treeViewHeaderColumn.treeViewFixedColumn{flex:none}.treeBadge{color:#0000;display:inline-block;height:12px;margin-right:2px;overflow:hidden;vertical-align:-2px;width:12px}.treeRowIndentSpacer{flex-shrink:0}.treeViewAppendageColumn{margin-left:10px;opacity:.6}.treeViewRow.even{background-color:#fff}.treeViewRow.odd{background-color:#f5f5f5}.treeViewRow.isRightClicked{background-color:var(--blue-50-a30)}.treeViewRow.isSelected{background-color:var(--grey-30);color:#000}.treeViewMainColumn.dim{opacity:.7}.treeViewBody:focus .treeViewRow.isSelected{background-color:Highlight;background-color:-apple-system-selected-content-background;background-color:SelectedItem;color:HighlightText;color:-apple-system-alternate-selected-text;color:SelectedItemText}.treeViewBody:focus .treeViewRow.isSelected a{color:inherit}.treeViewHighlighting{background:#cbe8fe;border-radius:2px;box-shadow:0 0 0 .5px #0000000d,0 1px 1px #0000004d;color:#000;margin:-1px 0;padding:1px 0}.treeRowToggleButton{border-color:#0000 #0000 #0000 currentcolor;border-style:solid;border-width:5px 4px 5px 8px;color:var(--tree-row-toggle-button-color);forced-color-adjust:none;height:0;margin-left:8px;width:0}.treeRowToggleButton.expanded{border-color:currentcolor #0000 #0000;border-style:solid;border-width:8px 5px 4px;margin-left:5px;margin-right:5px;margin-top:5px}.treeRowToggleButton:active:hover{color:var(--tree-row-toggle-button-active-color)}.treeViewBody:focus .treeViewRow.isSelected>.treeRowToggleButton{color:var(--selected-tree-row-toggle-button-color)}.treeViewBody:focus .treeViewRow.isSelected>.treeRowToggleButton:active:hover{color:var(--selected-tree-row-toggle-button-active-color)}.treeRowToggleButton.leaf{visibility:hidden}',"",{version:3,sources:["webpack://./src/components/shared/TreeView.css"],names:[],mappings:"AAIA,UACE,mCAAoC,CACpC,oDAAqD,CACrD,4CAA6C,CAC7C,wDAAsE,CAKtE,mCAAoC,CACpC,cAAe,CAJf,YAAa,CACb,MAAO,CACP,uBAAwB,CAGxB,wBAAiB,CAAjB,gBACF,CAEA,8BACE,UACE,yCAA0C,CAC1C,kDAAmD,CACnD,wDAAyD,CACzD,yDACF,CACF,CAEA,6BAEE,YAAa,CACb,oBAAqB,CACrB,0BAA2B,CAC3B,kBACF,CAEA,4BACE,kBACF,CAEA,gBAIE,eAAiB,CADjB,sCAAuC,CAFvC,WAAY,CACZ,aAGF,CAEA,0BACE,MACF,CAEA,qBACE,YAAa,CACb,MACF,CAEA,cAIE,MAAO,CACP,gBAAiB,CACjB,SAAU,CAHV,aAAc,CAFd,iBAAkB,CAMlB,2BAA4B,CAL5B,SAMF,CAEA,0BAIE,YAAa,CAEb,oBAAqB,CAHrB,MAAO,CAEP,cAAe,CAJf,iBAAkB,CAClB,KAKF,CAEA,oBAGE,MAAO,CAFP,eAAgB,CAChB,SAEF,CAEA,oBAGE,WACF,CAEA,mBAEE,eAAiB,CADjB,eAEF,CAEA,sBAEE,gBAAiB,CADjB,iBAAkB,CAElB,kBACF,CAEA,qBACE,eAAgB,CAChB,sBACF,CAEA,uBAIE,mBAAoB,CAHpB,YAAa,CAEb,SAAU,CAEV,sBAAuB,CAEvB,gBAAiB,CADjB,iBAAkB,CAJlB,UAMF,CAEA,+DAEE,iBACF,CAEA,8BACE,qCAAsC,CACtC,UACF,CAEA,0CAEE,oCAAqC,CADrC,SAEF,CAEA,0CAIE,SACF,CAEA,WAME,WAAkB,CALlB,oBAAqB,CAGrB,WAAY,CACZ,gBAAiB,CAHjB,eAAgB,CAKhB,mBAAoB,CAJpB,UAKF,CAEA,qBACE,aACF,CAEA,yBACE,gBAAiB,CACjB,UACF,CAEA,kBACE,qBACF,CAEA,iBACE,wBACF,CAGA,4BACE,mCACF,CAEA,wBACE,+BAAgC,CAChC,UACF,CAEA,wBACE,UACF,CAGA,4CAEE,0BAA2B,CAK3B,0DAA2D,CAK3D,6BAA8B,CAT9B,mBAAoB,CAKpB,2CAA4C,CAK5C,sBACF,CAGA,8CACE,aACF,CAEA,sBAQE,kBAAmB,CANnB,iBAAkB,CAOlB,mDAE4B,CAC5B,UAAW,CALX,aAAc,CANd,aAYF,CAEA,qBAME,2CAAsB,CAAtB,kBAAsB,CAAtB,4BAAsB,CAEtB,yCAA0C,CAG1C,wBAAyB,CATzB,QAAS,CAKT,eAAgB,CANhB,OAWF,CAEA,8BAIE,qCAAkC,CAAlC,kBAAkC,CAAlC,wBAAkC,CAGlC,eAAgB,CADhB,gBAAiB,CADjB,cAGF,CAEA,kCACE,gDACF,CAEA,iEACE,kDACF,CAEA,8EAGE,yDACF,CAEA,0BACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.treeView {\n --tree-row-toggle-button-color: #888;\n --tree-row-toggle-button-active-color: var(--grey-60);\n --selected-tree-row-toggle-button-color: #fff;\n --selected-tree-row-toggle-button-active-color: rgb(255 255 255 / 0.7);\n\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n border-top: 1px solid var(--grey-30);\n cursor: default;\n user-select: none;\n}\n\n@media (forced-colors: active) {\n .treeView {\n --tree-row-toggle-button-color: ButtonText;\n --tree-row-toggle-button-active-color: SelectedItem;\n --selected-tree-row-toggle-button-color: SelectedItemText;\n --selected-tree-row-toggle-button-active-color: ButtonText;\n }\n}\n\n.treeViewRow,\n.treeViewHeader {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n white-space: nowrap;\n}\n\n.treeViewRowScrolledColumns {\n align-items: center;\n}\n\n.treeViewHeader {\n height: 15px;\n padding: 4px 0;\n border-bottom: 1px solid var(--grey-30);\n background: white;\n}\n\n.treeViewHeaderMainColumn {\n flex: 1;\n}\n\n.treeViewContextMenu {\n display: flex;\n flex: 1;\n}\n\n.treeViewBody {\n position: relative;\n z-index: 0;\n overflow: auto;\n flex: 1;\n line-height: 16px;\n outline: 0;\n will-change: scroll-position;\n}\n\n.treeViewBodyInnerWrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n min-width: 100%;\n flex-flow: row nowrap;\n}\n\n.treeViewBodyInner0 {\n position: sticky;\n z-index: 2;\n left: 0;\n}\n\n.treeViewBodyInner1 {\n /* This allows the right column to expand more than its content, so that the\n * background always extends to the right edge. */\n flex-grow: 1;\n}\n\n.treeViewBodyInner {\n overflow: hidden;\n background: white;\n}\n\n.treeViewHeaderColumn {\n position: relative;\n line-height: 15px;\n white-space: nowrap;\n}\n\n.treeViewFixedColumn {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.treeViewColumnDivider {\n display: flex;\n width: 20px;\n flex: none;\n align-items: stretch;\n justify-content: center;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.treeViewColumnDivider.isResizable,\n.treeView.isResizingColumns {\n cursor: col-resize;\n}\n\n.treeViewColumnDivider::before {\n border-right: 1px solid var(--grey-30);\n content: '';\n}\n\n.treeViewColumnDivider.isResizable::before {\n width: 1px;\n border-left: 1px solid var(--grey-30);\n}\n\n.treeViewHeaderColumn.treeViewFixedColumn {\n /* The fixed columns in the row don't shrink because they're positioning using\n * position: sticky, therefore we prevent shrinking for the columns in the\n * header too. */\n flex: none;\n}\n\n.treeBadge {\n display: inline-block;\n overflow: hidden;\n width: 12px;\n height: 12px;\n margin-right: 2px;\n color: transparent;\n vertical-align: -2px;\n}\n\n.treeRowIndentSpacer {\n flex-shrink: 0;\n}\n\n.treeViewAppendageColumn {\n margin-left: 10px;\n opacity: 0.6;\n}\n\n.treeViewRow.even {\n background-color: #fff;\n}\n\n.treeViewRow.odd {\n background-color: #f5f5f5;\n}\n\n/* Note that `isRightClicked` is present before `isSelected` so that it can be overriden. */\n.treeViewRow.isRightClicked {\n background-color: var(--blue-50-a30);\n}\n\n.treeViewRow.isSelected {\n background-color: var(--grey-30);\n color: black;\n}\n\n.treeViewMainColumn.dim {\n opacity: 0.7;\n}\n\n/* stylelint-disable order/properties-order, declaration-block-no-duplicate-properties, value-keyword-case */\n.treeViewBody:focus .treeViewRow.isSelected {\n /* Fallback for browsers that don't support SelectedItem */\n background-color: Highlight;\n color: HighlightText;\n\n /* Safari's non-standard SelectedItem equivalent (until SelectedItem is implemented, https://bugs.webkit.org/show_bug.cgi?id=230007 ) */\n /* stylelint-disable declaration-property-value-no-unknown */\n background-color: -apple-system-selected-content-background;\n color: -apple-system-alternate-selected-text;\n /* stylelint-enable declaration-property-value-no-unknown */\n\n /* The new standard color */\n background-color: SelectedItem;\n color: SelectedItemText;\n}\n/* stylelint-enable order/properties-order, declaration-block-no-duplicate-properties, value-keyword-case */\n\n.treeViewBody:focus .treeViewRow.isSelected a {\n color: inherit;\n}\n\n.treeViewHighlighting {\n padding: 1px 0;\n border-radius: 2px;\n\n /* This negative margin enlarges the background to the top, so that it fully\n * covers the underlying background. There's an underlying background when the\n * line is selected. */\n margin: -1px 0;\n background: #cbe8fe;\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.05),\n 0 1px 1px rgb(0 0 0 / 0.3);\n color: #000;\n}\n\n.treeRowToggleButton {\n width: 0;\n height: 0;\n border-top: 5px solid transparent;\n border-right: 4px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 8px solid;\n margin-left: 8px;\n color: var(--tree-row-toggle-button-color);\n\n /* Opt-out of forced colors so the transparent borders aren't turned into opaque ones */\n forced-color-adjust: none;\n}\n\n.treeRowToggleButton.expanded {\n border-top: 8px solid;\n border-right: 5px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid transparent;\n margin-top: 5px;\n margin-right: 5px;\n margin-left: 5px;\n}\n\n.treeRowToggleButton:active:hover {\n color: var(--tree-row-toggle-button-active-color);\n}\n\n.treeViewBody:focus .treeViewRow.isSelected > .treeRowToggleButton {\n color: var(--selected-tree-row-toggle-button-color);\n}\n\n.treeViewBody:focus\n .treeViewRow.isSelected\n > .treeRowToggleButton:active:hover {\n color: var(--selected-tree-row-toggle-button-active-color);\n}\n\n.treeRowToggleButton.leaf {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const s=i},8303:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(241),n.b),d=new URL(n(9692),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.Details{display:flex;flex:auto;flex-direction:column}.Details-top-bar{align-items:center;background:var(--grey-10);border:solid var(--grey-30);border-width:1px 0;display:flex;flex-flow:row nowrap;justify-content:space-between}.sidebar-open-close-button{background-position:50%;background-repeat:no-repeat;flex:none;height:24px;margin:0 4px;width:24px}.sidebar-open-close-button-isopen{background-image:url(${h})}.sidebar-open-close-button-isclosed{background-image:url(${p})}`,"",{version:3,sources:["webpack://./src/components/app/Details.css"],names:[],mappings:"AAAA,SACE,YAAa,CACb,SAAU,CACV,qBACF,CAGA,iBAGE,kBAAmB,CAInB,yBAA0B,CAF1B,2BAA4B,CAC5B,kBAAmB,CALnB,YAAa,CACb,oBAAqB,CAErB,6BAIF,CAEA,2BAKE,uBAA2B,CAC3B,2BAA4B,CAH5B,SAAU,CADV,WAAY,CAEZ,YAAa,CAHb,UAMF,CAEA,kCACE,wDACF,CAEA,oCACE,wDACF",sourcesContent:[".Details {\n display: flex;\n flex: auto;\n flex-direction: column;\n}\n\n/* contains the tabbar and, if present, the sidebar button */\n.Details-top-bar {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: space-between; /* This pushes the sidebar button to the right */\n border: solid var(--grey-30);\n border-width: 1px 0;\n background: var(--grey-10);\n}\n\n.sidebar-open-close-button {\n width: 24px;\n height: 24px;\n flex: none;\n margin: 0 4px;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.sidebar-open-close-button-isopen {\n background-image: url(../../../res/img/svg/pane-collapse.svg);\n}\n\n.sidebar-open-close-button-isclosed {\n background-image: url(../../../res/img/svg/pane-expand.svg);\n}\n"],sourceRoot:""}]);const m=u},8418:(e,t,n)=>{"use strict";n(5160)},8479:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(8619),n.b),d=new URL(n(3486),n.b),u=new URL(n(5799),n.b),h=new URL(n(1332),n.b),p=i()(o()),m=l()(c),f=l()(d),g=l()(u),A=l()(h);p.push([e.id,`.callNodeContextMenu .react-contextmenu-item--selected .react-contextmenu-icon,.callNodeContextMenu .react-contextmenu-item:hover .react-contextmenu-icon{filter:invert(1)}.callNodeContextMenuIconMerge{background-image:url(${m})}.callNodeContextMenuIconCollapse{background-image:url(${f})}.callNodeContextMenuIconFocus{background-image:url(${g})}.callNodeContextMenuIconDrop{background-image:url(${A})}.callNodeContextMenuShortcut{background:#dedee3c9;border-radius:3px;box-shadow:1px 1px #0004;color:#000;margin-inline-start:12px;padding:0 5px}@media (forced-colors:active){.callNodeContextMenuShortcut{background:SelectedItemText;color:SelectedItem;outline:1px solid CanvasText}}`,"",{version:3,sources:["webpack://./src/components/shared/CallNodeContextMenu.css"],names:[],mappings:"AAYA,0JAEE,gBACF,CAEA,8BACE,wDACF,CAEA,iCACE,wDACF,CAEA,8BACE,wDACF,CAEA,6BACE,wDACF,CAEA,6BAME,oBAAqB,CAJrB,iBAAkB,CAKlB,wBAAyB,CAGzB,UAAW,CACX,wBAAyB,CAVzB,aAWF,CAEA,8BACE,6BACE,2BAA4B,CAC5B,kBAAmB,CACnB,4BACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Most of the CSS logic to be able to add icons is part of the more generic\n * file ContextMenu.css that is applied for all context menus. Especially the\n * CSS class `react-contextmenu-icon` is used in addition to these more specific\n * classes, and that's where other properties for backgrounds are specified.\n */\n\n/* All the icons we use in the call node's context menu are nicer if we use this\n * filter when in the selected state. */\n.callNodeContextMenu .react-contextmenu-item--selected .react-contextmenu-icon,\n.callNodeContextMenu .react-contextmenu-item:hover .react-contextmenu-icon {\n filter: invert(1);\n}\n\n.callNodeContextMenuIconMerge {\n background-image: url(firefox-profiler-res/img/svg/merge-icon.svg);\n}\n\n.callNodeContextMenuIconCollapse {\n background-image: url(firefox-profiler-res/img/svg/collapse-icon.svg);\n}\n\n.callNodeContextMenuIconFocus {\n background-image: url(firefox-profiler-res/img/svg/focus-icon.svg);\n}\n\n.callNodeContextMenuIconDrop {\n background-image: url(firefox-profiler-res/img/svg/drop-icon.svg);\n}\n\n.callNodeContextMenuShortcut {\n padding: 0 5px;\n border-radius: 3px;\n\n /* This color is based off of photon grey, but adjusted to have a nice visual look\n when hovering. */\n background: #dedee3c9;\n box-shadow: 1px 1px #0004;\n\n /* Override the hover color. */\n color: #000;\n margin-inline-start: 12px;\n}\n\n@media (forced-colors: active) {\n .callNodeContextMenuShortcut {\n background: SelectedItemText;\n color: SelectedItem;\n outline: 1px solid CanvasText;\n }\n}\n"],sourceRoot:""}]);const b=p},8504:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".uploadedRecordingsHome{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:13px;line-height:1.5;margin:auto;max-width:900px;padding:3em 1em;width:95%}@media (min-width:600px){.uploadedRecordingsHome .profileMetaInfoSummaryPlatform,.uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion{flex:none}.uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion{min-width:8.5em}}@media (min-width:750px){.uploadedRecordingsHome{padding:6%;width:90%}}@media (min-width:1000px){.uploadedRecordingsHome{padding:6em;width:75%}}","",{version:3,sources:["webpack://./src/components/app/UploadedRecordingsHome.css"],names:[],mappings:"AAIA,wBAWE,eAAgB,CALhB,qBAAsB,CACtB,iBAAkB,CAKlB,6BAA8B,CAR9B,qBAAsB,CAStB,cAAe,CACf,eAAgB,CANhB,WAAY,CALZ,eAAgB,CAEhB,eAAgB,CAHhB,SAaF,CAUA,yBACE,yHAEE,SACF,CAEA,iEACE,eACF,CACF,CAEA,yBACE,wBAEE,UAAW,CADX,SAEF,CACF,CAEA,0BACE,wBAEE,WAAY,CADZ,SAEF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.uploadedRecordingsHome {\n /* Box */\n width: 95%;\n max-width: 900px;\n box-sizing: border-box;\n padding: 3em 1em;\n border: 1px solid #ccc;\n border-radius: 3px;\n margin: auto;\n\n /* Other */\n background: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 13px;\n line-height: 1.5;\n}\n\n/* In larger screens, we remove the flex characteristics but force some width\n * for the first element.\n * We also add some more padding and change how the width is computed.\n *\n * These values seemed like the right values when testing on Linux. Fonts\n * are usually larger on Linux for the profiler, so in other OSes we could\n * decide that the value is too large, but this is fine. */\n\n@media (min-width: 600px) {\n .uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion,\n .uploadedRecordingsHome .profileMetaInfoSummaryPlatform {\n flex: none;\n }\n\n .uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion {\n min-width: 8.5em; /* This tries to align the second element, but we allow it to grow if necessary */\n }\n}\n\n@media (min-width: 750px) {\n .uploadedRecordingsHome {\n width: 90%;\n padding: 6%;\n }\n}\n\n@media (min-width: 1000px) {\n .uploadedRecordingsHome {\n width: 75%;\n padding: 6em;\n }\n}\n"],sourceRoot:""}]);const s=i},8527:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackProcessCPUGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackProcessCPUCanvas{height:100%;position:absolute;width:100%}.timelineTrackProcessCPUGraphDot{background-color:var(--grey-50);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackProcessCPUTooltipLine{white-space:nowrap}.timelineTrackProcessCPUTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackProcessCPU.css"],names:[],mappings:"AAIA,8BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,+BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,iCAOE,+BAAgC,CAHhC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,oCACE,kBACF,CAEA,sCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackProcessCPUGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackProcessCPUCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackProcessCPUGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--grey-50);\n pointer-events: none;\n}\n\n.timelineTrackProcessCPUTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackProcessCPUTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},8585:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".stackImplementationSettingLabel{padding-inline-end:3px}","",{version:3,sources:["webpack://./src/components/shared/StackImplementationSetting.css"],names:[],mappings:"AAIA,iCACE,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackImplementationSettingLabel {\n padding-inline-end: 3px;\n}\n"],sourceRoot:""}]);const s=i},8601:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackBandwidthGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackBandwidthCanvas{height:100%;position:absolute;width:100%}.timelineTrackBandwidthGraphDot{border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}","",{version:3,sources:["webpack://./src/components/timeline/TrackBandwidth.css"],names:[],mappings:"AAIA,6BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,8BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,gCAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackBandwidthGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackBandwidthCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackBandwidthGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},8619:(e,t,n)=>{"use strict";e.exports=n.p+"71730566d6c47ffdc965.svg"},8734:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5995),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.markerSettings{display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.filterMarkersButton{background-image:url(${u});background-position:4px;background-repeat:no-repeat;flex:none;height:24px;margin:0 4px;padding-right:30px;position:relative;width:24px}.filterMarkersButton:after{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--grey-90);content:"";margin-left:4px;margin-right:4px;margin-top:7px;position:absolute;right:2px;top:2px}`,"",{version:3,sources:["webpack://./src/components/shared/MarkerSettings.css"],names:[],mappings:"AAIA,gBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,gBAAiB,CADjB,SAEF,CAEA,qBAOE,wDAA8D,CAC9D,uBAA+B,CAC/B,2BAA4B,CAL5B,SAAU,CADV,WAAY,CAGZ,YAAa,CADb,kBAAmB,CAJnB,iBAAkB,CAClB,UAQF,CAGA,2BAOE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAIlC,oBAAqB,CACrB,UAAW,CAFX,eAAgB,CADhB,gBAAiB,CADjB,cAAe,CAPf,iBAAkB,CAElB,SAAU,CADV,OAWF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n line-height: 25px;\n}\n\n.filterMarkersButton {\n position: relative;\n width: 24px;\n height: 24px;\n flex: none;\n padding-right: 30px;\n margin: 0 4px;\n background-image: url(firefox-profiler-res/img/svg/filter.svg);\n background-position: 4px center;\n background-repeat: no-repeat;\n}\n\n/* This is the dropdown arrow on the right of the button. */\n.filterMarkersButton::after {\n position: absolute;\n top: 2px;\n right: 2px;\n border-top: 6px solid;\n border-right: 4px solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 4px solid transparent;\n margin-top: 7px;\n margin-right: 4px;\n margin-left: 4px;\n color: var(--grey-90);\n content: '';\n}\n"],sourceRoot:""}]);const h=d},8785:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(1196),n.b),d=new URL(n(1808),n.b),u=new URL(n(6780),n.b),h=new URL(n(8981),n.b),p=i()(o()),m=l()(c),f=l()(d),g=l()(u),A=l()(h);p.push([e.id,`.bottom-box-pane{display:flex;flex-flow:column nowrap;height:100%}.bottom-assemblyview-wrapper,.bottom-sourceview-wrapper{background:var(--grey-20);display:flex;flex:1;flex-flow:column;min-height:0;position:relative}.bottom-box .layout-splitter{background-color:var(--grey-30)!important;border:none;position:relative;width:1px}.bottom-box .layout-splitter:before{content:"";display:block;inset:0 -3px;position:absolute;z-index:1}.bottom-box-bar{align-items:center;background:var(--grey-10);border-bottom:1px solid var(--grey-30);display:flex;flex-flow:row;height:24px;justify-content:space-between;line-height:18px;overflow:hidden}.bottom-box-title{font:inherit;margin:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-box-header-trailing-buttons{align-items:center;display:flex;flex-flow:row nowrap;height:100%}.bottom-assembly-button,.bottom-close-button{background-position:50%;background-repeat:no-repeat;background-size:16px 16px;flex-shrink:0;height:24px;width:24px}.bottom-close-button{background-image:url(${m})}.bottom-assembly-button{background-image:url(${f})}.assemblyCodeErrorOverlay,.codeLoadingOverlay,.sourceCodeErrorOverlay{align-items:center;background-color:#f0f0f0cc;border-radius:10px;display:flex;flex-flow:row;gap:15px;height:min-content;inset:0;margin:auto;max-width:min(500px,100%);min-width:200px;overflow-wrap:break-word;padding:15px;position:absolute;width:max-content}.codeLoadingOverlay:before{background:url(${g}) 50%/32px 32px no-repeat;content:"";display:block;flex-shrink:0;height:32px;width:32px}.assemblyCodeErrorOverlay:before,.sourceCodeErrorOverlay:before{background:url(${A}) 50%/32px 32px no-repeat;content:"";display:block;filter:brightness(70%) drop-shadow(0 1px rgb(255 255 255/.5));flex-shrink:0;height:50px;width:50px}.codeErrorOverlay{padding-left:20px}`,"",{version:3,sources:["webpack://./src/components/app/BottomBox.css"],names:[],mappings:"AAIA,iBACE,YAAa,CAEb,uBAAwB,CADxB,WAEF,CAEA,wDAOE,yBAA0B,CAJ1B,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,YAAa,CAFb,iBAMF,CAEA,6BAIE,yCAA2C,CAD3C,WAAY,CAFZ,iBAAkB,CAClB,SAGF,CAGA,oCAIE,UAAW,CADX,aAAc,CAEd,YAAa,CAJb,iBAAkB,CAClB,SAIF,CAEA,gBAKE,kBAAmB,CAGnB,yBAA0B,CAD1B,sCAAuC,CANvC,YAAa,CAGb,aAAc,CADd,WAAY,CAGZ,6BAA8B,CAG9B,gBAAiB,CAPjB,eAQF,CAEA,kBAGE,YAAa,CADb,YAAa,CADb,eAAgB,CAGhB,sBAAuB,CACvB,kBACF,CAEA,oCAIE,kBAAmB,CAHnB,YAAa,CAEb,oBAAqB,CADrB,WAGF,CAEA,6CAKE,uBAA2B,CAC3B,2BAA4B,CAC5B,yBAA0B,CAH1B,aAAc,CADd,WAAY,CADZ,UAMF,CAEA,qBACE,wDACF,CAEA,wBACE,wDACF,CAEA,sEAgBE,kBAAmB,CAInB,0BAAwC,CAFxC,kBAAmB,CARnB,YAAa,CAKb,aAAc,CAMd,QAAS,CAPT,kBAAmB,CAQnB,OAAQ,CAHR,WAAY,CANZ,yBAA2B,CAD3B,eAAgB,CAWhB,wBAAyB,CANzB,YAAa,CARb,iBAAkB,CAElB,iBAaF,CAGA,2BAKE,0EAAyE,CACzE,UAAW,CALX,aAAc,CAGd,aAAc,CADd,WAAY,CADZ,UAKF,CAGA,gEAME,0EAA2E,CAC3E,UAAW,CALX,aAAc,CAMd,6DAAiE,CAHjE,aAAc,CADd,WAAY,CADZ,UAMF,CAEA,kBACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.bottom-box-pane {\n display: flex;\n height: 100%; /* direct child of SplitterLayout */\n flex-flow: column nowrap;\n}\n\n.bottom-sourceview-wrapper,\n.bottom-assemblyview-wrapper {\n position: relative; /* containing block for status overlay */\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n background: var(--grey-20);\n}\n\n.bottom-box .layout-splitter {\n position: relative; /* containing block for absolute ::before */\n width: 1px;\n border: none;\n background-color: var(--grey-30) !important;\n}\n\n/* Provide 3px extra grabbable surface on each side of the splitter */\n.bottom-box .layout-splitter::before {\n position: absolute;\n z-index: 1;\n display: block;\n content: '';\n inset: 0 -3px;\n}\n\n.bottom-box-bar {\n display: flex;\n overflow: hidden;\n height: 24px;\n flex-flow: row;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid var(--grey-30);\n background: var(--grey-10);\n line-height: 18px;\n}\n\n.bottom-box-title {\n overflow: hidden;\n margin: 0 8px;\n font: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.bottom-box-header-trailing-buttons {\n display: flex;\n height: 100%;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.bottom-close-button,\n.bottom-assembly-button {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n background-position: center;\n background-repeat: no-repeat;\n background-size: 16px 16px;\n}\n\n.bottom-close-button {\n background-image: url(/res/img/svg/close-dark.svg);\n}\n\n.bottom-assembly-button {\n background-image: url(/res/img/svg/asm-icon.svg);\n}\n\n.codeLoadingOverlay,\n.sourceCodeErrorOverlay,\n.assemblyCodeErrorOverlay {\n /**\n * Put the overlay on top of everything in .bottom-main, but centered\n * horizontally and vertically. We center using margin: auto, and enforce\n * maximum sizes so that the line numbers and timings are still visible.\n */\n\n position: absolute;\n display: flex;\n width: max-content;\n min-width: 200px;\n max-width: min(500px, 100%);\n height: min-content;\n flex-flow: row;\n align-items: center;\n padding: 15px;\n border-radius: 10px;\n margin: auto;\n background-color: rgb(240 240 240 / 0.8);\n gap: 15px;\n inset: 0;\n overflow-wrap: break-word;\n}\n\n/* Use ::before to add a loading spinner image */\n.codeLoadingOverlay::before {\n display: block;\n width: 32px;\n height: 32px;\n flex-shrink: 0;\n background: url(/res/img/spinner.png) center center / 32px 32px no-repeat;\n content: '';\n}\n\n/* Use ::before to add an alert icon */\n.sourceCodeErrorOverlay::before,\n.assemblyCodeErrorOverlay::before {\n display: block;\n width: 50px;\n height: 50px;\n flex-shrink: 0;\n background: url(/res/img/svg/error.svg) center center / 32px 32px no-repeat;\n content: '';\n filter: brightness(70%) drop-shadow(0 1px rgb(255 255 255 / 0.5));\n}\n\n.codeErrorOverlay {\n padding-left: 20px;\n}\n"],sourceRoot:""}]);const b=p},8829:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineRuler{height:var(--timeline-ruler-height)}.timelineRulerContainer{color:var(--grey-50);cursor:default;display:block;font-size:9px;height:20px;left:0;line-height:20px;list-style:none;margin:0;overflow:hidden;padding:0;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none}.timelineRulerNotch{background:linear-gradient(#0000,var(--grey-30) 19px,var(--grey-30) 20px,#d7d7db66 0);bottom:0;display:block;margin-left:-1px;position:absolute;text-align:right;top:0;white-space:nowrap;width:1px}.timelineRulerNotchText{padding-right:5px;position:absolute;right:0}@media (forced-colors:active){.timelineRulerNotch{background-color:CanvasText}.timelineRulerNotchText{color:initial;forced-color-adjust:none}}","",{version:3,sources:["webpack://./src/components/timeline/Ruler.css"],names:[],mappings:"AAIA,eACE,mCACF,CAEA,wBAUE,oBAAqB,CACrB,cAAe,CANf,aAAc,CAOd,aAAc,CALd,WAAY,CAHZ,MAAO,CASP,gBAAiB,CACjB,eAAgB,CALhB,QAAS,CAHT,eAAgB,CAEhB,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAaN,wBAAiB,CAAjB,gBACF,CAMA,oBAOE,qFAKC,CATD,QAAS,CACT,aAAc,CAEd,gBAAiB,CALjB,iBAAkB,CAYlB,gBAAiB,CAXjB,KAAM,CAYN,kBAAmB,CATnB,SAUF,CAEA,wBAGE,iBAAkB,CAFlB,iBAAkB,CAClB,OAEF,CAEA,8BAGE,oBACE,2BACF,CAIA,wBACE,aAAiB,CACjB,wBACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineRuler {\n height: var(--timeline-ruler-height);\n}\n\n.timelineRulerContainer {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n overflow: hidden;\n height: 20px;\n padding: 0;\n margin: 0;\n color: var(--grey-50);\n cursor: default;\n font-size: 9px;\n line-height: 20px;\n list-style: none;\n user-select: none;\n}\n\n/**\n * The notch is a 1px wide span with a gradient. It has a text numeric label that is\n * then overflows to the left of the line.\n */\n.timelineRulerNotch {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n width: 1px;\n margin-left: -1px;\n background: linear-gradient(\n transparent,\n var(--grey-30) 19px,\n var(--grey-30) 20px,\n #d7d7db66 0\n );\n text-align: right;\n white-space: nowrap;\n}\n\n.timelineRulerNotchText {\n position: absolute;\n right: 0;\n padding-right: 5px;\n}\n\n@media (forced-colors: active) {\n /* The background gradient we use to display the notch are not visible in HCM.\n We need to use a plain color. */\n .timelineRulerNotch {\n background-color: CanvasText;\n }\n\n /* With the background-color, the span text get CanvasText backplating, which\n makes the text disappear. Opt-out of forced-colors to remove the backplating */\n .timelineRulerNotchText {\n color: CanvasText;\n forced-color-adjust: none;\n }\n}\n"],sourceRoot:""}]);const s=i},8901:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".splitter-layout{display:flex;flex-direction:row;height:100%;overflow:hidden;position:absolute;width:100%}.splitter-layout .layout-pane{flex:0 0 auto;overflow:auto;position:relative}.splitter-layout .layout-pane.layout-pane-primary{flex:1 1 auto}.splitter-layout>.layout-splitter{background-color:#ccc;cursor:col-resize;flex:0 0 auto;height:100%;width:4px}.splitter-layout .layout-splitter:hover{background-color:#bbb}.splitter-layout.layout-changing{cursor:col-resize}.splitter-layout.layout-changing>.layout-splitter{background-color:#aaa}.splitter-layout.splitter-layout-vertical{flex-direction:column}.splitter-layout.splitter-layout-vertical.layout-changing{cursor:row-resize}.splitter-layout.splitter-layout-vertical>.layout-splitter{cursor:row-resize;height:4px;width:100%}","",{version:3,sources:["webpack://./node_modules/react-splitter-layout/lib/index.css"],names:[],mappings:"AAAA,iBAEE,YAAa,CACb,kBAAmB,CAEnB,WAAY,CACZ,eAAgB,CALhB,iBAAkB,CAGlB,UAGF,CAEA,8BAEE,aAAc,CACd,aAAc,CAFd,iBAGF,CAEA,kDACE,aACF,CAEA,kCAKE,qBAAsB,CADtB,iBAAkB,CAHlB,aAAc,CAEd,WAAY,CADZ,SAIF,CAEA,wCACE,qBACF,CAEA,iCACE,iBACF,CAEA,kDACE,qBACF,CAEA,0CACE,qBACF,CAEA,0DACE,iBACF,CAEA,2DAGE,iBAAkB,CADlB,UAAW,CADX,UAGF",sourcesContent:[".splitter-layout {\n position: absolute;\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.splitter-layout .layout-pane {\n position: relative;\n flex: 0 0 auto;\n overflow: auto;\n}\n\n.splitter-layout .layout-pane.layout-pane-primary {\n flex: 1 1 auto;\n}\n\n.splitter-layout > .layout-splitter {\n flex: 0 0 auto;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background-color: #ccc;\n}\n\n.splitter-layout .layout-splitter:hover {\n background-color: #bbb;\n}\n\n.splitter-layout.layout-changing {\n cursor: col-resize;\n}\n\n.splitter-layout.layout-changing > .layout-splitter {\n background-color: #aaa;\n}\n\n.splitter-layout.splitter-layout-vertical {\n flex-direction: column;\n}\n\n.splitter-layout.splitter-layout-vertical.layout-changing {\n cursor: row-resize;\n}\n\n.splitter-layout.splitter-layout-vertical > .layout-splitter {\n width: 100%;\n height: 4px;\n cursor: row-resize;\n}\n"],sourceRoot:""}]);const s=i},8981:(e,t,n)=>{"use strict";e.exports=n.p+"9103e94f1d34c15d44be.svg"},8998:(e,t,n)=>{"use strict";e.exports=n.p+"4ecb077d8715f89c0f87.svg"},9004:(e,t,n)=>{"use strict";function r(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=e.length-1;n>=0;n--)if(e[n]!==t[n])return!1;return!0}function o(e){return e.join("-")}function a(e,t){return e+"-"+t}function i(e){return""+e}n.d(t,{Ev:()=>i,Gv:()=>o,Qi:()=>s,bj:()=>r,fr:()=>a});class s{constructor(e){if(this._table=void 0,e instanceof s)this._table=new Map(e._table);else if(this._table=new Map,e)for(const t of e)this._table.set(o(t),t)}add(e){return this._table.set(o(e),e),this}clear(){this._table.clear()}delete(e){return this._table.delete(o(e))}*values(){yield*this._table.values()}*entries(){for(const e of this)yield[e,e]}forEach(e,t){for(const n of this)e.call(t,n,n,this)}has(e){return this._table.has(o(e))}get size(){return this._table.size}*[Symbol.iterator](){yield*this._table.values()}}},9131:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(26),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.menuButtonsPermalinkButtonButton:before{background-image:url(${u})}.menuButtonsPermalinkPanel .arrowPanelContent{padding:4px}.menuButtonsPermalinkTextField{font-family:ui-monospace,monospace;font-size:12px;height:19px;width:20em}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/Permalink.css"],names:[],mappings:"AAMA,yCACE,wDACF,CAEA,8CAEE,WACF,CAEA,+BAKE,kCAAoC,CACpC,cAAe,CAJf,WAAY,CADZ,UAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* This background image builds on the generic styles defined in\n * MenuButtons/index.css when using an icon. */\n.menuButtonsPermalinkButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/link-dark-12.svg);\n}\n\n.menuButtonsPermalinkPanel .arrowPanelContent {\n /* Override the default padding for ArrowPanel */\n padding: 4px;\n}\n\n.menuButtonsPermalinkTextField {\n width: 20em;\n height: 19px;\n\n /* Use a monospace font so that I and l can be differentiated */\n font-family: ui-monospace, monospace;\n font-size: 12px;\n}\n"],sourceRoot:""}]);const h=d},9133:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".appErrorBoundary{align-items:center;background-color:var(--grey-20);flex:1;justify-content:center;overflow:hidden;padding:10px}.appErrorBoundary,.appErrorBoundaryContents{box-sizing:border-box;display:flex;flex-direction:column}.appErrorBoundaryContents{max-height:100%;max-width:800px;width:100%}.appErrorBoundaryInnerText{display:flex;flex-direction:column;gap:4px}.appErrorBoundaryInnerText>p{margin:0;padding:0}","",{version:3,sources:["webpack://./src/components/app/ErrorBoundary.css"],names:[],mappings:"AAAA,kBAME,kBAAmB,CAGnB,+BAAgC,CALhC,MAAO,CAGP,sBAAuB,CALvB,eAAgB,CAMhB,YAEF,CAEA,4CATE,qBAAsB,CAFtB,YAAa,CAIb,qBAcF,CAPA,0BAIE,eAAgB,CADhB,eAAgB,CADhB,UAKF,CAEA,2BACE,YAAa,CACb,qBAAsB,CACtB,OACF,CAEA,6BAEE,QAAS,CADT,SAEF",sourcesContent:[".appErrorBoundary {\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n}\n\n.appErrorBoundaryContents {\n display: flex;\n width: 100%;\n max-width: 800px;\n max-height: 100%;\n box-sizing: border-box;\n flex-direction: column;\n}\n\n.appErrorBoundaryInnerText {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.appErrorBoundaryInnerText > p {\n padding: 0;\n margin: 0;\n}\n"],sourceRoot:""}]);const s=i},9180:(e,t,n)=>{"use strict";e.exports=n.p+"022efb839d22fa54a716.svg"},9298:e=>{e.exports=function(e,t){var n="number"==typeof e,r="number"==typeof t;n&&!r?(t=e,e=0):n||r||(e=0,t=0);var o=(t|=0)-(e|=0);if(o<0)throw new Error("array length must be positive");for(var a=new Array(o),i=0,s=e;i<o;i++,s++)a[i]=s;return a}},9306:(e,t,n)=>{"use strict";n.d(t,{A:()=>_});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3786),n.b),d=new URL(n(1392),n.b),u=new URL(n(3803),n.b),h=new URL(n(1863),n.b),p=new URL(n(1460),n.b),m=new URL(n(211),n.b),f=new URL(n(8998),n.b),g=new URL(n(6505),n.b),A=new URL(n(1824),n.b),b=new URL(n(5510),n.b),C=i()(o()),v=l()(c),y=l()(d),w=l()(u),E=l()(h),k=l()(p),x=l()(m),T=l()(f),S=l()(g),B=l()(A),I=l()(b);C.push([e.id,`.markerContextMenuIconSetSelectionFromMarker{background-image:url(${v})}.markerContextMenuIconStartSelectionAtMarkerStart,.markerContextMenuIconStartSelectionHere{background-image:url(${y})}.markerContextMenuIconStartSelectionAtMarkerEnd{background-image:url(${w})}.markerContextMenuIconEndSelectionAtMarkerStart{background-image:url(${E})}.markerContextMenuIconEndSelectionAtMarkerEnd,.markerContextMenuIconEndSelectionHere{background-image:url(${k})}.markerContextMenuIconCopyDescription{background-image:url(${x})}.markerContextMenuIconCopyStack{background-image:url(${T})}.markerContextMenuIconCopyUrl{background-image:url(${S})}.markerContextMenuIconCopyPayload{background-image:url(${B})}.markerContextMenuSelectThread{background-image:url(${I})}.react-contextmenu-item--selected .markerContextMenuIconCopyDescription,.react-contextmenu-item--selected .markerContextMenuIconCopyPayload,.react-contextmenu-item--selected .markerContextMenuIconCopyStack,.react-contextmenu-item--selected .markerContextMenuIconCopyUrl,.react-contextmenu-item--selected .markerContextMenuSelectThread,.react-contextmenu-item:hover .markerContextMenuIconCopyDescription,.react-contextmenu-item:hover .markerContextMenuIconCopyPayload,.react-contextmenu-item:hover .markerContextMenuIconCopyStack,.react-contextmenu-item:hover .markerContextMenuIconCopyUrl,.react-contextmenu-item:hover .markerContextMenuSelectThread{filter:invert(1)}`,"",{version:3,sources:["webpack://./src/components/shared/MarkerContextMenu.css"],names:[],mappings:"AAWA,6CACE,wDACF,CAEA,2FAEE,wDACF,CAEA,gDACE,wDACF,CAEA,gDACE,wDACF,CAEA,qFAEE,wDACF,CAEA,sCACE,wDACF,CAEA,gCACE,wDACF,CAEA,8BACE,wDACF,CAEA,kCACE,wDACF,CAEA,+BACE,wDACF,CAKA,0oBAUE,gBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Most of the CSS logic to be able to add icons is part of the more generic\n * file ContextMenu.css that is applied for all context menus. Especially the\n * CSS class `react-contextmenu-icon` is used in addition to these more specific\n * classes, and that's where other properties for backgrounds are specified.\n */\n\n/* Here are all icons for the marker context menu. */\n.markerContextMenuIconSetSelectionFromMarker {\n background-image: url(firefox-profiler-res/img/svg/set-selection-from-marker.svg);\n}\n\n.markerContextMenuIconStartSelectionHere, /* <- for dot markers */\n.markerContextMenuIconStartSelectionAtMarkerStart /* <- for interval markers */ {\n background-image: url(firefox-profiler-res/img/svg/start-selection-at-marker-start.svg);\n}\n\n.markerContextMenuIconStartSelectionAtMarkerEnd {\n background-image: url(firefox-profiler-res/img/svg/start-selection-at-marker-end.svg);\n}\n\n.markerContextMenuIconEndSelectionAtMarkerStart {\n background-image: url(firefox-profiler-res/img/svg/end-selection-at-marker-start.svg);\n}\n\n.markerContextMenuIconEndSelectionHere, /* <- for dot markers */\n.markerContextMenuIconEndSelectionAtMarkerEnd /* <- for interval markers */ {\n background-image: url(firefox-profiler-res/img/svg/end-selection-at-marker-end.svg);\n}\n\n.markerContextMenuIconCopyDescription {\n background-image: url(firefox-profiler-res/img/svg/copy-dark.svg);\n}\n\n.markerContextMenuIconCopyStack {\n background-image: url(firefox-profiler-res/img/svg/copy-marker-stack.svg);\n}\n\n.markerContextMenuIconCopyUrl {\n background-image: url(firefox-profiler-res/img/svg/globe-dark.svg);\n}\n\n.markerContextMenuIconCopyPayload {\n background-image: url(firefox-profiler-res/img/svg/copy-marker-payload.svg);\n}\n\n.markerContextMenuSelectThread {\n background-image: url(firefox-profiler-res/img/svg/select-thread.svg);\n}\n\n/* These icons don't look nice when selected, unless if we invert them. However\n * the other icons look better without the filter, so we don't change them in\n * this state. */\n.react-contextmenu-item--selected .markerContextMenuIconCopyDescription,\n.react-contextmenu-item:hover .markerContextMenuIconCopyDescription,\n.react-contextmenu-item--selected .markerContextMenuIconCopyUrl,\n.react-contextmenu-item:hover .markerContextMenuIconCopyUrl,\n.react-contextmenu-item--selected .markerContextMenuIconCopyStack,\n.react-contextmenu-item:hover .markerContextMenuIconCopyStack,\n.react-contextmenu-item--selected .markerContextMenuIconCopyPayload,\n.react-contextmenu-item:hover .markerContextMenuIconCopyPayload,\n.react-contextmenu-item--selected .markerContextMenuSelectThread,\n.react-contextmenu-item:hover .markerContextMenuSelectThread {\n filter: invert(1);\n}\n"],sourceRoot:""}]);const _=C},9309:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".serviceworker-ready-notice-wrapper{display:flex;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:4}.serviceworker-ready-notice{margin:0 auto;pointer-events:auto}","",{version:3,sources:["webpack://./src/components/app/ServiceWorkerManager.css"],names:[],mappings:"AAIA,oCASE,YAAa,CAHb,MAAO,CAMP,mBAAoB,CAVpB,cAAe,CAGf,OAAQ,CADR,KAAM,CADN,SAUF,CAEA,4BACE,aAAc,CACd,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.serviceworker-ready-notice-wrapper {\n /* Position */\n position: fixed;\n z-index: 4;\n top: 0;\n right: 0;\n left: 0;\n\n /* Box */\n display: flex;\n\n /* Other */\n pointer-events: none;\n}\n\n.serviceworker-ready-notice {\n margin: 0 auto;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const s=i},9336:(e,t,n)=>{"use strict";e.exports=n.p+"2e43ad991eb141fc017f.svg"},9448:function(e,t,n){!function(e){"use strict";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function o(e,t,n){o.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:n,enumerable:!0})}function a(e,t){a.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function s(e,t,n){s.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:n,enumerable:!0})}function l(e,t,n){var r=e.slice((n||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,r),e}function c(e){var t=void 0===e?"undefined":x(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function d(e,t,n,r,u,h,p){p=p||[];var m=(u=u||[]).slice(0);if(void 0!==h){if(r){if("function"==typeof r&&r(m,h))return;if("object"===(void 0===r?"undefined":x(r))){if(r.prefilter&&r.prefilter(m,h))return;if(r.normalize){var f=r.normalize(m,h,e,t);f&&(e=f[0],t=f[1])}}}m.push(h)}"regexp"===c(e)&&"regexp"===c(t)&&(e=e.toString(),t=t.toString());var g=void 0===e?"undefined":x(e),A=void 0===t?"undefined":x(t),b="undefined"!==g||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(h),C="undefined"!==A||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(h);if(!b&&C)n(new a(m,t));else if(!C&&b)n(new i(m,e));else if(c(e)!==c(t))n(new o(m,e,t));else if("date"===c(e)&&e-t!=0)n(new o(m,e,t));else if("object"===g&&null!==e&&null!==t)if(p.filter((function(t){return t.lhs===e})).length)e!==t&&n(new o(m,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var v;for(e.length,v=0;v<e.length;v++)v>=t.length?n(new s(m,v,new i(void 0,e[v]))):d(e[v],t[v],n,r,m,v,p);for(;v<t.length;)n(new s(m,v,new a(void 0,t[v++])))}else{var y=Object.keys(e),w=Object.keys(t);y.forEach((function(o,a){var i=w.indexOf(o);i>=0?(d(e[o],t[o],n,r,m,o,p),w=l(w,i)):d(e[o],void 0,n,r,m,o,p)})),w.forEach((function(e){d(void 0,t[e],n,r,m,e,p)}))}p.length=p.length-1}else e!==t&&("number"===g&&isNaN(e)&&isNaN(t)||n(new o(m,e,t)))}function u(e,t,n,r){return r=r||[],d(e,t,(function(e){e&&r.push(e)}),n),r.length?r:void 0}function h(e,t,n){if(n.path&&n.path.length){var r,o=e[t],a=n.path.length-1;for(r=0;r<a;r++)o=o[n.path[r]];switch(n.kind){case"A":h(o[n.path[r]],n.index,n.item);break;case"D":delete o[n.path[r]];break;case"E":case"N":o[n.path[r]]=n.rhs}}else switch(n.kind){case"A":h(e[t],n.index,n.item);break;case"D":e=l(e,t);break;case"E":case"N":e[t]=n.rhs}return e}function p(e,t,n){if(e&&t&&n&&n.kind){for(var r=e,o=-1,a=n.path?n.path.length-1:0;++o<a;)void 0===r[n.path[o]]&&(r[n.path[o]]="number"==typeof n.path[o]?[]:{}),r=r[n.path[o]];switch(n.kind){case"A":h(n.path?r[n.path[o]]:r,n.index,n.item);break;case"D":delete r[n.path[o]];break;case"E":case"N":r[n.path[o]]=n.rhs}}}function m(e,t,n){if(n.path&&n.path.length){var r,o=e[t],a=n.path.length-1;for(r=0;r<a;r++)o=o[n.path[r]];switch(n.kind){case"A":m(o[n.path[r]],n.index,n.item);break;case"D":case"E":o[n.path[r]]=n.lhs;break;case"N":delete o[n.path[r]]}}else switch(n.kind){case"A":m(e[t],n.index,n.item);break;case"D":case"E":e[t]=n.lhs;break;case"N":e=l(e,t)}return e}function f(e){return"color: "+B[e].color+"; font-weight: bold"}function g(e,t,n,r){var o=u(e,t);try{r?n.groupCollapsed("diff"):n.group("diff")}catch(e){n.log("diff")}o?o.forEach((function(e){var t=e.kind,r=function(e){var t=e.kind,n=e.path,r=e.lhs,o=e.rhs,a=e.index,i=e.item;switch(t){case"E":return[n.join("."),r,"→",o];case"N":return[n.join("."),o];case"D":return[n.join(".")];case"A":return[n.join(".")+"["+a+"]",i];default:return[]}}(e);n.log.apply(n,["%c "+B[t].text,f(t)].concat(T(r)))})):n.log("—— no diff ——");try{n.groupEnd()}catch(e){n.log("—— diff end —— ")}}function A(e,t,n,r){switch(void 0===e?"undefined":x(e)){case"object":return"function"==typeof e[r]?e[r].apply(e,T(n)):e[r];case"function":return e(t);default:return e}}function b(e,t){var n=t.logger,r=t.actionTransformer,o=t.titleFormatter,a=void 0===o?function(e){var t=e.timestamp,n=e.duration;return function(e,r,o){var a=["action"];return a.push("%c"+String(e.type)),t&&a.push("%c@ "+r),n&&a.push("%c(in "+o.toFixed(2)+" ms)"),a.join(" ")}}(t):o,i=t.collapsed,s=t.colors,l=t.level,c=t.diff,d=void 0===t.titleFormatter;e.forEach((function(o,u){var h=o.started,p=o.startedTime,m=o.action,f=o.prevState,b=o.error,C=o.took,v=o.nextState,y=e[u+1];y&&(v=y.prevState,C=y.started-h);var w=r(m),k="function"==typeof i?i((function(){return v}),m,o):i,x=E(p),T=s.title?"color: "+s.title(w)+";":"",S=["color: gray; font-weight: lighter;"];S.push(T),t.timestamp&&S.push("color: gray; font-weight: lighter;"),t.duration&&S.push("color: gray; font-weight: lighter;");var B=a(w,x,C);try{k?s.title&&d?n.groupCollapsed.apply(n,["%c "+B].concat(S)):n.groupCollapsed(B):s.title&&d?n.group.apply(n,["%c "+B].concat(S)):n.group(B)}catch(e){n.log(B)}var I=A(l,w,[f],"prevState"),_=A(l,w,[w],"action"),N=A(l,w,[b,f],"error"),P=A(l,w,[v],"nextState");if(I)if(s.prevState){var M="color: "+s.prevState(f)+"; font-weight: bold";n[I]("%c prev state",M,f)}else n[I]("prev state",f);if(_)if(s.action){var F="color: "+s.action(w)+"; font-weight: bold";n[_]("%c action ",F,w)}else n[_]("action ",w);if(b&&N)if(s.error){var R="color: "+s.error(b,f)+"; font-weight: bold;";n[N]("%c error ",R,b)}else n[N]("error ",b);if(P)if(s.nextState){var D="color: "+s.nextState(v)+"; font-weight: bold";n[P]("%c next state",D,v)}else n[P]("next state",v);c&&g(f,v,n,k);try{n.groupEnd()}catch(e){n.log("—— log end ——")}}))}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},I,e),n=t.logger,r=t.stateTransformer,o=t.errorTransformer,a=t.predicate,i=t.logErrors,s=t.diffPredicate;if(void 0===n)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var l=[];return function(e){var n=e.getState;return function(e){return function(c){if("function"==typeof a&&!a(n,c))return e(c);var d={};l.push(d),d.started=k.now(),d.startedTime=new Date,d.prevState=r(n()),d.action=c;var u=void 0;if(i)try{u=e(c)}catch(e){d.error=o(e)}else u=e(c);d.took=k.now()-d.started,d.nextState=r(n());var h=t.diff&&"function"==typeof s?s(n,c):t.diff;if(b(l,Object.assign({},t,{diff:h})),l.length=0,d.error)throw d.error;return u}}}}var v,y,w=function(e,t){return function(e,t){return new Array(t+1).join(e)}("0",t-e.toString().length)+e},E=function(e){return w(e.getHours(),2)+":"+w(e.getMinutes(),2)+":"+w(e.getSeconds(),2)+"."+w(e.getMilliseconds(),3)},k="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)},S=[];v="object"===(void 0===n.g?"undefined":x(n.g))&&n.g?n.g:"undefined"!=typeof window?window:{},(y=v.DeepDiff)&&S.push((function(){void 0!==y&&v.DeepDiff===u&&(v.DeepDiff=y,y=void 0)})),t(o,r),t(a,r),t(i,r),t(s,r),Object.defineProperties(u,{diff:{value:u,enumerable:!0},observableDiff:{value:d,enumerable:!0},applyDiff:{value:function(e,t,n){e&&t&&d(e,t,(function(r){n&&!n(e,t,r)||p(e,t,r)}))},enumerable:!0},applyChange:{value:p,enumerable:!0},revertChange:{value:function(e,t,n){if(e&&t&&n&&n.kind){var r,o,a=e;for(o=n.path.length-1,r=0;r<o;r++)void 0===a[n.path[r]]&&(a[n.path[r]]={}),a=a[n.path[r]];switch(n.kind){case"A":m(a[n.path[r]],n.index,n.item);break;case"D":case"E":a[n.path[r]]=n.lhs;break;case"N":delete a[n.path[r]]}}},enumerable:!0},isConflict:{value:function(){return void 0!==y},enumerable:!0},noConflict:{value:function(){return S&&(S.forEach((function(e){e()})),S=null),u},enumerable:!0}});var B={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}},I={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return"inherit"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0},_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,n=e.getState;return"function"==typeof t||"function"==typeof n?C()({dispatch:t,getState:n}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=I,e.createLogger=C,e.logger=_,e.default=_,Object.defineProperty(e,"__esModule",{value:!0})}(t)},9472:(e,t,n)=>{"use strict";n.d(t,{TN:()=>A,dx:()=>b});var r,o,a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=(r=["",""],o=["",""],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(o)}}))),s=function(){function e(){for(var t=this,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.tag=function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return"function"==typeof e?t.interimTag.bind(t,e):"string"==typeof e?t.transformEndResult(e):(e=e.map(t.transformString.bind(t)),t.transformEndResult(e.reduce(t.processSubstitutions.bind(t,r))))},r.length>0&&Array.isArray(r[0])&&(r=r[0]),this.transformers=r.map((function(e){return"function"==typeof e?e():e})),this.tag}return a(e,[{key:"interimTag",value:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return this.tag(i,e.apply(void 0,[t].concat(r)))}},{key:"processSubstitutions",value:function(e,t,n){var r=this.transformSubstitution(e.shift(),t);return"".concat(t,r,n)}},{key:"transformString",value:function(e){return this.transformers.reduce((function(e,t){return t.onString?t.onString(e):e}),e)}},{key:"transformSubstitution",value:function(e,t){return this.transformers.reduce((function(e,n){return n.onSubstitution?n.onSubstitution(e,t):e}),e)}},{key:"transformEndResult",value:function(e){return this.transformers.reduce((function(e,t){return t.onEndResult?t.onEndResult(e):e}),e)}}]),e}();const l=s;var c={separator:"",conjunction:"",serial:!1};const d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;return{onSubstitution:function(t,n){if(Array.isArray(t)){var r=t.length,o=e.separator,a=e.conjunction,i=e.serial,s=n.match(/(\n?[^\S\n]+)$/);if(t=s?t.join(o+s[1]):t.join(o+" "),a&&r>1){var l=t.lastIndexOf(o);t=t.slice(0,l)+(i?o:"")+" "+a+t.slice(l+1)}}return t}}},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initial";return{onEndResult:function(t){if("initial"===e){var n=t.match(/^[^\S\n]*(?=\S)/gm),r=n&&Math.min.apply(Math,function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n.map((function(e){return e.length}))));if(r){var o=new RegExp("^.{"+r+"}","gm");return t.replace(o,"")}return t}if("all"===e)return t.replace(/^[^\S\n]+/gm,"");throw new Error("Unknown type: "+e)}}},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return{onEndResult:function(t){if(""===e)return t.trim();if("start"===(e=e.toLowerCase())||"left"===e)return t.replace(/^\s*/,"");if("end"===e||"right"===e)return t.replace(/\s*$/,"");throw new Error("Side not supported: "+e)}}};new l(d({separator:","}),u,h),new l(d({separator:",",conjunction:"and"}),u,h),new l(d({separator:",",conjunction:"or"}),u,h);const p=function(e){return{onSubstitution:function(t,n){if(null==e||"string"!=typeof e)throw new Error("You need to specify a string character to split by.");return"string"==typeof t&&t.includes(e)&&(t=t.split(e)),t}}};var m=function(e){return null!=e&&!Number.isNaN(e)&&"boolean"!=typeof e};new l(p("\n"),(function(){return{onSubstitution:function(e){return Array.isArray(e)?e.filter(m):m(e)?e:""}}}),d,u,h);const f=function(e,t){return{onSubstitution:function(n,r){if(null==e||null==t)throw new Error("replaceSubstitutionTransformer requires at least 2 arguments.");return null==n?n:n.toString().replace(e,t)}}};new l(p("\n"),d,u,h,f(/&/g,"&"),f(/</g,"<"),f(/>/g,">"),f(/"/g,"""),f(/'/g,"'"),f(/`/g,"`"));const g=function(e,t){return{onEndResult:function(n){if(null==e||null==t)throw new Error("replaceResultTransformer requires at least 2 arguments.");return n.replace(e,t)}}},A=new l(g(/(?:\n(?:\s*))+/g," "),h);new l(g(/(?:\n\s*)/g,""),h),new l(d({separator:","}),g(/(?:\s+)/g," "),h),new l(d({separator:",",conjunction:"or"}),g(/(?:\s+)/g," "),h),new l(d({separator:",",conjunction:"and"}),g(/(?:\s+)/g," "),h),new l(d,u,h),new l(d,g(/(?:\s+)/g," "),h);const b=new l(u,h);new l(u("all"),h)},9525:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".tooltipNetwork{width:600px}.tooltipNetworkPhases{border-top:1px solid var(--grey-40);display:grid;margin-top:4px;padding-top:4px;grid-gap:2px 5px;grid-template-columns:min-content min-content auto}.tooltipNetworkTitle3{font:inherit;grid-column-start:span 3;margin:5px 0 3px;padding:0}.tooltipNetworkTitle3:first-child{margin-top:3px}.tooltipNetworkPhase{background-color:var(--marker-color);margin:2px 0}.tooltipNetworkPhaseEmpty{background-color:#fff;box-shadow:0 0 0 1px inset var(--marker-color);opacity:.5}.tooltipNetworkMimeType{align-items:center;display:flex}.tooltipNetworkMimeTypeSwatch{background-color:var(--marker-color)}","",{version:3,sources:["webpack://./src/components/tooltip/NetworkMarker.css"],names:[],mappings:"AAIA,gBACE,WACF,CAEA,sBAGE,mCAAoC,CAFpC,YAAa,CAGb,cAAe,CAFf,eAAgB,CAGhB,gBAAiB,CAIjB,kDACF,CAEA,sBAIE,YAAa,CAGb,wBAAyB,CAJzB,gBAAiB,CADjB,SAMF,CAEA,kCACE,cACF,CAEA,qBAEE,oCAAqC,CADrC,YAEF,CAEA,0BACE,qBAAuB,CACvB,8CAA+C,CAC/C,UACF,CAEA,wBAEE,kBAAmB,CADnB,YAEF,CAEA,8BACE,oCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.tooltipNetwork {\n width: 600px;\n}\n\n.tooltipNetworkPhases {\n display: grid;\n padding-top: 4px;\n border-top: 1px solid var(--grey-40);\n margin-top: 4px;\n grid-gap: 2px 5px;\n\n /* When changing the number of columns, don't forget to change the span values\n * in grid-column-start properties. */\n grid-template-columns: min-content min-content auto;\n}\n\n.tooltipNetworkTitle3 {\n /* Reset most default properties of h3. */\n padding: 0;\n margin: 5px 0 3px;\n font: inherit;\n\n /* Make the title take the 2 columns. */\n grid-column-start: span 3;\n}\n\n.tooltipNetworkTitle3:first-child {\n margin-top: 3px;\n}\n\n.tooltipNetworkPhase {\n margin: 2px 0;\n background-color: var(--marker-color);\n}\n\n.tooltipNetworkPhaseEmpty {\n background-color: white;\n box-shadow: 0 0 0 1px inset var(--marker-color);\n opacity: 0.5;\n}\n\n.tooltipNetworkMimeType {\n display: flex;\n align-items: center;\n}\n\n.tooltipNetworkMimeTypeSwatch {\n background-color: var(--marker-color);\n}\n"],sourceRoot:""}]);const s=i},9653:(e,t,n)=>{"use strict";e.exports=n.p+"b5698a02eef37ce29146.svg"},9659:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineEmptyThreadIndicator{--empty-buffer-color1:rgba(69,160,255,.225);--empty-buffer-color2:rgba(69,160,255,.075);--shutdown-startup-color:#00003212}.timelineEmptyThreadIndicatorBlock{bottom:0;box-sizing:border-box;position:absolute;top:0}.timelineEmptyThreadIndicatorStartup{background-color:var(--shutdown-startup-color);border-right:1px solid var(--grey-30);box-shadow:inset -4px 0 4px #0000000d}.timelineEmptyThreadIndicatorShutdown{background-color:var(--shutdown-startup-color);border-left:1px solid var(--grey-30);box-shadow:inset 4px 0 4px #0000000d}.timelineEmptyThreadIndicatorEmptyBuffer{background:repeating-linear-gradient(45deg,var(--empty-buffer-color1),var(--empty-buffer-color1) 8px,var(--empty-buffer-color2) 8px,var(--empty-buffer-color2) 16px)}.timelineEmptyThreadIndicatorLongTooltip{display:inline-block;max-width:500px}","",{version:3,sources:["webpack://./src/components/timeline/EmptyThreadIndicator.css"],names:[],mappings:"AAIA,8BACE,2CAA8C,CAC9C,2CAA8C,CAG9C,kCACF,CAEA,mCAGE,QAAS,CAGT,qBAAsB,CALtB,iBAAkB,CAClB,KAKF,CAEA,qCAEE,8CAA+C,CAD/C,qCAAsC,CAEtC,qCACF,CAEA,sCAEE,8CAA+C,CAD/C,oCAAqC,CAErC,oCACF,CAEA,yCACE,oKAOF,CAEA,yCACE,oBAAqB,CACrB,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineEmptyThreadIndicator {\n --empty-buffer-color1: rgb(69 160 255 / 0.225);\n --empty-buffer-color2: rgb(69 160 255 / 0.075);\n\n /* The following color is based off grey-20, but uses opacity instead. */\n --shutdown-startup-color: rgb(0 0 50 / 0.07);\n}\n\n.timelineEmptyThreadIndicatorBlock {\n position: absolute;\n top: 0;\n bottom: 0;\n\n /* Don't add the border to the width, as this causes the block to overflow. */\n box-sizing: border-box;\n}\n\n.timelineEmptyThreadIndicatorStartup {\n border-right: solid 1px var(--grey-30);\n background-color: var(--shutdown-startup-color);\n box-shadow: inset -4px 0 4px rgb(0 0 0 / 0.05);\n}\n\n.timelineEmptyThreadIndicatorShutdown {\n border-left: solid 1px var(--grey-30);\n background-color: var(--shutdown-startup-color);\n box-shadow: inset 4px 0 4px rgb(0 0 0 / 0.05);\n}\n\n.timelineEmptyThreadIndicatorEmptyBuffer {\n background: repeating-linear-gradient(\n 45deg,\n var(--empty-buffer-color1),\n var(--empty-buffer-color1) 8px,\n var(--empty-buffer-color2) 8px,\n var(--empty-buffer-color2) 16px\n );\n}\n\n.timelineEmptyThreadIndicatorLongTooltip {\n display: inline-block;\n max-width: 500px;\n}\n"],sourceRoot:""}]);const s=i},9692:(e,t,n)=>{"use strict";e.exports=n.p+"49da6a2153f62ef73d17.svg"},9697:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".originsTimelineTrack{margin:5px}","",{version:3,sources:["webpack://./src/components/timeline/OriginsTimeline.css"],names:[],mappings:"AAOA,sBACE,UACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This file is just a stub for the WIP origins-based timeline.\n */\n.originsTimelineTrack {\n margin: 5px;\n}\n"],sourceRoot:""}]);const s=i},9814:(e,t,n)=>{"use strict";e.exports=n.p+"76e5b29823c9fd62d90d.svg"},9815:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(5812),l=n(1359),c=n(6544),d=n(4287),u=n(2285),h=n(3642),p=n(2225),m=n(1190),f=i()(o());f.i(s.A),f.i(l.A),f.i(c.A),f.i(d.A),f.i(u.A),f.i(h.A),f.i(p.A),f.i(m.A),f.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const g=f},9839:(e,t,n)=>{"use strict";n.d(t,{AJ:()=>b,Ae:()=>s,BY:()=>S,Dp:()=>w,E5:()=>d,EV:()=>m,F2:()=>k,G5:()=>N,H9:()=>T,HT:()=>z,Ie:()=>o,JZ:()=>G,KU:()=>H,LT:()=>h,Mp:()=>A,NC:()=>I,Nj:()=>L,OI:()=>a,O_:()=>u,RD:()=>i,RN:()=>O,SH:()=>C,Xh:()=>E,YX:()=>P,ZB:()=>y,ZK:()=>F,Zh:()=>x,a1:()=>j,a2:()=>v,cs:()=>R,d7:()=>U,li:()=>D,mN:()=>W,mk:()=>f,nO:()=>V,oQ:()=>c,pp:()=>B,tk:()=>p,u3:()=>g,xC:()=>r,xJ:()=>M,xs:()=>l,ye:()=>_});const r=31,o=55,a=15,i=150,s=0,l=50,c=30,d=5,u=7,h=d*u,p=25,m=15,f=p+m,g=2,A="orange",b=25,C=2,v="blue",y=40,w=2,E=25,k=E,x=25,T=2,S="grey",B=30,I=20,_=25,N=2,P="grey",M=25,F=2,R=.001,D=40,L=2,O=20,U="profile-store",z="http://localhost:5252",G="https://localhost:5252",W=0,H=1,V=2,j=3},9982:(e,t,n)=>{"use strict";e.exports=n(7463)}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=o,i.c=a,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>e+"."+{136:"ad4176dc2a8e5cf33ef3",171:"37d1e1824587d8df0ae2",280:"4edd20bd6228986bbf2e",556:"b8d3d4d402ced081615a",874:"7cb94ee0732c5a2ca826",957:"2f40be4cef3037bc352b",999:"a1119c25d77e1883c1e1"}[e]+".bundle.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},i.l=(t,n,r,o)=>{if(e[t])e[t].push(n);else{var a,s;if(void 0!==r)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==t){a=d;break}}a||(s=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=t),e[t]=[n];var u=(n,r)=>{a.onerror=a.onload=null,clearTimeout(h);var o=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(r))),n)return n(r)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),s&&document.head.appendChild(a)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",(()=>{i.b=document.baseURI||self.location.href;var e={792:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=e[t]=[n,o]));n.push(r[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,r[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[a,s,l]=n,c=0;if(a.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);l&&l(i)}for(t&&t(n);c<a.length;c++)o=a[c],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},n=globalThis.webpackChunk=globalThis.webpackChunk||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),i.nc=void 0,t={},n={1383:function(){return{}}},r={556:[1383]},i.w={},i.f.wasm=function(e,o){(r[e]||[]).forEach((function(r,a){var s=t[r];if(s)o.push(s);else{var l,c=n[r](),d=fetch(i.p+""+{556:{1383:"2f37d1addc2d2f5b699e"}}[e][r]+".module.wasm");l=c&&"function"==typeof c.then&&"function"==typeof WebAssembly.compileStreaming?Promise.all([WebAssembly.compileStreaming(d),c]).then((function(e){return WebAssembly.instantiate(e[0],e[1])})):"function"==typeof WebAssembly.instantiateStreaming?WebAssembly.instantiateStreaming(d,c):d.then((function(e){return e.arrayBuffer()})).then((function(e){return WebAssembly.instantiate(e,c)})),o.push(t[r]=l.then((function(e){return i.w[r]=(e.instance||e).exports})))}}))},i(6967)})();
|
198
|
+
//# sourceMappingURL=main.6cdc9308b67c00785584.bundle.js.map
|