patchright-core 1.52.4 → 1.55.0

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.
Files changed (218) hide show
  1. package/ThirdPartyNotices.txt +65 -123
  2. package/bin/reinstall_chrome_beta_mac.sh +1 -1
  3. package/bin/reinstall_chrome_stable_mac.sh +1 -1
  4. package/bin/reinstall_msedge_beta_mac.sh +1 -1
  5. package/bin/reinstall_msedge_dev_mac.sh +1 -1
  6. package/bin/reinstall_msedge_stable_mac.sh +1 -1
  7. package/browsers.json +14 -14
  8. package/index.js +1 -1
  9. package/lib/androidServerImpl.js +4 -2
  10. package/lib/browserServerImpl.js +47 -12
  11. package/lib/cli/program.js +116 -50
  12. package/lib/cli/programWithTestStub.js +1 -1
  13. package/lib/client/android.js +30 -34
  14. package/lib/client/browser.js +54 -17
  15. package/lib/client/browserContext.js +67 -71
  16. package/lib/client/browserType.js +25 -34
  17. package/lib/client/channelOwner.js +20 -24
  18. package/lib/client/connection.js +6 -10
  19. package/lib/client/electron.js +8 -3
  20. package/lib/client/elementHandle.js +18 -21
  21. package/lib/client/fetch.js +5 -3
  22. package/lib/client/frame.js +57 -35
  23. package/lib/client/input.js +3 -1
  24. package/lib/client/jsHandle.js +4 -0
  25. package/lib/client/localUtils.js +0 -1
  26. package/lib/client/locator.js +32 -28
  27. package/lib/client/network.js +5 -12
  28. package/lib/client/page.js +32 -32
  29. package/lib/client/playwright.js +6 -16
  30. package/lib/client/selectors.js +18 -38
  31. package/lib/client/timeoutSettings.js +12 -8
  32. package/lib/client/tracing.js +24 -20
  33. package/lib/client/waiter.js +2 -2
  34. package/lib/client/webSocket.js +4 -22
  35. package/lib/generated/bindingsControllerSource.js +28 -0
  36. package/lib/generated/clockSource.js +1 -1
  37. package/lib/generated/injectedScriptSource.js +1 -1
  38. package/lib/generated/pollingRecorderSource.js +1 -1
  39. package/lib/generated/storageScriptSource.js +28 -0
  40. package/lib/generated/utilityScriptSource.js +1 -1
  41. package/lib/generated/webSocketMockSource.js +12 -50
  42. package/lib/inProcessFactory.js +9 -6
  43. package/lib/outofprocess.js +0 -2
  44. package/lib/protocol/validator.js +423 -346
  45. package/lib/protocol/validatorPrimitives.js +18 -4
  46. package/lib/remote/playwrightConnection.js +29 -166
  47. package/lib/remote/playwrightServer.js +233 -35
  48. package/lib/server/android/android.js +97 -83
  49. package/lib/server/android/backendAdb.js +0 -2
  50. package/lib/server/bidi/bidiBrowser.js +139 -73
  51. package/lib/server/bidi/bidiChromium.js +23 -22
  52. package/lib/server/bidi/bidiExecutionContext.js +2 -1
  53. package/lib/server/bidi/bidiFirefox.js +17 -14
  54. package/lib/server/bidi/bidiInput.js +22 -22
  55. package/lib/server/bidi/bidiNetworkManager.js +8 -11
  56. package/lib/server/bidi/bidiPage.js +42 -86
  57. package/lib/server/bidi/third_party/bidiProtocol.js +5 -133
  58. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  59. package/lib/server/{dispatchers/selectorsDispatcher.js → bidi/third_party/bidiProtocolPermissions.js} +20 -18
  60. package/lib/server/browser.js +30 -21
  61. package/lib/server/browserContext.js +203 -165
  62. package/lib/server/browserType.js +109 -107
  63. package/lib/server/chromium/chromium.js +84 -69
  64. package/lib/server/chromium/chromiumSwitches.js +13 -20
  65. package/lib/server/chromium/crBrowser.js +74 -40
  66. package/lib/server/chromium/crConnection.js +8 -9
  67. package/lib/server/chromium/crCoverage.js +11 -8
  68. package/lib/server/chromium/crDragDrop.js +25 -20
  69. package/lib/server/chromium/crExecutionContext.js +2 -1
  70. package/lib/server/chromium/crInput.js +32 -29
  71. package/lib/server/chromium/crNetworkManager.js +45 -33
  72. package/lib/server/chromium/crPage.js +98 -73
  73. package/lib/server/chromium/crServiceWorker.js +13 -18
  74. package/lib/server/chromium/videoRecorder.js +10 -18
  75. package/lib/server/clock.js +51 -39
  76. package/lib/server/codegen/csharp.js +10 -5
  77. package/lib/server/codegen/java.js +1 -1
  78. package/lib/server/codegen/javascript.js +1 -1
  79. package/lib/server/codegen/jsonl.js +2 -1
  80. package/lib/server/codegen/language.js +22 -1
  81. package/lib/server/codegen/languages.js +4 -4
  82. package/lib/server/codegen/python.js +1 -1
  83. package/lib/server/cookieStore.js +3 -1
  84. package/lib/server/debugController.js +105 -71
  85. package/lib/server/debugger.js +6 -23
  86. package/lib/server/deviceDescriptorsSource.json +237 -127
  87. package/lib/server/dialog.js +50 -6
  88. package/lib/server/dispatchers/androidDispatcher.js +77 -62
  89. package/lib/server/dispatchers/artifactDispatcher.js +18 -18
  90. package/lib/server/dispatchers/browserContextDispatcher.js +141 -91
  91. package/lib/server/dispatchers/browserDispatcher.js +55 -88
  92. package/lib/server/dispatchers/browserTypeDispatcher.js +18 -9
  93. package/lib/server/dispatchers/cdpSessionDispatcher.js +4 -4
  94. package/lib/server/dispatchers/debugControllerDispatcher.js +12 -21
  95. package/lib/server/dispatchers/dialogDispatcher.js +4 -4
  96. package/lib/server/dispatchers/dispatcher.js +78 -53
  97. package/lib/server/dispatchers/electronDispatcher.js +19 -20
  98. package/lib/server/dispatchers/elementHandlerDispatcher.js +83 -93
  99. package/lib/server/dispatchers/frameDispatcher.js +99 -102
  100. package/lib/server/dispatchers/jsHandleDispatcher.js +21 -16
  101. package/lib/server/dispatchers/jsonPipeDispatcher.js +4 -4
  102. package/lib/server/dispatchers/localUtilsDispatcher.js +53 -59
  103. package/lib/server/dispatchers/networkDispatchers.js +41 -35
  104. package/lib/server/dispatchers/pageDispatcher.js +156 -107
  105. package/lib/server/dispatchers/playwrightDispatcher.js +37 -25
  106. package/lib/server/dispatchers/streamDispatcher.js +15 -8
  107. package/lib/server/dispatchers/tracingDispatcher.js +22 -13
  108. package/lib/server/dispatchers/webSocketRouteDispatcher.js +46 -35
  109. package/lib/server/dispatchers/writableStreamDispatcher.js +16 -10
  110. package/lib/server/dom.js +198 -266
  111. package/lib/server/download.js +3 -3
  112. package/lib/server/electron/electron.js +96 -103
  113. package/lib/server/electron/loader.js +1 -1
  114. package/lib/server/fetch.js +22 -41
  115. package/lib/server/fileUploadUtils.js +1 -1
  116. package/lib/server/firefox/ffBrowser.js +79 -55
  117. package/lib/server/firefox/ffExecutionContext.js +2 -1
  118. package/lib/server/firefox/ffInput.js +23 -23
  119. package/lib/server/firefox/ffNetworkManager.js +8 -6
  120. package/lib/server/firefox/ffPage.js +39 -36
  121. package/lib/server/firefox/firefox.js +9 -10
  122. package/lib/server/frameSelectors.js +65 -22
  123. package/lib/server/frames.js +516 -544
  124. package/lib/server/har/harRecorder.js +1 -1
  125. package/lib/server/har/harTracer.js +4 -2
  126. package/lib/server/helper.js +3 -7
  127. package/lib/server/index.js +0 -3
  128. package/lib/server/input.js +47 -54
  129. package/lib/server/instrumentation.js +8 -14
  130. package/lib/server/javascript.js +9 -17
  131. package/lib/server/launchApp.js +48 -30
  132. package/lib/server/localUtils.js +45 -38
  133. package/lib/server/network.js +44 -10
  134. package/lib/server/page.js +233 -178
  135. package/lib/server/pageBinding.js +6 -7
  136. package/lib/server/playwright.js +4 -14
  137. package/lib/server/progress.js +57 -49
  138. package/lib/server/recorder/recorderApp.js +298 -95
  139. package/lib/server/recorder/recorderRunner.js +23 -24
  140. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  141. package/lib/server/recorder/recorderUtils.js +67 -10
  142. package/lib/server/recorder.js +284 -146
  143. package/lib/server/registry/index.js +83 -48
  144. package/lib/server/registry/nativeDeps.js +175 -0
  145. package/lib/server/registry/oopDownloadBrowserMain.js +1 -1
  146. package/lib/server/screenshotter.js +84 -83
  147. package/lib/server/selectors.js +12 -12
  148. package/lib/server/socksClientCertificatesInterceptor.js +198 -136
  149. package/lib/server/trace/recorder/snapshotter.js +12 -19
  150. package/lib/server/trace/recorder/tracing.js +36 -27
  151. package/lib/server/trace/viewer/traceViewer.js +11 -20
  152. package/lib/server/transport.js +20 -22
  153. package/lib/server/utils/comparators.js +2 -2
  154. package/lib/server/utils/debug.js +3 -8
  155. package/lib/server/utils/debugLogger.js +8 -0
  156. package/lib/server/utils/hostPlatform.js +3 -1
  157. package/lib/server/utils/network.js +35 -25
  158. package/lib/server/utils/nodePlatform.js +1 -1
  159. package/lib/server/utils/processLauncher.js +4 -1
  160. package/lib/server/utils/wsServer.js +11 -17
  161. package/lib/server/webkit/webkit.js +5 -2
  162. package/lib/server/webkit/wkBrowser.js +51 -28
  163. package/lib/server/webkit/wkExecutionContext.js +2 -1
  164. package/lib/server/webkit/wkInput.js +25 -25
  165. package/lib/server/webkit/wkInterceptableRequest.js +1 -1
  166. package/lib/server/webkit/wkPage.js +80 -59
  167. package/lib/server/webkit/wkProvisionalPage.js +1 -1
  168. package/lib/server/webkit/wkWorkers.js +7 -7
  169. package/lib/utils/isomorphic/ariaSnapshot.js +13 -7
  170. package/lib/utils/isomorphic/cssParser.js +1 -2
  171. package/lib/utils/isomorphic/locatorGenerators.js +18 -0
  172. package/lib/utils/isomorphic/manualPromise.js +1 -2
  173. package/lib/utils/isomorphic/mimeType.js +1 -2
  174. package/lib/utils/isomorphic/multimap.js +1 -2
  175. package/lib/utils/isomorphic/oldUtilityScriptSerializers.js +248 -0
  176. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  177. package/lib/utils/isomorphic/protocolMetainfo.js +318 -0
  178. package/lib/utils/isomorphic/selectorParser.js +3 -4
  179. package/lib/utils/isomorphic/stringUtils.js +3 -24
  180. package/lib/utils/isomorphic/time.js +9 -4
  181. package/lib/utils/isomorphic/timeoutRunner.js +3 -4
  182. package/lib/utils/isomorphic/traceUtils.js +2 -3
  183. package/lib/utils/isomorphic/urlMatch.js +21 -7
  184. package/lib/utils/isomorphic/utilityScriptSerializers.js +208 -205
  185. package/lib/utils.js +8 -2
  186. package/lib/utilsBundleImpl/index.js +160 -150
  187. package/lib/vite/htmlReport/index.html +17 -17
  188. package/lib/vite/recorder/assets/{codeMirrorModule-CXVeovup.js → codeMirrorModule-DzQ0k89p.js} +1 -1
  189. package/lib/vite/recorder/assets/{index-eHBmevrY.css → index-CI4HQ-Zb.css} +1 -1
  190. package/lib/vite/recorder/assets/index-D7C7daHH.js +184 -0
  191. package/lib/vite/recorder/index.html +3 -3
  192. package/lib/vite/traceViewer/assets/{codeMirrorModule-_GLjJL-7.js → codeMirrorModule-Di48jgWx.js} +1 -1
  193. package/lib/vite/traceViewer/assets/defaultSettingsView-szBn8781.js +256 -0
  194. package/lib/vite/traceViewer/defaultSettingsView.DVJHpiGt.css +1 -0
  195. package/lib/vite/traceViewer/index.BFsek2M6.css +1 -0
  196. package/lib/vite/traceViewer/index.DQvXoPLL.js +2 -0
  197. package/lib/vite/traceViewer/index.html +6 -6
  198. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  199. package/lib/vite/traceViewer/uiMode.dBV3oN9h.js +5 -0
  200. package/lib/vite/traceViewer/uiMode.html +4 -4
  201. package/lib/zipBundleImpl.js +4 -4
  202. package/package.json +1 -1
  203. package/types/protocol.d.ts +712 -107
  204. package/types/types.d.ts +148 -37
  205. package/lib/generated/consoleApiSource.js +0 -28
  206. package/lib/protocol/debug.js +0 -211
  207. package/lib/server/recorder/contextRecorder.js +0 -286
  208. package/lib/server/recorder/recorderCollection.js +0 -116
  209. package/lib/server/recorder/recorderFrontend.js +0 -16
  210. package/lib/server/storageScript.js +0 -154
  211. package/lib/server/timeoutSettings.js +0 -89
  212. package/lib/utils/isomorphic/builtins.js +0 -86
  213. package/lib/vite/recorder/assets/index-BsWQsSGl.js +0 -184
  214. package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +0 -265
  215. package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +0 -1
  216. package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
  217. package/lib/vite/traceViewer/index.cFZzK9RN.js +0 -2
  218. package/lib/vite/traceViewer/uiMode.XVPIqBeS.js +0 -5
@@ -1,3 +1,3 @@
1
- var Yr=Object.defineProperty;var Gr=(n,t,e)=>t in n?Yr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var F=(n,t,e)=>Gr(n,typeof t!="symbol"?t+"":t,e);function Vr(n,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((r,s)=>(i,a)=>{e[s]=i/a*t[s]*1e3,n(e.reduce((o,l)=>o+l,0),1e3)})}function Zr(n){var t,e,r,s,i,a,o,l,_;return n=n??globalThis,{setTimeout:(t=n.setTimeout)==null?void 0:t.bind(n),clearTimeout:(e=n.clearTimeout)==null?void 0:e.bind(n),setInterval:(r=n.setInterval)==null?void 0:r.bind(n),clearInterval:(s=n.clearInterval)==null?void 0:s.bind(n),requestAnimationFrame:(i=n.requestAnimationFrame)==null?void 0:i.bind(n),cancelAnimationFrame:(a=n.cancelAnimationFrame)==null?void 0:a.bind(n),requestIdleCallback:(o=n.requestIdleCallback)==null?void 0:o.bind(n),cancelIdleCallback:(l=n.cancelIdleCallback)==null?void 0:l.bind(n),performance:n.performance,eval:(_=n.eval)==null?void 0:_.bind(n),Intl:n.Intl,Date:n.Date,Map:n.Map,Set:n.Set}}const Kr=Zr(),Xr=Kr.Map,Nn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function $r(n){return n.replace(/[&<>"']/ug,t=>Nn[t])}function Jr(n){return n.replace(/[&<]/ug,t=>Nn[t])}function Ft(n,t,e){return n.find((r,s)=>{if(s===n.length-1)return!0;const i=n[s+1];return Math.abs(t(r)-e)<Math.abs(t(i)-e)})}function Fn(n){return Array.isArray(n)&&typeof n[0]=="string"}function Qr(n){return Array.isArray(n)&&Array.isArray(n[0])}class zr{constructor(t,e,r,s,i){F(this,"_htmlCache");F(this,"_snapshots");F(this,"_index");F(this,"snapshotName");F(this,"_resources");F(this,"_snapshot");F(this,"_callId");F(this,"_screencastFrames");this._htmlCache=t,this._resources=e,this._snapshots=r,this._index=i,this._snapshot=r[i],this._callId=r[i].callId,this._screencastFrames=s,this.snapshotName=r[i].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var s;const{wallTime:t,timestamp:e}=this.snapshot(),r=t&&((s=this._screencastFrames[0])!=null&&s.frameSwapWallTime)?Ft(this._screencastFrames,i=>i.frameSwapWallTime,t):Ft(this._screencastFrames,i=>i.timestamp,e);return r==null?void 0:r.sha1}render(){const t=[],e=(i,a,o,l)=>{if(typeof i=="string"){o==="STYLE"||o==="style"?t.push(ss(i)):t.push(Jr(i));return}if(Qr(i)){const _=a-i[0][0];if(_>=0&&_<=a){const f=ts(this._snapshots[_]),b=i[0][1];if(b>=0&&b<f.length)return e(f[b],_,o,l)}}else if(Fn(i)){const[_,f,...b]=i,h=_==="NOSCRIPT"?"X-NOSCRIPT":_,S=Object.entries(f||{});t.push("<",h);const C="__playwright_current_src__",u=h==="IFRAME"||h==="FRAME",c=h==="A",d=h==="IMG",y=d&&S.some(m=>m[0]===C),g=h==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(m=>m[0]===C));for(const[m,E]of S){let p=m;u&&m.toLowerCase()==="src"&&(p="__playwright_src__"),d&&m===C&&(p="src"),["src","srcset"].includes(m.toLowerCase())&&(y||g)&&(p="_"+p);let R=E;c&&m.toLowerCase()==="href"?R="link://"+E:(m.toLowerCase()==="href"||m.toLowerCase()==="src"||m===C)&&(R=st(E)),t.push(" ",p,'="',$r(R),'"')}t.push(">");for(const m of b)e(m,a,h,S);es.has(h)||t.push("</",h,">");return}else return},r=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(r.html,this._index,void 0,void 0);const a=(r.doctype?`<!DOCTYPE ${r.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${ns(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:r.pageId,frameId:r.frameId,index:this._index}}resourceByUrl(t,e){const r=this._snapshot;let s,i;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=r.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===r.frameId?s=o:i=o)}let a=s??i;if(a&&e.toUpperCase()==="GET"){for(const o of r.resourceOverrides)if(t===o.url&&o.sha1){a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}};break}}return a}}const es=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function ts(n){if(!n._nodes){const t=[],e=r=>{if(typeof r=="string")t.push(r);else if(Fn(r)){const[,,...s]=r;for(const i of s)e(i);t.push(r)}};e(n.html),n._nodes=t}return n._nodes}function ns(n,...t){function e(r,s,...i){const a=new URLSearchParams(location.search),o=a.has("shouldPopulateCanvasFromScreenshot"),l=a.has("isUnderTest"),_={viewport:s,frames:new WeakMap};window.__playwright_frame_bounding_rects__=_;const f="Recorded click position in absolute coordinates did not match the center of the clicked element. This is likely due to a difference between the test runner and the trace viewer operating systems.",b=[],h=[],S=[],C=[];let u=window;for(;u!==u.parent&&!u.location.pathname.match(/\/page@[a-z0-9]+$/);)u=u.parent;const c=g=>{for(const m of g.querySelectorAll("[__playwright_scroll_top_]"))b.push(m);for(const m of g.querySelectorAll("[__playwright_scroll_left_]"))h.push(m);for(const m of g.querySelectorAll("[__playwright_value_]")){const E=m;E.type!=="file"&&(E.value=E.getAttribute("__playwright_value_")),m.removeAttribute("__playwright_value_")}for(const m of g.querySelectorAll("[__playwright_checked_]"))m.checked=m.getAttribute("__playwright_checked_")==="true",m.removeAttribute("__playwright_checked_");for(const m of g.querySelectorAll("[__playwright_selected_]"))m.selected=m.getAttribute("__playwright_selected_")==="true",m.removeAttribute("__playwright_selected_");for(const m of g.querySelectorAll("[__playwright_popover_open_]")){try{m.showPopover()}catch{}m.removeAttribute("__playwright_popover_open_")}for(const m of g.querySelectorAll("[__playwright_dialog_open_]")){try{m.getAttribute("__playwright_dialog_open_")==="modal"?m.showModal():m.show()}catch{}m.removeAttribute("__playwright_dialog_open_")}for(const m of i)for(const E of g.querySelectorAll(`[__playwright_target__="${m}"]`)){const p=E.style;p.outline="2px solid #006ab1",p.backgroundColor="#6fa8dc7f",S.push(E)}for(const m of g.querySelectorAll("iframe, frame")){const E=m.getAttribute("__playwright_bounding_rect__");m.removeAttribute("__playwright_bounding_rect__");const p=E?JSON.parse(E):void 0;p&&_.frames.set(m,{boundingRect:p,scrollLeft:0,scrollTop:0});const R=m.getAttribute("__playwright_src__");if(!R)m.setAttribute("src",'data:text/html,<body style="background: #ddd"></body>');else{const T=new URL(r(window.location.href)),A=T.pathname.lastIndexOf("/snapshot/");A!==-1&&(T.pathname=T.pathname.substring(0,A+1)),T.pathname+=R.substring(1),m.setAttribute("src",T.toString())}}{const m=g.querySelector("body[__playwright_custom_elements__]");if(m&&window.customElements){const E=(m.getAttribute("__playwright_custom_elements__")||"").split(",");for(const p of E)window.customElements.define(p,class extends HTMLElement{})}}for(const m of g.querySelectorAll("template[__playwright_shadow_root_]")){const E=m,p=E.parentElement.attachShadow({mode:"open"});p.appendChild(E.content),E.remove(),c(p)}if("adoptedStyleSheets"in g){const m=[...g.adoptedStyleSheets];for(const E of g.querySelectorAll("template[__playwright_style_sheet_]")){const p=E,R=new CSSStyleSheet;R.replaceSync(p.getAttribute("__playwright_style_sheet_")),m.push(R)}g.adoptedStyleSheets=m}C.push(...g.querySelectorAll("canvas"))},d=()=>{window.removeEventListener("load",d);for(const E of b)E.scrollTop=+E.getAttribute("__playwright_scroll_top_"),E.removeAttribute("__playwright_scroll_top_"),_.frames.has(E)&&(_.frames.get(E).scrollTop=E.scrollTop);for(const E of h)E.scrollLeft=+E.getAttribute("__playwright_scroll_left_"),E.removeAttribute("__playwright_scroll_left_"),_.frames.has(E)&&(_.frames.get(E).scrollLeft=E.scrollTop);document.styleSheets[0].disabled=!0;const g=new URL(window.location.href).searchParams,m=window===u;if(g.get("pointX")&&g.get("pointY")){const E=+g.get("pointX"),p=+g.get("pointY"),R=g.has("hasInputTarget"),T=S.length>0,A=document.documentElement?[document.documentElement]:[];for(const x of T?S:A){const w=document.createElement("x-pw-pointer");if(w.style.position="fixed",w.style.backgroundColor="#f44336",w.style.width="20px",w.style.height="20px",w.style.borderRadius="10px",w.style.margin="-10px 0 0 -10px",w.style.zIndex="2147483646",w.style.display="flex",w.style.alignItems="center",w.style.justifyContent="center",T){const O=x.getBoundingClientRect(),I=O.left+O.width/2,v=O.top+O.height/2;if(w.style.left=I+"px",w.style.top=v+"px",m&&(Math.abs(I-E)>=10||Math.abs(v-p)>=10)){const k=document.createElement("x-pw-pointer-warning");k.textContent="⚠",k.style.fontSize="19px",k.style.color="white",k.style.marginTop="-3.5px",k.style.userSelect="none",w.appendChild(k),w.setAttribute("title",f)}document.documentElement.appendChild(w)}else m&&!R&&(w.style.left=E+"px",w.style.top=p+"px",document.documentElement.appendChild(w))}}if(C.length>0){let E=function(R,T){function A(){const x=document.createElement("canvas");x.width=x.width/Math.floor(x.width/24),x.height=x.height/Math.floor(x.height/24);const w=x.getContext("2d");return w.fillStyle="lightgray",w.fillRect(0,0,x.width,x.height),w.fillStyle="white",w.fillRect(0,0,x.width/2,x.height/2),w.fillRect(x.width/2,x.height/2,x.width,x.height),w.createPattern(x,"repeat")}R.fillStyle=A(),R.fillRect(0,0,T.width,T.height)};const p=new Image;p.onload=()=>{var R;for(const T of C){const A=T.getContext("2d"),x=T.getAttribute("__playwright_bounding_rect__");if(T.removeAttribute("__playwright_bounding_rect__"),!x)continue;let w;try{w=JSON.parse(x)}catch{continue}let O=window;for(;O!==u;){const U=O.frameElement;O=O.parent;const N=(R=O.__playwright_frame_bounding_rects__)==null?void 0:R.frames.get(U);if(!(N!=null&&N.boundingRect))break;const Y=N.boundingRect.left-N.scrollLeft,P=N.boundingRect.top-N.scrollTop;w.left+=Y,w.top+=P,w.right+=Y,w.bottom+=P}const{width:I,height:v}=u.__playwright_frame_bounding_rects__.viewport;w.left=w.left/I,w.top=w.top/v,w.right=w.right/I,w.bottom=w.bottom/v;const k=w.right>1||w.bottom>1;if(w.left>1||w.top>1){T.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}E(A,T),o?(A.drawImage(p,w.left*p.width,w.top*p.height,(w.right-w.left)*p.width,(w.bottom-w.top)*p.height,0,0,T.width,T.height),k?T.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":T.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):T.title="Canvas content display is disabled.",l&&console.log("canvas drawn:",JSON.stringify([w.left,w.top,w.right-w.left,w.bottom-w.top].map(U=>Math.floor(U*100))))}},p.onerror=()=>{for(const R of C){const T=R.getContext("2d");E(T,R),R.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},p.src=location.href.replace("/snapshot","/closest-screenshot")}},y=()=>c(document);window.addEventListener("load",d),window.addEventListener("DOMContentLoaded",y)}return`
2
- (${e.toString()})(${it.toString()}, ${JSON.stringify(n)}${t.map(r=>`, "${r}"`).join("")})`}const Ln=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Lt="http://playwright.bloburl/#";function st(n){n.startsWith(Lt)&&(n=n.substring(Lt.length));try{const t=new URL(n);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",r=t.protocol==="file:";if(!e&&!r&&Ln.includes(t.protocol))return n;const s="pw-"+t.protocol.slice(0,t.protocol.length-1);return r||(t.protocol="https:"),t.hostname=t.hostname?`${s}--${t.hostname}`:s,r&&(t.protocol="https:"),t.toString()}catch{return n}}const rs=/url\(['"]?([\w-]+:)\/\//ig;function ss(n){return n.replace(rs,(t,e)=>!(e==="blob:")&&!(e==="file:")&&Ln.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}function it(n){const t=new URL(n);return t.pathname.endsWith("/snapshot.html")?t.searchParams.get("r"):n}class is{constructor(t,e){F(this,"_snapshotStorage");F(this,"_resourceLoader");F(this,"_snapshotIds",new Map);this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,r){const s=this._snapshot(t,e);if(!s)return new Response(null,{status:404});const i=s.render();return this._snapshotIds.set(r,s),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const r=this._snapshot(t,e),s=r==null?void 0:r.closestScreenshot();return s?new Response(await this._resourceLoader(s)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const r=this._snapshot(t,e);return this._respondWithJson(r?{viewport:r.viewport(),url:r.snapshot().frameUrl,timestamp:r.snapshot().timestamp,wallTime:r.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const r=e.get("name");return this._snapshotStorage.snapshotByName(t,r)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,r){let s;const i=this._snapshotIds.get(r);for(const S of t)if(s=i==null?void 0:i.resourceByUrl(as(S),e),s)break;if(!s)return new Response(null,{status:404});const a=s.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=s.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const f=new Headers;l!=="x-unknown"&&f.set("Content-Type",l);for(const{name:S,value:C}of s.response.headers)f.set(S,C);f.delete("Content-Encoding"),f.delete("Access-Control-Allow-Origin"),f.set("Access-Control-Allow-Origin","*"),f.delete("Content-Length"),f.set("Content-Length",String(o.size)),f.set("Cache-Control","public, max-age=31536000");const{status:b}=s.response,h=b===101||b===204||b===205||b===304;return new Response(h?null:o,{headers:f,status:s.response.status,statusText:s.response.statusText})}}function as(n){try{const t=new URL(n);return t.hash="",t.toString()}catch{return n}}function os(n){const t=new Xr,{files:e,stacks:r}=n;for(const s of r){const[i,a]=s;t.set(`call@${i}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}class cs{constructor(t){F(this,"_maxSize");F(this,"_map");F(this,"_size");this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const s=this._map.get(t);return this._map.delete(t),this._map.set(t,s),s.value}const r=e();for(;this._map.size&&this._size+r.size>this._maxSize;){const[s,i]=this._map.entries().next().value;this._size-=i.size,this._map.delete(s)}return this._map.set(t,r),this._size+=r.size,r.value}}class ls{constructor(){F(this,"_frameSnapshots",new Map);F(this,"_cache",new cs(1e8));F(this,"_contextToResources",new Map)}addResource(t,e){e.request.url=st(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,r){for(const o of e.resourceOverrides)o.url=st(o.url);let s=this._frameSnapshots.get(e.frameId);s||(s={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,s),e.isMainFrame&&this._frameSnapshots.set(e.pageId,s)),s.raw.push(e);const i=this._ensureResourcesForContext(t),a=new zr(this._cache,i,s.raw,r,s.raw.length-1);return s.renderers.push(a),a}snapshotByName(t,e){const r=this._frameSnapshots.get(t);return r==null?void 0:r.renderers.find(s=>s.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,r)=>(e._monotonicTime||0)-(r._monotonicTime||0))}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Mn extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const Mt=7;class fs{constructor(t,e){F(this,"_contextEntry");F(this,"_snapshotStorage");F(this,"_actionMap",new Map);F(this,"_version");F(this,"_pageEntries",new Map);F(this,"_jsHandles",new Map);F(this,"_consoleObjects",new Map);this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
3
- `))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const r of e)this._innerAppendEvent(r)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Mt)throw new Mn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"";break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const r=this._actionMap.get(t.callId);r.inputSnapshot=t.inputSnapshot,r.point=t.point;break}case"log":{const r=this._actionMap.get(t.callId);if(!r)return;r.log.push({time:t.time,message:t.message});break}case"after":{const r=this._actionMap.get(t.callId);r.afterSnapshot=t.afterSnapshot,r.endTime=t.endTime,r.result=t.result,r.error=t.error,r.attachments=t.attachments,r.annotations=t.annotations,t.point&&(r.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version||t.version;if(e===void 0)return[t];let r=[t];for(;e<Mt;++e)r=this[`_modernize_${e}_to_${e+1}`].call(this,r);return r}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const r of t)r.type!=="frame-snapshot"||!r.snapshot.isMainFrame||(r.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const r=e.snapshot;e.snapshot={_frameref:r.frameId,request:{url:r.url,method:r.method,headers:r.requestHeaders,postData:r.requestSha1?{_sha1:r.requestSha1}:void 0},response:{status:r.status,headers:r.responseHeaders,content:{mimeType:r.contentType,_sha1:r.responseSha1}},_monotonicTime:r.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const r of t){const s=this._modernize_event_3_to_4(r);s&&e.push(s)}return e}_modernize_event_3_to_4(t){var r,s,i,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(r=e.snapshots.find(o=>o.title==="before"))==null?void 0:r.snapshotName,inputSnapshot:(s=e.snapshots.find(o=>o.title==="input"))==null?void 0:s.snapshotName,afterSnapshot:(i=e.snapshots.find(o=>o.title==="after"))==null?void 0:i.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const r of t){const s=this._modernize_event_4_to_5(r);s&&e.push(s)}return e}_modernize_event_4_to_5(t){var e,r;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const s=(e=t.initializer.args)==null?void 0:e.map(i=>{if(i.guid){const a=this._jsHandles.get(i.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:i.preview||"",value:i.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:s}),null}if(t.type==="event"&&t.method==="console"){const s=this._consoleObjects.get(((r=t.params.message)==null?void 0:r.guid)||"");return s?{type:"console",time:t.time,pageId:t.pageId,messageType:s.type,text:s.text,args:s.args,location:s.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const r of t)if(e.push(r),!(r.type!=="after"||!r.log.length))for(const s of r.log)e.push({type:"log",callId:r.callId,message:s,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const r={type:"context-options",origin:"testRunner",version:7,browserName:"",options:{},platform:process.platform,wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(r)}for(const r of t){if(r.type==="context-options"){e.push({...r,monotonicTime:0,origin:"library",contextId:""});continue}!this._contextEntry.wallTime&&r.type==="before"&&(this._contextEntry.wallTime=r.wallTime),!this._contextEntry.startTime&&r.type==="before"&&(this._contextEntry.startTime=r.startTime),e.push(r)}return e}}class us{constructor(){F(this,"contextEntries",[]);F(this,"_snapshotStorage");F(this,"_backend");F(this,"_resourceToContentType",new Map)}async load(t,e){var o,l;this._backend=t;const r=[];let s=!1;for(const _ of await this._backend.entryNames()){const f=_.match(/(.+)\.trace$/);f&&r.push(f[1]||""),_.includes("src@")&&(s=!0)}if(!r.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new ls;const i=r.length*3;let a=0;for(const _ of r){const f=ds();f.traceUrl=t.traceURL(),f.hasSource=s;const b=new fs(f,this._snapshotStorage),h=await this._backend.readText(_+".trace")||"";b.appendTrace(h),e(++a,i);const S=await this._backend.readText(_+".network")||"";if(b.appendTrace(S),e(++a,i),f.actions=b.actions().sort((u,c)=>u.startTime-c.startTime),!t.isLive()){for(const u of f.actions.slice().reverse())if(!u.endTime&&!u.error)for(const c of f.actions)c.parentId===u.callId&&u.endTime<c.endTime&&(u.endTime=c.endTime)}const C=await this._backend.readText(_+".stacks");if(C){const u=os(JSON.parse(C));for(const c of f.actions)c.stack=c.stack||u.get(c.callId)}e(++a,i);for(const u of f.resources)(o=u.request.postData)!=null&&o._sha1&&this._resourceToContentType.set(u.request.postData._sha1,Ut(u.request.postData.mimeType)),(l=u.response.content)!=null&&l._sha1&&this._resourceToContentType.set(u.response.content._sha1,Ut(u.response.content.mimeType));this.contextEntries.push(f)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),r=this._resourceToContentType.get(t);return!e||r===void 0||r==="x-unknown"?e:new Blob([e],{type:r})}storage(){return this._snapshotStorage}}function Ut(n){const t=n.match(/^(.*);\s*charset=.*$/);return t?t[1]:n}function ds(){return{origin:"testRunner",traceUrl:"",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}const _s=15,L=0,ee=1,hs=2,X=-2,H=-3,Wt=-4,te=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Un=1440,ps=0,ms=4,ws=9,gs=5,bs=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ys=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],xs=[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],Es=[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,112,112],Ts=[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],Ss=[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],ne=15;function at(){const n=this;let t,e,r,s,i,a;function o(_,f,b,h,S,C,u,c,d,y,g){let m,E,p,R,T,A,x,w,O,I,v,k,D,U,N;I=0,T=b;do r[_[f+I]]++,I++,T--;while(T!==0);if(r[0]==b)return u[0]=-1,c[0]=0,L;for(w=c[0],A=1;A<=ne&&r[A]===0;A++);for(x=A,w<A&&(w=A),T=ne;T!==0&&r[T]===0;T--);for(p=T,w>T&&(w=T),c[0]=w,U=1<<A;A<T;A++,U<<=1)if((U-=r[A])<0)return H;if((U-=r[T])<0)return H;for(r[T]+=U,a[1]=A=0,I=1,D=2;--T!==0;)a[D]=A+=r[I],D++,I++;T=0,I=0;do(A=_[f+I])!==0&&(g[a[A]++]=T),I++;while(++T<b);for(b=a[p],a[0]=T=0,I=0,R=-1,k=-w,i[0]=0,v=0,N=0;x<=p;x++)for(m=r[x];m--!==0;){for(;x>k+w;){if(R++,k+=w,N=p-k,N=N>w?w:N,(E=1<<(A=x-k))>m+1&&(E-=m+1,D=x,A<N))for(;++A<N&&!((E<<=1)<=r[++D]);)E-=r[D];if(N=1<<A,y[0]+N>Un)return H;i[R]=v=y[0],y[0]+=N,R!==0?(a[R]=T,s[0]=A,s[1]=w,A=T>>>k-w,s[2]=v-i[R-1]-A,d.set(s,(i[R-1]+A)*3)):u[0]=v}for(s[1]=x-k,I>=b?s[0]=192:g[I]<h?(s[0]=g[I]<256?0:96,s[2]=g[I++]):(s[0]=C[g[I]-h]+16+64,s[2]=S[g[I++]-h]),E=1<<x-k,A=T>>>k;A<N;A+=E)d.set(s,(v+A)*3);for(A=1<<x-1;(T&A)!==0;A>>>=1)T^=A;for(T^=A,O=(1<<k)-1;(T&O)!=a[R];)R--,k-=w,O=(1<<k)-1}return U!==0&&p!=1?te:L}function l(_){let f;for(t||(t=[],e=[],r=new Int32Array(ne+1),s=[],i=new Int32Array(ne),a=new Int32Array(ne+1)),e.length<_&&(e=[]),f=0;f<_;f++)e[f]=0;for(f=0;f<ne+1;f++)r[f]=0;for(f=0;f<3;f++)s[f]=0;i.set(r.subarray(0,ne),0),a.set(r.subarray(0,ne+1),0)}n.inflate_trees_bits=function(_,f,b,h,S){let C;return l(19),t[0]=0,C=o(_,0,19,19,null,null,b,f,h,t,e),C==H?S.msg="oversubscribed dynamic bit lengths tree":(C==te||f[0]===0)&&(S.msg="incomplete dynamic bit lengths tree",C=H),C},n.inflate_trees_dynamic=function(_,f,b,h,S,C,u,c,d){let y;return l(288),t[0]=0,y=o(b,0,_,257,xs,Es,C,h,c,t,e),y!=L||h[0]===0?(y==H?d.msg="oversubscribed literal/length tree":y!=Wt&&(d.msg="incomplete literal/length tree",y=H),y):(l(288),y=o(b,_,f,0,Ts,Ss,u,S,c,t,e),y!=L||S[0]===0&&_>257?(y==H?d.msg="oversubscribed distance tree":y==te?(d.msg="incomplete distance tree",y=H):y!=Wt&&(d.msg="empty distance tree with lengths",y=H),y):L)}}at.inflate_trees_fixed=function(n,t,e,r){return n[0]=ws,t[0]=gs,e[0]=bs,r[0]=ys,L};const ve=0,Ht=1,Bt=2,jt=3,qt=4,Yt=5,Gt=6,Xe=7,Vt=8,Ne=9;function Rs(){const n=this;let t,e=0,r,s=0,i=0,a=0,o=0,l=0,_=0,f=0,b,h=0,S,C=0;function u(c,d,y,g,m,E,p,R){let T,A,x,w,O,I,v,k,D,U,N,Y,P,_e,M,W;v=R.next_in_index,k=R.avail_in,O=p.bitb,I=p.bitk,D=p.write,U=D<p.read?p.read-D-1:p.end-D,N=$[c],Y=$[d];do{for(;I<20;)k--,O|=(R.read_byte(v++)&255)<<I,I+=8;if(T=O&N,A=y,x=g,W=(x+T)*3,(w=A[W])===0){O>>=A[W+1],I-=A[W+1],p.win[D++]=A[W+2],U--;continue}do{if(O>>=A[W+1],I-=A[W+1],(w&16)!==0){for(w&=15,P=A[W+2]+(O&$[w]),O>>=w,I-=w;I<15;)k--,O|=(R.read_byte(v++)&255)<<I,I+=8;T=O&Y,A=m,x=E,W=(x+T)*3,w=A[W];do if(O>>=A[W+1],I-=A[W+1],(w&16)!==0){for(w&=15;I<w;)k--,O|=(R.read_byte(v++)&255)<<I,I+=8;if(_e=A[W+2]+(O&$[w]),O>>=w,I-=w,U-=P,D>=_e)M=D-_e,D-M>0&&2>D-M?(p.win[D++]=p.win[M++],p.win[D++]=p.win[M++],P-=2):(p.win.set(p.win.subarray(M,M+2),D),D+=2,M+=2,P-=2);else{M=D-_e;do M+=p.end;while(M<0);if(w=p.end-M,P>w){if(P-=w,D-M>0&&w>D-M)do p.win[D++]=p.win[M++];while(--w!==0);else p.win.set(p.win.subarray(M,M+w),D),D+=w,M+=w,w=0;M=0}}if(D-M>0&&P>D-M)do p.win[D++]=p.win[M++];while(--P!==0);else p.win.set(p.win.subarray(M,M+P),D),D+=P,M+=P,P=0;break}else if((w&64)===0)T+=A[W+2],T+=O&$[w],W=(x+T)*3,w=A[W];else return R.msg="invalid distance code",P=R.avail_in-k,P=I>>3<P?I>>3:P,k+=P,v-=P,I-=P<<3,p.bitb=O,p.bitk=I,R.avail_in=k,R.total_in+=v-R.next_in_index,R.next_in_index=v,p.write=D,H;while(!0);break}if((w&64)===0){if(T+=A[W+2],T+=O&$[w],W=(x+T)*3,(w=A[W])===0){O>>=A[W+1],I-=A[W+1],p.win[D++]=A[W+2],U--;break}}else return(w&32)!==0?(P=R.avail_in-k,P=I>>3<P?I>>3:P,k+=P,v-=P,I-=P<<3,p.bitb=O,p.bitk=I,R.avail_in=k,R.total_in+=v-R.next_in_index,R.next_in_index=v,p.write=D,ee):(R.msg="invalid literal/length code",P=R.avail_in-k,P=I>>3<P?I>>3:P,k+=P,v-=P,I-=P<<3,p.bitb=O,p.bitk=I,R.avail_in=k,R.total_in+=v-R.next_in_index,R.next_in_index=v,p.write=D,H)}while(!0)}while(U>=258&&k>=10);return P=R.avail_in-k,P=I>>3<P?I>>3:P,k+=P,v-=P,I-=P<<3,p.bitb=O,p.bitk=I,R.avail_in=k,R.total_in+=v-R.next_in_index,R.next_in_index=v,p.write=D,L}n.init=function(c,d,y,g,m,E){t=ve,_=c,f=d,b=y,h=g,S=m,C=E,r=null},n.proc=function(c,d,y){let g,m,E,p=0,R=0,T=0,A,x,w,O;for(T=d.next_in_index,A=d.avail_in,p=c.bitb,R=c.bitk,x=c.write,w=x<c.read?c.read-x-1:c.end-x;;)switch(t){case ve:if(w>=258&&A>=10&&(c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,y=u(_,f,b,h,S,C,c,d),T=d.next_in_index,A=d.avail_in,p=c.bitb,R=c.bitk,x=c.write,w=x<c.read?c.read-x-1:c.end-x,y!=L)){t=y==ee?Xe:Ne;break}i=_,r=b,s=h,t=Ht;case Ht:for(g=i;R<g;){if(A!==0)y=L;else return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}if(m=(s+(p&$[g]))*3,p>>>=r[m+1],R-=r[m+1],E=r[m],E===0){a=r[m+2],t=Gt;break}if((E&16)!==0){o=E&15,e=r[m+2],t=Bt;break}if((E&64)===0){i=E,s=m/3+r[m+2];break}if((E&32)!==0){t=Xe;break}return t=Ne,d.msg="invalid literal/length code",y=H,c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);case Bt:for(g=o;R<g;){if(A!==0)y=L;else return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}e+=p&$[g],p>>=g,R-=g,i=f,r=S,s=C,t=jt;case jt:for(g=i;R<g;){if(A!==0)y=L;else return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}if(m=(s+(p&$[g]))*3,p>>=r[m+1],R-=r[m+1],E=r[m],(E&16)!==0){o=E&15,l=r[m+2],t=qt;break}if((E&64)===0){i=E,s=m/3+r[m+2];break}return t=Ne,d.msg="invalid distance code",y=H,c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);case qt:for(g=o;R<g;){if(A!==0)y=L;else return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}l+=p&$[g],p>>=g,R-=g,t=Yt;case Yt:for(O=x-l;O<0;)O+=c.end;for(;e!==0;){if(w===0&&(x==c.end&&c.read!==0&&(x=0,w=x<c.read?c.read-x-1:c.end-x),w===0&&(c.write=x,y=c.inflate_flush(d,y),x=c.write,w=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,w=x<c.read?c.read-x-1:c.end-x),w===0)))return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);c.win[x++]=c.win[O++],w--,O==c.end&&(O=0),e--}t=ve;break;case Gt:if(w===0&&(x==c.end&&c.read!==0&&(x=0,w=x<c.read?c.read-x-1:c.end-x),w===0&&(c.write=x,y=c.inflate_flush(d,y),x=c.write,w=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,w=x<c.read?c.read-x-1:c.end-x),w===0)))return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);y=L,c.win[x++]=a,w--,t=ve;break;case Xe:if(R>7&&(R-=8,A++,T--),c.write=x,y=c.inflate_flush(d,y),x=c.write,w=x<c.read?c.read-x-1:c.end-x,c.read!=c.write)return c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);t=Vt;case Vt:return y=ee,c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);case Ne:return y=H,c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y);default:return y=X,c.bitb=p,c.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,c.write=x,c.inflate_flush(d,y)}},n.free=function(){}}const Zt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],we=0,$e=1,Kt=2,Xt=3,$t=4,Jt=5,Fe=6,Le=7,Qt=8,he=9;function As(n,t){const e=this;let r=we,s=0,i=0,a=0,o;const l=[0],_=[0],f=new Rs;let b=0,h=new Int32Array(Un*3);const S=0,C=new at;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(u,c){c&&(c[0]=S),r==Fe&&f.free(u),r=we,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(n,null),e.inflate_flush=function(u,c){let d,y,g;return y=u.next_out_index,g=e.read,d=(g<=e.write?e.write:e.end)-g,d>u.avail_out&&(d=u.avail_out),d!==0&&c==te&&(c=L),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(g,g+d),y),y+=d,g+=d,g==e.end&&(g=0,e.write==e.end&&(e.write=0),d=e.write-g,d>u.avail_out&&(d=u.avail_out),d!==0&&c==te&&(c=L),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(g,g+d),y),y+=d,g+=d),u.next_out_index=y,e.read=g,c},e.proc=function(u,c){let d,y,g,m,E,p,R,T;for(m=u.next_in_index,E=u.avail_in,y=e.bitb,g=e.bitk,p=e.write,R=p<e.read?e.read-p-1:e.end-p;;){let A,x,w,O,I,v,k,D;switch(r){case we:for(;g<3;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}switch(d=y&7,b=d&1,d>>>1){case 0:y>>>=3,g-=3,d=g&7,y>>>=d,g-=d,r=$e;break;case 1:A=[],x=[],w=[[]],O=[[]],at.inflate_trees_fixed(A,x,w,O),f.init(A[0],x[0],w[0],0,O[0],0),y>>>=3,g-=3,r=Fe;break;case 2:y>>>=3,g-=3,r=Xt;break;case 3:return y>>>=3,g-=3,r=he,u.msg="invalid block type",c=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c)}break;case $e:for(;g<32;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if((~y>>>16&65535)!=(y&65535))return r=he,u.msg="invalid stored block lengths",c=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);s=y&65535,y=g=0,r=s!==0?Kt:b!==0?Le:we;break;case Kt:if(E===0||R===0&&(p==e.end&&e.read!==0&&(p=0,R=p<e.read?e.read-p-1:e.end-p),R===0&&(e.write=p,c=e.inflate_flush(u,c),p=e.write,R=p<e.read?e.read-p-1:e.end-p,p==e.end&&e.read!==0&&(p=0,R=p<e.read?e.read-p-1:e.end-p),R===0)))return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);if(c=L,d=s,d>E&&(d=E),d>R&&(d=R),e.win.set(u.read_buf(m,d),p),m+=d,E-=d,p+=d,R-=d,(s-=d)!==0)break;r=b!==0?Le:we;break;case Xt:for(;g<14;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(i=d=y&16383,(d&31)>29||(d>>5&31)>29)return r=he,u.msg="too many length or distance symbols",c=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);if(d=258+(d&31)+(d>>5&31),!o||o.length<d)o=[];else for(T=0;T<d;T++)o[T]=0;y>>>=14,g-=14,a=0,r=$t;case $t:for(;a<4+(i>>>10);){for(;g<3;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}o[Zt[a++]]=y&7,y>>>=3,g-=3}for(;a<19;)o[Zt[a++]]=0;if(l[0]=7,d=C.inflate_trees_bits(o,l,_,h,u),d!=L)return c=d,c==H&&(o=null,r=he),e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);a=0,r=Jt;case Jt:for(;d=i,!(a>=258+(d&31)+(d>>5&31));){let U,N;for(d=l[0];g<d;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(d=h[(_[0]+(y&$[d]))*3+1],N=h[(_[0]+(y&$[d]))*3+2],N<16)y>>>=d,g-=d,o[a++]=N;else{for(T=N==18?7:N-14,U=N==18?11:3;g<d+T;){if(E!==0)c=L;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(y>>>=d,g-=d,U+=y&$[T],y>>>=T,g-=T,T=a,d=i,T+U>258+(d&31)+(d>>5&31)||N==16&&T<1)return o=null,r=he,u.msg="invalid bit length repeat",c=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);N=N==16?o[T-1]:0;do o[T++]=N;while(--U!==0);a=T}}if(_[0]=-1,I=[],v=[],k=[],D=[],I[0]=9,v[0]=6,d=i,d=C.inflate_trees_dynamic(257+(d&31),1+(d>>5&31),o,I,v,k,D,h,u),d!=L)return d==H&&(o=null,r=he),c=d,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);f.init(I[0],v[0],h,k[0],h,D[0]),r=Fe;case Fe:if(e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,(c=f.proc(e,u,c))!=ee)return e.inflate_flush(u,c);if(c=L,f.free(u),m=u.next_in_index,E=u.avail_in,y=e.bitb,g=e.bitk,p=e.write,R=p<e.read?e.read-p-1:e.end-p,b===0){r=we;break}r=Le;case Le:if(e.write=p,c=e.inflate_flush(u,c),p=e.write,R=p<e.read?e.read-p-1:e.end-p,e.read!=e.write)return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);r=Qt;case Qt:return c=ee,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);case he:return c=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c);default:return c=X,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,c)}}},e.free=function(u){e.reset(u,null),e.win=null,h=null},e.set_dictionary=function(u,c,d){e.win.set(u.subarray(c,c+d),0),e.read=e.write=d},e.sync_point=function(){return r==$e?1:0}}const Cs=32,Is=8,Os=0,zt=1,en=2,tn=3,nn=4,rn=5,Je=6,xe=7,sn=12,re=13,ks=[0,0,255,255];function Ds(){const n=this;n.mode=0,n.method=0,n.was=[0],n.need=0,n.marker=0,n.wbits=0;function t(e){return!e||!e.istate?X:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=xe,e.istate.blocks.reset(e,null),L)}n.inflateEnd=function(e){return n.blocks&&n.blocks.free(e),n.blocks=null,L},n.inflateInit=function(e,r){return e.msg=null,n.blocks=null,r<8||r>15?(n.inflateEnd(e),X):(n.wbits=r,e.istate.blocks=new As(e,1<<r),t(e),L)},n.inflate=function(e,r){let s,i;if(!e||!e.istate||!e.next_in)return X;const a=e.istate;for(r=r==ms?te:L,s=te;;)switch(a.mode){case Os:if(e.avail_in===0)return s;if(s=r,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Is){a.mode=re,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=re,e.msg="invalid win size",a.marker=5;break}a.mode=zt;case zt:if(e.avail_in===0)return s;if(s=r,e.avail_in--,e.total_in++,i=e.read_byte(e.next_in_index++)&255,((a.method<<8)+i)%31!==0){a.mode=re,e.msg="incorrect header check",a.marker=5;break}if((i&Cs)===0){a.mode=xe;break}a.mode=en;case en:if(e.avail_in===0)return s;s=r,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=tn;case tn:if(e.avail_in===0)return s;s=r,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=nn;case nn:if(e.avail_in===0)return s;s=r,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=rn;case rn:return e.avail_in===0?s:(s=r,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=Je,hs);case Je:return a.mode=re,e.msg="need dictionary",a.marker=0,X;case xe:if(s=a.blocks.proc(e,s),s==H){a.mode=re,a.marker=0;break}if(s==L&&(s=r),s!=ee)return s;s=r,a.blocks.reset(e,a.was),a.mode=sn;case sn:return e.avail_in=0,ee;case re:return H;default:return X}},n.inflateSetDictionary=function(e,r,s){let i=0,a=s;if(!e||!e.istate||e.istate.mode!=Je)return X;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,i=s-a),o.blocks.set_dictionary(r,i,a),o.mode=xe,L},n.inflateSync=function(e){let r,s,i,a,o;if(!e||!e.istate)return X;const l=e.istate;if(l.mode!=re&&(l.mode=re,l.marker=0),(r=e.avail_in)===0)return te;for(s=e.next_in_index,i=l.marker;r!==0&&i<4;)e.read_byte(s)==ks[i]?i++:e.read_byte(s)!==0?i=0:i=4-i,s++,r--;return e.total_in+=s-e.next_in_index,e.next_in_index=s,e.avail_in=r,l.marker=i,i!=4?H:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=xe,L)},n.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?X:e.istate.blocks.sync_point()}}function Wn(){}Wn.prototype={inflateInit(n){const t=this;return t.istate=new Ds,n||(n=_s),t.istate.inflateInit(t,n)},inflate(n){const t=this;return t.istate?t.istate.inflate(t,n):X},inflateEnd(){const n=this;if(!n.istate)return X;const t=n.istate.inflateEnd(n);return n.istate=null,t},inflateSync(){const n=this;return n.istate?n.istate.inflateSync(n):X},inflateSetDictionary(n,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,n,t):X},read_byte(n){return this.next_in[n]},read_buf(n,t){return this.next_in.subarray(n,n+t)}};function Ps(n){const t=this,e=new Wn,r=n&&n.chunkSize?Math.floor(n.chunkSize*2):128*1024,s=ps,i=new Uint8Array(r);let a=!1;e.inflateInit(),e.next_out=i,t.append=function(o,l){const _=[];let f,b,h=0,S=0,C=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=r,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),f=e.inflate(s),a&&f===te){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==L&&f!==ee)throw new Error("inflating: "+e.msg);if((a||f===ee)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===r?_.push(new Uint8Array(i)):_.push(i.subarray(0,e.next_out_index))),C+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=h&&(l(e.next_in_index),h=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(b=new Uint8Array(C),_.forEach(function(u){b.set(u,S),S+=u.length})):b=_[0]?new Uint8Array(_[0]):new Uint8Array,b}},t.flush=function(){e.inflateEnd()}}const pe=4294967295,ae=65535,vs=8,Ns=0,Fs=99,Ls=67324752,Ms=134695760,an=33639248,Us=101010256,on=101075792,Ws=117853008,oe=22,Qe=20,ze=56,Hs=1,Bs=39169,js=10,qs=1,Ys=21589,Gs=28789,Vs=25461,Zs=6534,cn=1,Ks=6,ln=8,fn=2048,un=16,dn=16384,_n=73,hn="/",V=void 0,ue="undefined",Oe="function";class pn{constructor(t){return class extends TransformStream{constructor(e,r){const s=new t(r);super({transform(i,a){a.enqueue(s.append(i))},flush(i){const a=s.flush();a&&i.enqueue(a)}})}}}}const Xs=64;let Hn=2;try{typeof navigator!=ue&&navigator.hardwareConcurrency&&(Hn=navigator.hardwareConcurrency)}catch{}const $s={chunkSize:512*1024,maxWorkers:Hn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:V,CompressionStreamNative:typeof CompressionStream!=ue&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=ue&&DecompressionStream},ce=Object.assign({},$s);function Bn(){return ce}function Js(n){return Math.max(n.chunkSize,Xs)}function jn(n){const{baseURL:t,chunkSize:e,maxWorkers:r,terminateWorkerTimeout:s,useCompressionStream:i,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:f,workerScripts:b}=n;if(se("baseURL",t),se("chunkSize",e),se("maxWorkers",r),se("terminateWorkerTimeout",s),se("useCompressionStream",i),se("useWebWorkers",a),o&&(ce.CompressionStream=new pn(o)),l&&(ce.DecompressionStream=new pn(l)),se("CompressionStream",_),se("DecompressionStream",f),b!==V){const{deflate:h,inflate:S}=b;if((h||S)&&(ce.workerScripts||(ce.workerScripts={})),h){if(!Array.isArray(h))throw new Error("workerScripts.deflate must be an array");ce.workerScripts.deflate=h}if(S){if(!Array.isArray(S))throw new Error("workerScripts.inflate must be an array");ce.workerScripts.inflate=S}}}function se(n,t){t!==V&&(ce[n]=t)}function Qs(){return"application/octet-stream"}const qn=[];for(let n=0;n<256;n++){let t=n;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;qn[n]=t}class Be{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let r=0,s=t.length|0;r<s;r++)e=e>>>8^qn[(e^t[r])&255];this.crc=e}get(){return~this.crc}}class Yn extends TransformStream{constructor(){let t;const e=new Be;super({transform(r,s){e.append(r),s.enqueue(r)},flush(){const r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e.get()),t.value=r}}),t=this}}function zs(n){if(typeof TextEncoder==ue){n=unescape(encodeURIComponent(n));const t=new Uint8Array(n.length);for(let e=0;e<t.length;e++)t[e]=n.charCodeAt(e);return t}else return new TextEncoder().encode(n)}const K={concat(n,t){if(n.length===0||t.length===0)return n.concat(t);const e=n[n.length-1],r=K.getPartial(e);return r===32?n.concat(t):K._shiftRight(t,r,e|0,n.slice(0,n.length-1))},bitLength(n){const t=n.length;if(t===0)return 0;const e=n[t-1];return(t-1)*32+K.getPartial(e)},clamp(n,t){if(n.length*32<t)return n;n=n.slice(0,Math.ceil(t/32));const e=n.length;return t=t&31,e>0&&t&&(n[e-1]=K.partial(t,n[e-1]&2147483648>>t-1,1)),n},partial(n,t,e){return n===32?t:(e?t|0:t<<32-n)+n*1099511627776},getPartial(n){return Math.round(n/1099511627776)||32},_shiftRight(n,t,e,r){for(r===void 0&&(r=[]);t>=32;t-=32)r.push(e),e=0;if(t===0)return r.concat(n);for(let a=0;a<n.length;a++)r.push(e|n[a]>>>t),e=n[a]<<32-t;const s=n.length?n[n.length-1]:0,i=K.getPartial(s);return r.push(K.partial(t+i&31,t+i>32?e:r.pop(),1)),r}},je={bytes:{fromBits(n){const e=K.bitLength(n)/8,r=new Uint8Array(e);let s;for(let i=0;i<e;i++)(i&3)===0&&(s=n[i/4]),r[i]=s>>>24,s<<=8;return r},toBits(n){const t=[];let e,r=0;for(e=0;e<n.length;e++)r=r<<8|n[e],(e&3)===3&&(t.push(r),r=0);return e&3&&t.push(K.partial(8*(e&3),r)),t}}},Gn={};Gn.sha1=class{constructor(n){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],n?(t._h=n._h.slice(0),t._buffer=n._buffer.slice(0),t._length=n._length):t.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const t=this;typeof n=="string"&&(n=je.utf8String.toBits(n));const e=t._buffer=K.concat(t._buffer,n),r=t._length,s=t._length=r+K.bitLength(n);if(s>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const i=new Uint32Array(e);let a=0;for(let o=t.blockSize+r-(t.blockSize+r&t.blockSize-1);o<=s;o+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const n=this;let t=n._buffer;const e=n._h;t=K.concat(t,[K.partial(1,1)]);for(let r=t.length+2;r&15;r++)t.push(0);for(t.push(Math.floor(n._length/4294967296)),t.push(n._length|0);t.length;)n._block(t.splice(0,16));return n.reset(),e}_f(n,t,e,r){if(n<=19)return t&e|~t&r;if(n<=39)return t^e^r;if(n<=59)return t&e|t&r|e&r;if(n<=79)return t^e^r}_S(n,t){return t<<n|t>>>32-n}_block(n){const t=this,e=t._h,r=Array(80);for(let _=0;_<16;_++)r[_]=n[_];let s=e[0],i=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(r[_]=t._S(1,r[_-3]^r[_-8]^r[_-14]^r[_-16]));const f=t._S(5,s)+t._f(_,i,a,o)+l+r[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,i),i=s,s=f}e[0]=e[0]+s|0,e[1]=e[1]+i|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const Vn={};Vn.aes=class{constructor(n){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],r=t._tables[1],s=n.length;let i,a,o,l=1;if(s!==4&&s!==6&&s!==8)throw new Error("invalid aes key size");for(t._key=[a=n.slice(0),o=[]],i=s;i<4*s+28;i++){let _=a[i-1];(i%s===0||s===8&&i%s===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],i%s===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[i]=a[i-s]^_}for(let _=0;i;_++,i--){const f=a[_&3?i:i-4];i<=4||_<4?o[_]=f:o[_]=r[0][e[f>>>24]]^r[1][e[f>>16&255]]^r[2][e[f>>8&255]]^r[3][e[f&255]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],t=this._tables[1],e=n[4],r=t[4],s=[],i=[];let a,o,l,_;for(let f=0;f<256;f++)i[(s[f]=f<<1^(f>>7)*283)^f]=f;for(let f=a=0;!e[f];f^=o||1,a=i[a]||1){let b=a^a<<1^a<<2^a<<3^a<<4;b=b>>8^b&255^99,e[f]=b,r[b]=f,_=s[l=s[o=s[f]]];let h=_*16843009^l*65537^o*257^f*16843008,S=s[b]*257^b*16843008;for(let C=0;C<4;C++)n[C][f]=S=S<<24^S>>>8,t[C][b]=h=h<<24^h>>>8}for(let f=0;f<5;f++)n[f]=n[f].slice(0),t[f]=t[f].slice(0)}_crypt(n,t){if(n.length!==4)throw new Error("invalid aes block size");const e=this._key[t],r=e.length/4-2,s=[0,0,0,0],i=this._tables[t],a=i[0],o=i[1],l=i[2],_=i[3],f=i[4];let b=n[0]^e[0],h=n[t?3:1]^e[1],S=n[2]^e[2],C=n[t?1:3]^e[3],u=4,c,d,y;for(let g=0;g<r;g++)c=a[b>>>24]^o[h>>16&255]^l[S>>8&255]^_[C&255]^e[u],d=a[h>>>24]^o[S>>16&255]^l[C>>8&255]^_[b&255]^e[u+1],y=a[S>>>24]^o[C>>16&255]^l[b>>8&255]^_[h&255]^e[u+2],C=a[C>>>24]^o[b>>16&255]^l[h>>8&255]^_[S&255]^e[u+3],u+=4,b=c,h=d,S=y;for(let g=0;g<4;g++)s[t?3&-g:g]=f[b>>>24]<<24^f[h>>16&255]<<16^f[S>>8&255]<<8^f[C&255]^e[u++],c=b,b=h,h=S,S=C,C=c;return s}};const ei={getRandomValues(n){const t=new Uint32Array(n.buffer),e=r=>{let s=987654321;const i=4294967295;return function(){return s=36969*(s&65535)+(s>>16)&i,r=18e3*(r&65535)+(r>>16)&i,(((s<<16)+r&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let r=0,s;r<n.length;r+=4){const i=e((s||Math.random())*4294967296);s=i()*987654071,t[r/4]=i()*4294967296|0}return n}},Zn={};Zn.ctrGladman=class{constructor(n,t){this._prf=n,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if((n>>24&255)===255){let t=n>>16&255,e=n>>8&255,r=n&255;t===255?(t=0,e===255?(e=0,r===255?r=0:++r):++e):++t,n=0,n+=t<<16,n+=e<<8,n+=r}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,t,e){let r;if(!(r=t.length))return[];const s=K.bitLength(t);for(let i=0;i<r;i+=4){this.incCounter(e);const a=n.encrypt(e);t[i]^=a[0],t[i+1]^=a[1],t[i+2]^=a[2],t[i+3]^=a[3]}return K.clamp(t,s)}};const me={importKey(n){return new me.hmacSha1(je.bytes.toBits(n))},pbkdf2(n,t,e,r){if(e=e||1e4,r<0||e<0)throw new Error("invalid params to pbkdf2");const s=(r>>5)+1<<2;let i,a,o,l,_;const f=new ArrayBuffer(s),b=new DataView(f);let h=0;const S=K;for(t=je.bytes.toBits(t),_=1;h<(s||1);_++){for(i=a=n.encrypt(S.concat(t,[_])),o=1;o<e;o++)for(a=n.encrypt(a),l=0;l<a.length;l++)i[l]^=a[l];for(o=0;h<(s||1)&&o<i.length;o++)b.setInt32(h,i[o]),h+=4}return f.slice(0,r/8)}};me.hmacSha1=class{constructor(n){const t=this,e=t._hash=Gn.sha1,r=[[],[]];t._baseHash=[new e,new e];const s=t._baseHash[0].blockSize/32;n.length>s&&(n=new e().update(n).finalize());for(let i=0;i<s;i++)r[0][i]=n[i]^909522486,r[1][i]=n[i]^1549556828;t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new e(t._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){const t=this;t._updated=!0,t._resultHash.update(n)}digest(){const n=this,t=n._resultHash.finalize(),e=new n._hash(n._baseHash[1]).update(t).finalize();return n.reset(),e}encrypt(n){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}};const ti=typeof crypto!=ue&&typeof crypto.getRandomValues==Oe,mt="Invalid password",wt="Invalid signature",gt="zipjs-abort-check-password";function Kn(n){return ti?crypto.getRandomValues(n):ei.getRandomValues(n)}const ge=16,ni="raw",Xn={name:"PBKDF2"},ri={name:"HMAC"},si="SHA-1",ii=Object.assign({hash:ri},Xn),ot=Object.assign({iterations:1e3,hash:{name:si}},Xn),ai=["deriveBits"],Se=[8,12,16],Ee=[16,24,32],ie=10,oi=[0,0,0,0],Ye=typeof crypto!=ue,ke=Ye&&crypto.subtle,$n=Ye&&typeof ke!=ue,Q=je.bytes,ci=Vn.aes,li=Zn.ctrGladman,fi=me.hmacSha1;let mn=Ye&&$n&&typeof ke.importKey==Oe,wn=Ye&&$n&&typeof ke.deriveBits==Oe;class ui extends TransformStream{constructor({password:t,rawPassword:e,signed:r,encryptionStrength:s,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:zn(t,e),signed:r,strength:s-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:f,resolveReady:b,ready:h}=l;_?(await _i(l,f,_,J(a,0,Se[f]+2)),a=J(a,Se[f]+2),i?o.error(new Error(gt)):b()):await h;const S=new Uint8Array(a.length-ie-(a.length-ie)%ge);o.enqueue(Jn(l,a,S,0,ie,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:f,ready:b}=this;if(_&&l){await b;const h=J(f,0,f.length-ie),S=J(f,f.length-ie);let C=new Uint8Array;if(h.length){const u=Ae(Q,h);_.update(u);const c=l.update(u);C=Re(Q,c)}if(o){const u=J(Re(Q,_.digest()),0,ie);for(let c=0;c<ie;c++)if(u[c]!=S[c])throw new Error(wt)}a.enqueue(C)}}})}}class di extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:r}){let s;super({start(){Object.assign(this,{ready:new Promise(i=>this.resolveReady=i),password:zn(t,e),strength:r-1,pending:new Uint8Array})},async transform(i,a){const o=this,{password:l,strength:_,resolveReady:f,ready:b}=o;let h=new Uint8Array;l?(h=await hi(o,_,l),f()):await b;const S=new Uint8Array(h.length+i.length-i.length%ge);S.set(h,0),a.enqueue(Jn(o,i,S,h.length,0))},async flush(i){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let f=new Uint8Array;if(l.length){const b=a.update(Ae(Q,l));o.update(b),f=Re(Q,b)}s.signature=Re(Q,o.digest()).slice(0,ie),i.enqueue(bt(f,s.signature))}}}),s=this}}function Jn(n,t,e,r,s,i){const{ctr:a,hmac:o,pending:l}=n,_=t.length-s;l.length&&(t=bt(l,t),e=wi(e,_-_%ge));let f;for(f=0;f<=_-ge;f+=ge){const b=Ae(Q,J(t,f,f+ge));i&&o.update(b);const h=a.update(b);i||o.update(h),e.set(Re(Q,h),f+r)}return n.pending=J(t,f),e}async function _i(n,t,e,r){const s=await Qn(n,t,e,J(r,0,Se[t])),i=J(r,Se[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new Error(mt)}async function hi(n,t,e){const r=Kn(new Uint8Array(Se[t])),s=await Qn(n,t,e,r);return bt(r,s)}async function Qn(n,t,e,r){n.password=null;const s=await pi(ni,e,ii,!1,ai),i=await mi(Object.assign({salt:r},ot),s,8*(Ee[t]*2+2)),a=new Uint8Array(i),o=Ae(Q,J(a,0,Ee[t])),l=Ae(Q,J(a,Ee[t],Ee[t]*2)),_=J(a,Ee[t]*2);return Object.assign(n,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new li(new ci(o),Array.from(oi)),hmac:new fi(l)}),_}async function pi(n,t,e,r,s){if(mn)try{return await ke.importKey(n,t,e,r,s)}catch{return mn=!1,me.importKey(t)}else return me.importKey(t)}async function mi(n,t,e){if(wn)try{return await ke.deriveBits(n,t,e)}catch{return wn=!1,me.pbkdf2(t,n.salt,ot.iterations,e)}else return me.pbkdf2(t,n.salt,ot.iterations,e)}function zn(n,t){return t===V?zs(n):t}function bt(n,t){let e=n;return n.length+t.length&&(e=new Uint8Array(n.length+t.length),e.set(n,0),e.set(t,n.length)),e}function wi(n,t){if(t&&t>n.length){const e=n;n=new Uint8Array(t),n.set(e,0)}return n}function J(n,t,e){return n.subarray(t,e)}function Re(n,t){return n.fromBits(t)}function Ae(n,t){return n.toBits(t)}const be=12;class gi extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:r}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),er(this,t)},transform(s,i){const a=this;if(a.password){const o=gn(a,s.subarray(0,be));if(a.password=null,o[be-1]!=a.passwordVerification)throw new Error(mt);s=s.subarray(be)}r?i.error(new Error(gt)):i.enqueue(gn(a,s))}})}}class bi extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),er(this,t)},transform(r,s){const i=this;let a,o;if(i.password){i.password=null;const l=Kn(new Uint8Array(be));l[be-1]=i.passwordVerification,a=new Uint8Array(r.length+l.length),a.set(bn(i,l),0),o=be}else a=new Uint8Array(r.length),o=0;a.set(bn(i,r),o),s.enqueue(a)}})}}function gn(n,t){const e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=tr(n)^t[r],yt(n,e[r]);return e}function bn(n,t){const e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=tr(n)^t[r],yt(n,t[r]);return e}function er(n,t){const e=[305419896,591751049,878082192];Object.assign(n,{keys:e,crcKey0:new Be(e[0]),crcKey2:new Be(e[2])});for(let r=0;r<t.length;r++)yt(n,t.charCodeAt(r))}function yt(n,t){let[e,r,s]=n.keys;n.crcKey0.append([t]),e=~n.crcKey0.get(),r=yn(Math.imul(yn(r+nr(e)),134775813)+1),n.crcKey2.append([r>>>24]),s=~n.crcKey2.get(),n.keys=[e,r,s]}function tr(n){const t=n.keys[2]|2;return nr(Math.imul(t,t^1)>>>8)}function nr(n){return n&255}function yn(n){return n&4294967295}const xn="deflate-raw";class yi extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:r,CompressionStreamNative:s}){super({});const{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:f}=t,b=this;let h,S,C=rr(super.readable);(!a||l)&&_&&(h=new Yn,C=z(C,h)),i&&(C=ir(C,o,{level:f,chunkSize:e},s,r)),a&&(l?C=z(C,new bi(t)):(S=new di(t),C=z(C,S))),sr(b,C,()=>{let u;a&&!l&&(u=S.signature),(!a||l)&&_&&(u=new DataView(h.value.buffer).getUint32(0)),b.signature=u})}}class xi extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:r,DecompressionStreamNative:s}){super({});const{zipCrypto:i,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:f}=t;let b,h,S=rr(super.readable);a&&(i?S=z(S,new gi(t)):(h=new ui(t),S=z(S,h))),_&&(S=ir(S,f,{chunkSize:e},s,r)),(!a||i)&&o&&(b=new Yn,S=z(S,b)),sr(this,S,()=>{if((!a||i)&&o){const C=new DataView(b.value.buffer);if(l!=C.getUint32(0,!1))throw new Error(wt)}})}}function rr(n){return z(n,new TransformStream({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function sr(n,t,e){t=z(t,new TransformStream({flush:e})),Object.defineProperty(n,"readable",{get(){return t}})}function ir(n,t,e,r,s){try{const i=t&&r?r:s;n=z(n,new i(xn,e))}catch{if(t)try{n=z(n,new s(xn,e))}catch{return n}else return n}return n}function z(n,t){return n.pipeThrough(t)}const Ei="message",Ti="start",Si="pull",En="data",Ri="ack",Tn="close",Ai="deflate",ar="inflate";class Ci extends TransformStream{constructor(t,e){super({});const r=this,{codecType:s}=t;let i;s.startsWith(Ai)?i=yi:s.startsWith(ar)&&(i=xi);let a=0,o=0;const l=new i(t,e),_=super.readable,f=new TransformStream({transform(h,S){h&&h.length&&(o+=h.length,S.enqueue(h))},flush(){Object.assign(r,{inputSize:o})}}),b=new TransformStream({transform(h,S){h&&h.length&&(a+=h.length,S.enqueue(h))},flush(){const{signature:h}=l;Object.assign(r,{signature:h,outputSize:a,inputSize:o})}});Object.defineProperty(r,"readable",{get(){return _.pipeThrough(f).pipeThrough(l).pipeThrough(b)}})}}class Ii extends TransformStream{constructor(t){let e;super({transform:r,flush(s){e&&e.length&&s.enqueue(e)}});function r(s,i){if(e){const a=new Uint8Array(e.length+s.length);a.set(e),a.set(s,e.length),s=a,e=null}s.length>t?(i.enqueue(s.slice(0,t)),r(s.slice(t),i)):e=s}}}let or=typeof Worker!=ue;class et{constructor(t,{readable:e,writable:r},{options:s,config:i,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},f){const{signal:b}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new Ii(i.chunkSize)).pipeThrough(new Oi(e,a),{signal:b}),writable:r,options:Object.assign({},s),scripts:_,transferStreams:l,terminate(){return new Promise(h=>{const{worker:S,busy:C}=t;S?(C?t.resolveTerminated=h:(S.terminate(),h()),t.interface=null):h()})},onTaskFinished(){const{resolveTerminated:h}=t;h&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),h()),t.busy=!1,f(t)}}),(o&&or?ki:cr)(t,i)}}class Oi extends TransformStream{constructor(t,{onstart:e,onprogress:r,size:s,onend:i}){let a=0;super({async start(){e&&await tt(e,s)},async transform(o,l){a+=o.length,r&&await tt(r,a,s),l.enqueue(o)},async flush(){t.size=a,i&&await tt(i,a)}})}}async function tt(n,...t){try{await n(...t)}catch{}}function cr(n,t){return{run:()=>Di(n,t)}}function ki(n,t){const{baseURL:e,chunkSize:r}=t;if(!n.interface){let s;try{s=Ni(n.scripts[0],e,n)}catch{return or=!1,cr(n,t)}Object.assign(n,{worker:s,interface:{run:()=>Pi(n,{chunkSize:r})}})}return n.interface}async function Di({options:n,readable:t,writable:e,onTaskFinished:r},s){try{const i=new Ci(n,s);await t.pipeThrough(i).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=i;return{signature:a,inputSize:o,outputSize:l}}finally{r()}}async function Pi(n,t){let e,r;const s=new Promise((h,S)=>{e=h,r=S});Object.assign(n,{reader:null,writer:null,resolveResult:e,rejectResult:r,result:s});const{readable:i,options:a,scripts:o}=n,{writable:l,closed:_}=vi(n.writable),f=Me({type:Ti,scripts:o.slice(1),options:a,config:t,readable:i,writable:l},n);f||Object.assign(n,{reader:i.getReader(),writer:l.getWriter()});const b=await s;return f||await l.getWriter().close(),await _,b}function vi(n){let t;const e=new Promise(s=>t=s);return{writable:new WritableStream({async write(s){const i=n.getWriter();await i.ready,await i.write(s),i.releaseLock()},close(){t()},abort(s){return n.getWriter().abort(s)}}),closed:e}}let Sn=!0,Rn=!0;function Ni(n,t,e){const r={type:"module"};let s,i;typeof n==Oe&&(n=n());try{s=new URL(n,t)}catch{s=n}if(Sn)try{i=new Worker(s)}catch{Sn=!1,i=new Worker(s,r)}else i=new Worker(s,r);return i.addEventListener(Ei,a=>Fi(a,e)),i}function Me(n,{worker:t,writer:e,onTaskFinished:r,transferStreams:s}){try{const{value:i,readable:a,writable:o}=n,l=[];if(i&&(i.byteLength<i.buffer.byteLength?n.value=i.buffer.slice(0,i.byteLength):n.value=i.buffer,l.push(n.value)),s&&Rn?(a&&l.push(a),o&&l.push(o)):n.readable=n.writable=null,l.length)try{return t.postMessage(n,l),!0}catch{Rn=!1,n.readable=n.writable=null,t.postMessage(n)}else t.postMessage(n)}catch(i){throw e&&e.releaseLock(),r(),i}}async function Fi({data:n},t){const{type:e,value:r,messageId:s,result:i,error:a}=n,{reader:o,writer:l,resolveResult:_,rejectResult:f,onTaskFinished:b}=t;try{if(a){const{message:S,stack:C,code:u,name:c}=a,d=new Error(S);Object.assign(d,{stack:C,code:u,name:c}),h(d)}else{if(e==Si){const{value:S,done:C}=await o.read();Me({type:En,value:S,done:C,messageId:s},t)}e==En&&(await l.ready,await l.write(new Uint8Array(r)),Me({type:Ri,messageId:s},t)),e==Tn&&h(null,i)}}catch(S){Me({type:Tn,messageId:s},t),h(S)}function h(S,C){S?f(S):_(C),l&&l.releaseLock(),b()}}let le=[];const nt=[];let An=0;async function Li(n,t){const{options:e,config:r}=t,{transferStreams:s,useWebWorkers:i,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:f}=e,{workerScripts:b,maxWorkers:h}=r;t.transferStreams=s||s===V;const S=!l&&!_&&!f&&!t.transferStreams;return t.useWebWorkers=!S&&(i||i===V&&r.useWebWorkers),t.scripts=t.useWebWorkers&&b?b[o]:[],e.useCompressionStream=a||a===V&&r.useCompressionStream,(await C()).run();async function C(){const c=le.find(d=>!d.busy);if(c)return ct(c),new et(c,n,t,u);if(le.length<h){const d={indexWorker:An};return An++,le.push(d),new et(d,n,t,u)}else return new Promise(d=>nt.push({resolve:d,stream:n,workerOptions:t}))}function u(c){if(nt.length){const[{resolve:d,stream:y,workerOptions:g}]=nt.splice(0,1);d(new et(c,y,g,u))}else c.worker?(ct(c),Mi(c,t)):le=le.filter(d=>d!=c)}}function Mi(n,t){const{config:e}=t,{terminateWorkerTimeout:r}=e;Number.isFinite(r)&&r>=0&&(n.terminated?n.terminated=!1:n.terminateTimeout=setTimeout(async()=>{le=le.filter(s=>s!=n);try{await n.terminate()}catch{}},r))}function ct(n){const{terminateTimeout:t}=n;t&&(clearTimeout(t),n.terminateTimeout=null)}async function Ui(){await Promise.allSettled(le.map(n=>(ct(n),n.terminate())))}const lr="HTTP error ",De="HTTP Range not supported",fr="Writer iterator completed too soon",Wi="text/plain",Hi="Content-Length",Bi="Content-Range",ji="Accept-Ranges",qi="Range",Yi="Content-Type",Gi="HEAD",xt="GET",ur="bytes",Vi=64*1024,Et="writable";class Ge{constructor(){this.size=0}init(){this.initialized=!0}}class de extends Ge{get readable(){const t=this,{chunkSize:e=Vi}=t,r=new ReadableStream({start(){this.chunkOffset=0},async pull(s){const{offset:i=0,size:a,diskNumberStart:o}=r,{chunkOffset:l}=this;s.enqueue(await G(t,i+l,Math.min(e,a-l),o)),l+e>a?s.close():this.chunkOffset+=e}});return r}}class Tt extends Ge{constructor(){super();const t=this,e=new WritableStream({write(r){return t.writeUint8Array(r)}});Object.defineProperty(t,Et,{get(){return e}})}writeUint8Array(){}}class Zi extends de{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const r=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:r,size:Math.floor((e-r)*.75)})}readUint8Array(t,e){const{dataStart:r,dataURI:s}=this,i=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(s.substring(a+r,Math.ceil((t+e)/3)*4+r)),l=t-Math.floor(a/4)*3;for(let _=l;_<l+e;_++)i[_-l]=o.charCodeAt(_);return i}}class Ki extends Tt{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let r=0,s=e.pending;const i=e.pending.length;for(e.pending="",r=0;r<Math.floor((i+t.length)/3)*3-i;r++)s+=String.fromCharCode(t[r]);for(;r<t.length;r++)e.pending+=String.fromCharCode(t[r]);s.length>2?e.data+=btoa(s):e.pending=s}getData(){return this.data+btoa(this.pending)}}class St extends de{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const r=this,s=t+e;let a=await(t||s<r.size?r.blob.slice(t,s):r.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,s)),new Uint8Array(a)}}class dr extends Ge{constructor(t){super();const e=this,r=new TransformStream,s=[];t&&s.push([Yi,t]),Object.defineProperty(e,Et,{get(){return r.writable}}),e.blob=new Response(r.readable,{headers:s}).blob()}getData(){return this.blob}}class Xi extends St{constructor(t){super(new Blob([t],{type:Wi}))}}class $i extends dr{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,r=await super.getData();if(r.text&&e)return r.text();{const s=new FileReader;return new Promise((i,a)=>{Object.assign(s,{onload:({target:o})=>i(o.result),onerror:()=>a(s.error)}),s.readAsText(r,t)})}}}class Ji extends de{constructor(t,e){super(),_r(this,t,e)}async init(){await hr(this,lt,Cn),super.init()}readUint8Array(t,e){return pr(this,t,e,lt,Cn)}}class Qi extends de{constructor(t,e){super(),_r(this,t,e)}async init(){await hr(this,ft,In),super.init()}readUint8Array(t,e){return pr(this,t,e,ft,In)}}function _r(n,t,e){const{preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:i,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(n,{url:t,options:e,preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:i,combineSizeEocd:a})}async function hr(n,t,e){const{url:r,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=n;if(na(r)&&(i||a)&&(typeof s>"u"||s)){const l=await t(xt,n,mr(n,o?-22:void 0));if(!a&&l.headers.get(ji)!=ur)throw new Error(De);{o&&(n.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const f=l.headers.get(Bi);if(f){const b=f.trim().split(/\s*\/\s*/);if(b.length){const h=b[1];h&&h!="*"&&(_=Number(h))}}_===V?await On(n,t,e):n.size=_}}else await On(n,t,e)}async function pr(n,t,e,r,s){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:o,size:l,options:_}=n;if(i||a){if(o&&t==l-oe&&e==oe)return o;const f=await r(xt,n,mr(n,t,e));if(f.status!=206)throw new Error(De);return new Uint8Array(await f.arrayBuffer())}else{const{data:f}=n;return f||await s(n,_),new Uint8Array(n.data.subarray(t,t+e))}}function mr(n,t=0,e=1){return Object.assign({},Rt(n),{[qi]:ur+"="+(t<0?t:t+"-"+(t+e-1))})}function Rt({options:n}){const{headers:t}=n;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Cn(n){await wr(n,lt)}async function In(n){await wr(n,ft)}async function wr(n,t){const e=await t(xt,n,Rt(n));n.data=new Uint8Array(await e.arrayBuffer()),n.size||(n.size=n.data.length)}async function On(n,t,e){if(n.preventHeadRequest)await e(n,n.options);else{const s=(await t(Gi,n,Rt(n))).headers.get(Hi);s?n.size=Number(s):await e(n,n.options)}}async function lt(n,{options:t,url:e},r){const s=await fetch(e,Object.assign({},t,{method:n,headers:r}));if(s.status<400)return s;throw s.status==416?new Error(De):new Error(lr+(s.statusText||s.status))}function ft(n,{url:t},e){return new Promise((r,s)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(i.status<400){const a=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),r({status:i.status,arrayBuffer:()=>i.response,headers:new Map(a)})}else s(i.status==416?new Error(De):new Error(lr+(i.statusText||i.status)))},!1),i.addEventListener("error",a=>s(a.detail?a.detail.error:new Error("Network error")),!1),i.open(n,t),e)for(const a of Object.entries(e))i.setRequestHeader(a[0],a[1]);i.responseType="arraybuffer",i.send()})}class gr extends de{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new Qi(t,e):new Ji(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class zi extends gr{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class ea extends de{constructor(t){super(),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class ta extends Tt{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const r=e.array;e.array=new Uint8Array(r.length+t.length),e.array.set(r)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class At extends de{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(r,s)=>{await r.init(),s!=e.length-1&&(t.lastDiskOffset+=r.size),t.size+=r.size})),super.init()}async readUint8Array(t,e,r=0){const s=this,{readers:i}=this;let a,o=r;o==-1&&(o=i.length-1);let l=t;for(;l>=i[o].size;)l-=i[o].size,o++;const _=i[o],f=_.size;if(l+e<=f)a=await G(_,l,e);else{const b=f-l;a=new Uint8Array(e),a.set(await G(_,l,b)),a.set(await s.readUint8Array(t+b,e-b,r),b)}return s.lastDiskNumber=Math.max(o,s.lastDiskNumber),a}}class qe extends Ge{constructor(t,e=4294967295){super();const r=this;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let s,i,a;const o=new WritableStream({async write(f){const{availableSize:b}=r;if(a)f.length>=b?(await l(f.slice(0,b)),await _(),r.diskOffset+=s.size,r.diskNumber++,a=null,await this.write(f.slice(b))):await l(f);else{const{value:h,done:S}=await t.next();if(S&&!h)throw new Error(fr);s=h,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Ce(s),i=h.writable,a=i.getWriter(),await this.write(f)}},async close(){await a.ready,await _()}});Object.defineProperty(r,Et,{get(){return o}});async function l(f){const b=f.length;b&&(await a.ready,await a.write(f),s.size+=b,r.size+=b,r.availableSize-=b)}async function _(){i.size=s.size,await a.close()}}}function na(n){const{baseURL:t}=Bn(),{protocol:e}=new URL(n,t);return e=="http:"||e=="https:"}async function Ce(n,t){if(n.init&&!n.initialized)await n.init(t);else return Promise.resolve()}function br(n){return Array.isArray(n)&&(n=new At(n)),n instanceof ReadableStream&&(n={readable:n}),n}function yr(n){n.writable===V&&typeof n.next==Oe&&(n=new qe(n)),n instanceof WritableStream&&(n={writable:n});const{writable:t}=n;return t.size===V&&(t.size=0),n instanceof qe||Object.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function G(n,t,e,r){return n.readUint8Array(t,e,r)}const ra=At,sa=qe,xr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),ia=xr.length==256;function aa(n){if(ia){let t="";for(let e=0;e<n.length;e++)t+=xr[n[e]];return t}else return new TextDecoder().decode(n)}function Ue(n,t){return t&&t.trim().toLowerCase()=="cp437"?aa(n):new TextDecoder(t).decode(n)}const Er="filename",Tr="rawFilename",Sr="comment",Rr="rawComment",Ar="uncompressedSize",Cr="compressedSize",Ir="offset",ut="diskNumberStart",dt="lastModDate",_t="rawLastModDate",Or="lastAccessDate",oa="rawLastAccessDate",kr="creationDate",ca="rawCreationDate",la="internalFileAttribute",fa="internalFileAttributes",ua="externalFileAttribute",da="externalFileAttributes",_a="msDosCompatible",ha="zip64",pa="encrypted",ma="version",wa="versionMadeBy",ga="zipCrypto",ba="directory",ya="executable",xa=[Er,Tr,Cr,Ar,dt,_t,Sr,Rr,Or,kr,Ir,ut,ut,la,fa,ua,da,_a,ha,pa,ma,wa,ga,ba,ya,"bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class kn{constructor(t){xa.forEach(e=>this[e]=t[e])}}const We="File format is not recognized",Dr="End of central directory not found",Pr="End of Zip64 central directory locator not found",vr="Central directory header not found",Nr="Local file header not found",Fr="Zip64 extra field not found",Lr="File contains encrypted entry",Mr="Encryption method not supported",ht="Compression method not supported",pt="Split zip file",Dn="utf-8",Pn="cp437",Ea=[[Ar,pe],[Cr,pe],[Ir,pe],[ut,ae]],Ta={[ae]:{getValue:B,bytes:4},[pe]:{getValue:He,bytes:8}};class Ur{constructor(t,e={}){Object.assign(this,{reader:br(t),options:e,config:Bn()})}async*getEntriesGenerator(t={}){const e=this;let{reader:r}=e;const{config:s}=e;if(await Ce(r),(r.size===V||!r.readUint8Array)&&(r=new St(await new Response(r.readable).blob()),await Ce(r)),r.size<oe)throw new Error(We);r.chunkSize=Js(s);const i=await ka(r,Us,r.size,oe,ae*16);if(!i){const x=await G(r,0,4),w=q(x);throw B(w)==Ms?new Error(pt):new Error(Dr)}const a=q(i);let o=B(a,12),l=B(a,16);const _=i.offset,f=j(a,20),b=_+oe+f;let h=j(a,4);const S=r.lastDiskNumber||0;let C=j(a,6),u=j(a,8),c=0,d=0;if(l==pe||o==pe||u==ae||C==ae){const x=await G(r,i.offset-Qe,Qe),w=q(x);if(B(w,0)==Ws){l=He(w,8);let O=await G(r,l,ze,-1),I=q(O);const v=i.offset-Qe-ze;if(B(I,0)!=on&&l!=v){const k=l;l=v,c=l-k,O=await G(r,l,ze,-1),I=q(O)}if(B(I,0)!=on)throw new Error(Pr);h==ae&&(h=B(I,16)),C==ae&&(C=B(I,20)),u==ae&&(u=He(I,32)),o==pe&&(o=He(I,40)),l-=o}}if(l>=r.size&&(c=r.size-l-o-oe,l=r.size-o-oe),S!=h)throw new Error(pt);if(l<0)throw new Error(We);let y=0,g=await G(r,l,o,C),m=q(g);if(o){const x=i.offset-o;if(B(m,y)!=an&&l!=x){const w=l;l=x,c+=l-w,g=await G(r,l,o,C),m=q(g)}}const E=i.offset-l-(r.lastDiskOffset||0);if(o!=E&&E>=0&&(o=E,g=await G(r,l,o,C),m=q(g)),l<0||l>=r.size)throw new Error(We);const p=Z(e,t,"filenameEncoding"),R=Z(e,t,"commentEncoding");for(let x=0;x<u;x++){const w=new Ra(r,s,e.options);if(B(m,y)!=an)throw new Error(vr);Wr(w,m,y+6);const O=!!w.bitFlag.languageEncodingFlag,I=y+46,v=I+w.filenameLength,k=v+w.extraFieldLength,D=j(m,y+4),U=D>>8==0,N=D>>8==3,Y=g.subarray(I,v),P=j(m,y+32),_e=k+P,M=g.subarray(k,_e),W=O,Ct=O,Ve=B(m,y+38),It=U&&(ye(m,y+38)&un)==un||N&&(Ve>>16&dn)==dn||Y.length&&Y[Y.length-1]==hn.charCodeAt(0),jr=N&&(Ve>>16&_n)==_n,Ot=B(m,y+42)+c;Object.assign(w,{versionMadeBy:D,msDosCompatible:U,compressedSize:0,uncompressedSize:0,commentLength:P,directory:It,offset:Ot,diskNumberStart:j(m,y+34),internalFileAttributes:j(m,y+36),externalFileAttributes:Ve,rawFilename:Y,filenameUTF8:W,commentUTF8:Ct,rawExtraField:g.subarray(v,k),executable:jr}),w.internalFileAttribute=w.internalFileAttributes,w.externalFileAttribute=w.externalFileAttributes;const kt=Z(e,t,"decodeText")||Ue,Dt=W?Dn:p||Pn,Pt=Ct?Dn:R||Pn;let Pe=kt(Y,Dt);Pe===V&&(Pe=Ue(Y,Dt));let Ze=kt(M,Pt);Ze===V&&(Ze=Ue(M,Pt)),Object.assign(w,{rawComment:M,filename:Pe,comment:Ze,directory:It||Pe.endsWith(hn)}),d=Math.max(Ot,d),Hr(w,w,m,y+6),w.zipCrypto=w.encrypted&&!w.extraFieldAES;const Ke=new kn(w);Ke.getData=(Nt,qr)=>w.getData(Nt,Ke,qr),y=_e;const{onprogress:vt}=t;if(vt)try{await vt(x+1,u,new kn(w))}catch{}yield Ke}const T=Z(e,t,"extractPrependedData"),A=Z(e,t,"extractAppendedData");return T&&(e.prependedData=d>0?await G(r,0,d):new Uint8Array),e.comment=f?await G(r,_+oe,f):new Uint8Array,A&&(e.appendedData=b<r.size?await G(r,b,r.size-b):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const r of this.getEntriesGenerator(t))e.push(r);return e}async close(){}}class Sa{constructor(t={}){const{readable:e,writable:r}=new TransformStream,s=new Ur(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(i){const{done:a,value:o}=await s.next();if(a)return i.close();const l={...o,readable:function(){const{readable:_,writable:f}=new TransformStream;if(o.getData)return o.getData(f),_}()};delete l.getData,i.enqueue(l)}}),this.writable=r}}class Ra{constructor(t,e,r){Object.assign(this,{reader:t,config:e,options:r})}async getData(t,e,r={}){const s=this,{reader:i,offset:a,diskNumberStart:o,extraFieldAES:l,compressionMethod:_,config:f,bitFlag:b,signature:h,rawLastModDate:S,uncompressedSize:C,compressedSize:u}=s,c=e.localDirectory={},d=await G(i,a,30,o),y=q(d);let g=Z(s,r,"password"),m=Z(s,r,"rawPassword");const E=Z(s,r,"passThrough");if(g=g&&g.length&&g,m=m&&m.length&&m,l&&l.originalCompressionMethod!=Fs)throw new Error(ht);if(_!=Ns&&_!=vs&&!E)throw new Error(ht);if(B(y,0)!=Ls)throw new Error(Nr);Wr(c,y,4),c.rawExtraField=c.extraFieldLength?await G(i,a+30+c.filenameLength,c.extraFieldLength,o):new Uint8Array,Hr(s,c,y,4,!0),Object.assign(e,{lastAccessDate:c.lastAccessDate,creationDate:c.creationDate});const p=s.encrypted&&c.encrypted&&!E,R=p&&!l;if(E||(e.zipCrypto=R),p){if(!R&&l.strength===V)throw new Error(Mr);if(!g&&!m)throw new Error(Lr)}const T=a+30+c.filenameLength+c.extraFieldLength,A=u,x=i.readable;Object.assign(x,{diskNumberStart:o,offset:T,size:A});const w=Z(s,r,"signal"),O=Z(s,r,"checkPasswordOnly");O&&(t=new WritableStream),t=yr(t),await Ce(t,E?u:C);const{writable:I}=t,{onstart:v,onprogress:k,onend:D}=r,U={options:{codecType:ar,password:g,rawPassword:m,zipCrypto:R,encryptionStrength:l&&l.strength,signed:Z(s,r,"checkSignature")&&!E,passwordVerification:R&&(b.dataDescriptor?S>>>8&255:h>>>24&255),signature:h,compressed:_!=0&&!E,encrypted:s.encrypted&&!E,useWebWorkers:Z(s,r,"useWebWorkers"),useCompressionStream:Z(s,r,"useCompressionStream"),transferStreams:Z(s,r,"transferStreams"),checkPasswordOnly:O},config:f,streamOptions:{signal:w,size:A,onstart:v,onprogress:k,onend:D}};let N=0;try{({outputSize:N}=await Li({readable:x,writable:I},U))}catch(Y){if(!O||Y.message!=gt)throw Y}finally{const Y=Z(s,r,"preventClose");I.size+=N,!Y&&!I.locked&&await I.getWriter().close()}return O?V:t.getData?t.getData():I}}function Wr(n,t,e){const r=n.rawBitFlag=j(t,e+2),s=(r&cn)==cn,i=B(t,e+6);Object.assign(n,{encrypted:s,version:j(t,e),bitFlag:{level:(r&Ks)>>1,dataDescriptor:(r&ln)==ln,languageEncodingFlag:(r&fn)==fn},rawLastModDate:i,lastModDate:Da(i),filenameLength:j(t,e+22),extraFieldLength:j(t,e+24)})}function Hr(n,t,e,r,s){const{rawExtraField:i}=t,a=t.extraField=new Map,o=q(new Uint8Array(i));let l=0;try{for(;l<i.length;){const d=j(o,l),y=j(o,l+2);a.set(d,{type:d,data:i.slice(l+4,l+4+y)}),l+=4+y}}catch{}const _=j(e,r+4);Object.assign(t,{signature:B(e,r+10),uncompressedSize:B(e,r+18),compressedSize:B(e,r+14)});const f=a.get(Hs);f&&(Aa(f,t),t.extraFieldZip64=f);const b=a.get(Gs);b&&(vn(b,Er,Tr,t,n),t.extraFieldUnicodePath=b);const h=a.get(Vs);h&&(vn(h,Sr,Rr,t,n),t.extraFieldUnicodeComment=h);const S=a.get(Bs);S?(Ca(S,t,_),t.extraFieldAES=S):t.compressionMethod=_;const C=a.get(js);C&&(Ia(C,t),t.extraFieldNTFS=C);const u=a.get(Ys);u&&(Oa(u,t,s),t.extraFieldExtendedTimestamp=u);const c=a.get(Zs);c&&(t.extraFieldUSDZ=c)}function Aa(n,t){t.zip64=!0;const e=q(n.data),r=Ea.filter(([s,i])=>t[s]==i);for(let s=0,i=0;s<r.length;s++){const[a,o]=r[s];if(t[a]==o){const l=Ta[o];t[a]=n[a]=l.getValue(e,i),i+=l.bytes}else if(n[a])throw new Error(Fr)}}function vn(n,t,e,r,s){const i=q(n.data),a=new Be;a.append(s[e]);const o=q(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=B(i,1);Object.assign(n,{version:ye(i,0),[t]:Ue(n.data.subarray(5)),valid:!s.bitFlag.languageEncodingFlag&&l==B(o,0)}),n.valid&&(r[t]=n[t],r[t+"UTF8"]=!0)}function Ca(n,t,e){const r=q(n.data),s=ye(r,4);Object.assign(n,{vendorVersion:ye(r,0),vendorId:ye(r,2),strength:s,originalCompressionMethod:e,compressionMethod:j(r,5)}),t.compressionMethod=n.compressionMethod}function Ia(n,t){const e=q(n.data);let r=4,s;try{for(;r<n.data.length&&!s;){const i=j(e,r),a=j(e,r+2);i==qs&&(s=n.data.slice(r+4,r+4+a)),r+=4+a}}catch{}try{if(s&&s.length==24){const i=q(s),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),l=i.getBigUint64(16,!0);Object.assign(n,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=rt(a),f=rt(o),b=rt(l),h={lastModDate:_,lastAccessDate:f,creationDate:b};Object.assign(n,h),Object.assign(t,h)}}catch{}}function Oa(n,t,e){const r=q(n.data),s=ye(r,0),i=[],a=[];e?((s&1)==1&&(i.push(dt),a.push(_t)),(s&2)==2&&(i.push(Or),a.push(oa)),(s&4)==4&&(i.push(kr),a.push(ca))):n.data.length>=5&&(i.push(dt),a.push(_t));let o=1;i.forEach((l,_)=>{if(n.data.length>=o+4){const f=B(r,o);t[l]=n[l]=new Date(f*1e3);const b=a[_];n[b]=f}o+=4})}async function ka(n,t,e,r,s){const i=new Uint8Array(4),a=q(i);Pa(a,0,t);const o=r+s;return await l(r)||await l(Math.min(o,e));async function l(_){const f=e-_,b=await G(n,f,_);for(let h=b.length-r;h>=0;h--)if(b[h]==i[0]&&b[h+1]==i[1]&&b[h+2]==i[2]&&b[h+3]==i[3])return{offset:f+h,buffer:b.slice(h,h+r).buffer}}}function Z(n,t,e){return t[e]===V?n.options[e]:t[e]}function Da(n){const t=(n&4294901760)>>16,e=n&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function rt(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function ye(n,t){return n.getUint8(t)}function j(n,t){return n.getUint16(t,!0)}function B(n,t){return n.getUint32(t,!0)}function He(n,t){return Number(n.getBigUint64(t,!0))}function Pa(n,t,e){n.setUint32(t,e,!0)}function q(n){return new DataView(n.buffer)}jn({Inflate:Ps});const va=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:St,BlobWriter:dr,Data64URIReader:Zi,Data64URIWriter:Ki,ERR_BAD_FORMAT:We,ERR_CENTRAL_DIRECTORY_NOT_FOUND:vr,ERR_ENCRYPTED:Lr,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Pr,ERR_EOCDR_NOT_FOUND:Dr,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Fr,ERR_HTTP_RANGE:De,ERR_INVALID_PASSWORD:mt,ERR_INVALID_SIGNATURE:wt,ERR_ITERATOR_COMPLETED_TOO_SOON:fr,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Nr,ERR_SPLIT_ZIP_FILE:pt,ERR_UNSUPPORTED_COMPRESSION:ht,ERR_UNSUPPORTED_ENCRYPTION:Mr,HttpRangeReader:zi,HttpReader:gr,Reader:de,SplitDataReader:At,SplitDataWriter:qe,SplitZipReader:ra,SplitZipWriter:sa,TextReader:Xi,TextWriter:$i,Uint8ArrayReader:ea,Uint8ArrayWriter:ta,Writer:Tt,ZipReader:Ur,ZipReaderStream:Sa,configure:jn,getMimeType:Qs,initReader:br,initStream:Ce,initWriter:yr,readUint8Array:G,terminateWorkers:Ui},Symbol.toStringTag,{value:"Module"})),Te=va;class Na{constructor(t,e,r){F(this,"_zipReader");F(this,"_entriesPromise");F(this,"_traceURL");this._traceURL=t,Te.configure({baseURL:self.location.href}),this._zipReader=new Te.ZipReader(new Te.HttpReader(La(t,e),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:r}).then(s=>{const i=new Map;for(const a of s)i.set(a.filename,a);return i})}isLive(){return!1}traceURL(){return this._traceURL}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var i;const r=(await this._entriesPromise).get(t);if(!r)return;const s=new Te.TextWriter;return await((i=r.getData)==null?void 0:i.call(r,s)),s.getData()}async readBlob(t){const r=(await this._entriesPromise).get(t);if(!r)return;const s=new Te.BlobWriter;return await r.getData(s),s.getData()}}class Fa{constructor(t,e){F(this,"_entriesPromise");F(this,"_path");F(this,"_server");this._path=t,this._server=e,this._entriesPromise=e.readFile(t).then(async r=>{if(!r)throw new Error("File not found");const s=await r.json(),i=new Map;for(const a of s.entries)i.set(a.name,a.path);return i})}isLive(){return!0}traceURL(){return this._path}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const r=(await this._entriesPromise).get(t);if(r)return this._server.readFile(r)}}function La(n,t){let e=n.startsWith("http")||n.startsWith("blob")?n:t.getFileURL(n).toString();return e.startsWith("https://www.dropbox.com/")&&(e="https://dl.dropboxusercontent.com/"+e.substring(24)),e}class Ma{constructor(t){this.baseUrl=t}getFileURL(t){const e=new URL("trace/file",this.baseUrl);return e.searchParams.set("path",t),e}async readFile(t){const e=await fetch(this.getFileURL(t));if(e.status!==404)return e}}self.addEventListener("install",function(n){self.skipWaiting()});self.addEventListener("activate",function(n){n.waitUntil(self.clients.claim())});const Ua=new URL(self.registration.scope).pathname,fe=new Map,Ie=new Map;async function Wa(n,t,e,r,s){var _;await Br();const i=(e==null?void 0:e.id)??"";let a=Ie.get(i);if(!a){const f=new URL((e==null?void 0:e.url)??self.registration.scope),b=new URL(f.searchParams.get("server")??"../",f);a={limit:r,traceUrls:new Set,traceViewerServer:new Ma(b)},Ie.set(i,a)}a.traceUrls.add(n);const o=new us;try{const[f,b]=Vr(s,[.5,.4,.1]),h=n.endsWith("json")?new Fa(n,a.traceViewerServer):new Na(n,a.traceViewerServer,f);await o.load(h,b)}catch(f){throw console.error(f),(_=f==null?void 0:f.message)!=null&&_.includes("Cannot find .trace file")&&await o.hasEntry("index.html")?new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server."):f instanceof Mn?new Error(`Could not load trace from ${t||n}. ${f.message}`):t?new Error(`Could not load trace from ${t}. Make sure to upload a valid Playwright trace.`):new Error(`Could not load trace from ${n}. Make sure a valid Playwright Trace is accessible over this url.`)}const l=new is(o.storage(),f=>o.resourceForSha1(f));return fe.set(n,{traceModel:o,snapshotServer:l}),o}async function Ha(n){var l;if(n.request.url.startsWith("chrome-extension://"))return fetch(n.request);if(n.request.headers.get("x-pw-serviceworker")==="forward"){const _=new Request(n.request);return _.headers.delete("x-pw-serviceworker"),fetch(_)}const t=n.request,e=await self.clients.get(n.clientId),r=self.registration.scope.startsWith("https://");if(t.url.startsWith(self.registration.scope)){const _=new URL(it(t.url)),f=_.pathname.substring(Ua.length-1);if(f==="/ping")return await Br(),new Response(null,{status:200});const b=_.searchParams.get("trace");if(f==="/contexts")try{const h=_.searchParams.has("limit")?+_.searchParams.get("limit"):void 0,S=await Wa(b,_.searchParams.get("traceFileName"),e,h,(C,u)=>{e.postMessage({method:"progress",params:{done:C,total:u}})});return new Response(JSON.stringify(S.contextEntries),{status:200,headers:{"Content-Type":"application/json"}})}catch(h){return new Response(JSON.stringify({error:h==null?void 0:h.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(f.startsWith("/snapshotInfo/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(14);return h.serveSnapshotInfo(S,_.searchParams)}if(f.startsWith("/snapshot/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(10),C=h.serveSnapshot(S,_.searchParams,_.href);return r&&C.headers.set("Content-Security-Policy","upgrade-insecure-requests"),C}if(f.startsWith("/closest-screenshot/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(20);return h.serveClosestScreenshot(S,_.searchParams)}if(f.startsWith("/sha1/")){const h=f.slice(6);for(const S of fe.values()){const C=await S.traceModel.resourceForSha1(h);if(C)return new Response(C,{status:200,headers:Ba(_.searchParams)})}return new Response(null,{status:404})}if(f.startsWith("/file/")){const h=_.searchParams.get("path"),S=(l=Ie.get(n.clientId??""))==null?void 0:l.traceViewerServer;if(!S)throw new Error("client is not initialized");const C=await S.readFile(h);return C||new Response(null,{status:404})}return fetch(n.request)}const s=it(e.url),i=new URL(s).searchParams.get("trace"),{snapshotServer:a}=fe.get(i)||{};if(!a)return new Response(null,{status:404});const o=[t.url];return r&&t.url.startsWith("https://")&&o.push(t.url.replace(/^https/,"http")),a.serveResource(o,t.method,s)}function Ba(n){const t=n.get("dn"),e=n.get("dct");if(!t)return;const r=new Headers;return r.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&r.set("Content-Type",e),r}async function Br(){const n=await self.clients.matchAll(),t=new Set;for(const[e,r]of Ie){if(!n.find(s=>s.id===e)){Ie.delete(e);continue}if(r.limit!==void 0){const s=[...r.traceUrls];r.traceUrls=new Set(s.slice(s.length-r.limit))}r.traceUrls.forEach(s=>t.add(s))}for(const e of fe.keys())t.has(e)||fe.delete(e)}self.addEventListener("fetch",function(n){n.respondWith(Ha(n))});
1
+ var Ys=Object.defineProperty;var Vs=(n,t,e)=>t in n?Ys(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var L=(n,t,e)=>Vs(n,typeof t!="symbol"?t+"":t,e);function Gs(n,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((s,r)=>(i,a)=>{e[r]=i/a*t[r]*1e3,n(e.reduce((c,l)=>c+l,0),1e3)})}const vn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Zs(n){return n.replace(/[&<>"']/ug,t=>vn[t])}function Ks(n){return n.replace(/[&<]/ug,t=>vn[t])}function Lt(n,t,e){return n.find((s,r)=>{if(r===n.length-1)return!0;const i=n[r+1];return Math.abs(t(s)-e)<Math.abs(t(i)-e)})}function Ln(n){return Array.isArray(n)&&typeof n[0]=="string"}function Xs(n){return Array.isArray(n)&&Array.isArray(n[0])}class $s{constructor(t,e,s,r,i){L(this,"_htmlCache");L(this,"_snapshots");L(this,"_index");L(this,"snapshotName");L(this,"_resources");L(this,"_snapshot");L(this,"_callId");L(this,"_screencastFrames");this._htmlCache=t,this._resources=e,this._snapshots=s,this._index=i,this._snapshot=s[i],this._callId=s[i].callId,this._screencastFrames=r,this.snapshotName=s[i].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var r;const{wallTime:t,timestamp:e}=this.snapshot(),s=t&&((r=this._screencastFrames[0])!=null&&r.frameSwapWallTime)?Lt(this._screencastFrames,i=>i.frameSwapWallTime,t):Lt(this._screencastFrames,i=>i.timestamp,e);return s==null?void 0:s.sha1}render(){const t=[],e=(i,a,c,l)=>{if(typeof i=="string"){c==="STYLE"||c==="style"?t.push(rr(tr(i))):t.push(Ks(i));return}if(Xs(i)){const _=a-i[0][0];if(_>=0&&_<=a){const f=Qs(this._snapshots[_]),b=i[0][1];if(b>=0&&b<f.length)return e(f[b],_,c,l)}}else if(Ln(i)){const[_,f,...b]=i,h=_==="NOSCRIPT"?"X-NOSCRIPT":_,S=Object.entries(f||{});t.push("<",h);const C="__playwright_current_src__",u=h==="IFRAME"||h==="FRAME",o=h==="A",d=h==="IMG",y=d&&S.some(m=>m[0]===C),g=h==="SOURCE"&&c==="PICTURE"&&(l==null?void 0:l.some(m=>m[0]===C));for(const[m,E]of S){let p=m;u&&m.toLowerCase()==="src"&&(p="__playwright_src__"),d&&m===C&&(p="src"),["src","srcset"].includes(m.toLowerCase())&&(y||g)&&(p="_"+p);let R=E;o&&m.toLowerCase()==="href"?R="link://"+E:(m.toLowerCase()==="href"||m.toLowerCase()==="src"||m===C)&&(R=rt(E)),t.push(" ",p,'="',Zs(R),'"')}t.push(">");for(const m of b)e(m,a,h,S);Js.has(h)||t.push("</",h,">");return}else return},s=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(s.html,this._index,void 0,void 0);const a=(s.doctype?`<!DOCTYPE ${s.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${zs(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:s.pageId,frameId:s.frameId,index:this._index}}resourceByUrl(t,e){const s=this._snapshot;let r,i;for(const c of this._resources){if(typeof c._monotonicTime=="number"&&c._monotonicTime>=s.timestamp)break;c.response.status!==304&&c.request.url===t&&c.request.method===e&&(c._frameref===s.frameId?r=c:i=c)}let a=r??i;if(a&&e.toUpperCase()==="GET"){for(const c of s.resourceOverrides)if(t===c.url&&c.sha1){a={...a,response:{...a.response,content:{...a.response.content,_sha1:c.sha1}}};break}}return a}}const Js=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function Qs(n){if(!n._nodes){const t=[],e=s=>{if(typeof s=="string")t.push(s);else if(Ln(s)){const[,,...r]=s;for(const i of r)e(i);t.push(s)}};e(n.html),n._nodes=t}return n._nodes}function zs(n,...t){function e(s,r,...i){const a=new URLSearchParams(location.search),c=a.has("shouldPopulateCanvasFromScreenshot"),l=a.has("isUnderTest"),_={viewport:r,frames:new WeakMap};window.__playwright_frame_bounding_rects__=_;const f="Recorded click position in absolute coordinates did not match the center of the clicked element. This is likely due to a difference between the test runner and the trace viewer operating systems.",b=[],h=[],S=[],C=[];let u=window;for(;u!==u.parent&&!u.location.pathname.match(/\/page@[a-z0-9]+$/);)u=u.parent;const o=g=>{for(const m of g.querySelectorAll("[__playwright_scroll_top_]"))b.push(m);for(const m of g.querySelectorAll("[__playwright_scroll_left_]"))h.push(m);for(const m of g.querySelectorAll("[__playwright_value_]")){const E=m;E.type!=="file"&&(E.value=E.getAttribute("__playwright_value_")),m.removeAttribute("__playwright_value_")}for(const m of g.querySelectorAll("[__playwright_checked_]"))m.checked=m.getAttribute("__playwright_checked_")==="true",m.removeAttribute("__playwright_checked_");for(const m of g.querySelectorAll("[__playwright_selected_]"))m.selected=m.getAttribute("__playwright_selected_")==="true",m.removeAttribute("__playwright_selected_");for(const m of g.querySelectorAll("[__playwright_popover_open_]")){try{m.showPopover()}catch{}m.removeAttribute("__playwright_popover_open_")}for(const m of g.querySelectorAll("[__playwright_dialog_open_]")){try{m.getAttribute("__playwright_dialog_open_")==="modal"?m.showModal():m.show()}catch{}m.removeAttribute("__playwright_dialog_open_")}for(const m of i)for(const E of g.querySelectorAll(`[__playwright_target__="${m}"]`)){const p=E.style;p.outline="2px solid #006ab1",p.backgroundColor="#6fa8dc7f",S.push(E)}for(const m of g.querySelectorAll("iframe, frame")){const E=m.getAttribute("__playwright_bounding_rect__");m.removeAttribute("__playwright_bounding_rect__");const p=E?JSON.parse(E):void 0;p&&_.frames.set(m,{boundingRect:p,scrollLeft:0,scrollTop:0});const R=m.getAttribute("__playwright_src__");if(!R)m.setAttribute("src",'data:text/html,<body style="background: #ddd"></body>');else{const T=new URL(s(window.location.href)),A=T.pathname.lastIndexOf("/snapshot/");A!==-1&&(T.pathname=T.pathname.substring(0,A+1)),T.pathname+=R.substring(1),m.setAttribute("src",T.toString())}}{const m=g.querySelector("body[__playwright_custom_elements__]");if(m&&window.customElements){const E=(m.getAttribute("__playwright_custom_elements__")||"").split(",");for(const p of E)window.customElements.define(p,class extends HTMLElement{})}}for(const m of g.querySelectorAll("template[__playwright_shadow_root_]")){const E=m,p=E.parentElement.attachShadow({mode:"open"});p.appendChild(E.content),E.remove(),o(p)}if("adoptedStyleSheets"in g){const m=[...g.adoptedStyleSheets];for(const E of g.querySelectorAll("template[__playwright_style_sheet_]")){const p=E,R=new CSSStyleSheet;R.replaceSync(p.getAttribute("__playwright_style_sheet_")),m.push(R)}g.adoptedStyleSheets=m}C.push(...g.querySelectorAll("canvas"))},d=()=>{window.removeEventListener("load",d);for(const E of b)E.scrollTop=+E.getAttribute("__playwright_scroll_top_"),E.removeAttribute("__playwright_scroll_top_"),_.frames.has(E)&&(_.frames.get(E).scrollTop=E.scrollTop);for(const E of h)E.scrollLeft=+E.getAttribute("__playwright_scroll_left_"),E.removeAttribute("__playwright_scroll_left_"),_.frames.has(E)&&(_.frames.get(E).scrollLeft=E.scrollTop);document.styleSheets[0].disabled=!0;const g=new URL(window.location.href).searchParams,m=window===u;if(g.get("pointX")&&g.get("pointY")){const E=+g.get("pointX"),p=+g.get("pointY"),R=g.has("hasInputTarget"),T=S.length>0,A=document.documentElement?[document.documentElement]:[];for(const x of T?S:A){const w=document.createElement("x-pw-pointer");if(w.style.position="fixed",w.style.backgroundColor="#f44336",w.style.width="20px",w.style.height="20px",w.style.borderRadius="10px",w.style.margin="-10px 0 0 -10px",w.style.zIndex="2147483646",w.style.display="flex",w.style.alignItems="center",w.style.justifyContent="center",T){const O=x.getBoundingClientRect(),I=O.left+O.width/2,N=O.top+O.height/2;if(w.style.left=I+"px",w.style.top=N+"px",m&&(Math.abs(I-E)>=10||Math.abs(N-p)>=10)){const P=document.createElement("x-pw-pointer-warning");P.textContent="⚠",P.style.fontSize="19px",P.style.color="white",P.style.marginTop="-3.5px",P.style.userSelect="none",w.appendChild(P),w.setAttribute("title",f)}document.documentElement.appendChild(w)}else m&&!R&&(w.style.left=E+"px",w.style.top=p+"px",document.documentElement.appendChild(w))}}if(C.length>0){let E=function(R,T){function A(){const x=document.createElement("canvas");x.width=x.width/Math.floor(x.width/24),x.height=x.height/Math.floor(x.height/24);const w=x.getContext("2d");return w.fillStyle="lightgray",w.fillRect(0,0,x.width,x.height),w.fillStyle="white",w.fillRect(0,0,x.width/2,x.height/2),w.fillRect(x.width/2,x.height/2,x.width,x.height),w.createPattern(x,"repeat")}R.fillStyle=A(),R.fillRect(0,0,T.width,T.height)};const p=new Image;p.onload=()=>{var R;for(const T of C){const A=T.getContext("2d"),x=T.getAttribute("__playwright_bounding_rect__");if(T.removeAttribute("__playwright_bounding_rect__"),!x)continue;let w;try{w=JSON.parse(x)}catch{continue}let O=window;for(;O!==u;){const M=O.frameElement;O=O.parent;const v=(R=O.__playwright_frame_bounding_rects__)==null?void 0:R.frames.get(M);if(!(v!=null&&v.boundingRect))break;const Y=v.boundingRect.left-v.scrollLeft,D=v.boundingRect.top-v.scrollTop;w.left+=Y,w.top+=D,w.right+=Y,w.bottom+=D}const{width:I,height:N}=u.__playwright_frame_bounding_rects__.viewport;w.left=w.left/I,w.top=w.top/N,w.right=w.right/I,w.bottom=w.bottom/N;const P=w.right>1||w.bottom>1;if(w.left>1||w.top>1){T.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}E(A,T),c?(A.drawImage(p,w.left*p.width,w.top*p.height,(w.right-w.left)*p.width,(w.bottom-w.top)*p.height,0,0,T.width,T.height),P?T.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":T.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):T.title="Canvas content display is disabled.",l&&console.log("canvas drawn:",JSON.stringify([w.left,w.top,w.right-w.left,w.bottom-w.top].map(M=>Math.floor(M*100))))}},p.onerror=()=>{for(const R of C){const T=R.getContext("2d");E(T,R),R.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},p.src=location.href.replace("/snapshot","/closest-screenshot")}},y=()=>o(document);window.addEventListener("load",d),window.addEventListener("DOMContentLoaded",y)}return`
2
+ (${e.toString()})(${it.toString()}, ${JSON.stringify(n)}${t.map(s=>`, "${s}"`).join("")})`}const Fn=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Ft="http://playwright.bloburl/#";function rt(n){n.startsWith(Ft)&&(n=n.substring(Ft.length));try{const t=new URL(n);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",s=t.protocol==="file:";if(!e&&!s&&Fn.includes(t.protocol))return n;const r="pw-"+t.protocol.slice(0,t.protocol.length-1);return s||(t.protocol="https:"),t.hostname=t.hostname?`${r}--${t.hostname}`:r,s&&(t.protocol="https:"),t.toString()}catch{return n}}const er=/url\(['"]?([\w-]+:)\/\//ig;function tr(n){return n.replace(er,(t,e)=>!(e==="blob:")&&!(e==="file:")&&Fn.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}const nr=/url\(\s*'([^']*)'\s*\)/ig,sr=/url\(\s*"([^"]*)"\s*\)/ig;function rr(n){const t=(e,s)=>s.includes("</")?e.replace(s,encodeURI(s)):e;return n.replace(nr,t).replace(sr,t)}function it(n){const t=new URL(n);return t.pathname.endsWith("/snapshot.html")?t.searchParams.get("r"):n}class ir{constructor(t,e){L(this,"_snapshotStorage");L(this,"_resourceLoader");L(this,"_snapshotIds",new Map);this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,s){const r=this._snapshot(t,e);if(!r)return new Response(null,{status:404});const i=r.render();return this._snapshotIds.set(s,r),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const s=this._snapshot(t,e),r=s==null?void 0:s.closestScreenshot();return r?new Response(await this._resourceLoader(r)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const s=this._snapshot(t,e);return this._respondWithJson(s?{viewport:s.viewport(),url:s.snapshot().frameUrl,timestamp:s.snapshot().timestamp,wallTime:s.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const s=e.get("name");return this._snapshotStorage.snapshotByName(t,s)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,s){let r;const i=this._snapshotIds.get(s);for(const S of t)if(r=i==null?void 0:i.resourceByUrl(ar(S),e),r)break;if(!r)return new Response(null,{status:404});const a=r.response.content._sha1,c=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=r.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const f=new Headers;l!=="x-unknown"&&f.set("Content-Type",l);for(const{name:S,value:C}of r.response.headers)f.set(S,C);f.delete("Content-Encoding"),f.delete("Access-Control-Allow-Origin"),f.set("Access-Control-Allow-Origin","*"),f.delete("Content-Length"),f.set("Content-Length",String(c.size)),f.set("Cache-Control","public, max-age=31536000");const{status:b}=r.response,h=b===101||b===204||b===205||b===304;return new Response(h?null:c,{headers:f,status:r.response.status,statusText:r.response.statusText})}}function ar(n){try{const t=new URL(n);return t.hash="",t.toString()}catch{return n}}function or(n){const t=new Map,{files:e,stacks:s}=n;for(const r of s){const[i,a]=r;t.set(`call@${i}`,a.map(c=>({file:e[c[0]],line:c[1],column:c[2],function:c[3]})))}return t}class cr{constructor(t){L(this,"_maxSize");L(this,"_map");L(this,"_size");this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const r=this._map.get(t);return this._map.delete(t),this._map.set(t,r),r.value}const s=e();for(;this._map.size&&this._size+s.size>this._maxSize;){const[r,i]=this._map.entries().next().value;this._size-=i.size,this._map.delete(r)}return this._map.set(t,s),this._size+=s.size,s.value}}class lr{constructor(){L(this,"_frameSnapshots",new Map);L(this,"_cache",new cr(1e8));L(this,"_contextToResources",new Map)}addResource(t,e){e.request.url=rt(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,s){for(const c of e.resourceOverrides)c.url=rt(c.url);let r=this._frameSnapshots.get(e.frameId);r||(r={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,r),e.isMainFrame&&this._frameSnapshots.set(e.pageId,r)),r.raw.push(e);const i=this._ensureResourcesForContext(t),a=new $s(this._cache,i,r.raw,s,r.raw.length-1);return r.renderers.push(a),a}snapshotByName(t,e){const s=this._frameSnapshots.get(t);return s==null?void 0:s.renderers.find(r=>r.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,s)=>(e._monotonicTime||0)-(s._monotonicTime||0))}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Un extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const Ut=8;class fr{constructor(t,e){L(this,"_contextEntry");L(this,"_snapshotStorage");L(this,"_actionMap",new Map);L(this,"_version");L(this,"_pageEntries",new Map);L(this,"_jsHandles",new Map);L(this,"_consoleObjects",new Map);this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
3
+ `))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const s of e)this._innerAppendEvent(s)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Ut)throw new Un("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"";break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const s=this._actionMap.get(t.callId);s.inputSnapshot=t.inputSnapshot,s.point=t.point;break}case"log":{const s=this._actionMap.get(t.callId);if(!s)return;s.log.push({time:t.time,message:t.message});break}case"after":{const s=this._actionMap.get(t.callId);s.afterSnapshot=t.afterSnapshot,s.endTime=t.endTime,s.result=t.result,s.error=t.error,s.attachments=t.attachments,s.annotations=t.annotations,t.point&&(s.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,s=[t];for(;e<Ut;++e)s=this[`_modernize_${e}_to_${e+1}`].call(this,s);return s}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const s of t)s.type!=="frame-snapshot"||!s.snapshot.isMainFrame||(s.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const s=e.snapshot;e.snapshot={_frameref:s.frameId,request:{url:s.url,method:s.method,headers:s.requestHeaders,postData:s.requestSha1?{_sha1:s.requestSha1}:void 0},response:{status:s.status,headers:s.responseHeaders,content:{mimeType:s.contentType,_sha1:s.responseSha1}},_monotonicTime:s.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const s of t){const r=this._modernize_event_3_to_4(s);r&&e.push(r)}return e}_modernize_event_3_to_4(t){var s,r,i,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(s=e.snapshots.find(c=>c.title==="before"))==null?void 0:s.snapshotName,inputSnapshot:(r=e.snapshots.find(c=>c.title==="input"))==null?void 0:r.snapshotName,afterSnapshot:(i=e.snapshots.find(c=>c.title==="after"))==null?void 0:i.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const s of t){const r=this._modernize_event_4_to_5(s);r&&e.push(r)}return e}_modernize_event_4_to_5(t){var e,s;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const r=(e=t.initializer.args)==null?void 0:e.map(i=>{if(i.guid){const a=this._jsHandles.get(i.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:i.preview||"",value:i.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:r}),null}if(t.type==="event"&&t.method==="console"){const r=this._consoleObjects.get(((s=t.params.message)==null?void 0:s.guid)||"");return r?{type:"console",time:t.time,pageId:t.pageId,messageType:r.type,text:r.text,args:r.args,location:r.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const s of t)if(e.push(s),!(s.type!=="after"||!s.log.length))for(const r of s.log)e.push({type:"log",callId:s.callId,message:r,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const s={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(s)}for(const s of t){if(s.type==="context-options"){e.push({...s,monotonicTime:0,origin:"library",contextId:""});continue}if(s.type==="before"||s.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=s.wallTime);const r=s,i=s;i.stepId=`${r.apiName}@${r.wallTime}`,e.push(i)}else e.push(s)}return e}_modernize_7_to_8(t){const e=[];for(const s of t)if(s.type==="before"||s.type==="action"){const r=s,i=s;r.apiName&&(i.title=r.apiName,delete i.apiName),i.stepId=r.stepId??r.callId,e.push(i)}else e.push(s);return e}}class ur{constructor(){L(this,"contextEntries",[]);L(this,"_snapshotStorage");L(this,"_backend");L(this,"_resourceToContentType",new Map)}async load(t,e){var c,l;this._backend=t;const s=[];let r=!1;for(const _ of await this._backend.entryNames()){const f=_.match(/(.+)\.trace$/);f&&s.push(f[1]||""),_.includes("src@")&&(r=!0)}if(!s.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new lr;const i=s.length*3;let a=0;for(const _ of s){const f=dr();f.traceUrl=t.traceURL(),f.hasSource=r;const b=new fr(f,this._snapshotStorage),h=await this._backend.readText(_+".trace")||"";b.appendTrace(h),e(++a,i);const S=await this._backend.readText(_+".network")||"";if(b.appendTrace(S),e(++a,i),f.actions=b.actions().sort((u,o)=>u.startTime-o.startTime),!t.isLive()){for(const u of f.actions.slice().reverse())if(!u.endTime&&!u.error)for(const o of f.actions)o.parentId===u.callId&&u.endTime<o.endTime&&(u.endTime=o.endTime)}const C=await this._backend.readText(_+".stacks");if(C){const u=or(JSON.parse(C));for(const o of f.actions)o.stack=o.stack||u.get(o.callId)}e(++a,i);for(const u of f.resources)(c=u.request.postData)!=null&&c._sha1&&this._resourceToContentType.set(u.request.postData._sha1,Mt(u.request.postData.mimeType)),(l=u.response.content)!=null&&l._sha1&&this._resourceToContentType.set(u.response.content._sha1,Mt(u.response.content.mimeType));this.contextEntries.push(f)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),s=this._resourceToContentType.get(t);return!e||s===void 0||s==="x-unknown"?e:new Blob([e],{type:s})}storage(){return this._snapshotStorage}}function Mt(n){const t=n.match(/^(.*);\s*charset=.*$/);return t?t[1]:n}function dr(){return{origin:"testRunner",traceUrl:"",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}const _r=15,F=0,ee=1,hr=2,X=-2,H=-3,Wt=-4,te=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Mn=1440,pr=0,mr=4,wr=9,gr=5,br=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],yr=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],xr=[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],Er=[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,112,112],Tr=[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],Sr=[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],ne=15;function at(){const n=this;let t,e,s,r,i,a;function c(_,f,b,h,S,C,u,o,d,y,g){let m,E,p,R,T,A,x,w,O,I,N,P,k,M,v;I=0,T=b;do s[_[f+I]]++,I++,T--;while(T!==0);if(s[0]==b)return u[0]=-1,o[0]=0,F;for(w=o[0],A=1;A<=ne&&s[A]===0;A++);for(x=A,w<A&&(w=A),T=ne;T!==0&&s[T]===0;T--);for(p=T,w>T&&(w=T),o[0]=w,M=1<<A;A<T;A++,M<<=1)if((M-=s[A])<0)return H;if((M-=s[T])<0)return H;for(s[T]+=M,a[1]=A=0,I=1,k=2;--T!==0;)a[k]=A+=s[I],k++,I++;T=0,I=0;do(A=_[f+I])!==0&&(g[a[A]++]=T),I++;while(++T<b);for(b=a[p],a[0]=T=0,I=0,R=-1,P=-w,i[0]=0,N=0,v=0;x<=p;x++)for(m=s[x];m--!==0;){for(;x>P+w;){if(R++,P+=w,v=p-P,v=v>w?w:v,(E=1<<(A=x-P))>m+1&&(E-=m+1,k=x,A<v))for(;++A<v&&!((E<<=1)<=s[++k]);)E-=s[k];if(v=1<<A,y[0]+v>Mn)return H;i[R]=N=y[0],y[0]+=v,R!==0?(a[R]=T,r[0]=A,r[1]=w,A=T>>>P-w,r[2]=N-i[R-1]-A,d.set(r,(i[R-1]+A)*3)):u[0]=N}for(r[1]=x-P,I>=b?r[0]=192:g[I]<h?(r[0]=g[I]<256?0:96,r[2]=g[I++]):(r[0]=C[g[I]-h]+16+64,r[2]=S[g[I++]-h]),E=1<<x-P,A=T>>>P;A<v;A+=E)d.set(r,(N+A)*3);for(A=1<<x-1;(T&A)!==0;A>>>=1)T^=A;for(T^=A,O=(1<<P)-1;(T&O)!=a[R];)R--,P-=w,O=(1<<P)-1}return M!==0&&p!=1?te:F}function l(_){let f;for(t||(t=[],e=[],s=new Int32Array(ne+1),r=[],i=new Int32Array(ne),a=new Int32Array(ne+1)),e.length<_&&(e=[]),f=0;f<_;f++)e[f]=0;for(f=0;f<ne+1;f++)s[f]=0;for(f=0;f<3;f++)r[f]=0;i.set(s.subarray(0,ne),0),a.set(s.subarray(0,ne+1),0)}n.inflate_trees_bits=function(_,f,b,h,S){let C;return l(19),t[0]=0,C=c(_,0,19,19,null,null,b,f,h,t,e),C==H?S.msg="oversubscribed dynamic bit lengths tree":(C==te||f[0]===0)&&(S.msg="incomplete dynamic bit lengths tree",C=H),C},n.inflate_trees_dynamic=function(_,f,b,h,S,C,u,o,d){let y;return l(288),t[0]=0,y=c(b,0,_,257,xr,Er,C,h,o,t,e),y!=F||h[0]===0?(y==H?d.msg="oversubscribed literal/length tree":y!=Wt&&(d.msg="incomplete literal/length tree",y=H),y):(l(288),y=c(b,_,f,0,Tr,Sr,u,S,o,t,e),y!=F||S[0]===0&&_>257?(y==H?d.msg="oversubscribed distance tree":y==te?(d.msg="incomplete distance tree",y=H):y!=Wt&&(d.msg="empty distance tree with lengths",y=H),y):F)}}at.inflate_trees_fixed=function(n,t,e,s){return n[0]=wr,t[0]=gr,e[0]=br,s[0]=yr,F};const Ne=0,Ht=1,Bt=2,jt=3,qt=4,Yt=5,Vt=6,Xe=7,Gt=8,ve=9;function Rr(){const n=this;let t,e=0,s,r=0,i=0,a=0,c=0,l=0,_=0,f=0,b,h=0,S,C=0;function u(o,d,y,g,m,E,p,R){let T,A,x,w,O,I,N,P,k,M,v,Y,D,_e,U,W;N=R.next_in_index,P=R.avail_in,O=p.bitb,I=p.bitk,k=p.write,M=k<p.read?p.read-k-1:p.end-k,v=$[o],Y=$[d];do{for(;I<20;)P--,O|=(R.read_byte(N++)&255)<<I,I+=8;if(T=O&v,A=y,x=g,W=(x+T)*3,(w=A[W])===0){O>>=A[W+1],I-=A[W+1],p.win[k++]=A[W+2],M--;continue}do{if(O>>=A[W+1],I-=A[W+1],(w&16)!==0){for(w&=15,D=A[W+2]+(O&$[w]),O>>=w,I-=w;I<15;)P--,O|=(R.read_byte(N++)&255)<<I,I+=8;T=O&Y,A=m,x=E,W=(x+T)*3,w=A[W];do if(O>>=A[W+1],I-=A[W+1],(w&16)!==0){for(w&=15;I<w;)P--,O|=(R.read_byte(N++)&255)<<I,I+=8;if(_e=A[W+2]+(O&$[w]),O>>=w,I-=w,M-=D,k>=_e)U=k-_e,k-U>0&&2>k-U?(p.win[k++]=p.win[U++],p.win[k++]=p.win[U++],D-=2):(p.win.set(p.win.subarray(U,U+2),k),k+=2,U+=2,D-=2);else{U=k-_e;do U+=p.end;while(U<0);if(w=p.end-U,D>w){if(D-=w,k-U>0&&w>k-U)do p.win[k++]=p.win[U++];while(--w!==0);else p.win.set(p.win.subarray(U,U+w),k),k+=w,U+=w,w=0;U=0}}if(k-U>0&&D>k-U)do p.win[k++]=p.win[U++];while(--D!==0);else p.win.set(p.win.subarray(U,U+D),k),k+=D,U+=D,D=0;break}else if((w&64)===0)T+=A[W+2],T+=O&$[w],W=(x+T)*3,w=A[W];else return R.msg="invalid distance code",D=R.avail_in-P,D=I>>3<D?I>>3:D,P+=D,N-=D,I-=D<<3,p.bitb=O,p.bitk=I,R.avail_in=P,R.total_in+=N-R.next_in_index,R.next_in_index=N,p.write=k,H;while(!0);break}if((w&64)===0){if(T+=A[W+2],T+=O&$[w],W=(x+T)*3,(w=A[W])===0){O>>=A[W+1],I-=A[W+1],p.win[k++]=A[W+2],M--;break}}else return(w&32)!==0?(D=R.avail_in-P,D=I>>3<D?I>>3:D,P+=D,N-=D,I-=D<<3,p.bitb=O,p.bitk=I,R.avail_in=P,R.total_in+=N-R.next_in_index,R.next_in_index=N,p.write=k,ee):(R.msg="invalid literal/length code",D=R.avail_in-P,D=I>>3<D?I>>3:D,P+=D,N-=D,I-=D<<3,p.bitb=O,p.bitk=I,R.avail_in=P,R.total_in+=N-R.next_in_index,R.next_in_index=N,p.write=k,H)}while(!0)}while(M>=258&&P>=10);return D=R.avail_in-P,D=I>>3<D?I>>3:D,P+=D,N-=D,I-=D<<3,p.bitb=O,p.bitk=I,R.avail_in=P,R.total_in+=N-R.next_in_index,R.next_in_index=N,p.write=k,F}n.init=function(o,d,y,g,m,E){t=Ne,_=o,f=d,b=y,h=g,S=m,C=E,s=null},n.proc=function(o,d,y){let g,m,E,p=0,R=0,T=0,A,x,w,O;for(T=d.next_in_index,A=d.avail_in,p=o.bitb,R=o.bitk,x=o.write,w=x<o.read?o.read-x-1:o.end-x;;)switch(t){case Ne:if(w>=258&&A>=10&&(o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,y=u(_,f,b,h,S,C,o,d),T=d.next_in_index,A=d.avail_in,p=o.bitb,R=o.bitk,x=o.write,w=x<o.read?o.read-x-1:o.end-x,y!=F)){t=y==ee?Xe:ve;break}i=_,s=b,r=h,t=Ht;case Ht:for(g=i;R<g;){if(A!==0)y=F;else return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}if(m=(r+(p&$[g]))*3,p>>>=s[m+1],R-=s[m+1],E=s[m],E===0){a=s[m+2],t=Vt;break}if((E&16)!==0){c=E&15,e=s[m+2],t=Bt;break}if((E&64)===0){i=E,r=m/3+s[m+2];break}if((E&32)!==0){t=Xe;break}return t=ve,d.msg="invalid literal/length code",y=H,o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);case Bt:for(g=c;R<g;){if(A!==0)y=F;else return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}e+=p&$[g],p>>=g,R-=g,i=f,s=S,r=C,t=jt;case jt:for(g=i;R<g;){if(A!==0)y=F;else return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}if(m=(r+(p&$[g]))*3,p>>=s[m+1],R-=s[m+1],E=s[m],(E&16)!==0){c=E&15,l=s[m+2],t=qt;break}if((E&64)===0){i=E,r=m/3+s[m+2];break}return t=ve,d.msg="invalid distance code",y=H,o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);case qt:for(g=c;R<g;){if(A!==0)y=F;else return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);A--,p|=(d.read_byte(T++)&255)<<R,R+=8}l+=p&$[g],p>>=g,R-=g,t=Yt;case Yt:for(O=x-l;O<0;)O+=o.end;for(;e!==0;){if(w===0&&(x==o.end&&o.read!==0&&(x=0,w=x<o.read?o.read-x-1:o.end-x),w===0&&(o.write=x,y=o.inflate_flush(d,y),x=o.write,w=x<o.read?o.read-x-1:o.end-x,x==o.end&&o.read!==0&&(x=0,w=x<o.read?o.read-x-1:o.end-x),w===0)))return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);o.win[x++]=o.win[O++],w--,O==o.end&&(O=0),e--}t=Ne;break;case Vt:if(w===0&&(x==o.end&&o.read!==0&&(x=0,w=x<o.read?o.read-x-1:o.end-x),w===0&&(o.write=x,y=o.inflate_flush(d,y),x=o.write,w=x<o.read?o.read-x-1:o.end-x,x==o.end&&o.read!==0&&(x=0,w=x<o.read?o.read-x-1:o.end-x),w===0)))return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);y=F,o.win[x++]=a,w--,t=Ne;break;case Xe:if(R>7&&(R-=8,A++,T--),o.write=x,y=o.inflate_flush(d,y),x=o.write,w=x<o.read?o.read-x-1:o.end-x,o.read!=o.write)return o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);t=Gt;case Gt:return y=ee,o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);case ve:return y=H,o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y);default:return y=X,o.bitb=p,o.bitk=R,d.avail_in=A,d.total_in+=T-d.next_in_index,d.next_in_index=T,o.write=x,o.inflate_flush(d,y)}},n.free=function(){}}const Zt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],we=0,$e=1,Kt=2,Xt=3,$t=4,Jt=5,Le=6,Fe=7,Qt=8,he=9;function Ar(n,t){const e=this;let s=we,r=0,i=0,a=0,c;const l=[0],_=[0],f=new Rr;let b=0,h=new Int32Array(Mn*3);const S=0,C=new at;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(u,o){o&&(o[0]=S),s==Le&&f.free(u),s=we,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(n,null),e.inflate_flush=function(u,o){let d,y,g;return y=u.next_out_index,g=e.read,d=(g<=e.write?e.write:e.end)-g,d>u.avail_out&&(d=u.avail_out),d!==0&&o==te&&(o=F),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(g,g+d),y),y+=d,g+=d,g==e.end&&(g=0,e.write==e.end&&(e.write=0),d=e.write-g,d>u.avail_out&&(d=u.avail_out),d!==0&&o==te&&(o=F),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(g,g+d),y),y+=d,g+=d),u.next_out_index=y,e.read=g,o},e.proc=function(u,o){let d,y,g,m,E,p,R,T;for(m=u.next_in_index,E=u.avail_in,y=e.bitb,g=e.bitk,p=e.write,R=p<e.read?e.read-p-1:e.end-p;;){let A,x,w,O,I,N,P,k;switch(s){case we:for(;g<3;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}switch(d=y&7,b=d&1,d>>>1){case 0:y>>>=3,g-=3,d=g&7,y>>>=d,g-=d,s=$e;break;case 1:A=[],x=[],w=[[]],O=[[]],at.inflate_trees_fixed(A,x,w,O),f.init(A[0],x[0],w[0],0,O[0],0),y>>>=3,g-=3,s=Le;break;case 2:y>>>=3,g-=3,s=Xt;break;case 3:return y>>>=3,g-=3,s=he,u.msg="invalid block type",o=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o)}break;case $e:for(;g<32;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if((~y>>>16&65535)!=(y&65535))return s=he,u.msg="invalid stored block lengths",o=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);r=y&65535,y=g=0,s=r!==0?Kt:b!==0?Fe:we;break;case Kt:if(E===0||R===0&&(p==e.end&&e.read!==0&&(p=0,R=p<e.read?e.read-p-1:e.end-p),R===0&&(e.write=p,o=e.inflate_flush(u,o),p=e.write,R=p<e.read?e.read-p-1:e.end-p,p==e.end&&e.read!==0&&(p=0,R=p<e.read?e.read-p-1:e.end-p),R===0)))return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);if(o=F,d=r,d>E&&(d=E),d>R&&(d=R),e.win.set(u.read_buf(m,d),p),m+=d,E-=d,p+=d,R-=d,(r-=d)!==0)break;s=b!==0?Fe:we;break;case Xt:for(;g<14;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(i=d=y&16383,(d&31)>29||(d>>5&31)>29)return s=he,u.msg="too many length or distance symbols",o=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);if(d=258+(d&31)+(d>>5&31),!c||c.length<d)c=[];else for(T=0;T<d;T++)c[T]=0;y>>>=14,g-=14,a=0,s=$t;case $t:for(;a<4+(i>>>10);){for(;g<3;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}c[Zt[a++]]=y&7,y>>>=3,g-=3}for(;a<19;)c[Zt[a++]]=0;if(l[0]=7,d=C.inflate_trees_bits(c,l,_,h,u),d!=F)return o=d,o==H&&(c=null,s=he),e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);a=0,s=Jt;case Jt:for(;d=i,!(a>=258+(d&31)+(d>>5&31));){let M,v;for(d=l[0];g<d;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(d=h[(_[0]+(y&$[d]))*3+1],v=h[(_[0]+(y&$[d]))*3+2],v<16)y>>>=d,g-=d,c[a++]=v;else{for(T=v==18?7:v-14,M=v==18?11:3;g<d+T;){if(E!==0)o=F;else return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);E--,y|=(u.read_byte(m++)&255)<<g,g+=8}if(y>>>=d,g-=d,M+=y&$[T],y>>>=T,g-=T,T=a,d=i,T+M>258+(d&31)+(d>>5&31)||v==16&&T<1)return c=null,s=he,u.msg="invalid bit length repeat",o=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);v=v==16?c[T-1]:0;do c[T++]=v;while(--M!==0);a=T}}if(_[0]=-1,I=[],N=[],P=[],k=[],I[0]=9,N[0]=6,d=i,d=C.inflate_trees_dynamic(257+(d&31),1+(d>>5&31),c,I,N,P,k,h,u),d!=F)return d==H&&(c=null,s=he),o=d,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);f.init(I[0],N[0],h,P[0],h,k[0]),s=Le;case Le:if(e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,(o=f.proc(e,u,o))!=ee)return e.inflate_flush(u,o);if(o=F,f.free(u),m=u.next_in_index,E=u.avail_in,y=e.bitb,g=e.bitk,p=e.write,R=p<e.read?e.read-p-1:e.end-p,b===0){s=we;break}s=Fe;case Fe:if(e.write=p,o=e.inflate_flush(u,o),p=e.write,R=p<e.read?e.read-p-1:e.end-p,e.read!=e.write)return e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);s=Qt;case Qt:return o=ee,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);case he:return o=H,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o);default:return o=X,e.bitb=y,e.bitk=g,u.avail_in=E,u.total_in+=m-u.next_in_index,u.next_in_index=m,e.write=p,e.inflate_flush(u,o)}}},e.free=function(u){e.reset(u,null),e.win=null,h=null},e.set_dictionary=function(u,o,d){e.win.set(u.subarray(o,o+d),0),e.read=e.write=d},e.sync_point=function(){return s==$e?1:0}}const Cr=32,Ir=8,Or=0,zt=1,en=2,tn=3,nn=4,sn=5,Je=6,xe=7,rn=12,se=13,Pr=[0,0,255,255];function kr(){const n=this;n.mode=0,n.method=0,n.was=[0],n.need=0,n.marker=0,n.wbits=0;function t(e){return!e||!e.istate?X:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=xe,e.istate.blocks.reset(e,null),F)}n.inflateEnd=function(e){return n.blocks&&n.blocks.free(e),n.blocks=null,F},n.inflateInit=function(e,s){return e.msg=null,n.blocks=null,s<8||s>15?(n.inflateEnd(e),X):(n.wbits=s,e.istate.blocks=new Ar(e,1<<s),t(e),F)},n.inflate=function(e,s){let r,i;if(!e||!e.istate||!e.next_in)return X;const a=e.istate;for(s=s==mr?te:F,r=te;;)switch(a.mode){case Or:if(e.avail_in===0)return r;if(r=s,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Ir){a.mode=se,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=se,e.msg="invalid win size",a.marker=5;break}a.mode=zt;case zt:if(e.avail_in===0)return r;if(r=s,e.avail_in--,e.total_in++,i=e.read_byte(e.next_in_index++)&255,((a.method<<8)+i)%31!==0){a.mode=se,e.msg="incorrect header check",a.marker=5;break}if((i&Cr)===0){a.mode=xe;break}a.mode=en;case en:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=tn;case tn:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=nn;case nn:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=sn;case sn:return e.avail_in===0?r:(r=s,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=Je,hr);case Je:return a.mode=se,e.msg="need dictionary",a.marker=0,X;case xe:if(r=a.blocks.proc(e,r),r==H){a.mode=se,a.marker=0;break}if(r==F&&(r=s),r!=ee)return r;r=s,a.blocks.reset(e,a.was),a.mode=rn;case rn:return e.avail_in=0,ee;case se:return H;default:return X}},n.inflateSetDictionary=function(e,s,r){let i=0,a=r;if(!e||!e.istate||e.istate.mode!=Je)return X;const c=e.istate;return a>=1<<c.wbits&&(a=(1<<c.wbits)-1,i=r-a),c.blocks.set_dictionary(s,i,a),c.mode=xe,F},n.inflateSync=function(e){let s,r,i,a,c;if(!e||!e.istate)return X;const l=e.istate;if(l.mode!=se&&(l.mode=se,l.marker=0),(s=e.avail_in)===0)return te;for(r=e.next_in_index,i=l.marker;s!==0&&i<4;)e.read_byte(r)==Pr[i]?i++:e.read_byte(r)!==0?i=0:i=4-i,r++,s--;return e.total_in+=r-e.next_in_index,e.next_in_index=r,e.avail_in=s,l.marker=i,i!=4?H:(a=e.total_in,c=e.total_out,t(e),e.total_in=a,e.total_out=c,l.mode=xe,F)},n.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?X:e.istate.blocks.sync_point()}}function Wn(){}Wn.prototype={inflateInit(n){const t=this;return t.istate=new kr,n||(n=_r),t.istate.inflateInit(t,n)},inflate(n){const t=this;return t.istate?t.istate.inflate(t,n):X},inflateEnd(){const n=this;if(!n.istate)return X;const t=n.istate.inflateEnd(n);return n.istate=null,t},inflateSync(){const n=this;return n.istate?n.istate.inflateSync(n):X},inflateSetDictionary(n,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,n,t):X},read_byte(n){return this.next_in[n]},read_buf(n,t){return this.next_in.subarray(n,n+t)}};function Dr(n){const t=this,e=new Wn,s=n&&n.chunkSize?Math.floor(n.chunkSize*2):128*1024,r=pr,i=new Uint8Array(s);let a=!1;e.inflateInit(),e.next_out=i,t.append=function(c,l){const _=[];let f,b,h=0,S=0,C=0;if(c.length!==0){e.next_in_index=0,e.next_in=c,e.avail_in=c.length;do{if(e.next_out_index=0,e.avail_out=s,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),f=e.inflate(r),a&&f===te){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==F&&f!==ee)throw new Error("inflating: "+e.msg);if((a||f===ee)&&e.avail_in===c.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===s?_.push(new Uint8Array(i)):_.push(i.subarray(0,e.next_out_index))),C+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=h&&(l(e.next_in_index),h=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(b=new Uint8Array(C),_.forEach(function(u){b.set(u,S),S+=u.length})):b=_[0]?new Uint8Array(_[0]):new Uint8Array,b}},t.flush=function(){e.inflateEnd()}}const pe=4294967295,ae=65535,Nr=8,vr=0,Lr=99,Fr=67324752,Ur=134695760,an=33639248,Mr=101010256,on=101075792,Wr=117853008,oe=22,Qe=20,ze=56,Hr=1,Br=39169,jr=10,qr=1,Yr=21589,Vr=28789,Gr=25461,Zr=6534,cn=1,Kr=6,ln=8,fn=2048,un=16,dn=16384,_n=73,hn="/",G=void 0,ue="undefined",Oe="function";class pn{constructor(t){return class extends TransformStream{constructor(e,s){const r=new t(s);super({transform(i,a){a.enqueue(r.append(i))},flush(i){const a=r.flush();a&&i.enqueue(a)}})}}}}const Xr=64;let Hn=2;try{typeof navigator!=ue&&navigator.hardwareConcurrency&&(Hn=navigator.hardwareConcurrency)}catch{}const $r={chunkSize:512*1024,maxWorkers:Hn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:G,CompressionStreamNative:typeof CompressionStream!=ue&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=ue&&DecompressionStream},ce=Object.assign({},$r);function Bn(){return ce}function Jr(n){return Math.max(n.chunkSize,Xr)}function jn(n){const{baseURL:t,chunkSize:e,maxWorkers:s,terminateWorkerTimeout:r,useCompressionStream:i,useWebWorkers:a,Deflate:c,Inflate:l,CompressionStream:_,DecompressionStream:f,workerScripts:b}=n;if(re("baseURL",t),re("chunkSize",e),re("maxWorkers",s),re("terminateWorkerTimeout",r),re("useCompressionStream",i),re("useWebWorkers",a),c&&(ce.CompressionStream=new pn(c)),l&&(ce.DecompressionStream=new pn(l)),re("CompressionStream",_),re("DecompressionStream",f),b!==G){const{deflate:h,inflate:S}=b;if((h||S)&&(ce.workerScripts||(ce.workerScripts={})),h){if(!Array.isArray(h))throw new Error("workerScripts.deflate must be an array");ce.workerScripts.deflate=h}if(S){if(!Array.isArray(S))throw new Error("workerScripts.inflate must be an array");ce.workerScripts.inflate=S}}}function re(n,t){t!==G&&(ce[n]=t)}function Qr(){return"application/octet-stream"}const qn=[];for(let n=0;n<256;n++){let t=n;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;qn[n]=t}class Be{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let s=0,r=t.length|0;s<r;s++)e=e>>>8^qn[(e^t[s])&255];this.crc=e}get(){return~this.crc}}class Yn extends TransformStream{constructor(){let t;const e=new Be;super({transform(s,r){e.append(s),r.enqueue(s)},flush(){const s=new Uint8Array(4);new DataView(s.buffer).setUint32(0,e.get()),t.value=s}}),t=this}}function zr(n){if(typeof TextEncoder==ue){n=unescape(encodeURIComponent(n));const t=new Uint8Array(n.length);for(let e=0;e<t.length;e++)t[e]=n.charCodeAt(e);return t}else return new TextEncoder().encode(n)}const K={concat(n,t){if(n.length===0||t.length===0)return n.concat(t);const e=n[n.length-1],s=K.getPartial(e);return s===32?n.concat(t):K._shiftRight(t,s,e|0,n.slice(0,n.length-1))},bitLength(n){const t=n.length;if(t===0)return 0;const e=n[t-1];return(t-1)*32+K.getPartial(e)},clamp(n,t){if(n.length*32<t)return n;n=n.slice(0,Math.ceil(t/32));const e=n.length;return t=t&31,e>0&&t&&(n[e-1]=K.partial(t,n[e-1]&2147483648>>t-1,1)),n},partial(n,t,e){return n===32?t:(e?t|0:t<<32-n)+n*1099511627776},getPartial(n){return Math.round(n/1099511627776)||32},_shiftRight(n,t,e,s){for(s===void 0&&(s=[]);t>=32;t-=32)s.push(e),e=0;if(t===0)return s.concat(n);for(let a=0;a<n.length;a++)s.push(e|n[a]>>>t),e=n[a]<<32-t;const r=n.length?n[n.length-1]:0,i=K.getPartial(r);return s.push(K.partial(t+i&31,t+i>32?e:s.pop(),1)),s}},je={bytes:{fromBits(n){const e=K.bitLength(n)/8,s=new Uint8Array(e);let r;for(let i=0;i<e;i++)(i&3)===0&&(r=n[i/4]),s[i]=r>>>24,r<<=8;return s},toBits(n){const t=[];let e,s=0;for(e=0;e<n.length;e++)s=s<<8|n[e],(e&3)===3&&(t.push(s),s=0);return e&3&&t.push(K.partial(8*(e&3),s)),t}}},Vn={};Vn.sha1=class{constructor(n){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],n?(t._h=n._h.slice(0),t._buffer=n._buffer.slice(0),t._length=n._length):t.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const t=this;typeof n=="string"&&(n=je.utf8String.toBits(n));const e=t._buffer=K.concat(t._buffer,n),s=t._length,r=t._length=s+K.bitLength(n);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const i=new Uint32Array(e);let a=0;for(let c=t.blockSize+s-(t.blockSize+s&t.blockSize-1);c<=r;c+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const n=this;let t=n._buffer;const e=n._h;t=K.concat(t,[K.partial(1,1)]);for(let s=t.length+2;s&15;s++)t.push(0);for(t.push(Math.floor(n._length/4294967296)),t.push(n._length|0);t.length;)n._block(t.splice(0,16));return n.reset(),e}_f(n,t,e,s){if(n<=19)return t&e|~t&s;if(n<=39)return t^e^s;if(n<=59)return t&e|t&s|e&s;if(n<=79)return t^e^s}_S(n,t){return t<<n|t>>>32-n}_block(n){const t=this,e=t._h,s=Array(80);for(let _=0;_<16;_++)s[_]=n[_];let r=e[0],i=e[1],a=e[2],c=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(s[_]=t._S(1,s[_-3]^s[_-8]^s[_-14]^s[_-16]));const f=t._S(5,r)+t._f(_,i,a,c)+l+s[_]+t._key[Math.floor(_/20)]|0;l=c,c=a,a=t._S(30,i),i=r,r=f}e[0]=e[0]+r|0,e[1]=e[1]+i|0,e[2]=e[2]+a|0,e[3]=e[3]+c|0,e[4]=e[4]+l|0}};const Gn={};Gn.aes=class{constructor(n){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],s=t._tables[1],r=n.length;let i,a,c,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[a=n.slice(0),c=[]],i=r;i<4*r+28;i++){let _=a[i-1];(i%r===0||r===8&&i%r===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],i%r===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[i]=a[i-r]^_}for(let _=0;i;_++,i--){const f=a[_&3?i:i-4];i<=4||_<4?c[_]=f:c[_]=s[0][e[f>>>24]]^s[1][e[f>>16&255]]^s[2][e[f>>8&255]]^s[3][e[f&255]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],t=this._tables[1],e=n[4],s=t[4],r=[],i=[];let a,c,l,_;for(let f=0;f<256;f++)i[(r[f]=f<<1^(f>>7)*283)^f]=f;for(let f=a=0;!e[f];f^=c||1,a=i[a]||1){let b=a^a<<1^a<<2^a<<3^a<<4;b=b>>8^b&255^99,e[f]=b,s[b]=f,_=r[l=r[c=r[f]]];let h=_*16843009^l*65537^c*257^f*16843008,S=r[b]*257^b*16843008;for(let C=0;C<4;C++)n[C][f]=S=S<<24^S>>>8,t[C][b]=h=h<<24^h>>>8}for(let f=0;f<5;f++)n[f]=n[f].slice(0),t[f]=t[f].slice(0)}_crypt(n,t){if(n.length!==4)throw new Error("invalid aes block size");const e=this._key[t],s=e.length/4-2,r=[0,0,0,0],i=this._tables[t],a=i[0],c=i[1],l=i[2],_=i[3],f=i[4];let b=n[0]^e[0],h=n[t?3:1]^e[1],S=n[2]^e[2],C=n[t?1:3]^e[3],u=4,o,d,y;for(let g=0;g<s;g++)o=a[b>>>24]^c[h>>16&255]^l[S>>8&255]^_[C&255]^e[u],d=a[h>>>24]^c[S>>16&255]^l[C>>8&255]^_[b&255]^e[u+1],y=a[S>>>24]^c[C>>16&255]^l[b>>8&255]^_[h&255]^e[u+2],C=a[C>>>24]^c[b>>16&255]^l[h>>8&255]^_[S&255]^e[u+3],u+=4,b=o,h=d,S=y;for(let g=0;g<4;g++)r[t?3&-g:g]=f[b>>>24]<<24^f[h>>16&255]<<16^f[S>>8&255]<<8^f[C&255]^e[u++],o=b,b=h,h=S,S=C,C=o;return r}};const ei={getRandomValues(n){const t=new Uint32Array(n.buffer),e=s=>{let r=987654321;const i=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&i,s=18e3*(s&65535)+(s>>16)&i,(((r<<16)+s&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let s=0,r;s<n.length;s+=4){const i=e((r||Math.random())*4294967296);r=i()*987654071,t[s/4]=i()*4294967296|0}return n}},Zn={};Zn.ctrGladman=class{constructor(n,t){this._prf=n,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if((n>>24&255)===255){let t=n>>16&255,e=n>>8&255,s=n&255;t===255?(t=0,e===255?(e=0,s===255?s=0:++s):++e):++t,n=0,n+=t<<16,n+=e<<8,n+=s}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,t,e){let s;if(!(s=t.length))return[];const r=K.bitLength(t);for(let i=0;i<s;i+=4){this.incCounter(e);const a=n.encrypt(e);t[i]^=a[0],t[i+1]^=a[1],t[i+2]^=a[2],t[i+3]^=a[3]}return K.clamp(t,r)}};const me={importKey(n){return new me.hmacSha1(je.bytes.toBits(n))},pbkdf2(n,t,e,s){if(e=e||1e4,s<0||e<0)throw new Error("invalid params to pbkdf2");const r=(s>>5)+1<<2;let i,a,c,l,_;const f=new ArrayBuffer(r),b=new DataView(f);let h=0;const S=K;for(t=je.bytes.toBits(t),_=1;h<(r||1);_++){for(i=a=n.encrypt(S.concat(t,[_])),c=1;c<e;c++)for(a=n.encrypt(a),l=0;l<a.length;l++)i[l]^=a[l];for(c=0;h<(r||1)&&c<i.length;c++)b.setInt32(h,i[c]),h+=4}return f.slice(0,s/8)}};me.hmacSha1=class{constructor(n){const t=this,e=t._hash=Vn.sha1,s=[[],[]];t._baseHash=[new e,new e];const r=t._baseHash[0].blockSize/32;n.length>r&&(n=new e().update(n).finalize());for(let i=0;i<r;i++)s[0][i]=n[i]^909522486,s[1][i]=n[i]^1549556828;t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new e(t._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){const t=this;t._updated=!0,t._resultHash.update(n)}digest(){const n=this,t=n._resultHash.finalize(),e=new n._hash(n._baseHash[1]).update(t).finalize();return n.reset(),e}encrypt(n){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}};const ti=typeof crypto!=ue&&typeof crypto.getRandomValues==Oe,mt="Invalid password",wt="Invalid signature",gt="zipjs-abort-check-password";function Kn(n){return ti?crypto.getRandomValues(n):ei.getRandomValues(n)}const ge=16,ni="raw",Xn={name:"PBKDF2"},si={name:"HMAC"},ri="SHA-1",ii=Object.assign({hash:si},Xn),ot=Object.assign({iterations:1e3,hash:{name:ri}},Xn),ai=["deriveBits"],Se=[8,12,16],Ee=[16,24,32],ie=10,oi=[0,0,0,0],Ye=typeof crypto!=ue,Pe=Ye&&crypto.subtle,$n=Ye&&typeof Pe!=ue,Q=je.bytes,ci=Gn.aes,li=Zn.ctrGladman,fi=me.hmacSha1;let mn=Ye&&$n&&typeof Pe.importKey==Oe,wn=Ye&&$n&&typeof Pe.deriveBits==Oe;class ui extends TransformStream{constructor({password:t,rawPassword:e,signed:s,encryptionStrength:r,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:zn(t,e),signed:s,strength:r-1,pending:new Uint8Array})},async transform(a,c){const l=this,{password:_,strength:f,resolveReady:b,ready:h}=l;_?(await _i(l,f,_,J(a,0,Se[f]+2)),a=J(a,Se[f]+2),i?c.error(new Error(gt)):b()):await h;const S=new Uint8Array(a.length-ie-(a.length-ie)%ge);c.enqueue(Jn(l,a,S,0,ie,!0))},async flush(a){const{signed:c,ctr:l,hmac:_,pending:f,ready:b}=this;if(_&&l){await b;const h=J(f,0,f.length-ie),S=J(f,f.length-ie);let C=new Uint8Array;if(h.length){const u=Ae(Q,h);_.update(u);const o=l.update(u);C=Re(Q,o)}if(c){const u=J(Re(Q,_.digest()),0,ie);for(let o=0;o<ie;o++)if(u[o]!=S[o])throw new Error(wt)}a.enqueue(C)}}})}}class di extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:s}){let r;super({start(){Object.assign(this,{ready:new Promise(i=>this.resolveReady=i),password:zn(t,e),strength:s-1,pending:new Uint8Array})},async transform(i,a){const c=this,{password:l,strength:_,resolveReady:f,ready:b}=c;let h=new Uint8Array;l?(h=await hi(c,_,l),f()):await b;const S=new Uint8Array(h.length+i.length-i.length%ge);S.set(h,0),a.enqueue(Jn(c,i,S,h.length,0))},async flush(i){const{ctr:a,hmac:c,pending:l,ready:_}=this;if(c&&a){await _;let f=new Uint8Array;if(l.length){const b=a.update(Ae(Q,l));c.update(b),f=Re(Q,b)}r.signature=Re(Q,c.digest()).slice(0,ie),i.enqueue(bt(f,r.signature))}}}),r=this}}function Jn(n,t,e,s,r,i){const{ctr:a,hmac:c,pending:l}=n,_=t.length-r;l.length&&(t=bt(l,t),e=wi(e,_-_%ge));let f;for(f=0;f<=_-ge;f+=ge){const b=Ae(Q,J(t,f,f+ge));i&&c.update(b);const h=a.update(b);i||c.update(h),e.set(Re(Q,h),f+s)}return n.pending=J(t,f),e}async function _i(n,t,e,s){const r=await Qn(n,t,e,J(s,0,Se[t])),i=J(s,Se[t]);if(r[0]!=i[0]||r[1]!=i[1])throw new Error(mt)}async function hi(n,t,e){const s=Kn(new Uint8Array(Se[t])),r=await Qn(n,t,e,s);return bt(s,r)}async function Qn(n,t,e,s){n.password=null;const r=await pi(ni,e,ii,!1,ai),i=await mi(Object.assign({salt:s},ot),r,8*(Ee[t]*2+2)),a=new Uint8Array(i),c=Ae(Q,J(a,0,Ee[t])),l=Ae(Q,J(a,Ee[t],Ee[t]*2)),_=J(a,Ee[t]*2);return Object.assign(n,{keys:{key:c,authentication:l,passwordVerification:_},ctr:new li(new ci(c),Array.from(oi)),hmac:new fi(l)}),_}async function pi(n,t,e,s,r){if(mn)try{return await Pe.importKey(n,t,e,s,r)}catch{return mn=!1,me.importKey(t)}else return me.importKey(t)}async function mi(n,t,e){if(wn)try{return await Pe.deriveBits(n,t,e)}catch{return wn=!1,me.pbkdf2(t,n.salt,ot.iterations,e)}else return me.pbkdf2(t,n.salt,ot.iterations,e)}function zn(n,t){return t===G?zr(n):t}function bt(n,t){let e=n;return n.length+t.length&&(e=new Uint8Array(n.length+t.length),e.set(n,0),e.set(t,n.length)),e}function wi(n,t){if(t&&t>n.length){const e=n;n=new Uint8Array(t),n.set(e,0)}return n}function J(n,t,e){return n.subarray(t,e)}function Re(n,t){return n.fromBits(t)}function Ae(n,t){return n.toBits(t)}const be=12;class gi extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:s}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),es(this,t)},transform(r,i){const a=this;if(a.password){const c=gn(a,r.subarray(0,be));if(a.password=null,c[be-1]!=a.passwordVerification)throw new Error(mt);r=r.subarray(be)}s?i.error(new Error(gt)):i.enqueue(gn(a,r))}})}}class bi extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),es(this,t)},transform(s,r){const i=this;let a,c;if(i.password){i.password=null;const l=Kn(new Uint8Array(be));l[be-1]=i.passwordVerification,a=new Uint8Array(s.length+l.length),a.set(bn(i,l),0),c=be}else a=new Uint8Array(s.length),c=0;a.set(bn(i,s),c),r.enqueue(a)}})}}function gn(n,t){const e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=ts(n)^t[s],yt(n,e[s]);return e}function bn(n,t){const e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=ts(n)^t[s],yt(n,t[s]);return e}function es(n,t){const e=[305419896,591751049,878082192];Object.assign(n,{keys:e,crcKey0:new Be(e[0]),crcKey2:new Be(e[2])});for(let s=0;s<t.length;s++)yt(n,t.charCodeAt(s))}function yt(n,t){let[e,s,r]=n.keys;n.crcKey0.append([t]),e=~n.crcKey0.get(),s=yn(Math.imul(yn(s+ns(e)),134775813)+1),n.crcKey2.append([s>>>24]),r=~n.crcKey2.get(),n.keys=[e,s,r]}function ts(n){const t=n.keys[2]|2;return ns(Math.imul(t,t^1)>>>8)}function ns(n){return n&255}function yn(n){return n&4294967295}const xn="deflate-raw";class yi extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:s,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:a,useCompressionStream:c,zipCrypto:l,signed:_,level:f}=t,b=this;let h,S,C=ss(super.readable);(!a||l)&&_&&(h=new Yn,C=z(C,h)),i&&(C=is(C,c,{level:f,chunkSize:e},r,s)),a&&(l?C=z(C,new bi(t)):(S=new di(t),C=z(C,S))),rs(b,C,()=>{let u;a&&!l&&(u=S.signature),(!a||l)&&_&&(u=new DataView(h.value.buffer).getUint32(0)),b.signature=u})}}class xi extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:s,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:a,signed:c,signature:l,compressed:_,useCompressionStream:f}=t;let b,h,S=ss(super.readable);a&&(i?S=z(S,new gi(t)):(h=new ui(t),S=z(S,h))),_&&(S=is(S,f,{chunkSize:e},r,s)),(!a||i)&&c&&(b=new Yn,S=z(S,b)),rs(this,S,()=>{if((!a||i)&&c){const C=new DataView(b.value.buffer);if(l!=C.getUint32(0,!1))throw new Error(wt)}})}}function ss(n){return z(n,new TransformStream({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function rs(n,t,e){t=z(t,new TransformStream({flush:e})),Object.defineProperty(n,"readable",{get(){return t}})}function is(n,t,e,s,r){try{const i=t&&s?s:r;n=z(n,new i(xn,e))}catch{if(t)try{n=z(n,new r(xn,e))}catch{return n}else return n}return n}function z(n,t){return n.pipeThrough(t)}const Ei="message",Ti="start",Si="pull",En="data",Ri="ack",Tn="close",Ai="deflate",as="inflate";class Ci extends TransformStream{constructor(t,e){super({});const s=this,{codecType:r}=t;let i;r.startsWith(Ai)?i=yi:r.startsWith(as)&&(i=xi);let a=0,c=0;const l=new i(t,e),_=super.readable,f=new TransformStream({transform(h,S){h&&h.length&&(c+=h.length,S.enqueue(h))},flush(){Object.assign(s,{inputSize:c})}}),b=new TransformStream({transform(h,S){h&&h.length&&(a+=h.length,S.enqueue(h))},flush(){const{signature:h}=l;Object.assign(s,{signature:h,outputSize:a,inputSize:c})}});Object.defineProperty(s,"readable",{get(){return _.pipeThrough(f).pipeThrough(l).pipeThrough(b)}})}}class Ii extends TransformStream{constructor(t){let e;super({transform:s,flush(r){e&&e.length&&r.enqueue(e)}});function s(r,i){if(e){const a=new Uint8Array(e.length+r.length);a.set(e),a.set(r,e.length),r=a,e=null}r.length>t?(i.enqueue(r.slice(0,t)),s(r.slice(t),i)):e=r}}}let os=typeof Worker!=ue;class et{constructor(t,{readable:e,writable:s},{options:r,config:i,streamOptions:a,useWebWorkers:c,transferStreams:l,scripts:_},f){const{signal:b}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new Ii(i.chunkSize)).pipeThrough(new Oi(e,a),{signal:b}),writable:s,options:Object.assign({},r),scripts:_,transferStreams:l,terminate(){return new Promise(h=>{const{worker:S,busy:C}=t;S?(C?t.resolveTerminated=h:(S.terminate(),h()),t.interface=null):h()})},onTaskFinished(){const{resolveTerminated:h}=t;h&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),h()),t.busy=!1,f(t)}}),(c&&os?Pi:cs)(t,i)}}class Oi extends TransformStream{constructor(t,{onstart:e,onprogress:s,size:r,onend:i}){let a=0;super({async start(){e&&await tt(e,r)},async transform(c,l){a+=c.length,s&&await tt(s,a,r),l.enqueue(c)},async flush(){t.size=a,i&&await tt(i,a)}})}}async function tt(n,...t){try{await n(...t)}catch{}}function cs(n,t){return{run:()=>ki(n,t)}}function Pi(n,t){const{baseURL:e,chunkSize:s}=t;if(!n.interface){let r;try{r=vi(n.scripts[0],e,n)}catch{return os=!1,cs(n,t)}Object.assign(n,{worker:r,interface:{run:()=>Di(n,{chunkSize:s})}})}return n.interface}async function ki({options:n,readable:t,writable:e,onTaskFinished:s},r){try{const i=new Ci(n,r);await t.pipeThrough(i).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:c,outputSize:l}=i;return{signature:a,inputSize:c,outputSize:l}}finally{s()}}async function Di(n,t){let e,s;const r=new Promise((h,S)=>{e=h,s=S});Object.assign(n,{reader:null,writer:null,resolveResult:e,rejectResult:s,result:r});const{readable:i,options:a,scripts:c}=n,{writable:l,closed:_}=Ni(n.writable),f=Ue({type:Ti,scripts:c.slice(1),options:a,config:t,readable:i,writable:l},n);f||Object.assign(n,{reader:i.getReader(),writer:l.getWriter()});const b=await r;return f||await l.getWriter().close(),await _,b}function Ni(n){let t;const e=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const i=n.getWriter();await i.ready,await i.write(r),i.releaseLock()},close(){t()},abort(r){return n.getWriter().abort(r)}}),closed:e}}let Sn=!0,Rn=!0;function vi(n,t,e){const s={type:"module"};let r,i;typeof n==Oe&&(n=n());try{r=new URL(n,t)}catch{r=n}if(Sn)try{i=new Worker(r)}catch{Sn=!1,i=new Worker(r,s)}else i=new Worker(r,s);return i.addEventListener(Ei,a=>Li(a,e)),i}function Ue(n,{worker:t,writer:e,onTaskFinished:s,transferStreams:r}){try{const{value:i,readable:a,writable:c}=n,l=[];if(i&&(i.byteLength<i.buffer.byteLength?n.value=i.buffer.slice(0,i.byteLength):n.value=i.buffer,l.push(n.value)),r&&Rn?(a&&l.push(a),c&&l.push(c)):n.readable=n.writable=null,l.length)try{return t.postMessage(n,l),!0}catch{Rn=!1,n.readable=n.writable=null,t.postMessage(n)}else t.postMessage(n)}catch(i){throw e&&e.releaseLock(),s(),i}}async function Li({data:n},t){const{type:e,value:s,messageId:r,result:i,error:a}=n,{reader:c,writer:l,resolveResult:_,rejectResult:f,onTaskFinished:b}=t;try{if(a){const{message:S,stack:C,code:u,name:o}=a,d=new Error(S);Object.assign(d,{stack:C,code:u,name:o}),h(d)}else{if(e==Si){const{value:S,done:C}=await c.read();Ue({type:En,value:S,done:C,messageId:r},t)}e==En&&(await l.ready,await l.write(new Uint8Array(s)),Ue({type:Ri,messageId:r},t)),e==Tn&&h(null,i)}}catch(S){Ue({type:Tn,messageId:r},t),h(S)}function h(S,C){S?f(S):_(C),l&&l.releaseLock(),b()}}let le=[];const nt=[];let An=0;async function Fi(n,t){const{options:e,config:s}=t,{transferStreams:r,useWebWorkers:i,useCompressionStream:a,codecType:c,compressed:l,signed:_,encrypted:f}=e,{workerScripts:b,maxWorkers:h}=s;t.transferStreams=r||r===G;const S=!l&&!_&&!f&&!t.transferStreams;return t.useWebWorkers=!S&&(i||i===G&&s.useWebWorkers),t.scripts=t.useWebWorkers&&b?b[c]:[],e.useCompressionStream=a||a===G&&s.useCompressionStream,(await C()).run();async function C(){const o=le.find(d=>!d.busy);if(o)return ct(o),new et(o,n,t,u);if(le.length<h){const d={indexWorker:An};return An++,le.push(d),new et(d,n,t,u)}else return new Promise(d=>nt.push({resolve:d,stream:n,workerOptions:t}))}function u(o){if(nt.length){const[{resolve:d,stream:y,workerOptions:g}]=nt.splice(0,1);d(new et(o,y,g,u))}else o.worker?(ct(o),Ui(o,t)):le=le.filter(d=>d!=o)}}function Ui(n,t){const{config:e}=t,{terminateWorkerTimeout:s}=e;Number.isFinite(s)&&s>=0&&(n.terminated?n.terminated=!1:n.terminateTimeout=setTimeout(async()=>{le=le.filter(r=>r!=n);try{await n.terminate()}catch{}},s))}function ct(n){const{terminateTimeout:t}=n;t&&(clearTimeout(t),n.terminateTimeout=null)}async function Mi(){await Promise.allSettled(le.map(n=>(ct(n),n.terminate())))}const ls="HTTP error ",ke="HTTP Range not supported",fs="Writer iterator completed too soon",Wi="text/plain",Hi="Content-Length",Bi="Content-Range",ji="Accept-Ranges",qi="Range",Yi="Content-Type",Vi="HEAD",xt="GET",us="bytes",Gi=64*1024,Et="writable";class Ve{constructor(){this.size=0}init(){this.initialized=!0}}class de extends Ve{get readable(){const t=this,{chunkSize:e=Gi}=t,s=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:a,diskNumberStart:c}=s,{chunkOffset:l}=this;r.enqueue(await V(t,i+l,Math.min(e,a-l),c)),l+e>a?r.close():this.chunkOffset+=e}});return s}}class Tt extends Ve{constructor(){super();const t=this,e=new WritableStream({write(s){return t.writeUint8Array(s)}});Object.defineProperty(t,Et,{get(){return e}})}writeUint8Array(){}}class Zi extends de{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const s=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:s,size:Math.floor((e-s)*.75)})}readUint8Array(t,e){const{dataStart:s,dataURI:r}=this,i=new Uint8Array(e),a=Math.floor(t/3)*4,c=atob(r.substring(a+s,Math.ceil((t+e)/3)*4+s)),l=t-Math.floor(a/4)*3;for(let _=l;_<l+e;_++)i[_-l]=c.charCodeAt(_);return i}}class Ki extends Tt{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let s=0,r=e.pending;const i=e.pending.length;for(e.pending="",s=0;s<Math.floor((i+t.length)/3)*3-i;s++)r+=String.fromCharCode(t[s]);for(;s<t.length;s++)e.pending+=String.fromCharCode(t[s]);r.length>2?e.data+=btoa(r):e.pending=r}getData(){return this.data+btoa(this.pending)}}class St extends de{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const s=this,r=t+e;let a=await(t||r<s.size?s.blob.slice(t,r):s.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class ds extends Ve{constructor(t){super();const e=this,s=new TransformStream,r=[];t&&r.push([Yi,t]),Object.defineProperty(e,Et,{get(){return s.writable}}),e.blob=new Response(s.readable,{headers:r}).blob()}getData(){return this.blob}}class Xi extends St{constructor(t){super(new Blob([t],{type:Wi}))}}class $i extends ds{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,s=await super.getData();if(s.text&&e)return s.text();{const r=new FileReader;return new Promise((i,a)=>{Object.assign(r,{onload:({target:c})=>i(c.result),onerror:()=>a(r.error)}),r.readAsText(s,t)})}}}class Ji extends de{constructor(t,e){super(),_s(this,t,e)}async init(){await hs(this,lt,Cn),super.init()}readUint8Array(t,e){return ps(this,t,e,lt,Cn)}}class Qi extends de{constructor(t,e){super(),_s(this,t,e)}async init(){await hs(this,ft,In),super.init()}readUint8Array(t,e){return ps(this,t,e,ft,In)}}function _s(n,t,e){const{preventHeadRequest:s,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(n,{url:t,options:e,preventHeadRequest:s,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a})}async function hs(n,t,e){const{url:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:c}=n;if(na(s)&&(i||a)&&(typeof r>"u"||r)){const l=await t(xt,n,ms(n,c?-22:void 0));if(!a&&l.headers.get(ji)!=us)throw new Error(ke);{c&&(n.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const f=l.headers.get(Bi);if(f){const b=f.trim().split(/\s*\/\s*/);if(b.length){const h=b[1];h&&h!="*"&&(_=Number(h))}}_===G?await On(n,t,e):n.size=_}}else await On(n,t,e)}async function ps(n,t,e,s,r){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:c,size:l,options:_}=n;if(i||a){if(c&&t==l-oe&&e==oe)return c;const f=await s(xt,n,ms(n,t,e));if(f.status!=206)throw new Error(ke);return new Uint8Array(await f.arrayBuffer())}else{const{data:f}=n;return f||await r(n,_),new Uint8Array(n.data.subarray(t,t+e))}}function ms(n,t=0,e=1){return Object.assign({},Rt(n),{[qi]:us+"="+(t<0?t:t+"-"+(t+e-1))})}function Rt({options:n}){const{headers:t}=n;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Cn(n){await ws(n,lt)}async function In(n){await ws(n,ft)}async function ws(n,t){const e=await t(xt,n,Rt(n));n.data=new Uint8Array(await e.arrayBuffer()),n.size||(n.size=n.data.length)}async function On(n,t,e){if(n.preventHeadRequest)await e(n,n.options);else{const r=(await t(Vi,n,Rt(n))).headers.get(Hi);r?n.size=Number(r):await e(n,n.options)}}async function lt(n,{options:t,url:e},s){const r=await fetch(e,Object.assign({},t,{method:n,headers:s}));if(r.status<400)return r;throw r.status==416?new Error(ke):new Error(ls+(r.statusText||r.status))}function ft(n,{url:t},e){return new Promise((s,r)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(i.status<400){const a=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(c=>{const l=c.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new Map(a)})}else r(i.status==416?new Error(ke):new Error(ls+(i.statusText||i.status)))},!1),i.addEventListener("error",a=>r(a.detail?a.detail.error:new Error("Network error")),!1),i.open(n,t),e)for(const a of Object.entries(e))i.setRequestHeader(a[0],a[1]);i.responseType="arraybuffer",i.send()})}class gs extends de{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new Qi(t,e):new Ji(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class zi extends gs{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class ea extends de{constructor(t){super(),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class ta extends Tt{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const s=e.array;e.array=new Uint8Array(s.length+t.length),e.array.set(s)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class At extends de{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(s,r)=>{await s.init(),r!=e.length-1&&(t.lastDiskOffset+=s.size),t.size+=s.size})),super.init()}async readUint8Array(t,e,s=0){const r=this,{readers:i}=this;let a,c=s;c==-1&&(c=i.length-1);let l=t;for(;l>=i[c].size;)l-=i[c].size,c++;const _=i[c],f=_.size;if(l+e<=f)a=await V(_,l,e);else{const b=f-l;a=new Uint8Array(e),a.set(await V(_,l,b)),a.set(await r.readUint8Array(t+b,e-b,s),b)}return r.lastDiskNumber=Math.max(c,r.lastDiskNumber),a}}class qe extends Ve{constructor(t,e=4294967295){super();const s=this;Object.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let r,i,a;const c=new WritableStream({async write(f){const{availableSize:b}=s;if(a)f.length>=b?(await l(f.slice(0,b)),await _(),s.diskOffset+=r.size,s.diskNumber++,a=null,await this.write(f.slice(b))):await l(f);else{const{value:h,done:S}=await t.next();if(S&&!h)throw new Error(fs);r=h,r.size=0,r.maxSize&&(s.maxSize=r.maxSize),s.availableSize=s.maxSize,await Ce(r),i=h.writable,a=i.getWriter(),await this.write(f)}},async close(){await a.ready,await _()}});Object.defineProperty(s,Et,{get(){return c}});async function l(f){const b=f.length;b&&(await a.ready,await a.write(f),r.size+=b,s.size+=b,s.availableSize-=b)}async function _(){i.size=r.size,await a.close()}}}function na(n){const{baseURL:t}=Bn(),{protocol:e}=new URL(n,t);return e=="http:"||e=="https:"}async function Ce(n,t){if(n.init&&!n.initialized)await n.init(t);else return Promise.resolve()}function bs(n){return Array.isArray(n)&&(n=new At(n)),n instanceof ReadableStream&&(n={readable:n}),n}function ys(n){n.writable===G&&typeof n.next==Oe&&(n=new qe(n)),n instanceof WritableStream&&(n={writable:n});const{writable:t}=n;return t.size===G&&(t.size=0),n instanceof qe||Object.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function V(n,t,e,s){return n.readUint8Array(t,e,s)}const sa=At,ra=qe,xs="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),ia=xs.length==256;function aa(n){if(ia){let t="";for(let e=0;e<n.length;e++)t+=xs[n[e]];return t}else return new TextDecoder().decode(n)}function Me(n,t){return t&&t.trim().toLowerCase()=="cp437"?aa(n):new TextDecoder(t).decode(n)}const Es="filename",Ts="rawFilename",Ss="comment",Rs="rawComment",As="uncompressedSize",Cs="compressedSize",Is="offset",ut="diskNumberStart",dt="lastModDate",_t="rawLastModDate",Os="lastAccessDate",oa="rawLastAccessDate",Ps="creationDate",ca="rawCreationDate",la="internalFileAttribute",fa="internalFileAttributes",ua="externalFileAttribute",da="externalFileAttributes",_a="msDosCompatible",ha="zip64",pa="encrypted",ma="version",wa="versionMadeBy",ga="zipCrypto",ba="directory",ya="executable",xa=[Es,Ts,Cs,As,dt,_t,Ss,Rs,Os,Ps,Is,ut,ut,la,fa,ua,da,_a,ha,pa,ma,wa,ga,ba,ya,"bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Pn{constructor(t){xa.forEach(e=>this[e]=t[e])}}const We="File format is not recognized",ks="End of central directory not found",Ds="End of Zip64 central directory locator not found",Ns="Central directory header not found",vs="Local file header not found",Ls="Zip64 extra field not found",Fs="File contains encrypted entry",Us="Encryption method not supported",ht="Compression method not supported",pt="Split zip file",kn="utf-8",Dn="cp437",Ea=[[As,pe],[Cs,pe],[Is,pe],[ut,ae]],Ta={[ae]:{getValue:B,bytes:4},[pe]:{getValue:He,bytes:8}};class Ms{constructor(t,e={}){Object.assign(this,{reader:bs(t),options:e,config:Bn()})}async*getEntriesGenerator(t={}){const e=this;let{reader:s}=e;const{config:r}=e;if(await Ce(s),(s.size===G||!s.readUint8Array)&&(s=new St(await new Response(s.readable).blob()),await Ce(s)),s.size<oe)throw new Error(We);s.chunkSize=Jr(r);const i=await Pa(s,Mr,s.size,oe,ae*16);if(!i){const x=await V(s,0,4),w=q(x);throw B(w)==Ur?new Error(pt):new Error(ks)}const a=q(i);let c=B(a,12),l=B(a,16);const _=i.offset,f=j(a,20),b=_+oe+f;let h=j(a,4);const S=s.lastDiskNumber||0;let C=j(a,6),u=j(a,8),o=0,d=0;if(l==pe||c==pe||u==ae||C==ae){const x=await V(s,i.offset-Qe,Qe),w=q(x);if(B(w,0)==Wr){l=He(w,8);let O=await V(s,l,ze,-1),I=q(O);const N=i.offset-Qe-ze;if(B(I,0)!=on&&l!=N){const P=l;l=N,o=l-P,O=await V(s,l,ze,-1),I=q(O)}if(B(I,0)!=on)throw new Error(Ds);h==ae&&(h=B(I,16)),C==ae&&(C=B(I,20)),u==ae&&(u=He(I,32)),c==pe&&(c=He(I,40)),l-=c}}if(l>=s.size&&(o=s.size-l-c-oe,l=s.size-c-oe),S!=h)throw new Error(pt);if(l<0)throw new Error(We);let y=0,g=await V(s,l,c,C),m=q(g);if(c){const x=i.offset-c;if(B(m,y)!=an&&l!=x){const w=l;l=x,o+=l-w,g=await V(s,l,c,C),m=q(g)}}const E=i.offset-l-(s.lastDiskOffset||0);if(c!=E&&E>=0&&(c=E,g=await V(s,l,c,C),m=q(g)),l<0||l>=s.size)throw new Error(We);const p=Z(e,t,"filenameEncoding"),R=Z(e,t,"commentEncoding");for(let x=0;x<u;x++){const w=new Ra(s,r,e.options);if(B(m,y)!=an)throw new Error(Ns);Ws(w,m,y+6);const O=!!w.bitFlag.languageEncodingFlag,I=y+46,N=I+w.filenameLength,P=N+w.extraFieldLength,k=j(m,y+4),M=k>>8==0,v=k>>8==3,Y=g.subarray(I,N),D=j(m,y+32),_e=P+D,U=g.subarray(P,_e),W=O,Ct=O,Ge=B(m,y+38),It=M&&(ye(m,y+38)&un)==un||v&&(Ge>>16&dn)==dn||Y.length&&Y[Y.length-1]==hn.charCodeAt(0),js=v&&(Ge>>16&_n)==_n,Ot=B(m,y+42)+o;Object.assign(w,{versionMadeBy:k,msDosCompatible:M,compressedSize:0,uncompressedSize:0,commentLength:D,directory:It,offset:Ot,diskNumberStart:j(m,y+34),internalFileAttributes:j(m,y+36),externalFileAttributes:Ge,rawFilename:Y,filenameUTF8:W,commentUTF8:Ct,rawExtraField:g.subarray(N,P),executable:js}),w.internalFileAttribute=w.internalFileAttributes,w.externalFileAttribute=w.externalFileAttributes;const Pt=Z(e,t,"decodeText")||Me,kt=W?kn:p||Dn,Dt=Ct?kn:R||Dn;let De=Pt(Y,kt);De===G&&(De=Me(Y,kt));let Ze=Pt(U,Dt);Ze===G&&(Ze=Me(U,Dt)),Object.assign(w,{rawComment:U,filename:De,comment:Ze,directory:It||De.endsWith(hn)}),d=Math.max(Ot,d),Hs(w,w,m,y+6),w.zipCrypto=w.encrypted&&!w.extraFieldAES;const Ke=new Pn(w);Ke.getData=(vt,qs)=>w.getData(vt,Ke,qs),y=_e;const{onprogress:Nt}=t;if(Nt)try{await Nt(x+1,u,new Pn(w))}catch{}yield Ke}const T=Z(e,t,"extractPrependedData"),A=Z(e,t,"extractAppendedData");return T&&(e.prependedData=d>0?await V(s,0,d):new Uint8Array),e.comment=f?await V(s,_+oe,f):new Uint8Array,A&&(e.appendedData=b<s.size?await V(s,b,s.size-b):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const s of this.getEntriesGenerator(t))e.push(s);return e}async close(){}}class Sa{constructor(t={}){const{readable:e,writable:s}=new TransformStream,r=new Ms(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(i){const{done:a,value:c}=await r.next();if(a)return i.close();const l={...c,readable:function(){const{readable:_,writable:f}=new TransformStream;if(c.getData)return c.getData(f),_}()};delete l.getData,i.enqueue(l)}}),this.writable=s}}class Ra{constructor(t,e,s){Object.assign(this,{reader:t,config:e,options:s})}async getData(t,e,s={}){const r=this,{reader:i,offset:a,diskNumberStart:c,extraFieldAES:l,compressionMethod:_,config:f,bitFlag:b,signature:h,rawLastModDate:S,uncompressedSize:C,compressedSize:u}=r,o=e.localDirectory={},d=await V(i,a,30,c),y=q(d);let g=Z(r,s,"password"),m=Z(r,s,"rawPassword");const E=Z(r,s,"passThrough");if(g=g&&g.length&&g,m=m&&m.length&&m,l&&l.originalCompressionMethod!=Lr)throw new Error(ht);if(_!=vr&&_!=Nr&&!E)throw new Error(ht);if(B(y,0)!=Fr)throw new Error(vs);Ws(o,y,4),o.rawExtraField=o.extraFieldLength?await V(i,a+30+o.filenameLength,o.extraFieldLength,c):new Uint8Array,Hs(r,o,y,4,!0),Object.assign(e,{lastAccessDate:o.lastAccessDate,creationDate:o.creationDate});const p=r.encrypted&&o.encrypted&&!E,R=p&&!l;if(E||(e.zipCrypto=R),p){if(!R&&l.strength===G)throw new Error(Us);if(!g&&!m)throw new Error(Fs)}const T=a+30+o.filenameLength+o.extraFieldLength,A=u,x=i.readable;Object.assign(x,{diskNumberStart:c,offset:T,size:A});const w=Z(r,s,"signal"),O=Z(r,s,"checkPasswordOnly");O&&(t=new WritableStream),t=ys(t),await Ce(t,E?u:C);const{writable:I}=t,{onstart:N,onprogress:P,onend:k}=s,M={options:{codecType:as,password:g,rawPassword:m,zipCrypto:R,encryptionStrength:l&&l.strength,signed:Z(r,s,"checkSignature")&&!E,passwordVerification:R&&(b.dataDescriptor?S>>>8&255:h>>>24&255),signature:h,compressed:_!=0&&!E,encrypted:r.encrypted&&!E,useWebWorkers:Z(r,s,"useWebWorkers"),useCompressionStream:Z(r,s,"useCompressionStream"),transferStreams:Z(r,s,"transferStreams"),checkPasswordOnly:O},config:f,streamOptions:{signal:w,size:A,onstart:N,onprogress:P,onend:k}};let v=0;try{({outputSize:v}=await Fi({readable:x,writable:I},M))}catch(Y){if(!O||Y.message!=gt)throw Y}finally{const Y=Z(r,s,"preventClose");I.size+=v,!Y&&!I.locked&&await I.getWriter().close()}return O?G:t.getData?t.getData():I}}function Ws(n,t,e){const s=n.rawBitFlag=j(t,e+2),r=(s&cn)==cn,i=B(t,e+6);Object.assign(n,{encrypted:r,version:j(t,e),bitFlag:{level:(s&Kr)>>1,dataDescriptor:(s&ln)==ln,languageEncodingFlag:(s&fn)==fn},rawLastModDate:i,lastModDate:ka(i),filenameLength:j(t,e+22),extraFieldLength:j(t,e+24)})}function Hs(n,t,e,s,r){const{rawExtraField:i}=t,a=t.extraField=new Map,c=q(new Uint8Array(i));let l=0;try{for(;l<i.length;){const d=j(c,l),y=j(c,l+2);a.set(d,{type:d,data:i.slice(l+4,l+4+y)}),l+=4+y}}catch{}const _=j(e,s+4);Object.assign(t,{signature:B(e,s+10),uncompressedSize:B(e,s+18),compressedSize:B(e,s+14)});const f=a.get(Hr);f&&(Aa(f,t),t.extraFieldZip64=f);const b=a.get(Vr);b&&(Nn(b,Es,Ts,t,n),t.extraFieldUnicodePath=b);const h=a.get(Gr);h&&(Nn(h,Ss,Rs,t,n),t.extraFieldUnicodeComment=h);const S=a.get(Br);S?(Ca(S,t,_),t.extraFieldAES=S):t.compressionMethod=_;const C=a.get(jr);C&&(Ia(C,t),t.extraFieldNTFS=C);const u=a.get(Yr);u&&(Oa(u,t,r),t.extraFieldExtendedTimestamp=u);const o=a.get(Zr);o&&(t.extraFieldUSDZ=o)}function Aa(n,t){t.zip64=!0;const e=q(n.data),s=Ea.filter(([r,i])=>t[r]==i);for(let r=0,i=0;r<s.length;r++){const[a,c]=s[r];if(t[a]==c){const l=Ta[c];t[a]=n[a]=l.getValue(e,i),i+=l.bytes}else if(n[a])throw new Error(Ls)}}function Nn(n,t,e,s,r){const i=q(n.data),a=new Be;a.append(r[e]);const c=q(new Uint8Array(4));c.setUint32(0,a.get(),!0);const l=B(i,1);Object.assign(n,{version:ye(i,0),[t]:Me(n.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==B(c,0)}),n.valid&&(s[t]=n[t],s[t+"UTF8"]=!0)}function Ca(n,t,e){const s=q(n.data),r=ye(s,4);Object.assign(n,{vendorVersion:ye(s,0),vendorId:ye(s,2),strength:r,originalCompressionMethod:e,compressionMethod:j(s,5)}),t.compressionMethod=n.compressionMethod}function Ia(n,t){const e=q(n.data);let s=4,r;try{for(;s<n.data.length&&!r;){const i=j(e,s),a=j(e,s+2);i==qr&&(r=n.data.slice(s+4,s+4+a)),s+=4+a}}catch{}try{if(r&&r.length==24){const i=q(r),a=i.getBigUint64(0,!0),c=i.getBigUint64(8,!0),l=i.getBigUint64(16,!0);Object.assign(n,{rawLastModDate:a,rawLastAccessDate:c,rawCreationDate:l});const _=st(a),f=st(c),b=st(l),h={lastModDate:_,lastAccessDate:f,creationDate:b};Object.assign(n,h),Object.assign(t,h)}}catch{}}function Oa(n,t,e){const s=q(n.data),r=ye(s,0),i=[],a=[];e?((r&1)==1&&(i.push(dt),a.push(_t)),(r&2)==2&&(i.push(Os),a.push(oa)),(r&4)==4&&(i.push(Ps),a.push(ca))):n.data.length>=5&&(i.push(dt),a.push(_t));let c=1;i.forEach((l,_)=>{if(n.data.length>=c+4){const f=B(s,c);t[l]=n[l]=new Date(f*1e3);const b=a[_];n[b]=f}c+=4})}async function Pa(n,t,e,s,r){const i=new Uint8Array(4),a=q(i);Da(a,0,t);const c=s+r;return await l(s)||await l(Math.min(c,e));async function l(_){const f=e-_,b=await V(n,f,_);for(let h=b.length-s;h>=0;h--)if(b[h]==i[0]&&b[h+1]==i[1]&&b[h+2]==i[2]&&b[h+3]==i[3])return{offset:f+h,buffer:b.slice(h,h+s).buffer}}}function Z(n,t,e){return t[e]===G?n.options[e]:t[e]}function ka(n){const t=(n&4294901760)>>16,e=n&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function st(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function ye(n,t){return n.getUint8(t)}function j(n,t){return n.getUint16(t,!0)}function B(n,t){return n.getUint32(t,!0)}function He(n,t){return Number(n.getBigUint64(t,!0))}function Da(n,t,e){n.setUint32(t,e,!0)}function q(n){return new DataView(n.buffer)}jn({Inflate:Dr});const Na=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:St,BlobWriter:ds,Data64URIReader:Zi,Data64URIWriter:Ki,ERR_BAD_FORMAT:We,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ns,ERR_ENCRYPTED:Fs,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ds,ERR_EOCDR_NOT_FOUND:ks,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Ls,ERR_HTTP_RANGE:ke,ERR_INVALID_PASSWORD:mt,ERR_INVALID_SIGNATURE:wt,ERR_ITERATOR_COMPLETED_TOO_SOON:fs,ERR_LOCAL_FILE_HEADER_NOT_FOUND:vs,ERR_SPLIT_ZIP_FILE:pt,ERR_UNSUPPORTED_COMPRESSION:ht,ERR_UNSUPPORTED_ENCRYPTION:Us,HttpRangeReader:zi,HttpReader:gs,Reader:de,SplitDataReader:At,SplitDataWriter:qe,SplitZipReader:sa,SplitZipWriter:ra,TextReader:Xi,TextWriter:$i,Uint8ArrayReader:ea,Uint8ArrayWriter:ta,Writer:Tt,ZipReader:Ms,ZipReaderStream:Sa,configure:jn,getMimeType:Qr,initReader:bs,initStream:Ce,initWriter:ys,readUint8Array:V,terminateWorkers:Mi},Symbol.toStringTag,{value:"Module"})),Te=Na;class va{constructor(t,e,s){L(this,"_zipReader");L(this,"_entriesPromise");L(this,"_traceURL");this._traceURL=t,Te.configure({baseURL:self.location.href}),this._zipReader=new Te.ZipReader(new Te.HttpReader(Fa(t,e),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:s}).then(r=>{const i=new Map;for(const a of r)i.set(a.filename,a);return i})}isLive(){return!1}traceURL(){return this._traceURL}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var i;const s=(await this._entriesPromise).get(t);if(!s)return;const r=new Te.TextWriter;return await((i=s.getData)==null?void 0:i.call(s,r)),r.getData()}async readBlob(t){const s=(await this._entriesPromise).get(t);if(!s)return;const r=new Te.BlobWriter;return await s.getData(r),r.getData()}}class La{constructor(t,e){L(this,"_entriesPromise");L(this,"_path");L(this,"_server");this._path=t,this._server=e,this._entriesPromise=e.readFile(t).then(async s=>{if(!s)throw new Error("File not found");const r=await s.json(),i=new Map;for(const a of r.entries)i.set(a.name,a.path);return i})}isLive(){return!0}traceURL(){return this._path}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const s=(await this._entriesPromise).get(t);if(s)return this._server.readFile(s)}}function Fa(n,t){let e=n.startsWith("http")||n.startsWith("blob")?n:t.getFileURL(n).toString();return e.startsWith("https://www.dropbox.com/")&&(e="https://dl.dropboxusercontent.com/"+e.substring(24)),e}class Ua{constructor(t){this.baseUrl=t}getFileURL(t){const e=new URL("trace/file",this.baseUrl);return e.searchParams.set("path",t),e}async readFile(t){const e=await fetch(this.getFileURL(t));if(e.status!==404)return e}}self.addEventListener("install",function(n){self.skipWaiting()});self.addEventListener("activate",function(n){n.waitUntil(self.clients.claim())});const Ma=new URL(self.registration.scope).pathname,fe=new Map,Ie=new Map;async function Wa(n,t,e,s,r){var _;await Bs();const i=(e==null?void 0:e.id)??"";let a=Ie.get(i);if(!a){const f=new URL((e==null?void 0:e.url)??self.registration.scope),b=new URL(f.searchParams.get("server")??"../",f);a={limit:s,traceUrls:new Set,traceViewerServer:new Ua(b)},Ie.set(i,a)}a.traceUrls.add(n);const c=new ur;try{const[f,b]=Gs(r,[.5,.4,.1]),h=n.endsWith("json")?new La(n,a.traceViewerServer):new va(n,a.traceViewerServer,f);await c.load(h,b)}catch(f){throw console.error(f),(_=f==null?void 0:f.message)!=null&&_.includes("Cannot find .trace file")&&await c.hasEntry("index.html")?new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server."):f instanceof Un?new Error(`Could not load trace from ${t||n}. ${f.message}`):t?new Error(`Could not load trace from ${t}. Make sure to upload a valid Playwright trace.`):new Error(`Could not load trace from ${n}. Make sure a valid Playwright Trace is accessible over this url.`)}const l=new ir(c.storage(),f=>c.resourceForSha1(f));return fe.set(n,{traceModel:c,snapshotServer:l}),c}async function Ha(n){var l;if(n.request.url.startsWith("chrome-extension://"))return fetch(n.request);if(n.request.headers.get("x-pw-serviceworker")==="forward"){const _=new Request(n.request);return _.headers.delete("x-pw-serviceworker"),fetch(_)}const t=n.request,e=await self.clients.get(n.clientId),s=self.registration.scope.startsWith("https://");if(t.url.startsWith(self.registration.scope)){const _=new URL(it(t.url)),f=_.pathname.substring(Ma.length-1);if(f==="/ping")return await Bs(),new Response(null,{status:200});const b=_.searchParams.get("trace");if(f==="/contexts")try{const h=_.searchParams.has("limit")?+_.searchParams.get("limit"):void 0,S=await Wa(b,_.searchParams.get("traceFileName"),e,h,(C,u)=>{e.postMessage({method:"progress",params:{done:C,total:u}})});return new Response(JSON.stringify(S.contextEntries),{status:200,headers:{"Content-Type":"application/json"}})}catch(h){return new Response(JSON.stringify({error:h==null?void 0:h.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(f.startsWith("/snapshotInfo/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(14);return h.serveSnapshotInfo(S,_.searchParams)}if(f.startsWith("/snapshot/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(10),C=h.serveSnapshot(S,_.searchParams,_.href);return s&&C.headers.set("Content-Security-Policy","upgrade-insecure-requests"),C}if(f.startsWith("/closest-screenshot/")){const{snapshotServer:h}=fe.get(b)||{};if(!h)return new Response(null,{status:404});const S=f.substring(20);return h.serveClosestScreenshot(S,_.searchParams)}if(f.startsWith("/sha1/")){const h=f.slice(6);for(const S of fe.values()){const C=await S.traceModel.resourceForSha1(h);if(C)return new Response(C,{status:200,headers:Ba(_.searchParams)})}return new Response(null,{status:404})}if(f.startsWith("/file/")){const h=_.searchParams.get("path"),S=(l=Ie.get(n.clientId??""))==null?void 0:l.traceViewerServer;if(!S)throw new Error("client is not initialized");const C=await S.readFile(h);return C||new Response(null,{status:404})}return fetch(n.request)}const r=it(e.url),i=new URL(r).searchParams.get("trace"),{snapshotServer:a}=fe.get(i)||{};if(!a)return new Response(null,{status:404});const c=[t.url];return s&&t.url.startsWith("https://")&&c.push(t.url.replace(/^https/,"http")),a.serveResource(c,t.method,r)}function Ba(n){const t=n.get("dn"),e=n.get("dct");if(!t)return;const s=new Headers;return s.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&s.set("Content-Type",e),s}async function Bs(){const n=await self.clients.matchAll(),t=new Set;for(const[e,s]of Ie){if(!n.find(r=>r.id===e)){Ie.delete(e);continue}if(s.limit!==void 0){const r=[...s.traceUrls];s.traceUrls=new Set(r.slice(r.length-s.limit))}s.traceUrls.forEach(r=>t.add(r))}for(const e of fe.keys())t.has(e)||fe.delete(e)}self.addEventListener("fetch",function(n){n.respondWith(Ha(n))});
@@ -0,0 +1,5 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/xtermModule-BoAIEibi.js","./xtermModule.Beg8tuEN.css"])))=>i.map(i=>d[i]);
2
+ import{u as Mt,r as K,e as Dt,_ as Ft,f as Ot,g as At,j as o,R as d,E as Ut,s as vt,h as at,i as Wt,t as zt,m as Vt,k as Y,T as F,M as bt,b as Kt,l as $t,a as Ht,W as qt,S as Yt,D as Qt,c as Xt,d as Jt}from"./assets/defaultSettingsView-szBn8781.js";var Zt={};class ot{constructor(t,e={}){this.isListing=!1,this._tests=new Map,this._rootSuite=new Q("","root"),this._options=e,this._reporter=t}reset(){this._rootSuite._entries=[],this._tests.clear()}dispatch(t){const{method:e,params:s}=t;if(e==="onConfigure"){this._onConfigure(s.config);return}if(e==="onProject"){this._onProject(s.project);return}if(e==="onBegin"){this._onBegin();return}if(e==="onTestBegin"){this._onTestBegin(s.testId,s.result);return}if(e==="onTestEnd"){this._onTestEnd(s.test,s.result);return}if(e==="onStepBegin"){this._onStepBegin(s.testId,s.resultId,s.step);return}if(e==="onAttach"){this._onAttach(s.testId,s.resultId,s.attachments);return}if(e==="onStepEnd"){this._onStepEnd(s.testId,s.resultId,s.step);return}if(e==="onError"){this._onError(s.error);return}if(e==="onStdIO"){this._onStdIO(s.type,s.testId,s.resultId,s.data,s.isBase64);return}if(e==="onEnd")return this._onEnd(s.result);if(e==="onExit")return this._onExit()}_onConfigure(t){var e,s;this._rootDir=t.rootDir,this._config=this._parseConfig(t),(s=(e=this._reporter).onConfigure)==null||s.call(e,this._config)}_onProject(t){let e=this._options.mergeProjects?this._rootSuite.suites.find(s=>s.project().name===t.name):void 0;e||(e=new Q(t.name,"project"),this._rootSuite._addSuite(e)),e._project=this._parseProject(t);for(const s of t.suites)this._mergeSuiteInto(s,e)}_onBegin(){var t,e;(e=(t=this._reporter).onBegin)==null||e.call(t,this._rootSuite)}_onTestBegin(t,e){var c,n;const s=this._tests.get(t);this._options.clearPreviousResultsWhenTestBegins&&(s.results=[]);const i=s._createTestResult(e.id);i.retry=e.retry,i.workerIndex=e.workerIndex,i.parallelIndex=e.parallelIndex,i.setStartTimeNumber(e.startTime),(n=(c=this._reporter).onTestBegin)==null||n.call(c,s,i)}_onTestEnd(t,e){var c,n,g;const s=this._tests.get(t.testId);s.timeout=t.timeout,s.expectedStatus=t.expectedStatus;const i=s.results.find(l=>l._id===e.id);i.duration=e.duration,i.status=e.status,i.errors=e.errors,i.error=(c=i.errors)==null?void 0:c[0],e.attachments&&(i.attachments=this._parseAttachments(e.attachments)),e.annotations&&(this._absoluteAnnotationLocationsInplace(e.annotations),i.annotations=e.annotations,s.annotations=e.annotations),(g=(n=this._reporter).onTestEnd)==null||g.call(n,s,i),i._stepMap=new Map}_onStepBegin(t,e,s){var _,a;const i=this._tests.get(t),c=i.results.find(h=>h._id===e),n=s.parentStepId?c._stepMap.get(s.parentStepId):void 0,g=this._absoluteLocation(s.location),l=new te(s,n,g,c);n?n.steps.push(l):c.steps.push(l),c._stepMap.set(s.id,l),(a=(_=this._reporter).onStepBegin)==null||a.call(_,i,c,l)}_onStepEnd(t,e,s){var g,l;const i=this._tests.get(t),c=i.results.find(_=>_._id===e),n=c._stepMap.get(s.id);n._endPayload=s,n.duration=s.duration,n.error=s.error,(l=(g=this._reporter).onStepEnd)==null||l.call(g,i,c,n)}_onAttach(t,e,s){this._tests.get(t).results.find(n=>n._id===e).attachments.push(...s.map(n=>({name:n.name,contentType:n.contentType,path:n.path,body:n.base64&&globalThis.Buffer?Buffer.from(n.base64,"base64"):void 0})))}_onError(t){var e,s;(s=(e=this._reporter).onError)==null||s.call(e,t)}_onStdIO(t,e,s,i,c){var _,a,h,v;const n=c?globalThis.Buffer?Buffer.from(i,"base64"):atob(i):i,g=e?this._tests.get(e):void 0,l=g&&s?g.results.find(u=>u._id===s):void 0;t==="stdout"?(l==null||l.stdout.push(n),(a=(_=this._reporter).onStdOut)==null||a.call(_,n,g,l)):(l==null||l.stderr.push(n),(v=(h=this._reporter).onStdErr)==null||v.call(h,n,g,l))}async _onEnd(t){var e,s;await((s=(e=this._reporter).onEnd)==null?void 0:s.call(e,{status:t.status,startTime:new Date(t.startTime),duration:t.duration}))}_onExit(){var t,e;return(e=(t=this._reporter).onExit)==null?void 0:e.call(t)}_parseConfig(t){const e={...se,...t};return this._options.configOverrides&&(e.configFile=this._options.configOverrides.configFile,e.reportSlowTests=this._options.configOverrides.reportSlowTests,e.quiet=this._options.configOverrides.quiet,e.reporter=[...this._options.configOverrides.reporter]),e}_parseProject(t){return{metadata:t.metadata,name:t.name,outputDir:this._absolutePath(t.outputDir),repeatEach:t.repeatEach,retries:t.retries,testDir:this._absolutePath(t.testDir),testIgnore:st(t.testIgnore),testMatch:st(t.testMatch),timeout:t.timeout,grep:st(t.grep),grepInvert:st(t.grepInvert),dependencies:t.dependencies,teardown:t.teardown,snapshotDir:this._absolutePath(t.snapshotDir),use:t.use}}_parseAttachments(t){return t.map(e=>({...e,body:e.base64&&globalThis.Buffer?Buffer.from(e.base64,"base64"):void 0}))}_mergeSuiteInto(t,e){let s=e.suites.find(i=>i.title===t.title);s||(s=new Q(t.title,e.type==="project"?"file":"describe"),e._addSuite(s)),s.location=this._absoluteLocation(t.location),t.entries.forEach(i=>{"testId"in i?this._mergeTestInto(i,s):this._mergeSuiteInto(i,s)})}_mergeTestInto(t,e){let s=this._options.mergeTestCases?e.tests.find(i=>i.title===t.title&&i.repeatEachIndex===t.repeatEachIndex):void 0;s||(s=new Gt(t.testId,t.title,this._absoluteLocation(t.location),t.repeatEachIndex),e._addTest(s),this._tests.set(s.id,s)),this._updateTest(t,s)}_updateTest(t,e){return e.id=t.testId,e.location=this._absoluteLocation(t.location),e.retries=t.retries,e.tags=t.tags??[],e.annotations=t.annotations??[],this._absoluteAnnotationLocationsInplace(e.annotations),e}_absoluteAnnotationLocationsInplace(t){for(const e of t)e.location&&(e.location=this._absoluteLocation(e.location))}_absoluteLocation(t){return t&&{...t,file:this._absolutePath(t.file)}}_absolutePath(t){if(t!==void 0)return this._options.resolvePath?this._options.resolvePath(this._rootDir,t):this._rootDir+"/"+t}}class Q{constructor(t,e){this._entries=[],this._requireFile="",this._parallelMode="none",this.title=t,this._type=e}get type(){return this._type}get suites(){return this._entries.filter(t=>t.type!=="test")}get tests(){return this._entries.filter(t=>t.type==="test")}entries(){return this._entries}allTests(){const t=[],e=s=>{for(const i of s.entries())i.type==="test"?t.push(i):e(i)};return e(this),t}titlePath(){const t=this.parent?this.parent.titlePath():[];return(this.title||this._type!=="describe")&&t.push(this.title),t}project(){var t;return this._project??((t=this.parent)==null?void 0:t.project())}_addTest(t){t.parent=this,this._entries.push(t)}_addSuite(t){t.parent=this,this._entries.push(t)}}class Gt{constructor(t,e,s,i){this.fn=()=>{},this.results=[],this.type="test",this.expectedStatus="passed",this.timeout=0,this.annotations=[],this.retries=0,this.tags=[],this.repeatEachIndex=0,this.id=t,this.title=e,this.location=s,this.repeatEachIndex=i}titlePath(){const t=this.parent?this.parent.titlePath():[];return t.push(this.title),t}outcome(){return ie(this)}ok(){const t=this.outcome();return t==="expected"||t==="flaky"||t==="skipped"}_createTestResult(t){const e=new ee(this.results.length,t);return this.results.push(e),e}}class te{constructor(t,e,s,i){this.duration=-1,this.steps=[],this._startTime=0,this.title=t.title,this.category=t.category,this.location=s,this.parent=e,this._startTime=t.startTime,this._result=i}titlePath(){var e;return[...((e=this.parent)==null?void 0:e.titlePath())||[],this.title]}get startTime(){return new Date(this._startTime)}set startTime(t){this._startTime=+t}get attachments(){var t,e;return((e=(t=this._endPayload)==null?void 0:t.attachments)==null?void 0:e.map(s=>this._result.attachments[s]))??[]}get annotations(){var t;return((t=this._endPayload)==null?void 0:t.annotations)??[]}}class ee{constructor(t,e){this.parallelIndex=-1,this.workerIndex=-1,this.duration=-1,this.stdout=[],this.stderr=[],this.attachments=[],this.annotations=[],this.status="skipped",this.steps=[],this.errors=[],this._stepMap=new Map,this._startTime=0,this.retry=t,this._id=e}setStartTimeNumber(t){this._startTime=t}get startTime(){return new Date(this._startTime)}set startTime(t){this._startTime=+t}}const se={forbidOnly:!1,fullyParallel:!1,globalSetup:null,globalTeardown:null,globalTimeout:0,grep:/.*/,grepInvert:null,maxFailures:0,metadata:{},preserveOutput:"always",projects:[],reporter:[[Zt.CI?"dot":"list"]],reportSlowTests:{max:5,threshold:3e5},configFile:"",rootDir:"",quiet:!1,shard:null,updateSnapshots:"missing",updateSourceMethod:"patch",version:"",workers:0,webServer:null};function st(r){return r.map(t=>t.s!==void 0?t.s:new RegExp(t.r.source,t.r.flags))}function ie(r){let t=0,e=0,s=0;for(const i of r.results)i.status==="interrupted"||(i.status==="skipped"&&r.expectedStatus==="skipped"?++t:i.status==="skipped"||(i.status===r.expectedStatus?++e:++s));return e===0&&s===0?"skipped":s===0?"expected":e===0&&t===0?"unexpected":"flaky"}class nt{constructor(t,e,s,i,c){this._treeItemById=new Map,this._treeItemByTestId=new Map;const n=i&&[...i.values()].some(Boolean);this.pathSeparator=c,this.rootItem={kind:"group",subKind:"folder",id:t,title:"",location:{file:"",line:0,column:0},duration:0,parent:void 0,children:[],status:"none",hasLoadErrors:!1},this._treeItemById.set(t,this.rootItem);const g=(l,_,a)=>{for(const h of _.suites){if(!h.title){g(l,h,a);continue}let v=a.children.find(u=>u.kind==="group"&&u.title===h.title);v||(v={kind:"group",subKind:"describe",id:"suite:"+_.titlePath().join("")+""+h.title,title:h.title,location:h.location,duration:0,parent:a,children:[],status:"none",hasLoadErrors:!1},this._addChild(a,v)),g(l,h,v)}for(const h of _.tests){const v=h.title;let u=a.children.find(C=>C.kind!=="group"&&C.title===v);u||(u={kind:"case",id:"test:"+h.titlePath().join(""),title:v,parent:a,children:[],tests:[],location:h.location,duration:0,status:"none",project:void 0,test:void 0,tags:h.tags},this._addChild(a,u));const b=h.results[0];let S="none";(b==null?void 0:b[X])==="scheduled"?S="scheduled":(b==null?void 0:b[X])==="running"?S="running":(b==null?void 0:b.status)==="skipped"?S="skipped":(b==null?void 0:b.status)==="interrupted"?S="none":b&&h.outcome()!=="expected"?S="failed":b&&h.outcome()==="expected"&&(S="passed"),u.tests.push(h);const B={kind:"test",id:h.id,title:l.name,location:h.location,test:h,parent:u,children:[],status:S,duration:h.results.length?Math.max(0,h.results[0].duration):0,project:l};this._addChild(u,B),this._treeItemByTestId.set(h.id,B),u.duration=u.children.reduce((C,T)=>C+T.duration,0)}};for(const l of(e==null?void 0:e.suites)||[])if(!(n&&!i.get(l.title)))for(const _ of l.suites){const a=this._fileItem(_.location.file.split(c),!0);g(l.project(),_,a)}for(const l of s){if(!l.location)continue;const _=this._fileItem(l.location.file.split(c),!0);_.hasLoadErrors=!0}}_addChild(t,e){t.children.push(e),e.parent=t,this._treeItemById.set(e.id,e)}filterTree(t,e,s){const i=t.trim().toLowerCase().split(" "),c=[...e.values()].some(Boolean),n=l=>{const _=[...l.tests[0].titlePath(),...l.tests[0].tags].join(" ").toLowerCase();return!i.every(a=>_.includes(a))&&!l.tests.some(a=>s==null?void 0:s.has(a.id))?!1:(l.children=l.children.filter(a=>!c||(s==null?void 0:s.has(a.test.id))||e.get(a.status)),l.tests=l.children.map(a=>a.test),!!l.children.length)},g=l=>{const _=[];for(const a of l.children)a.kind==="case"?n(a)&&_.push(a):(g(a),(a.children.length||a.hasLoadErrors)&&_.push(a));l.children=_};g(this.rootItem)}_fileItem(t,e){if(t.length===0)return this.rootItem;const s=t.join(this.pathSeparator),i=this._treeItemById.get(s);if(i)return i;const c=this._fileItem(t.slice(0,t.length-1),!1),n={kind:"group",subKind:e?"file":"folder",id:s,title:t[t.length-1],location:{file:s,line:0,column:0},duration:0,parent:c,children:[],status:"none",hasLoadErrors:!1};return this._addChild(c,n),n}sortAndPropagateStatus(){St(this.rootItem)}flattenForSingleProject(){const t=e=>{e.kind==="case"&&e.children.length===1?(e.project=e.children[0].project,e.test=e.children[0].test,e.children=[],this._treeItemByTestId.set(e.test.id,e)):e.children.forEach(t)};t(this.rootItem)}shortenRoot(){let t=this.rootItem;for(;t.children.length===1&&t.children[0].kind==="group"&&t.children[0].subKind==="folder";)t=t.children[0];t.location=this.rootItem.location,this.rootItem=t}testIds(){const t=new Set,e=s=>{s.kind==="case"&&s.tests.forEach(i=>t.add(i.id)),s.children.forEach(e)};return e(this.rootItem),t}fileNames(){const t=new Set,e=s=>{s.kind==="group"&&s.subKind==="file"?t.add(s.id):s.children.forEach(e)};return e(this.rootItem),[...t]}flatTreeItems(){const t=[],e=s=>{t.push(s),s.children.forEach(e)};return e(this.rootItem),t}treeItemById(t){return this._treeItemById.get(t)}collectTestIds(t){return t?re(t):new Set}}function St(r){for(const n of r.children)St(n);r.kind==="group"&&r.children.sort((n,g)=>n.location.file.localeCompare(g.location.file)||n.location.line-g.location.line);let t=r.children.length>0,e=r.children.length>0,s=!1,i=!1,c=!1;for(const n of r.children)e=e&&n.status==="skipped",t=t&&(n.status==="passed"||n.status==="skipped"),s=s||n.status==="failed",i=i||n.status==="running",c=c||n.status==="scheduled";i?r.status="running":c?r.status="scheduled":s?r.status="failed":e?r.status="skipped":t&&(r.status="passed")}function re(r){const t=new Set,e=s=>{var i;s.kind==="case"?s.tests.map(c=>c.id).forEach(c=>t.add(c)):s.kind==="test"?t.add(s.id):(i=s.children)==null||i.forEach(e)};return e(r),t}const X=Symbol("statusEx");class oe{constructor(t){this.loadErrors=[],this.progress={total:0,passed:0,failed:0,skipped:0},this._lastRunTestCount=0,this._receiver=new ot(this._createReporter(),{mergeProjects:!0,mergeTestCases:!0,resolvePath:(e,s)=>e+t.pathSeparator+s,clearPreviousResultsWhenTestBegins:!0}),this._options=t}_createReporter(){return{version:()=>"v2",onConfigure:t=>{this.config=t,this._lastRunReceiver=new ot({version:()=>"v2",onBegin:e=>{this._lastRunTestCount=e.allTests().length,this._lastRunReceiver=void 0}},{mergeProjects:!0,mergeTestCases:!1,resolvePath:(e,s)=>e+this._options.pathSeparator+s})},onBegin:t=>{var e;if(this.rootSuite||(this.rootSuite=t),this._testResultsSnapshot){for(const s of this.rootSuite.allTests())s.results=((e=this._testResultsSnapshot)==null?void 0:e.get(s.id))||s.results;this._testResultsSnapshot=void 0}this.progress.total=this._lastRunTestCount,this.progress.passed=0,this.progress.failed=0,this.progress.skipped=0,this._options.onUpdate(!0)},onEnd:()=>{this._options.onUpdate(!0)},onTestBegin:(t,e)=>{e[X]="running",this._options.onUpdate()},onTestEnd:(t,e)=>{t.outcome()==="skipped"?++this.progress.skipped:t.outcome()==="unexpected"?++this.progress.failed:++this.progress.passed,e[X]=e.status,this._options.onUpdate()},onError:t=>this._handleOnError(t),printsToStdio:()=>!1}}processGlobalReport(t){const e=new ot({version:()=>"v2",onConfigure:s=>{this.config=s},onError:s=>this._handleOnError(s)});for(const s of t)e.dispatch(s)}processListReport(t){var s;const e=((s=this.rootSuite)==null?void 0:s.allTests())||[];this._testResultsSnapshot=new Map(e.map(i=>[i.id,i.results])),this._receiver.reset();for(const i of t)this._receiver.dispatch(i)}processTestReportEvent(t){var e,s,i;(s=(e=this._lastRunReceiver)==null?void 0:e.dispatch(t))==null||s.catch(()=>{}),(i=this._receiver.dispatch(t))==null||i.catch(()=>{})}_handleOnError(t){var e,s;this.loadErrors.push(t),(s=(e=this._options).onError)==null||s.call(e,t),this._options.onUpdate()}asModel(){return{rootSuite:this.rootSuite||new Q("","root"),config:this.config,loadErrors:this.loadErrors,progress:this.progress}}}const ne=({source:r})=>{const[t,e]=Mt(),[s,i]=K.useState(Dt()),[c]=K.useState(Ft(()=>import("./assets/xtermModule-BoAIEibi.js"),__vite__mapDeps([0,1]),import.meta.url).then(g=>g.default)),n=K.useRef(null);return K.useEffect(()=>(Ot(i),()=>At(i)),[]),K.useEffect(()=>{const g=r.write,l=r.clear;return(async()=>{const{Terminal:_,FitAddon:a}=await c,h=e.current;if(!h)return;const v=s==="dark-mode"?le:ae;if(n.current&&n.current.terminal.options.theme===v)return;n.current&&(h.textContent="");const u=new _({convertEol:!0,fontSize:13,scrollback:1e4,fontFamily:"var(--vscode-editor-font-family)",theme:v}),b=new a;u.loadAddon(b);for(const S of r.pending)u.write(S);r.write=S=>{r.pending.push(S),u.write(S)},r.clear=()=>{r.pending=[],u.clear()},u.open(h),b.fit(),n.current={terminal:u,fitAddon:b}})(),()=>{r.clear=l,r.write=g}},[c,n,e,r,s]),K.useEffect(()=>{setTimeout(()=>{n.current&&(n.current.fitAddon.fit(),r.resize(n.current.terminal.cols,n.current.terminal.rows))},250)},[t,r]),o.jsx("div",{"data-testid":"output",className:"xterm-wrapper",style:{flex:"auto"},ref:e})},ae={foreground:"#383a42",background:"#fafafa",cursor:"#383a42",black:"#000000",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#4078f2",magenta:"#a626a4",cyan:"#0184bc",white:"#a0a0a0",brightBlack:"#000000",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#d19a66",brightBlue:"#4078f2",brightMagenta:"#a626a4",brightCyan:"#0184bc",brightWhite:"#383a42",selectionBackground:"#d7d7d7",selectionForeground:"#383a42"},le={foreground:"#f8f8f2",background:"#1e1e1e",cursor:"#f8f8f0",black:"#000000",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#bfbfbf",brightBlack:"#4d4d4d",brightRed:"#ff6e6e",brightGreen:"#69ff94",brightYellow:"#ffffa5",brightBlue:"#d6acff",brightMagenta:"#ff92df",brightCyan:"#a4ffff",brightWhite:"#e6e6e6",selectionBackground:"#44475a",selectionForeground:"#f8f8f2"},ce=({filterText:r,setFilterText:t,statusFilters:e,setStatusFilters:s,projectFilters:i,setProjectFilters:c,testModel:n,runTests:g})=>{const[l,_]=d.useState(!1),a=d.useRef(null);d.useEffect(()=>{var u;(u=a.current)==null||u.focus()},[]);const h=[...e.entries()].filter(([u,b])=>b).map(([u])=>u).join(" ")||"all",v=[...i.entries()].filter(([u,b])=>b).map(([u])=>u).join(" ")||"all";return o.jsxs("div",{className:"filters",children:[o.jsx(Ut,{expanded:l,setExpanded:_,title:o.jsx("input",{ref:a,type:"search",placeholder:"Filter (e.g. text, @tag)",spellCheck:!1,value:r,onChange:u=>{t(u.target.value)},onKeyDown:u=>{u.key==="Enter"&&g()}})}),o.jsxs("div",{className:"filter-summary",title:"Status: "+h+`
3
+ Projects: `+v,onClick:()=>_(!l),children:[o.jsx("span",{className:"filter-label",children:"Status:"})," ",h,o.jsx("span",{className:"filter-label",children:"Projects:"})," ",v]}),l&&o.jsxs("div",{className:"hbox",style:{marginLeft:14,maxHeight:200,overflowY:"auto"},children:[o.jsx("div",{className:"filter-list",role:"list","data-testid":"status-filters",children:[...e.entries()].map(([u,b])=>o.jsx("div",{className:"filter-entry",role:"listitem",children:o.jsxs("label",{children:[o.jsx("input",{type:"checkbox",checked:b,onChange:()=>{const S=new Map(e);S.set(u,!S.get(u)),s(S)}}),o.jsx("div",{children:u})]})},u))}),o.jsx("div",{className:"filter-list",role:"list","data-testid":"project-filters",children:[...i.entries()].map(([u,b])=>o.jsx("div",{className:"filter-entry",role:"listitem",children:o.jsxs("label",{children:[o.jsx("input",{type:"checkbox",checked:b,onChange:()=>{var C;const S=new Map(i);S.set(u,!S.get(u)),c(S);const B=(C=n==null?void 0:n.config)==null?void 0:C.configFile;B&&vt.setObject(B+":projects",[...S.entries()].filter(([T,L])=>L).map(([T])=>T))}}),o.jsx("div",{children:u||"untitled"})]})},u))})]})]})},ue=({tag:r,style:t,onClick:e})=>o.jsx("span",{className:at("tag",`tag-color-${de(r)}`),onClick:e,style:{margin:"6px 0 0 6px",...t},title:`Click to filter by tag: ${r}`,children:r});function de(r){let t=0;for(let e=0;e<r.length;e++)t=r.charCodeAt(e)+((t<<8)-t);return Math.abs(t%6)}const he=Wt,fe=({filterText:r,testModel:t,testServerConnection:e,testTree:s,runTests:i,runningState:c,watchAll:n,watchedTreeIds:g,setWatchedTreeIds:l,isLoading:_,onItemSelected:a,requestedCollapseAllCount:h,requestedExpandAllCount:v,setFilterText:u,onRevealSource:b})=>{const[S,B]=d.useState({expandedItems:new Map}),[C,T]=d.useState(),[L,O]=d.useState(h),[$,N]=d.useState(v);d.useEffect(()=>{if(L!==h){S.expandedItems.clear();for(const x of s.flatTreeItems())S.expandedItems.set(x.id,!1);O(h),T(void 0),B({...S});return}if($!==v){S.expandedItems.clear();for(const x of s.flatTreeItems())S.expandedItems.set(x.id,!0);N(v),T(void 0),B({...S});return}if(!c||c.itemSelectedByUser)return;let f;const E=x=>{var M;x.children.forEach(E),!f&&x.status==="failed"&&(x.kind==="test"&&c.testIds.has(x.test.id)||x.kind==="case"&&c.testIds.has((M=x.tests[0])==null?void 0:M.id))&&(f=x)};E(s.rootItem),f&&T(f.id)},[c,T,s,L,O,h,$,N,v,S,B]);const R=d.useMemo(()=>{if(C)return s.treeItemById(C)},[C,s]);d.useEffect(()=>{if(!t)return;const f=pe(R,t);let E;(R==null?void 0:R.kind)==="test"?E=R.test:(R==null?void 0:R.kind)==="case"&&R.tests.length===1&&(E=R.tests[0]),a({treeItem:R,testCase:E,testFile:f})},[t,R,a]),d.useEffect(()=>{if(!_)if(n)e==null||e.watchNoReply({fileNames:s.fileNames()});else{const f=new Set;for(const E of g.value){const x=s.treeItemById(E),M=x==null?void 0:x.location.file;M&&f.add(M)}e==null||e.watchNoReply({fileNames:[...f]})}},[_,s,n,g,e]);const J=f=>{T(f.id),i("bounce-if-busy",s.collectTestIds(f))},H=(f,E)=>{if(f.preventDefault(),f.stopPropagation(),f.metaKey||f.ctrlKey){const x=r.split(" ");x.includes(E)?u(x.filter(M=>M!==E).join(" ").trim()):u((r+" "+E).trim())}else u((r.split(" ").filter(x=>!x.startsWith("@")).join(" ")+" "+E).trim())};return o.jsx(he,{name:"tests",treeState:S,setTreeState:B,rootItem:s.rootItem,dataTestId:"test-tree",render:f=>{const E=f.id.replace(/[^\w\d-_]/g,"-"),x=E+"-label",M=E+"-time";return o.jsxs("div",{className:"hbox ui-mode-tree-item","aria-labelledby":`${x} ${M}`,children:[o.jsxs("div",{id:x,className:"ui-mode-tree-item-title",children:[o.jsx("span",{children:f.title}),f.kind==="case"?f.tags.map(q=>o.jsx(ue,{tag:q.slice(1),onClick:Z=>H(Z,q)},q)):null]}),!!f.duration&&f.status!=="skipped"&&o.jsx("div",{id:M,className:"ui-mode-tree-item-time",children:Vt(f.duration)}),o.jsxs(Y,{noMinHeight:!0,noShadow:!0,children:[o.jsx(F,{icon:"play",title:"Run",onClick:()=>J(f),disabled:!!c&&!c.completed}),o.jsx(F,{icon:"go-to-file",title:"Show source",onClick:b,style:f.kind==="group"&&f.subKind==="folder"?{visibility:"hidden"}:{}}),!n&&o.jsx(F,{icon:"eye",title:"Watch",onClick:()=>{g.value.has(f.id)?g.value.delete(f.id):g.value.add(f.id),l({...g})},toggled:g.value.has(f.id)})]})]})},icon:f=>zt(f.status),title:f=>f.title,selectedItem:R,onAccepted:J,onSelected:f=>{c&&(c.itemSelectedByUser=!0),T(f.id)},isError:f=>f.kind==="group"?f.hasLoadErrors:!1,autoExpandDepth:r?5:1,noItemsMessage:_?"Loading…":"No tests"})};function pe(r,t){if(!(!r||!t))return{file:r.location.file,line:r.location.line,column:r.location.column,source:{errors:t.loadErrors.filter(e=>{var s;return((s=e.location)==null?void 0:s.file)===r.location.file}).map(e=>({line:e.location.line,message:e.message})),content:void 0}}}function ge(r){return`.playwright-artifacts-${r}`}const me=({item:r,rootDir:t,onOpenExternally:e,revealSource:s,pathSeparator:i})=>{var h,v;const[c,n]=d.useState(void 0),[g,l]=d.useState(0),_=d.useRef(null),{outputDir:a}=d.useMemo(()=>({outputDir:r.testCase?_e(r.testCase):void 0}),[r]);return d.useEffect(()=>{var B,C;_.current&&clearTimeout(_.current);const u=(B=r.testCase)==null?void 0:B.results[0];if(!u){n(void 0);return}const b=u&&u.duration>=0&&u.attachments.find(T=>T.name==="trace");if(b&&b.path){mt(b.path).then(T=>n({model:T,isLive:!1}));return}if(!a){n(void 0);return}const S=[a,ge(u.workerIndex),"traces",`${(C=r.testCase)==null?void 0:C.id}.json`].join(i);return _.current=setTimeout(async()=>{try{const T=await mt(S);n({model:T,isLive:!0})}catch{const T=new bt([]);T.errorDescriptors.push(...u.errors.flatMap(L=>L.message?[{message:L.message}]:[])),n({model:T,isLive:!1})}finally{l(g+1)}},500),()=>{_.current&&clearTimeout(_.current)}},[a,r,n,g,l,i]),o.jsx(Kt,{model:c==null?void 0:c.model,showSourcesFirst:!0,rootDir:t,fallbackLocation:r.testFile,isLive:c==null?void 0:c.isLive,status:(h=r.treeItem)==null?void 0:h.status,annotations:((v=r.testCase)==null?void 0:v.annotations)??[],onOpenExternally:e,revealSource:s},"workbench")},_e=r=>{var t;for(let e=r.parent;e;e=e.parent)if(e.project())return(t=e.project())==null?void 0:t.outputDir};async function mt(r){const t=new URLSearchParams;t.set("trace",r),t.set("limit","1");const s=await(await fetch(`contexts?${t.toString()}`)).json();return new bt(s)}let _t={cols:80};const z={pending:[],clear:()=>{},write:r=>z.pending.push(r),resize:()=>{}},A=new URLSearchParams(window.location.search),we=new URL(A.get("server")??"../",window.location.href),lt=new URL(A.get("ws"),we);lt.protocol=lt.protocol==="https:"?"wss:":"ws:";const I={args:A.getAll("arg"),grep:A.get("grep")||void 0,grepInvert:A.get("grepInvert")||void 0,projects:A.getAll("project"),workers:A.get("workers")||void 0,headed:A.has("headed"),updateSnapshots:A.get("updateSnapshots")||void 0,reporters:A.has("reporter")?A.getAll("reporter"):void 0,pathSeparator:A.get("pathSeparator")||"/"};I.updateSnapshots&&!["all","none","missing"].includes(I.updateSnapshots)&&(I.updateSnapshots=void 0);const wt=navigator.platform==="MacIntel",ve=({})=>{var gt;const[r,t]=d.useState(""),[e,s]=d.useState(!1),[i,c]=d.useState(!1),[n,g]=d.useState(new Map([["passed",!1],["failed",!1],["skipped",!1]])),[l,_]=d.useState(new Map),[a,h]=d.useState(),[v,u]=d.useState(),[b,S]=d.useState({}),[B,C]=d.useState(new Set),[T,L]=d.useState(!1),[O,$]=d.useState(),N=O&&!O.completed,[R,J]=$t("watch-all",!1),[H,f]=d.useState({value:new Set}),E=d.useRef(Promise.resolve()),x=d.useRef(new Set),[M,q]=d.useState(0),[Z,xt]=d.useState(0),[Tt,kt]=d.useState(!1),[ct,ut]=d.useState(!0),[w,jt]=d.useState(),[G,Et]=d.useState(),[tt,yt]=d.useState(!1),[be,Se]=d.useState(!1),[It,dt]=d.useState(!1),Rt=d.useCallback(()=>dt(!0),[dt]),Bt=!1,[ht,xe]=d.useState(!1),[ft,Te]=d.useState(!1),[pt,ke]=d.useState(!1),Ct=d.useRef(null),et=d.useCallback(()=>{jt(p=>(p==null||p.close(),new Ht(new qt(lt))))},[]);d.useEffect(()=>{var p;(p=Ct.current)==null||p.focus(),L(!0),et()},[et]),d.useEffect(()=>{if(!w)return;const p=[w.onStdio(m=>{if(m.buffer){const k=atob(m.buffer);z.write(k)}else z.write(m.text);m.type==="stderr"&&c(!0)}),w.onClose(()=>kt(!0))];return z.resize=(m,k)=>{_t={cols:m,rows:k},w.resizeTerminalNoReply({cols:m,rows:k})},()=>{for(const m of p)m.dispose()}},[w]),d.useEffect(()=>{if(!w)return;let p;const m=new oe({onUpdate:k=>{clearTimeout(p),p=void 0,k?h(m.asModel()):p||(p=setTimeout(()=>{h(m.asModel())},250))},onError:k=>{z.write((k.stack||k.value||"")+`
4
+ `),c(!0)},pathSeparator:I.pathSeparator});return Et(m),h(void 0),L(!0),f({value:new Set}),(async()=>{try{await w.initialize({interceptStdio:!0,watchTestDirs:!0});const{status:k,report:y}=await w.runGlobalSetup({});if(m.processGlobalReport(y),k!=="passed")return;const P=await w.listTests({projects:I.projects,locations:I.args,grep:I.grep,grepInvert:I.grepInvert});m.processListReport(P.report),w.onReport(D=>{m.processTestReportEvent(D)});const{hasBrowsers:U}=await w.checkBrowsers({});ut(U)}finally{L(!1)}})(),()=>{clearTimeout(p)}},[w]),d.useEffect(()=>{if(!a)return;const{config:p,rootSuite:m}=a,k=p.configFile?vt.getObject(p.configFile+":projects",void 0):void 0,y=new Map(l);for(const P of y.keys())m.suites.find(U=>U.title===P)||y.delete(P);for(const P of m.suites)y.has(P.title)||y.set(P.title,!!(k!=null&&k.includes(P.title)));!k&&y.size&&![...y.values()].includes(!0)&&y.set(y.entries().next().value[0],!0),(l.size!==y.size||[...l].some(([P,U])=>y.get(P)!==U))&&_(y)},[l,a]),d.useEffect(()=>{N&&(a!=null&&a.progress)?u(a.progress):a||u(void 0)},[a,N]);const{testTree:Pt}=d.useMemo(()=>{if(!a)return{testTree:new nt("",new Q("","root"),[],l,I.pathSeparator)};const p=new nt("",a.rootSuite,a.loadErrors,l,I.pathSeparator);return p.filterTree(r,n,N?O==null?void 0:O.testIds:void 0),p.sortAndPropagateStatus(),p.shortenRoot(),p.flattenForSingleProject(),C(p.testIds()),{testTree:p}},[r,a,n,l,C,O,N]),V=d.useCallback((p,m)=>{!w||!a||p==="bounce-if-busy"&&N||(x.current=new Set([...x.current,...m]),E.current=E.current.then(async()=>{var P,U,D;const k=x.current;if(x.current=new Set,!k.size)return;{for(const j of((P=a.rootSuite)==null?void 0:P.allTests())||[])if(k.has(j.id)){j.results=[];const W=j._createTestResult("pending");W[X]="scheduled"}h({...a})}const y=" ["+new Date().toLocaleTimeString()+"]";z.write("\x1B[2m—".repeat(Math.max(0,_t.cols-y.length))+y+"\x1B[22m"),u({total:0,passed:0,failed:0,skipped:0}),$({testIds:k}),await w.runTests({locations:I.args,grep:I.grep,grepInvert:I.grepInvert,testIds:[...k],projects:[...l].filter(([j,W])=>W).map(([j])=>j),...ht?{workers:"1"}:{},...ft?{headed:!0}:{},...pt?{updateSnapshots:"all"}:{},reporters:I.reporters,trace:"on"});for(const j of((U=a.rootSuite)==null?void 0:U.allTests())||[])((D=j.results[0])==null?void 0:D.duration)===-1&&(j.results=[]);h({...a}),$(j=>j?{...j,completed:!0}:void 0)}))},[l,N,a,w,ht,ft,pt]);d.useEffect(()=>{if(!w||!G)return;const p=w.onTestFilesChanged(async m=>{if(E.current=E.current.then(async()=>{L(!0);try{const D=await w.listTests({projects:I.projects,locations:I.args,grep:I.grep,grepInvert:I.grepInvert});G.processListReport(D.report)}catch(D){console.log(D)}finally{L(!1)}}),await E.current,m.testFiles.length===0)return;const k=G.asModel(),y=new nt("",k.rootSuite,k.loadErrors,l,I.pathSeparator),P=[],U=new Set(m.testFiles);if(R){const D=j=>{const W=j.location.file;W&&U.has(W)&&P.push(...y.collectTestIds(j)),j.kind==="group"&&j.subKind==="folder"&&j.children.forEach(D)};D(y.rootItem)}else for(const D of H.value){const j=y.treeItemById(D),W=j==null?void 0:j.location.file;W&&U.has(W)&&P.push(...y.collectTestIds(j))}V("queue-if-busy",new Set(P))});return()=>p.dispose()},[V,w,R,H,G,l]),d.useEffect(()=>{if(!w)return;const p=m=>{m.code==="Backquote"&&m.ctrlKey?(m.preventDefault(),s(!e)):m.code==="F5"&&m.shiftKey?(m.preventDefault(),w==null||w.stopTestsNoReply({})):m.code==="F5"&&(m.preventDefault(),V("bounce-if-busy",B))};return addEventListener("keydown",p),()=>{removeEventListener("keydown",p)}},[V,et,w,B,e]);const it=d.useRef(null),Nt=d.useCallback(p=>{var m;p.preventDefault(),p.stopPropagation(),(m=it.current)==null||m.showModal()},[]),rt=d.useCallback(p=>{var m;p.preventDefault(),p.stopPropagation(),(m=it.current)==null||m.close()},[]),Lt=d.useCallback(p=>{rt(p),s(!0),w==null||w.installBrowsers({}).then(async()=>{s(!1);const{hasBrowsers:m}=await(w==null?void 0:w.checkBrowsers({}));ut(m)})},[rt,w]);return o.jsxs("div",{className:"vbox ui-mode",children:[!ct&&o.jsxs("dialog",{ref:it,children:[o.jsxs("div",{className:"title",children:[o.jsx("span",{className:"codicon codicon-lightbulb"}),"Install browsers"]}),o.jsxs("div",{className:"body",children:["Playwright did not find installed browsers.",o.jsx("br",{}),"Would you like to run `playwright install`?",o.jsx("br",{}),o.jsx("button",{className:"button",onClick:Lt,children:"Install"}),o.jsx("button",{className:"button secondary",onClick:rt,children:"Dismiss"})]})]}),Tt&&o.jsxs("div",{className:"disconnected",children:[o.jsx("div",{className:"title",children:"UI Mode disconnected"}),o.jsxs("div",{children:[o.jsx("a",{href:"#",onClick:()=>window.location.href="/",children:"Reload the page"})," to reconnect"]})]}),o.jsx(Yt,{sidebarSize:250,minSidebarSize:150,orientation:"horizontal",sidebarIsFirst:!0,settingName:"testListSidebar",main:o.jsxs("div",{className:"vbox",children:[o.jsxs("div",{className:at("vbox",!e&&"hidden"),children:[o.jsxs(Y,{children:[o.jsx("div",{className:"section-title",style:{flex:"none"},children:"Output"}),o.jsx(F,{icon:"circle-slash",title:"Clear output",onClick:()=>{z.clear(),c(!1)}}),o.jsx("div",{className:"spacer"}),o.jsx(F,{icon:"close",title:"Close",onClick:()=>s(!1)})]}),o.jsx(ne,{source:z})]}),o.jsx("div",{className:at("vbox",e&&"hidden"),children:o.jsx(me,{pathSeparator:I.pathSeparator,item:b,rootDir:(gt=a==null?void 0:a.config)==null?void 0:gt.rootDir,revealSource:It,onOpenExternally:p=>w==null?void 0:w.openNoReply({location:{file:p.file,line:p.line,column:p.column}})})})]}),sidebar:o.jsxs("div",{className:"vbox ui-mode-sidebar",children:[o.jsxs(Y,{noShadow:!0,noMinHeight:!0,children:[o.jsx("img",{src:"playwright-logo.svg",alt:"Playwright logo"}),o.jsx("div",{className:"section-title",children:"Playwright"}),o.jsx(F,{icon:"refresh",title:"Reload",onClick:()=>et(),disabled:N||T}),o.jsxs("div",{style:{position:"relative"},children:[o.jsx(F,{icon:"terminal",title:"Toggle output — "+(wt?"⌃`":"Ctrl + `"),toggled:e,onClick:()=>{s(!e)}}),i&&o.jsx("div",{title:"Output contains error",style:{position:"absolute",top:2,right:2,width:7,height:7,borderRadius:"50%",backgroundColor:"var(--vscode-notificationsErrorIcon-foreground)"}})]}),!ct&&o.jsx(F,{icon:"lightbulb-autofix",style:{color:"var(--vscode-list-warningForeground)"},title:"Playwright browsers are missing",onClick:Nt})]}),o.jsx(ce,{filterText:r,setFilterText:t,statusFilters:n,setStatusFilters:g,projectFilters:l,setProjectFilters:_,testModel:a,runTests:()=>V("bounce-if-busy",B)}),o.jsxs(Y,{noMinHeight:!0,children:[!N&&!v&&o.jsx("div",{className:"section-title",children:"Tests"}),!N&&v&&o.jsx("div",{"data-testid":"status-line",className:"status-line",children:o.jsxs("div",{children:[v.passed,"/",v.total," passed (",v.passed/v.total*100|0,"%)"]})}),N&&v&&o.jsx("div",{"data-testid":"status-line",className:"status-line",children:o.jsxs("div",{children:["Running ",v.passed,"/",O.testIds.size," passed (",v.passed/O.testIds.size*100|0,"%)"]})}),o.jsx(F,{icon:"play",title:"Run all — F5",onClick:()=>V("bounce-if-busy",B),disabled:N||T}),o.jsx(F,{icon:"debug-stop",title:"Stop — "+(wt?"⇧F5":"Shift + F5"),onClick:()=>w==null?void 0:w.stopTests({}),disabled:!N||T}),o.jsx(F,{icon:"eye",title:"Watch all",toggled:R,onClick:()=>{f({value:new Set}),J(!R)}}),o.jsx(F,{icon:"collapse-all",title:"Collapse all",onClick:()=>{q(M+1)}}),o.jsx(F,{icon:"expand-all",title:"Expand all",onClick:()=>{xt(Z+1)}})]}),o.jsx(fe,{filterText:r,testModel:a,testTree:Pt,testServerConnection:w,runningState:O,runTests:V,onItemSelected:S,watchAll:R,watchedTreeIds:H,setWatchedTreeIds:f,isLoading:T,requestedCollapseAllCount:M,requestedExpandAllCount:Z,setFilterText:t,onRevealSource:Rt}),Bt,o.jsxs(Y,{noShadow:!0,noMinHeight:!0,className:"settings-toolbar",onClick:()=>yt(!tt),children:[o.jsx("span",{className:`codicon codicon-${tt?"chevron-down":"chevron-right"}`,style:{marginLeft:5},title:tt?"Hide Settings":"Show Settings"}),o.jsx("div",{className:"section-title",children:"Settings"})]}),tt&&o.jsx(Qt,{})]})})]})};(async()=>{if(Xt(),window.location.protocol!=="file:"){if(window.location.href.includes("isUnderTest=true")&&await new Promise(r=>setTimeout(r,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
5
+ Make sure to serve the website (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(r=>{navigator.serviceWorker.oncontrollerchange=()=>r()}),setInterval(function(){fetch("ping")},1e4)}Jt.createRoot(document.querySelector("#root")).render(o.jsx(ve,{}))})();